隨筆敦文
type: channel
description: 隨筆寫下自己的生活心得
date: 2023-07-13T03:35:24Z
update period: hourly
update frequency: 1
update base: 2000-01-01T12:00+00:00
generator agent: https://wordpress.org/
items: 線性規劃於網路遊戲的運用：以蔚藍檔案情人節活動為例

線性規劃於網路遊戲的運用：以蔚藍檔案情人節活動為例
type: item
creator: gimi65536
date: 2023-02-12T16:15:08Z
subject: 網路遊戲
subject: 線性規劃
subject: 蔚藍檔案
subject: 遊戲
subject: 電腦科學
subject: Linear Programming
subject: Mixed Integer Programming
subject: ネムガキ
subject: 合歓垣フブキ
description: 用有限的資源得到最大的收益，或是用最少的資源得到足夠的收益，是作業研究（Operations Research […]
encoded: 用有限的資源得到最大的收益，或是用最少的資源得到足夠的收益，是作業研究（Operations Research）領域當中最基礎的兩個議題，也是高中或大學時期所學到的線性規劃（Linear Programming）一定會接觸到的命題。就算是在日常生活也很有可能遇到這類問題，一般而言我們遇到的問題也不會太複雜，都是線性規劃就可以解決的問題。這篇文章將以筆者自身在遊玩蔚藍檔案日版時，對於復刻情人節活動的資源規劃過程為例，示範線性規劃的問題整理方法，以及如何使用電腦程式的輔助算出解答。 前言 一切都是為了與所有人約會，以及 合歓垣 ねむがき フブキ！ <img decoding="async" width="1024" height="576" src="https://blog.gimi65536.xyz/wp-content/uploads/2023/02/Screenshot_20230113-163021-1024x576.png" alt="" class="wp-image-110" srcset="https://blog.gimi65536.xyz/wp-content/uploads/2023/02/Screenshot_20230113-163021-1024x576.png 1024w, https://blog.gimi65536.xyz/wp-content/uploads/2023/02/Screenshot_20230113-163021-300x169.png 300w, https://blog.gimi65536.xyz/wp-content/uploads/2023/02/Screenshot_20230113-163021-768x432.png 768w, https://blog.gimi65536.xyz/wp-content/uploads/2023/02/Screenshot_20230113-163021.png 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /> 因為筆者是2022年8月才開始遊玩蔚藍檔案，沒有參與過情人節活動，正好遇到今年1月的復刻，也不知道下次再復刻是何時，所以想要一口氣將目前手上的角色都約會過一次。加上筆者實際把フブキ拿到手之後，發覺我好像滿喜歡她這種感覺的，想說反正都要花大筆成本拿所有角色的巧克力了，就順便定下目標：將フブキ升到5星。除此之外，我還要把商店的物品全部搬空。 可想而知要達到這些目標，我需要每天花非常多AP。加上關卡獎勵的設計，我沒有辦法簡單地得到「全部刷這關就好！」的結論。這次活動還有個讓事情變得更複雜的系統：每日花費一定AP之後會觸發 狐坂 こさか ワカモ的突襲事件，而這個突襲事件的獎勵特別豐厚，規劃問題時不能將這點排除在外。面對這種複雜的命題，正是線性規劃的用武之地。 不過要注意的是，上頭提到的獎勵都是確定性的，關卡掉落的通貨是確定數量的，突襲事件的掉落也是固定的。線性規劃沒辦法幫你規劃隨機性掉落的物品，比如オーパーツ，如果有這方面需求的話那先刷到滿足的數量再來做規劃會比較好。 問題架構 問題敘述 活動日期 在問題思考的當下，我總共還有12個完整的遊戲天+最後1天維修前，總共13天的時間。 最後1天維修前的時間雖然比較短，但以一天回復6次AP共720AP+戰術對抗戰商店4次90AP共360AP，加總共1080AP來看，已經足夠觸發當日所有突襲事件，所以大可以把最後1天當成完整的一天來看。 同時我們也可以規定一天最多能花費的AP數量，避免算出什麼第一天花9000AP之後每天不用花的離譜結果。 關卡範圍 活動關卡有12關，其中9~12關是難度最高但效率也最高的，所以只考慮這四關的AP消耗與掉落通貨。 這些關卡會掉落以下四種通貨：PT（活動分數）、問題児の反省文、押収された違法駄菓子、環境美化活動用ゴミ袋。 通貨定義 PT作為通貨的功能是換取約會邀請，550PT換一張，所以需求量即為550乘以學生數量。除此之外累積PT點也能拿一些獎勵，累積10000點即可拿完。由於我有許多角色等著約，累積的PT點必然是會超過10000點的，就算計算問題的當下還沒拿到這些獎勵，還是得提前把這些獎勵納入考量（參考）。 其它三種通貨可以在商店裡頭換取獎勵。我們可以簡單地算出我們需要多少通貨才能把商店中有限次交易的物品搬空。同時也存在通貨間的無限次交換，包含以5個反省文換違法糖果、以5個違法糖果換垃圾袋，以及以200個垃圾袋換フブキ的神名文字（將神名文字也視為通貨的原因請參照下一段落）。 這邊要注意的是，計算帳面需求量時不要將通貨之間的交換納入考量。比如我今天規定要「100個反省文與100個違法糖果」，我不能擅自把規定…