jim yeh on 十二月 12th, 2008

最近同人在玩哈黑社會遊戲,常碰到有人趁半夜攻擊我搶錢,逼得我只好加強裝備來反擊對方。不過,增加武器、防具及交通工具等裝備需要資金,要讓手頭上的資金充裕,可以透過增加地盤來增加每小時的固定收益。但問題是如何用最少的資金,來產生最大的投資報酬呢?

這似乎是個有趣的問題,在剛開始玩哈黑社會的時候,同人總是在計算那一種投資方式比較好;是將資金拿來建設高單價的建築物划算,還是大量建設低單價的建築物。

不過這樣算實在很費力,因為可能是為了模擬邊際效用遞減的原理,隨著擁有建築物的數量的增多,建築物的單價也會跟著提高。但這樣一來,我們每次都必須花較多的時間與腦力來苦思最佳投資策略,尤其還會不時遇到別人攻擊而損失身上的錢。

因此,在大部分的時候,同人會因為來不及或懶得變化投資策略時,有時候會乾脆採用「手上的錢可以買什麼就買什麼」的策略,這樣使得報酬增加的速度並不理想。

然而,有沒有工具可以幫我們規劃出來比較好的投資策略呢?告訴我們現有資金,如何投資以獲得最大報酬、或是要達到增加某種固定收益,如何用最低成本達成目標、甚至可以教我們賣掉某些資產,用來建設其它建物以獲取更多固定收益,其實這些都是線性規劃可以回答的問題,而且可以用 Excel 的「規劃求解」來得到答案。

規劃求解要如何解答上面提到的問題呢?同人用 Excel 建立了解答這些問題的模型。在規劃求解問題中,我們有興趣的是當某些「前提假設」成立、在考慮受到某些「限制條件」約束的情形下,該如何採取行動來達成「目標」。所謂的目標可能是如何用預定成本來達到最高的報酬、或是用最低的成本來達到預定報酬。

在哈黑社會的地盤經營問題中,前提假設指得是建設每項建築物所需花費的成本、與建設後將產生的收益。限制條件除了投資建物的數量必須為大於零的整數之外、還應該視投資目標不同而有不同的限制條件;如果目標是希望以現有資金達到最高的報酬,花費成本不可高於現有資金、而對希望以最低的成本來達到預定報酬的目標而言,建設後產生的總收益則不應低於預定的目標值。

於是我們就可以在 Excel 中建立哈黑社會建設地盤的規劃求解模型,將建設各種建物所需花費的土地買價、建物買價、建設後固定收益的收入、目前擁有數量等資料輸入到 Excel 的儲存格中,我們稱呼這些存放固定資料的儲存格為「固定儲存格」。然後透過這些固定儲存格的資料,算出各種建物的建設單位成本、與目前的收益,我們將這些結果存放到橘紅色的「變動儲存格」。

接下來,我們加入用來輸入建設各項建物數量的儲存格,這些「變數儲存格」我們用藍色的儲存格來標示它們。有了這些變數儲存格之後,我們就可以加入花費總成本、增加獲利等儲存格了。假設我們希望知道如何以現有資金達到最高的報酬,那麼我們應該把增加獲利的儲存格標示為棕色的「目標儲存格」、把花費成本的儲存格標示為變動儲存格,同時在此儲存格的右邊加上「<=」的符號與目前現有資金的固定儲存格,如下圖所示。

當各個儲存格都建立好之後,我們就可以在 Excel 的資料選單中,執行規劃求解功能。不過,Excel 一般預設並沒有安裝規劃求解的增益集,因此要執行此項功能需透過 Excel 選項將此項增益集打開。在規劃求解功能對話盒當中,在設定了目標儲存格與變數儲存格之後,我們還需要新增變數儲存格必須為整數、以及花費成本不可大於現有資金的限制式,請參看下圖的設定。

最後,我們還必須如下圖所示,透過選項來設定採用線性規劃、及非負值來進行規劃求解。

當以上參數及選項皆設定完成後,我們就可以按下「求解」按鍵來進行規劃求解。系統在完成求解後,會提示是否找到符合條件的最佳解答。並在使用者確定保存運算結果後,更新最佳解的變數儲存格內容;或是使用者可以選擇還原先前儲存格的資料。而且如果有需要,使用者還可設定讓系統產生運算結果的報表。

不過,由於建設地盤的數量一次只有 1、5、10 三種,所以如果變數儲存格的數字不是這三種數字時,同人就會把變數儲存格的內容改為最靠近的這三種數字,再將現有資金的數字改為花費成本的數字再跑一次規劃求解,然後再從錢莊中領出足夠的錢來進行投資行為。

那麼對於希望以最低的成本來達到預定報酬、或是賣掉某些資產,用來建設其它建物以獲取更多固定收益的目標呢?同人也建立了相對的模型,但方法大同小異,恕不在此贅述其細節,以下的圖像應該收到同理可證之效吧。

hablacklp4.jpg

hablacklp5.jpg

有人說「沒想到在哈黑社會,數學還要好」而我最近的體會則是,想不到當初在唸碩士的時候,從「應用作業研究」課程中所學到的知識,在這個時候也可以派上用場;當時這門課全班只有我一個人在修、整個管理學院碩士班也不超過五人選修。這真是有趣呢,你們說是也不是呀?



     

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="">