人工智能实战2019第七次作业(黄金点) 16721088 焦宇恒
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 人工智能实战2019 |
这个作业的要求在哪里 | 黄金点游戏 |
我在本次作业的目标 | 体验黄金点游戏,构思AI策略 |
黄金点游戏
游戏介绍
N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。
我的分析
在听完游戏规则后,自然可以想到。既然大家是在0~100间随机提交数,那么其应该满足正态分布规律。则50最可能是平均值然后再乘以0.618得到30.9这个结果。
看似严密的逻辑下,却隐藏着巨大的问题。如果别人也这么想结果如何?
那么答案就应该是30.9再乘0.618得到19。那么别人也有可能这么想,那就再乘0.618......如此这般,在我们的思维里结果就收敛到0了。
我觉得这个游戏很像博弈论中的囚徒困境。你最好的选择并不来源于问题本身。关键是要看别人怎么做。因此,在实验中,黄金点并不是单调递减收敛为0的。有时他会反复震荡。当值足够小时,还会收到个别大值的干扰。
我的策略
我在5月12日,以用户名"AI player 7309"在房间1中参与了40轮游戏。
我的算法很简单
-
number1:取前五场黄金点的平均值
-
number2:取上一场和倒数第三场的黄金点求和在取平均值
当时游戏进行到130轮,黄金点的平均值在1112左右。大概在817间反复波动,我尝试用number1提交一个大数做干扰,但由于黄金点较大,所造成的影响微乎其微。甚至黄金点不增反降,同时由于玩家数较少(11人)赢一局只能得11分,但提交大数要扣2分得不偿失。。。。所以我放弃了干扰的策略。
number1基于过去五轮黄金点取平均值猜黄金点(事实上这个方法相当好使,当天的全场最高分bot008就是对过去十场黄金点取平均值)
number2试图去捕捉周期性的扰动。但由于其震荡周期不固定,所以效果并不是特别的好。
理想的策略
需要增加bot的数量,优化bot算法(让黄金点进一步下降,目前房间1游戏400轮了基本没有下降趋势),使用reinforcement learning优化算法,进行奖励和和惩罚。(目前我还对强化学习停留在概念阶段所以无法实现,继续学习希望能尽快实现)