• 博弈论:寻找先手必胜策略——Grundy值


    选修了人工智能课程,老师布置了调研任务:Grundy,开始看了一些资料并没有看懂。

    后来找到了一篇文,写的很棒,里面有好多博弈相关的问题与分析,分享出来给大家:

    http://endless.logdown.com/posts/2014/05/05/find-out-the-winning-strategies-of-the-game-nim-and-grundy-number-notes

    这个服务器可能是外国的?打开的很慢,不要认为自己的网炸了。。。哈哈哈

    下面就贴一点自己为了做海报(Grundy相关的)所摘取的一些描述:(具体的还是看上面链接的原文吧~)

    对于Grundy值的计算,对应Sprague-Grundy定理:游戏和的Grundy值等于各游戏Grundy值的异或和。
    而一个游戏可以切分成若干个子游戏,对于每一个子游戏,我们都可以计算一个Grundy值,
    此时对若干个游戏全部异或,就可以得到整体这个游戏的Grundy值。

    这里我们理解为:如果两个玩家再进行博弈,那么每一个玩家在行动之后,局面都会增加一个,
    我们把每一个局面视为一个游戏,那么整个游戏就可以视为若干个游戏的拆分,此时对每一步计算一个Grundy值,
    然后进行异或处理。此时我们就可以将问题转化为Nim问题,而又根据1902年,L.Bouton的对于Nim游戏提出的定理:异或和值为零则后手胜,否则先手胜。
    如果每个玩家都按照最优策略进行,那么最终的Grundy值为0,那么后手赢,否则先手赢。

    所以,对于我们来说,SG函数与“游戏的和”的概念不是让我们去组合、制造稀奇古怪的游戏,
    而是把遇到的看上去有些复杂的游戏试图分成若干个子游戏,对于每个比原游戏简化很多的子游戏找出它的SG函数,
    然后全部异或起来就得到了原游戏的SG函数,就可以解决原游戏了。(引自百度百科SG函数)

    具体问题可以poj的Cutting Game(http://poj.org/problem?id=2311)

    题解也有很多,我是看了这位大神的:http://blog.csdn.net/mikasa3/article/details/51385538

  • 相关阅读:
    PB中的函数ProfileString
    PB做大屏显示滚动窗口 [转载]
    PB对象(sqlca、sqlsa、sqlda)[转载]
    SQL中 EXCEPT、INTERSECT用法[转载]
    第一篇博客
    Intelli IDEA 炫酷插件
    概念总结
    秒杀系统(四)——异常处理和常量的处理
    秒杀系统(三)——实现哪些秒杀系统功能
    秒杀系统(二)
  • 原文地址:https://www.cnblogs.com/icyhusky/p/6906352.html
Copyright © 2020-2023  润新知