收藏 分享(赏)

(HDUACM2010版_10)组合博弈入门.ppt

上传人:dreamzhangning 文档编号:3255610 上传时间:2018-10-09 格式:PPT 页数:38 大小:349.50KB
下载 相关 举报
(HDUACM2010版_10)组合博弈入门.ppt_第1页
第1页 / 共38页
(HDUACM2010版_10)组合博弈入门.ppt_第2页
第2页 / 共38页
(HDUACM2010版_10)组合博弈入门.ppt_第3页
第3页 / 共38页
(HDUACM2010版_10)组合博弈入门.ppt_第4页
第4页 / 共38页
(HDUACM2010版_10)组合博弈入门.ppt_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、ACM程序设计,杭州电子科技大学 刘春英 ,2018/10/9,2,今天,,你 了吗?,AC,2018/10/9,3,每周一星(9):,Hugo,2018/10/9,4,第十讲,组合博弈入门 (Simple Game Theory),2018/10/9,5,导引游戏,(1) 玩家:2人; (2) 道具:23张扑克牌; (3) 规则: 游戏双方轮流取牌; 每人每次仅限于取1张、2张或3张牌; 扑克牌取光,则游戏结束; 最后取牌的一方为胜者。,2018/10/9,6,基本思路?,请陈述自己的观点,2018/10/9,7,第一部分,简单取子游戏,(组合游戏的一种),2018/10/9,8,什么是组合

2、游戏,有两个玩家; 游戏的操作状态是一个有限的集合(比如:限定大小的棋盘); 游戏双方轮流操作; 双方的每次操作必须符合游戏规定; 当一方不能将游戏继续进行的时候,游戏结束,同时,对方为获胜方; 无论如何操作,游戏总能在有限次操作后结束;,2018/10/9,9,概念:必败点和必胜点(P点 & N点),必败点(P点) :前一个选手(Previous player)将取胜的位置称为必败点。 必胜点(N点) :下一个选手(Next player)将取胜的位置称为必胜点。,2018/10/9,10,必败(必胜)点属性,(1) 所有终结点是必败点(P点);(2) 从任何必胜点(N点)操作,至少有一种方

3、法可以进入必败点(P点);(3)无论如何操作, 从必败点(P点)都只能进入必胜点(N点).,2018/10/9,11,取子游戏算法实现,步骤1:将所有终结位置标记为必败点(P点); 步骤2: 将所有一步操作能进入必败点(P点)的位置标记为必胜点(N点) 步骤3:如果从某个点开始的所有一步操作都只能进入必胜点(N点) ,则将该点标记为必败点(P点) ; 步骤4: 如果在步骤3未能找到新的必败(P点),则算法终止;否则,返回到步骤2。,2018/10/9,12,课内练习:,Subtraction Games:subtraction set S = 1, 3, 4,2018/10/9,13,实战练习

4、,kikis game,2018/10/9,14,第二部分,Nim游戏,2018/10/9,15,Nim游戏简介,有两个玩家; 有三堆扑克牌(比如:可以分别是 5,7,9张); 游戏双方轮流操作; 玩家的每次操作是选择其中某一堆牌,然后从中取走任意张; 最后一次取牌的一方为获胜方;,2018/10/9,16,2018/10/9,17,初步分析,(0, 0, 0),(0, 0, x),(0, 1, 1),(0, k, k),P-position,P-position,P-position,N-position,(14, 35, 46),?,2018/10/9,18,引入概念:Nim-Sum,定义

5、: 假设 (xm x0)2 和(ym y0)2 的nim-sum是(zm z0)2,则我们表示成 (xm x0)2 (ym y0)2 = (zm z0)2, 这里,zk = xk + yk (mod 2)(k=0m).,2018/10/9,19,定理一:,对于nim游戏的某个位置(x1,x2,x3),当且仅当它各部分的nim-sum等于0时(即x1x2x3=0),则当前位于必败点。,定理一也适用于更多堆的情况,2018/10/9,20,定理一的证明,2018/10/9,21,思考(1):,有了定理一,如何判断某个游戏的先手是输还是赢?,2018/10/9,22,思考(2):,对于必胜点,如何判

6、断有几种可行的操作方案?,2018/10/9,23,实例分析(HDOJ_1850),Being a Good Boy in Spring Festival,2018/10/9,24,第三部分,Graph Games & Sprague-Grundy Function,2018/10/9,25,What is the graph game ?,(1) Player I moves first, starting at x0. (2) Players alternate moves. (3) At position x, the player whose turn it is to move ch

7、ooses a position y F(x). (4) The player who is confronted with a terminal position at his turn, and thus cannot move, loses.,2018/10/9,26,Example about graph game:,2018/10/9,27,The Sprague-Grundy Function.,Definition: The Sprague-Grundy function of a graph, (X,F), is a function, g, defined on X and

8、taking non-negative integer values, such thatg(x) =minn 0 : ng(y) for y F(x). (1)In words, g(x) the smallest non-negative integer not found among the Sprague-Grundy values of the followers of x.g(x) =mexg(y) : y F(x). (2),2018/10/9,28,Use of the Sprague-Grundy Function:,P-positions: Positions x for

9、which g(x) = 0 N-positions: Positions x for which g(x) 0,2018/10/9,29,Exercise:,What is the SG-value of the subtraction game with subtraction set S = 1, 2, 3?,2018/10/9,30,Question:,What can the S-G value describe?,2018/10/9,31,Part 4:,Sums of Combinatorial Games,2018/10/9,32,What is so-called “Sums

10、 of Combinatorial Games”?,2018/10/9,33,Theorem 2.,If gi is the Sprague-Grundy function of Gi , i = 1, . . . , n, then G = G1 + + Gn has Sprague-Grundy function g(x1, . . . , xn) = g1(x1) gn(xn).,2018/10/9,34,Applications:,Sums of three Subtraction Games. In the first game:m = 3 and the pile has 9 ch

11、ips. In the second:m = 5 and the pile has 10 chips. In the third: m = 7 and the pile has 14c hips.g(9, 10, 14) =?,2018/10/9,35,附:参考源码(HDOJ-1536),#include #include #include using namespace std; int k,a100,f10001; int mex(int p) int i,t; bool g101=0; for(i=0;ik;i+) t=p-ai; if(t0) break; if(ft=-1) ft=mex(t); gft=1; for(i=0;i+) if(!gi) return i; ,int main() int n,i,m,t,s; while(scanf(“%d“, ,2018/10/9,36,课后练习,201003ACM程序设计在线作业(10) 博弈入门,2018/10/9,37,记住:,学习是快乐的,2018/10/9,38,Welcome to HDOJ,Thank You ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报