在版上潛水已久 偶爾在置底問一些問題
這次小小萌新我來發發文
會打這篇是因為一直對於各種後勤推薦方案不太滿意
加上最近沒什麼活動,吃飽太閒來試試看新的方法
目前現有的方案主要是以資源、契約加權的方式、選擇最高的方案
但一般的使用上,需要的更像是想要在最短時間內,獲得期望目標的資源
方法上,主要使用 Python 程式語言,用現成的 Linear programing 套件實作
(這邊懶得看可以跳過)
參數部分:
team 後勤梯隊數(一般為4)
big_success 大成功機率(一般為60%)
now_man 現有人力
now_amm 現有彈藥
now_rat 現有口糧
now_par 現有零件
target_man 目標人力
target_amm 目標彈藥
target_rat 目標口糧
target_par 目標零件
need_white 需要白紙
need_blue 需要藍紙
need_orange 需要橘紙
need_green 需要綠紙
need_coin 需要採購幣
限制(Constraint)部分:分為資源和時間
資源上,對於4項資源、4種契約、採購幣,需要符合
所有任務加總 SUM(資源獲得量*任務執行次數*大成功係數) >= 目標數量
資源大成功係數 = 1+大成功機率*0.5
契約大成功係數 = 大成功機率*(該契約獲得率/該任務獲得契約率)
+ (1-大成功機率)*該契約獲得率
時間上,單一任務執行時間不可超過一定比例(1/4,4梯隊的話)
對所有任務
任務執行次數*該任務執行時間 <= 1/team*所有任務時間加總
目標函數(Objective)部分,最小化總花費時間,求出各個任務執行次數
Minimize 所有任務加總 SUM(任務執行次數*該任務執行時間)
#####################################################################
使用方法:
1.使用 Repl.it 線上 Python 編譯器,網址:http://0rz.tw/XtJCu (程式碼附在裡面)
2.設定梯隊數、大成功機率、現有資源、目標資源、目標契約數
3.按 run >
4.等他跑完,結果會顯示在右邊
#####################################################################
使用上,推薦可以先設定目標資源,不要設定契約數,
先算出最少需要時間後,在設定需要的契約數量,重新計算,
依照額外付出的時間,自行考慮是否值得,調整至滿意為止。
顯示的結果:
1.列出執行的任務次數、時間、佔時間百分比
2.總花費時間(分鐘、小時、天)
3.預計獲得的各項資源(期望值)
一些issue與資料來源:
1.目前沒考慮後勤之間間隔(這是小事,很好改)
2.沒考慮晚上睡覺的更換方案(還沒想到怎麼改)
3.0-10章契約機率來自NGA上彩虹大佬統計(拆包?),第11章目前為我自己體感亂打的,有
更精確的數據可以再做更改
長草的同時,也要當個肥滋滋好鯉魚,下次聖造發大財。
歡迎提供各種意見或需求 盡我所能的作更改