Project1

标题: 【愚人节】超理性囚徒困境大赛 [打印本页]

作者: LBQ    时间: 2018-4-3 07:33
标题: 【愚人节】超理性囚徒困境大赛
(嗯对,愚人节已经过去两天了,但是本想愚人节发个什么,于是就发喽,别在意细节。)

上次囚徒困境感觉还是可以的,于是呢,我们这次玩个(因为愚人节所以其实不会玩)一个更加高级的版本:“超理性囚徒困境大赛”。

囚徒困境的我们要求的策略格式是:你知道你之前所做的所有决策,你也知道对方之前所做的所有决策,你这回合是选择背叛还是合作?

转换成程序的话,就相当于提交个类型等于

  1. (my : Array<Decision>, his : Array<Decision>) -> Decision
复制代码


的函数,而 Decision 也许定义就是

  1. enum Decision {Coop, Defect}
复制代码


之类的。

那么“超理性囚徒困境大赛”是这样的:你是个超智慧生物,你能模拟对方在所有状态下会做的任何决策,你也知道对方也是相同的超智慧生物(对方也能模拟你在所有状态下能做的所有决策),你知道你之前的所有决策(当然,因为你知道你做的所有决策,因为你是超智慧生物所以你模拟了对方在你这个状态下做的所有决策,所以你自然知道对方这个时候做的所有决策),那么现在,你这回合打算背叛还是合作?

还是用函数来看的话,恐怕类型需要递归的类型。

  1. type Strategy = (my : Array<Decision>, his: Array<Decision>, oppoStrategy : Strategy) -> Decision
复制代码


(感觉也许程序上没有写对呢)

其实这个无脑想的话,也许第一回合是,“对面会怎么想呢?”,然后也许就是“我知道对面会背叛”,那么下一步也许就是“那么我也得背叛”。

但是之后就是“但是我希望和他一直合作下去”,然后也许是“他也知道我想合作下去”(因为对方也是“超理性”的),“我也知道他知道我想合作下去”,“他知道我知道他知道我想合作下去”。

于是也许想到最后,你发现了一个他会选择合作的方法,于是你按照这个思路执行你的策略,然后你们两个最后逐渐都开始一直合作了,Happy Ending。

所以也许没有开比赛的必要,但是感觉,假如能开的话还是想开的。

当然因为愚人节所以不要在意其他细节呢嗯。
作者: 天使喝可乐    时间: 2018-4-3 11:15
互相都知道思想 那只有几种结果 就是全部合作吧 100%利益最大化
因为知道思想所以已经不算“困境”了 大家心里都有B数
作者: 不死鸟之翼    时间: 2018-4-3 11:19
所以这次会有内置的几种默认决策参加吗
作者: chd114    时间: 2018-4-3 12:27
全知的情况怎么做决策不是明示了吗···




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1