Solver 初探:找硬幣問題
規劃
Excel 中的 Solver(求解器)也叫「規劃求解器」,是一個功能非常強大的插件(Add-Ins),可用於工程上、經濟學及其它一些學科中各種問題的優化求解,使用起來非常方便。
今天我們先來看一個最簡單的動態規劃實例——最少硬幣問題,並通過這一問題來初探Excel 中的 Solver。
最少硬幣問題
最少硬幣問題的一個例子描述如下:假設你有面值為 1 美分、5美分、10美分、25美分的硬幣(1 美元 = 100 美分),然後要用儘可能少的硬幣湊n美元。
假設n為 0.83 美元,相信你想到的肯定是 3 個 25 美分、1 個 5 美分、3 個 1 美分,總共 7 枚硬幣。
那麼,如果方便地用 Excel 中的 Solver 工具,來得出以上結果呢?
啟用 Solver 插件
Solver 是 Excel 自帶的插件,不需要單獨下載安裝。但 Excel 默認是不啟用 Solver 的,Office 2016 for Mac 版下的啟用方法如下:
在「工具」菜單中點擊「插件」
在 Solver Add-In 前面的方框中打勾
然後點 OK,Excel 就會載入 Solver
GIF/1K
一旦啟用成功,以後 Sovler 就會在「工具」菜單中顯示,也會出現在「數據」選項卡中。
Windows 系統中的其中方法如下圖。
編製 Excel 表格
按照下面的方式編製一個 Excel 表格。
相應的硬幣金額列在 B1、C1、D1、E1 單元格中,B2、C2、D2、E2 單元格中將給出的數值就分別是 25 美分、10 美分、5 美分、1 美分的硬幣個數:
給出所需的總金額(G2 單元格):
「計算出的總金額」,按照下表和下面的公式:
H2 單元格,公式為 =SUMPRODUCT(B1:E1,B2:E2),也就是B1*B2+C1*C2+D1*D2+E1*E2,用 SUMPRODUCT 公式可以簡化上面的表達式
「硬幣總數」,按照下表和下面的公式:
I2 單元格,公式為=SUM(B2:E2)
運用 Solver 求解
從數學的角度來看,所需求解的方程組(所需滿足的條件)如下:
「所需總金額」 = 「計算總金額」(G2 = H2);
B2、C2、D2、E2 可以填入的數值是大於或等於零的整數;
在滿足以上兩個條件的情況中,硬幣的總數要最少,即 I2 為最小的可能值
打開 Solver 工具,將以上條件輸入到其中:
設立目標,即 I2 單元格的數值最小
同時確定數值可變的單元格,即 B2 至 E2 單元格
GIF/1K
增加三個條件
a) B2 至 E2 單元格的數值為整數
b) B2 至 E2 單元格的數值 >=0
c) G2 = H2
GIF/2K
完成各種輸入後就可以 Solve 了,不過因為我們設定了「整數」條件,因此在點擊 Solve 按鈕之前別忘了取消「忽略整數限制」這一選項。看一下具體操作和結果吧:
GIF/2K
感謝您的
關注和閱讀
碎片化學習,每天進步一點點
短小的技巧性文章,幫助您更好地工作和學習
Excel、PPT、Word 講解
各類電腦/智能手機小技巧
英語和各種小知識
TAG:JustinXu博士 |