线性规划问题求解
用Excel和python編程完成線性規劃問題的求解
- 一、問題描述
- 二、使用EXCEL完成線性規劃問題求解
- (一)建立數據源
- (二)設置目標函數
- (三)設置約束條件
- (四)加載excel規劃求解模塊
- (五)在 Excel 規劃求解模塊中設置決策變量和目標函數
- (六)在求解模塊中設置約束條件
- (七)求解
- 三、python編程完成線性規劃問題的求解
一、問題描述
二、使用EXCEL完成線性規劃問題求解
(一)建立數據源
(二)設置目標函數
目標函數為:E2:E6與F2:F6區域對應乘積之和
在C10單元表格內輸入目標函數的求解方法=SUMPRODUCT(E2:E6,F2:F6)
其值為0,因為F列的值為0
(三)設置約束條件
設日間電視、夜間電視、網絡媒體、平面媒體、戶外廣告的使用次數依次為
x1,x2,x3,x4,x5
約束條件:
1、電視廣告費用不超過 3 萬元:1000x1+2000x2<=30000;
2、電視廣告次數至少進行 20 次:x1+x2>20;
3、廣告總費用不超過 4 萬元:
1000x1+2000x2+400x3+1000x4+200x5<=40000
4、被告知人數至少 10 萬人:
2000x1+4000x2+3000x3+5000x4+600x5>=100000
5、各媒體使用次數不超過次數限量:x1?≤14; x 2 ≤ 8 x; x 3 ≤ 40;
x 4 ≤ 5; x 5 ≤ 50;
在excel表格的單元格內輸入對應公式
C15:=SUMPRODUCT(C2:C3,F2:F3)
C16:=F2+F3
C17:=SUMPRODUCT(C2:C6,F2:F6)
C18:=SUMPRODUCT(B2:B6,F2:F6)
(四)加載excel規劃求解模塊
選擇【文件】→【選項】→【加載項】→【轉到】,勾選【規劃求解加載項(Solver add-in)】,再點擊【確定】按鈕,就出現了規劃求解模塊。
(五)在 Excel 規劃求解模塊中設置決策變量和目標函數
打開數據->規劃求解,在彈出的規劃求解參數中設置為以下所示
(六)在求解模塊中設置約束條件
(七)求解
設置完約束條件后,進行單純線性規劃求解
在彈出來的窗口點擊確定即可
求解結果:
三、python編程完成線性規劃問題的求解
使用jupyter編寫代碼:
# 導入包 from scipy import optimize import numpy as np #創建矩陣,c為目標函數的矩陣,A_ub為約束條件的左邊構成的矩陣,B_ub為約束條件的右邊 c=np.array([600,800,500,400,300]) A_ub=np.array([[1000,2000,0,0,0],[-1,-1,0,0,0],[1000,2000,400,1000,100],[-2000,-4000,-3000,-5000,-600],[1,0,0,0,0],[0,1,0,0,0],[0,0,1,0,0],[0,0,0,1,0],[0,0,0,0,1]]) B_ub=np.array([30000,-20,40000,-100000,14,8,40,5,50]) # 求解 res=optimize.linprog(-c,A_ub,B_ub) print(res)求解結果:
總結
- 上一篇: 计算机画图星星怎么画,教你尺规作图画五角
- 下一篇: 什么是人机交互技术?