蚂蚁庄园小鸡问题

2019-04-16  本文已影响0人  nnnnxcj

作为一个养鸡爱好者,心血来潮想提高一下小鸡产蛋的速度,计算一下给小鸡喂食的最佳时间点。来对这个问题进行一些扩展。

根据平时的观察添加一些规则/约束(不太清楚蚂蚁庄园的具体规则):
  1. 一个小鸡最多只能被两个小鸡抢食
  2. 一次喂食180g饲料,没有蹭食加速的情况下小鸡吃完需要2h
  3. 小鸡没有被喂食(空闲)时间t1之后,小鸡寻找好友列表的有空位的小鸡蹭饭
  4. 胖揍在自己庄园蹭食的小鸡,有概率掉落蹭食一半的饲料
  5. 蹭食的小鸡不被召回/被胖揍会一直呆在别人的庄园里
  6. 被喂食的小鸡在吃完饲料之前不能去蹭食
求解目标:
问题分析:

首先初步分析,易得:

  1. 小鸡不在的好友庄园越多越好
  2. 小鸡正被喂食的好友庄园越多越好
  3. 被喂食的小鸡吃完的时间越长越好(没有加速,没有蹭食的时间越长)

除此之外,好友庄园是一个随时间变化的时变模型,如下
好友庄园模型(当前时间点t):

根据如上模型考虑好友对庄园的行为,只需对动作时刻及动作类型的描述进行记录,如:
好友在t^{'}时刻进行喂食动作,饲料消耗速度为v,此时喂食状态s(t)=True,剩余饲料w(t)=180-v*(t-t^{'})=v*t_{剩余}t_{剩余}即庄园页面显示的剩余值,t为查看状态的当前时间)

  1. 问题A
    假设:我们已知所有时间点的状态
    转化:在所有时间点里计算找出能使目标函数最大的时间点

  2. 问题B
    假设:我们已知当前时间点以及之前所有时间点的状态
    转化:对未来时间状态进行预测,得到所有时间状态集合,在在所有时间点里计算找出能使函数最大的时间点

  3. 问题C
    假设:我们不预测未来时间点的状态,存在经验(如历史观察数据总结的目标函数最大值)
    转化:当前决策时间点计算的结果与经验(阈值)进行比较来判断当前时间点是否最佳,持续计算直至找到比较合适的最佳时间点为止

  4. 问题D
    假设:我们对历史数据进行训练,训练出一个相对靠谱的时序预测器
    转化:预测出未来时间点的所有情况,找到最佳

(其他的情况目前想不到了)

讨论

其实我认为这个问题代表了一类实时决策的问题,欢迎各位有想法的来补充来建议(文中的错误及不足,解决方法,一些相关领域的论文博客什么的等等),本人会根据大佬们的反馈积极修改~

上一篇 下一篇

猜你喜欢

热点阅读