线性规划问题(excel和python)
文章目錄
- 前言
- 一、線性規(guī)劃的來源及內容
- 1.運籌學
- 2.建模步驟
- 3.線性規(guī)劃
- 二、Excel求解線性規(guī)劃的實際案例-廣告媒體組合優(yōu)化問題
- 1.建立數(shù)據(jù)源
- 2.寫出資源配置三要素
- 3. 在excel中設置目標函數(shù)
- 4.在excel中設置約束條件
- 5.加載excel的規(guī)劃求解模塊
- 6.在excel規(guī)劃求解模塊中設置決策變量和目標函數(shù)
- 7.在excel規(guī)劃中求解模塊中設置約束條件
- 三、python求解線性規(guī)劃的實際案例
- 1.最小化問題
- 2.最大化問題
前言
在數(shù)學中,線性規(guī)劃(Linear Programming,簡稱LP)特指目標函數(shù)和約束條件皆為線性的最優(yōu)化問題。
線性規(guī)劃是最優(yōu)化問題中的一個重要領域。在作業(yè)研究中所面臨的許多實際問題都可以用線性規(guī)劃來處理,特別是某些特殊情況,例如:網絡流、多商品流量等問題,都被認為非常重要
一、線性規(guī)劃的來源及內容
1.運籌學
運籌學是一種科學的決策方法,它通常是在需要分配稀缺資源的條件下,尋求系統(tǒng)的最佳設計。科學的決策方法需要使用一個或多個數(shù)學模型(優(yōu)化模型)來做出最優(yōu)決策。
優(yōu)化模型試圖在滿足給定約束的決策變量的所有值的集合中,找到優(yōu)化(最大化或最小化)目標函數(shù)的決策變量的值。 它的三個主要組成部分是:
目標函數(shù):要優(yōu)化的函數(shù)(最大化或最小化)。
決策變量:影響系統(tǒng)性能的可控變量。
約束:決策變量的一組約束(即線性不等式或等式)。非負性約束限制了決策變量取正值。
優(yōu)化模型的解稱為最優(yōu)可行解。
2.建模步驟
對運籌學問題進行準確建模是最重要的任務,也是最困難的任務。錯誤的模型會導致錯誤的解決方案,從而不能解決原來的問題。團隊成員應按照以下步驟進行建模:
問題定義:定義項目的范圍,并確定三個要素:決策變量、目標和限制(即約束)。
模型構建:將問題定義轉化為數(shù)學關系。
模型求解:使用標準優(yōu)化算法。在獲得解后,需要進行靈敏度分析,以找出由于某些參數(shù)的變化而導致的解的行為。
模型有效性:檢查模型是否按預期工作。
實現(xiàn):將模型和結果轉換為解決方案。
3.線性規(guī)劃
線性規(guī)劃(Linear Programming,也稱為LP)是一種運籌學技術,當當所有的目標和約束都是線性的(在變量中)并且當所有的決策變量都是連續(xù)的時使用。線性規(guī)劃是最簡單的運籌學方法。
二、Excel求解線性規(guī)劃的實際案例-廣告媒體組合優(yōu)化問題
1.建立數(shù)據(jù)源
建立如圖的excel表格
2.寫出資源配置三要素
3. 在excel中設置目標函數(shù)
根據(jù)前面的分析可知,目標函數(shù)為B2:E6與F2:F6區(qū)域兩列數(shù)的乘積之和,在C10單元格輸入"=SUMPRODUCT(E2:E6,F2:F6)"
如圖:
4.在excel中設置約束條件
將第二步中所寫的約束條件表達式設置在excel中
5.加載excel的規(guī)劃求解模塊
選擇"文件"——>“選項”——>“加載項”——>“轉到”,勾選"規(guī)劃求解加載項",點擊“確定”,在“數(shù)據(jù)”菜單中會出現(xiàn)規(guī)劃求解的模塊
6.在excel規(guī)劃求解模塊中設置決策變量和目標函數(shù)
選擇“數(shù)據(jù)”——>“規(guī)劃求解”,進行如下設置
7.在excel規(guī)劃中求解模塊中設置約束條件
在下圖設置6個約束條件
約束條件1:電視廣告費<=30000元
約束條件2:電視廣告次數(shù)>=20次
約束條件3:廣告費用<=40000元
約束條件4:被告知人數(shù)>=100000人
約束條件5:各媒體使用次數(shù)不超過次數(shù)限量的設置
約束條件6:各媒體使用次數(shù)為整正數(shù)
完成約束條件設置之后的六個約束條件的設置結果
三、python求解線性規(guī)劃的實際案例
1.最小化問題
Python的SciPy庫包含用于解決線性編程問題的linprog函數(shù)。在使用linprog時,編寫代碼要考慮的兩個注意事項:
這個問題必須表述為一個最小化問題。
不等式必須表示為≤。
實驗代碼:
實驗結果:
2.最大化問題
由于Python的SciPy庫中的linprog函數(shù)是用來解決最小化問題的,因此有必要對原始目標函數(shù)進行轉換。通過將目標函數(shù)的系數(shù)乘以-1(即通過改變其符號),可以將最小化問題轉化為一個最大化問題。
讓我們考慮下面需要解決的最大化問題:
實驗代碼:
實驗結果:
總結
以上是生活随笔為你收集整理的线性规划问题(excel和python)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: word文档如何设置多级标题
- 下一篇: 线性规划问题求解(Excel、pytho