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

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

概述文章目录一、实际问题分析——媒体组合案例二、Excel完成线性规划问题的求解三、Python完成线性规划的求解一、实际问题分析——媒体组合案例现有五个广告投放渠道:日间电视、夜间电视、网络媒体、平面媒体和户外广告,每个渠道的效果、费用及限制如下表设日间电视、

文章目录一、实际问题分析——媒体组合案例二、Excel完成线性规划问题的求解三、Python完成线性规划的求解

一、实际问题分析——媒体组合案例

现有五个广告投放渠道:日间电视、夜间电视、网络媒体、平面媒体和户外广告,每个渠道的效果、费用及限制如下表


设日间电视、夜间电视、网络媒体、平面媒体和户外广告的使用次数依次设为x1,x2,x3,x4,x5,咨询电话量设为L,则五种媒体资源配置的三要素为:

决策变量:x1,x2,x3,x4,x5;目标函数:咨询电话量L=600x1+800x2+500x3+400x4+300x5最大化;所满足的约束条件:电视广告费用不超过3万元,1000x1+2000x2<=30000;电视广告次数至少进行20次,x1+x2>=20;广告总费用不超过4万元,1000x1+2000x2+400x3+1000x4+100x5<=40000;被告知人数至少10万人,2000x1+4000x2+3000x3+5000x4+600x5>=100000;各媒体使用次数不超过次数限量,x1<=14,x2<=8,x3<=40,x4<=5,x5<=50;各媒体使用次数均为正整数。二、Excel完成线性规划问题的求解创建数据源
录入上述数据,并增加“各媒体使用次数”列

在Excel中设置目标函数
由前面的分析可知,目标函数为E2:E6与F2:F6区域两列数组对应元素的乘积之和,在C10单元格中输入“=SUMPRODUCT(E2:E6,F2:F6)”

设置约束条件
将之前的约束条件表达式设置在Excel中(写公式时前面不要忘了加“=”号)

加载Excel的规划求解模块
选择“文件”->“选项”->“加载项”->“转到”,勾选“规划求解加载项”,单击确定。


这样数据菜单下就出现了“规划求解”模块

在Excel规划求解模块中设置决策变量和目标函数选择“数据”->“规划求解”,设置如下

设置约束条件
选择“遵守约束”后的“添加”,分别设置6个约束条件
约束条件1设置:

约束条件2设置:

约束条件3设置:

约束条件4设置:

约束条件5设置:

约束条件6设置:



设置完成


6. 最终求解结果

三、Python完成线性规划的求解打开windows终端,输入Jupyter Notebook,打开Jupyter工具

在Jupyter的web网页中创建Python文本

现在就可以填写代码了
完整代码如下
import numpy as npfrom scipy import optimize as opx1=(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

结果如下

总结

以上是内存溢出为你收集整理的用Excel和Python编程完成线性规划问题的求解全部内容,希望文章能够帮你解决用Excel和Python编程完成线性规划问题的求解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1188126.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存