一.实验目的
1. 了解线性规划问题及其可行解、基本解、最优解的概念。
2. 通过对实际应用问题的分析,初步掌握建立线性规划模型的基本步骤和方法。 3. 学习、掌握MATLAB软件求解有关线性规划的命令。
二.实验内容
一家广告公司想在电视、广播上做公司的宣传广告,其目的是争取尽可能多的影响顾客。下表是公司进行市场调研的结果: | 电视 | 网络媒体 | 杂志 |
| 白天 | 最佳时段 |
每次做广告费用(千元) | 45 | 86 | 3d智能打印机25 | 12 |
受每次广告影响的顾客数(千人) | 350 | 880 | 430 | 180 |
受每次广告影响的女顾客数(千人) | 260 | 450 | 人才库管理 160 | 100 | 黑导电布
| | | | |
这家公司希望总广告费用不超过750(千元),同时还要求:(1)受广告影响的妇女超过200万;(2)电视广告的费用不超过450(千元);(3)电视广告白天至少播出4次,最佳时段至少播出2次;(4)通过网络媒体、杂志做的广告要重复5到8次。
三.实验方法与步骤
建立线性规划模型有三个基本步骤:
第一步,出待定的决策变量(在此规划中决策变量即为电视白天、电视最佳时段、网络媒体、杂志分别所做广告的次数)
第二步,出问题的所有限制或约束条件,写出有关决策变量的线性方程或不等式
四.实验解答
解:(1)问题的分析
I. 确定决策变量:
安排电视白天、电视最佳时段、网络媒体、杂志做广告的次数,分别可设定为x1,x2,x3,x4;
II. 确定约束条件:
总广告费用不超过750(千元),则45x1+86x2+25x3+12x4<=750
受广告影响的妇女超过200万,则260x1+450x2+160x3+100x4>=2000
电视广告费用不超过450(千元),则45x1+86x2<=450
电视广告白天至少播出4次,最佳时段至少播出2次,则x1>=4,x2>=2
通过网络媒体、杂志做的广告要重复5到8次,则5<=x3<=8,5<=x4<=8
III. 确定目标函数:
由题意可知此广告编排方案,使得受各种广告影响的潜在顾客总数最多,即z=350x1+880x2+430x3+180x4取最大值
(2)模型的建立
此问题完整的线性规划模型如下:
max z=350x1+880x2+430x3+180x4
s.t. 45x1+86x2+25x3+12x4<=750
260x1+450x2+160x3+100x4>=2000
45x1+86x2<=450
x1>=4,x2>=2,5<=x3<=8,5<=x4<=8
(3)MATLAB计算机求解
上述模型可化为MATLAB形式的数学模型,得
min f= -350x1-880x2-430x3-180x4
s.t. 45x1+86x2+25x3+12x4<=750
-260x1-450x2-160x3-100x4<=-2000
45x1+86x2+0x3+0x4<=450
0x1+0x2+x3+0x4<=8
0x1+0x2+0x3+x4<=8
x1>=4,x2>=2,x3>=5,x4>=5
用MATLAB求解的程序代码:
>> c=[-350 -880 -430 -180];
>> a=[45 86 25 12;-260 -450 -160 -100;45 86 0 0;0 0 1 0;0 0 0 1];
>> b=[750;-2000;450;8;8];
>> lb=[4;2;5;5];
>> [x,fval]=linprog(c,a,b,[],[],lb,[])
Optimization terminated.
x =
4.0000
3.1395
8.0000
8.0000
fval =
-9.0428e+003
(4)结果分析
目标函数是求受广告影响的最多顾客人数,而MATLAB命令是对线性规划模型求的最小值,则取-c,得z的最大值,据约束条件,受广告影响的潜在顾客人数最多为9042800人
五.练习与思考
某工厂制造甲、乙两种产品,每种产品消耗煤、电、工作日及获利如下表所示,现有煤360t(吨),电力200kw.h,工作日300个。请制定一个使总利润最大的生产计划。
| 煤(t) | 电(kw.h) | 工作日 | 单位利润(元/t) |
甲 | 9 | 4 | 3 | 7000 |
乙 | 5 | 5 | 10 | 12000 |
| | | | |
大微动开关
解:(1)决策变量 甲乙两种产品所制造的吨数分别为x1,x2机器人 单片机
约束条件 9x1+5x2<=360
4x1+5x2<=200
3x1+10x2<=300
x1>=0,x2>=0
目标函数 max z=7000x1+12000x2
(2)线性规划模型
max z=7000x1+12000x2
s.t. 9x1+5x2<=360
4x1+5x2<=200
3x1+10x2<=300
x1>=0,x2>=0
(3)MATLAB计算机求解
上述模型可化为MATLAB形式的数学模型,得
min f= -7000x1-12000x2
s.t. 9x1+5x2<=360
4x1+5x2<=200
3x1+10x2<=300
x1>=0,x2>=0
用MATLAB求解的程序代码:
>> c=[-7000 -12000];
>> a=[9 5;4 5;3 10];
>> b=[360;200;300];
>> lb=[0;0];
>> [x,fval]=linprog(c,a,b,[],[],lb,[])
Optimization terminated.
x =
黄油嘴
20.0000
24.0000
fval =
-4.2800e+005
(4)结果分析
目标函数是求总利润最大,而MATLAB命令是对线性规划模型求的最小值,则取-c,得z的最大值,据约束条件,总利润最大为428000 元,获此最大利润的生产计划为分别生产甲产品20 吨,乙产品24吨。