作為一個(gè)養(yǎng)雞愛好者,心血來潮想提高一下小雞產(chǎn)蛋的速度瞒大,計(jì)算一下給小雞喂食的最佳時(shí)間點(diǎn)螃征。來對(duì)這個(gè)問題進(jìn)行一些擴(kuò)展。
根據(jù)平時(shí)的觀察添加一些規(guī)則/約束(不太清楚螞蟻莊園的具體規(guī)則):
- 一個(gè)小雞最多只能被兩個(gè)小雞搶食
- 一次喂食180g飼料透敌,沒有蹭食加速的情況下小雞吃完需要2h
- 小雞沒有被喂食(空閑)時(shí)間t1之后盯滚,小雞尋找好友列表的有空位的小雞蹭飯
- 胖揍在自己莊園蹭食的小雞,有概率掉落蹭食一半的飼料
- 蹭食的小雞不被召回/被胖揍會(huì)一直呆在別人的莊園里
- 被喂食的小雞在吃完飼料之前不能去蹭食
求解目標(biāo):
- 計(jì)算出給小雞喂食的最佳時(shí)間點(diǎn)
- 找到最佳蹭食的好友莊園
問題分析:
首先初步分析酗电,易得:
- 小雞不在的好友莊園越多越好
- 小雞正被喂食的好友莊園越多越好
- 被喂食的小雞吃完的時(shí)間越長越好(沒有加速魄藕,沒有蹭食的時(shí)間越長)
除此之外,好友莊園是一個(gè)隨時(shí)間變化的時(shí)變模型撵术,如下
好友莊園模型(當(dāng)前時(shí)間點(diǎn)t):
- 小雞個(gè)數(shù):n(t)
- 喂食狀態(tài):s(t)=True/False
- 剩余飼料:w(t)
根據(jù)如上模型考慮好友對(duì)莊園的行為背率,只需對(duì)動(dòng)作時(shí)刻及動(dòng)作類型的描述進(jìn)行記錄,如:
好友在時(shí)刻進(jìn)行喂食動(dòng)作嫩与,飼料消耗速度為v寝姿,此時(shí)喂食狀態(tài)s(t)=True,剩余飼料
(
即莊園頁面顯示的剩余值划滋,t為查看狀態(tài)的當(dāng)前時(shí)間)
求蹭食的最佳好友莊園
也就是求當(dāng)前時(shí)刻可以蹭食到最多飼料的莊園(不考慮被胖揍的情況)饵筑,遍歷找最大的w(t)。計(jì)算出給小雞喂食的最佳時(shí)間點(diǎn)
感覺問題可以轉(zhuǎn)化成以下幾種情況:
問題A
假設(shè):我們已知所有時(shí)間點(diǎn)的狀態(tài)
轉(zhuǎn)化:在所有時(shí)間點(diǎn)里計(jì)算找出能使目標(biāo)函數(shù)最大的時(shí)間點(diǎn)問題B
假設(shè):我們已知當(dāng)前時(shí)間點(diǎn)以及之前所有時(shí)間點(diǎn)的狀態(tài)
轉(zhuǎn)化:對(duì)未來時(shí)間狀態(tài)進(jìn)行預(yù)測(cè)处坪,得到所有時(shí)間狀態(tài)集合根资,在在所有時(shí)間點(diǎn)里計(jì)算找出能使函數(shù)最大的時(shí)間點(diǎn)問題C
假設(shè):我們不預(yù)測(cè)未來時(shí)間點(diǎn)的狀態(tài),存在經(jīng)驗(yàn)(如歷史觀察數(shù)據(jù)總結(jié)的目標(biāo)函數(shù)最大值)
轉(zhuǎn)化:當(dāng)前決策時(shí)間點(diǎn)計(jì)算的結(jié)果與經(jīng)驗(yàn)(閾值)進(jìn)行比較來判斷當(dāng)前時(shí)間點(diǎn)是否最佳同窘,持續(xù)計(jì)算直至找到比較合適的最佳時(shí)間點(diǎn)為止問題D
假設(shè):我們對(duì)歷史數(shù)據(jù)進(jìn)行訓(xùn)練玄帕,訓(xùn)練出一個(gè)相對(duì)靠譜的時(shí)序預(yù)測(cè)器
轉(zhuǎn)化:預(yù)測(cè)出未來時(shí)間點(diǎn)的所有情況,找到最佳
(其他的情況目前想不到了)
討論
- 針對(duì)上文問題的具體方案
- 更佳的問題描述模擬建模方式
- 可以轉(zhuǎn)化成的其他問題
- 本人沒有注意到的一些其他細(xì)節(jié)問題
其實(shí)我認(rèn)為這個(gè)問題代表了一類實(shí)時(shí)決策的問題塞椎,歡迎各位有想法的來補(bǔ)充來建議(文中的錯(cuò)誤及不足桨仿,解決方法,一些相關(guān)領(lǐng)域的論文博客什么的等等)案狠,本人會(huì)根據(jù)大佬們的反饋積極修改~