Dotcpp  >  编程教程  >  算法和竞赛  >  博弈算法实例详解

博弈算法实例详解

点击打开在线编译器,边学边练

1.简介博弈

博弈/博弈论,又称为对策论(Game Theory)、赛局理论等,既是现代数学的一个新分支,也是运筹学的一个重要学科。博弈论主要研究公式化了的激励结构间的相互作用,是研究具有斗争或竞争性质现象的数学理论和方法,博弈论考虑游戏中的个体的预测行为和实际行为,并研究它们的优化策略。

总而言之,博弈,就是两方(或者多方)在为了某一种目标进行的竞争。

在生活中,博弈无处不在,国与国之间的交锋就是一种博弈,在游戏中你与对手的有来有回也是一种博弈,面对老板提出加工资的需求又也是一种博弈,在博弈中,选择去做什么非常重要,这也是十分有研究价值的,一个有趣的题外话:从1994年诺贝尔经济学奖授予3位博弈论专家开始,共有7届的诺贝尔经济学奖与博弈论的研究有关。


2.思想

博弈问题的特点

a) 博弈模型为两人轮流决策的非合作博弈。即两人轮流进行决策,并且两人都使用最优策略来获取胜利

b) 博弈是有限的。即无论两人怎样决策,都会在有限步后决出胜负

c) 公平博弈。即两人进行决策所遵循的规则相同

 

3. 学习方法

关于博弈论,最理想的学习方式还当属熟悉模型,几种常用的博弈论模型有:巴什博弈,威佐夫博弈,斐波那契博弈,尼姆博弈,通过理解模型以及他们模型可能产生的变种,面对各种题目也只是“换汤不换药”的思维。

在基本了解各类模型之后,我们可以开始学习“博弈树”和“决策树”这类算法,以及其他一些启发式算法,这与人工智能的思维很接近,此时算法难度已经直线上升,在经过这个瓶颈之后,等待你的是一片星辰大海。


4.经典例题

直接搜索题目标签“博弈论”即可找到题目,目前的题目属于比较入门的题,大家可以扩展去思考和处理。



知识点标签:博弈论


本文固定URL:https://www.dotcpp.com/course/170

数据结构教程
第一章 数据结构入门
第二章 链表
第三章 栈
第四章 队列
第五章 C++STL库教程(附带题库)
第六章 串、数组、矩阵和广义表
第七章 树
第八章 图
第九章 查找算法
第十章 排序算法
第十一章 算法和竞赛
第十二章 后记
Dotcpp在线编译      (登录可减少运行等待时间)