作者:五更丶琉璃
來源:星露谷物語吧
只討論農作物種植,釣魚挖礦等均不在考慮範圍之內(所以才說僅圖一樂)。
係數矩陣A P D等都可根據農作物的屬性值求出,假設每次澆水都是固定消耗2點體力,而最大體力值我先設置為初始體力270的90%,即E=243。
容易看到這是一個整數線性規劃(ILP)問題。
熟悉演算法的應該知道,0-1 ILP(變數只取0或1的ILP)是NP難問題,所以本問題也是一個NP難問題。因此本帖僅是找一個(可能有多個方案)盡可能好的解,不能給出全部最優解。
如果我們把X是整數的條件去掉,則變為P類的線性規劃(LP),這是很容易求得最優解的。
雖然對應的LP問題的解如果不是整數取值的話對我們來說毫無意義,但這可以為我們的最終收入估計一個上界(因為ILP的定義域含於對應的LP的定義域)。
我隨便用MATLAB寫了下代碼,搜索解的最大時間設定為60s
假設在春天,考慮6種農作物,分別是”花椰菜”, “青豆”, “甘藍菜”, “防風草”, “土豆”, “草莓”。
其中土豆暫時假定不能有幾率收穫多個土豆,草莓設定與遊戲一樣,只能春13購買(通過設置其他日期價格為999來實現)。
每日固定收入f設置為遊戲起始的500G,除此以外沒有任何額外的收入。模型均假定購買後當天播種。
求得的一個解我手搓了一個表格來展示,農作物下面的數字代表購入的種子數量,下面綠色背景的數字代表當天結束時的餘額。
MATLAB犯病了,稍後更新
【實驗2】春季每天固定500金收入
方便起見標記下每次實驗序號,之前的只有初始500金的記作實驗1。
在實驗1中每日基礎收入只有第一天有500的起始資金,本次我們以每天釣魚賺錢500金為背景,假設每天都有基礎的500金收入(第一天起始500G,第二天及以後的釣魚500G)。求得一個最終金錢為35905金的解,與最優解的誤差不超過100金。
值得注意的是,種草莓後錢就基本沒在用了,因為澆水的農作物太多,體力值限制了後續種子的購買。
【實驗3】春季釣魚1000金收入
在實驗二基礎上,首日起始500金不變,第三天起每天釣魚1000金(考慮到第二天釣魚太多的話不能馬上變現)。求得最終金幣49125,與最優解誤差不超過100金。
【實驗4】春季無額外基礎收入(修正版)
我注意到之前都沒有考慮到初始贈送的15個防風草,所以現在假定初始防風草必須第一天種植並澆水收穫,要實現這點只需要修改前4天的體力值上限和讓第五天基礎收入增加15個防風草的價格即可。
另外,之後所有實驗中土豆價格均考慮可以爆出多個土豆,並以期望價格(1.2倍售價=96G)作為其售價。
對實驗1修正後,求得最優15000金,誤差不超過50金。
【實驗5】春季每日釣魚1000金(修正版)
這是對實驗3的修正版,求得最優50789金,誤差不超過100金.