1.简介博弈
博弈/博弈论,又称为对策论(Game Theory)、赛局理论等,既是现代数学的一个新分支,也是运筹学的一个重要学科。博弈论主要研究公式化了的激励结构间的相互作用,是研究具有斗争或竞争性质现象的数学理论和方法,博弈论考虑游戏中的个体的预测行为和实际行为,并研究它们的优化策略。
总而言之,博弈,就是两方(或者多方)在为了某一种目标进行的竞争。
在生活中,博弈无处不在,国与国之间的交锋就是一种博弈,在游戏中你与对手的有来有回也是一种博弈,面对老板提出加工资的需求又也是一种博弈,在博弈中,选择去做什么非常重要,这也是十分有研究价值的,一个有趣的题外话:从1994年诺贝尔经济学奖授予3位博弈论专家开始,共有7届的诺贝尔经济学奖与博弈论的研究有关。
2.思想
博弈问题的特点
a) 博弈模型为两人轮流决策的非合作博弈。即两人轮流进行决策,并且两人都使用最优策略来获取胜利
b) 博弈是有限的。即无论两人怎样决策,都会在有限步后决出胜负
c) 公平博弈。即两人进行决策所遵循的规则相同
3. 学习方法
关于博弈论,最理想的学习方式还当属熟悉模型,几种常用的博弈论模型有:巴什博弈,威佐夫博弈,斐波那契博弈,尼姆博弈,通过理解模型以及他们模型可能产生的变种,面对各种题目也只是“换汤不换药”的思维。
在基本了解各类模型之后,我们可以开始学习“博弈树”和“决策树”这类算法,以及其他一些启发式算法,这与人工智能的思维很接近,此时算法难度已经直线上升,在经过这个瓶颈之后,等待你的是一片星辰大海。
4.经典例题
直接搜索题目标签“博弈论”即可找到题目,目前的题目属于比较入门的题,大家可以扩展去思考和处理。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程