日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

用Excel和Python编程完成线性规划问题的求解

發(fā)布時(shí)間:2023/12/14 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用Excel和Python编程完成线性规划问题的求解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 一、實(shí)際問(wèn)題分析——媒體組合案例
    • 二、Excel完成線(xiàn)性規(guī)劃問(wèn)題的求解
    • 三、Python完成線(xiàn)性規(guī)劃的求解
    • 四、參考

一、實(shí)際問(wèn)題分析——媒體組合案例

現(xiàn)有五個(gè)廣告投放渠道:日間電視、夜間電視、網(wǎng)絡(luò)媒體、平面媒體和戶(hù)外廣告,每個(gè)渠道的效果、費(fèi)用及限制如下表

設(shè)日間電視、夜間電視、網(wǎng)絡(luò)媒體、平面媒體和戶(hù)外廣告的使用次數(shù)依次設(shè)為x1,x2,x3,x4,x5,咨詢(xún)電話(huà)量設(shè)為L(zhǎng),則五種媒體資源配置的三要素為:

  • 決策變量:x1,x2,x3,x4,x5;
  • 目標(biāo)函數(shù):咨詢(xún)電話(huà)量L=600x1+800x2+500x3+400x4+300x5最大化;
  • 所滿(mǎn)足的約束條件:
    • 電視廣告費(fèi)用不超過(guò)3萬(wàn)元,1000x1+2000x2<=30000;
    • 電視廣告次數(shù)至少進(jìn)行20次,x1+x2>=20;
    • 廣告總費(fèi)用不超過(guò)4萬(wàn)元,1000x1+2000x2+400x3+1000x4+100x5<=40000;
    • 被告知人數(shù)至少10萬(wàn)人,2000x1+4000x2+3000x3+5000x4+600x5>=100000;
    • 各媒體使用次數(shù)不超過(guò)次數(shù)限量,x1<=14,x2<=8,x3<=40,x4<=5,x5<=50;
    • 各媒體使用次數(shù)均為正整數(shù)。

    二、Excel完成線(xiàn)性規(guī)劃問(wèn)題的求解

  • 創(chuàng)建數(shù)據(jù)源
    錄入上述數(shù)據(jù),并增加“各媒體使用次數(shù)”列
  • 在Excel中設(shè)置目標(biāo)函數(shù)
    由前面的分析可知,目標(biāo)函數(shù)為E2:E6與F2:F6區(qū)域兩列數(shù)組對(duì)應(yīng)元素的乘積之和,在C10單元格中輸入“=SUMPRODUCT(E2:E6,F2:F6)”
  • 設(shè)置約束條件
    將之前的約束條件表達(dá)式設(shè)置在Excel中(寫(xiě)公式時(shí)前面不要忘了加“=”號(hào))
  • 加載Excel的規(guī)劃求解模塊
    選擇“文件”->“選項(xiàng)”->“加載項(xiàng)”->“轉(zhuǎn)到”,勾選“規(guī)劃求解加載項(xiàng)”,單擊確定。

    這樣數(shù)據(jù)菜單下就出現(xiàn)了“規(guī)劃求解”模塊
  • 在Excel規(guī)劃求解模塊中設(shè)置決策變量和目標(biāo)函數(shù)
    • 選擇“數(shù)據(jù)”->“規(guī)劃求解”,設(shè)置如下
    • 設(shè)置約束條件
      選擇“遵守約束”后的“添加”,分別設(shè)置6個(gè)約束條件
      約束條件1設(shè)置:

    約束條件2設(shè)置:

    約束條件3設(shè)置:

    約束條件4設(shè)置:

    約束條件5設(shè)置:

    約束條件6設(shè)置:



    設(shè)置完成

    6. 最終求解結(jié)果

    三、Python完成線(xiàn)性規(guī)劃的求解

    • 打開(kāi)Windows終端,輸入Jupyter Notebook,打開(kāi)Jupyter工具
    • 在Jupyter的web網(wǎng)頁(yè)中創(chuàng)建Python文本
    • 現(xiàn)在就可以填寫(xiě)代碼了
      完整代碼如下
    import numpy as np from scipy import optimize as op x1=(0,14) x2=(0,8) x3=(0,40) x4=(0,5) x5=(0,50) 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]]) B_ub=np.array([30000,-20,40000,-100000]) res=op.linprog(-c,A_ub,B_ub,bounds=(x1,x2,x3,x4,x5)) res

    結(jié)果如下

    四、參考

    基于jupyter notebook的python編程-----通過(guò)單純形法、拉格朗日乘子法和scipy庫(kù)對(duì)比分析求解線(xiàn)性規(guī)劃最大值和最優(yōu)解問(wèn)題

    總結(jié)

    以上是生活随笔為你收集整理的用Excel和Python编程完成线性规划问题的求解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。