然后游戏规定:吃到豆子得10分,移动位置分数不变,执行吃豆的动作,但是格子里没有豆子,减1分,撞墙了减5分。限制吃豆人总共能做200次动作。理论上最高得分就是在不扣分的情况下把豆子全部吃掉,有50个豆子,最高得分就是500分。
吃豆人能观察到的,是前后左右和自己所在格子的状态。所以一共是5个格,每个格子有三种状态,总的状态数就是3的5次方,就是243种状态,然后再除去一些地图中不存在的状态;如三面是墙,左右是墙,最后共剩下128种状态。
那么在这个游戏中,我们怎样才能获得最高分呢?
如果采取最传统的方法,就是每种状态都试试,用穷举法列出所有可能性,然后再进行对比,找出得分最高的一组策略模式。
但是,如果要采取这种传统方法,那么总共要涉及到7128种策略组合,如果把每个生成的策略组合都去试试看得分多少的话,把这些策略都执行完,至少需要159亿年,这和宇宙大爆炸到现在的时间几乎差不多。
所以这是个计算量远远超过全球算力加和的计算任务。所以想要通过穷举法去计算,这个问题是无解的;
那么能不能用神经网络的算法来进行计算呢?当然可以,但是问题和使用穷举法一样,算力需要远远大于全球算力。
另外,由于豆子的出现是随机的,每一局豆子出现的位置并不是固定的,所以他们之间的关系是非线性的。
而神经网络模型却很难处理这样的非线性问题。比如模型用历史数据学习了很久,终于发现了一些规律,然后新的游戏开局,模型用这些规律去玩游戏,但却发现新的游戏中,这些规律变了。过去学习总结出的规律,几乎派不上太多用场了。对于这种尴尬的问题,基于神经网络只能用概率的猜测进行决策。
而这样的效果往往并不是很理想,甚至在最开始的阶段,其概率比人为主观判断低了很多很多。
……
但是遗传进化算法可以从另一个思路解决这个问题。
这种算法直接从策略规则自身开始入手;比如人为的设计甚至是随机生成100个策略,让每种策略都进行1000场吃豆挑战赛。
每场比赛让吃豆人行动200次,在1000场挑战赛中,每场比赛的50个豆子都是随机撒下的。最后评估在这1000场挑战赛中,平均每走200步,得到的分数是多少;
根据得分的高低从200个策略里随机选出2个策略,得分越高被选中的概率越高。然后用所选中的2个策略,生成出一个新的策略,新的策略的每一列有一半概率使用第一个策略的对应列,一半概率使用第二个策略的对应列。在生成新策略的过程中,会有小概率产生策略的变异;
用这种优胜劣汰、自然选择的方法不断生成新策略;用新生成的策略进行比赛,再按照分数再生成下一代的策略;
把每条吃豆策略进行数学编码后,可以将这些策略看成基因一样,重组生成下一代的过程,其实就是编码的一部分相互交叉替代,就有点像染色体的分裂和组合。
第一代成绩较高的吃豆人,就有更高的几率留下后代,后代还遗传了上一代的策略。得分低的也有几率生成后代,只是没有得分高的概率高。在生成下一代的过程中,下一代的策略还有非常低的几率产生遗传变异,有的策略位会随机变成其他数。
这就是遗传算法的基本原理,直接对原始的随机策略进行编码,然后让特定区域的编码来回交叉迭代,产生新一代的策略,然后再继续进行编码的交叉与变异迭代……下一代遗传了上一代的优点,也变异出了新一代的特点……就这样一代一代的进行下去;直到获得最高的分数。
……
在这个游戏中,计算机大约进来了1000多次迭代的时候,游戏分数达到了497分,这离满分500分仅仅差了三分,而且之后的游戏中,计算机的得分几乎稳定在了493——497分的区间。
而作为对照组,很多数学家、计算机专家、游戏高手也在靠着自己的经验与逻辑去玩这个游戏,大约1000个玩游戏的高手与高智商的人类,每人玩了大约200局,最终最高得分为431分,而且仅有一次;人类的精英代表平均得分仅为351分。
……
计算机利用遗传算法得到的策略,是人类所不能比拟的。尤其是在非线性的复杂系统中,遗传算法最后执行的很多策略,人们怎么也看不懂,逻辑上完全无法理解。但就是这样看上去很诡异的策略,却在最终变成了神来之笔,在游戏终止后,人们才恍然大悟。
而且从计算机得分的轨迹来看,更加的平滑,更加的连续…而人类对照组在游戏中的得分轨迹,则呈现出明显的波动性与随机性。
这个就是用计算机来模拟进化过程的研究,它逐渐掀起了进化论的主流观点的改变,这种遗传算法将突变式的进化用计算机模拟出来了。
进化是一个复杂过程,通过计算机在算法上做简单规定就能模拟出来,而且还能在7128种可能性中,短时间找出最优解,
用遗传算法进化出来的那个最优解,往往是人类思维无法理解的,它还往往照顾到很多思维的死角。这也给研究算法的科学家提供了一个新的思路。
……
“这个好啊…”莫雯雯记了很多的笔记,她若有所思的说道:“这个游戏不是和投资交易市场很像吗?”
“嗯,有一定的类似,但是还是有不一样的地方,咱们的投资交易的复杂度要明显高出这个游戏几个数量级。”刘博士扶了扶眼镜笑着说道。
“我明白你的意思,但你听我说啊。”莫雯雯一边思考着,一边点燃了一支香烟:“你说的价格的随机性与趋势性,还有每天涨跌的不一致性,这个我能理解,从这个角度上讲,确实很复杂。”
“没错!莫总,能不能给我一支烟?”刘博士有些不好意思的说道。
“你也抽烟啊,以前没发现啊。”莫雯雯笑着将烟盒递了过去。
“偶尔抽一支。”刘博士腼腆的笑了笑说道:“莫总,您接着说。”
“但是你有没有想过,把不规则的价格给他规则化。”莫雯雯缓缓的吐出了一股淡淡的烟雾说道。
“规则化?”刘博士没太听明白。
“人为市场立法,市场没有规则,但是我们作为投资交易的人,是可以根据自己的需要给市场进行规则化的。”莫雯雯若有所思的说道:“比如,当年市场上流行一种网格交易法,就是把价格运动的轨迹,分成一个一个的小格子,在每个格子上,做什么动作,都是固定的。这样长期下来就能够赚到钱。”
“这倒是个好思路,但是网格交易法的资金利用效率很低,而且万一出现单边大趋势的时候,网格交易是会爆仓的。”刘博士一边思考着一边说道。
“你看啊,类比刚才你说的那个游戏。假如我们把5%的波动作为一个基本单元,价格每波动5%,就是一个格子。那么我们在这个格子里,就有几种选择,开仓、加仓、减仓、平仓、还有持仓不动和没有仓位。”莫雯雯突然感到有灵感迸发了出来:“假设价格波动是连续的,那么每个5%的格子都是相邻的。这些价格按着特殊加工的时间顺序折过来,不就是那张10*10或者100*100的格子空间吗?”
“您这么一说,还真是。比如有红色豆子就是正向5%波动,可以得到费前5%的收益,有绿色豆子就是反向5%波动,亏损5%的费前收益…无豆就是波动小于5%,我们就不动…然后再行动上我们可以根据上一步和现在的情况,来估计下一步的格子里豆子的概率,来决定开仓、加减仓、平仓、空仓还是持仓不动….这样玩10000局,看看会有怎样的策略….”刘博士有一种恍然大悟的感觉。
“没错!这样我们根本不需要太多的数据维度,只是六种执行动作,和100*100或者1000*1000的格子空间,最初我们形成一两百个简单的策略,然后编码以后,根据收益情况,让他们去遗传变异,不停的迭代下一代….”莫雯雯笑着说道:“这不就和这个吃豆游戏是一样的吗?最后在每个格子上都有一个对应的固定策略,就像是一个大矩阵,然后矩阵位置上对于的函数一直在优化迭代…经过成千上万次的迭代,从而形成一个随机过程中的最高收益的最优策略。这样是不是可以呢?”
“...”刘博士大受启发,他有些激动的说道:“莫总,您真是个天才!您说的这个方法,我感觉完全可行啊。”
“我哪是什么天才啊…我只不过实战经验比你们多一些而已。”莫雯雯笑着说道。
“我想想啊…”刘博士又开始思考了起来,过了片刻他说道:“要是1000*1000的矩阵空间……算力咱们可能有些跟不上…这个计算量也是个天量…这可比10*10的矩阵空间要复杂多了。”
“你去试一试,做个具体的方案,大概估计一下需要多少成本…然后告诉我。如果确实值得,我可以给你调配资源啊。”莫雯雯熄灭了手中的香烟,微笑着说道。
“好的,这真是有启发性…我这就回去想想,做个详细的方案给您。”刘博士有些兴奋的说道。
“好啊,尽快!”
……
刘博士走后,莫雯雯看着自己笔记本上那密密麻麻的字迹,也露出了开心的笑容。她喜欢这样的公司文化,不停的开拓创新,不停的研究市场的本质与可执行的方法……
即便这个思路暂时不赚钱,甚至最终以失败告终,莫雯雯也觉得是值得的,因为投资交易的长存之道,便是要认清本质,并且围绕着本质核心,不断的开拓发展出新的方法,从而才能长久的在市场中保持优势啊。