赞 | 32 |
VIP | 44 |
好人卡 | 11 |
积分 | 17 |
经验 | 81722 |
最后登录 | 2020-3-23 |
在线时间 | 1357 小时 |
Lv3.寻梦者 唯一的信徒
- 梦石
- 0
- 星屑
- 1665
- 在线时间
- 1357 小时
- 注册时间
- 2013-1-29
- 帖子
- 1637
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
(嗯对,愚人节已经过去两天了,但是本想愚人节发个什么,于是就发喽,别在意细节。)
上次的囚徒困境感觉还是可以的,于是呢,我们这次玩个(因为愚人节所以其实不会玩)一个更加高级的版本:“超理性囚徒困境大赛”。
囚徒困境的我们要求的策略格式是:你知道你之前所做的所有决策,你也知道对方之前所做的所有决策,你这回合是选择背叛还是合作?
转换成程序的话,就相当于提交个类型等于
- (my : Array<Decision>, his : Array<Decision>) -> Decision
复制代码
的函数,而 Decision 也许定义就是
- enum Decision {Coop, Defect}
复制代码
之类的。
那么“超理性囚徒困境大赛”是这样的:你是个超智慧生物,你能模拟对方在所有状态下会做的任何决策,你也知道对方也是相同的超智慧生物(对方也能模拟你在所有状态下能做的所有决策),你知道你之前的所有决策(当然,因为你知道你做的所有决策,因为你是超智慧生物所以你模拟了对方在你这个状态下做的所有决策,所以你自然知道对方这个时候做的所有决策),那么现在,你这回合打算背叛还是合作?
还是用函数来看的话,恐怕类型需要递归的类型。
- type Strategy = (my : Array<Decision>, his: Array<Decision>, oppoStrategy : Strategy) -> Decision
复制代码
(感觉也许程序上没有写对呢)
其实这个无脑想的话,也许第一回合是,“对面会怎么想呢?”,然后也许就是“我知道对面会背叛”,那么下一步也许就是“那么我也得背叛”。
但是之后就是“但是我希望和他一直合作下去”,然后也许是“他也知道我想合作下去”(因为对方也是“超理性”的),“我也知道他知道我想合作下去”,“他知道我知道他知道我想合作下去”。
于是也许想到最后,你发现了一个他会选择合作的方法,于是你按照这个思路执行你的策略,然后你们两个最后逐渐都开始一直合作了,Happy Ending。
所以也许没有开比赛的必要,但是感觉,假如能开的话还是想开的。
当然因为愚人节所以不要在意其他细节呢嗯。 |
评分
-
查看全部评分
|