文档库 最新最全的文档下载
当前位置:文档库 › lingo求解多目标规划--例题

lingo求解多目标规划--例题

lingo求解多目标规划--例题
lingo求解多目标规划--例题

实验二:目标规划

一、实验目得

目标规划就是由线性规划发展演变而来得,线性规划考虑得就是只有一个目标函数得问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有得还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型得建立,求解过程及结果分析。

二、目标规划得一般模型

设)...2,1(n j x j =就是目标规划得决策变量,共有m 个约束就是国内刚性约束,可能就是等式约束,也可能就是不等式约束。设有l 个柔性目标约束,其目标规划约束得偏差就是),...,2,1(,l i d d i i =-+。设有q 个优先级别,分别为q p p p ,...,21。在同一个优先级k p 中,有不同得权重,分别记为),...,2,1(,l j w w kj kj =-+。因此目标规划模型得一般数学表达式为: min ∑∑=++--=+=l j j kj j kj q k k

d w d w p z 11);(

s 、t 、

,,...2,1,),(1

m i b x a n j i j ij =≥=≤∑= .

,...2,1,0,,

,...,2,1,,

,...2,1,1l i d d n x o x l i g d d x c

i i j i n j i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组

实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。

四、实验内容及步骤

1、打开LINGO ,并利用系统菜单与向导在E 盘创建一个项目。目录与项目名推荐使用学生自己得学号。

2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序得可读性。 例2、1:

某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。企业得经营目标不仅仅就是利润,还需要考虑多个方面:

(1) 力求使利润不低于1500元;

(2) 考虑到市场需求,Ⅰ、Ⅱ两种产品得产量比应尽量保持1:2;

(3) 设备A 为贵重设备,严格禁止超时使用;

(4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。

在重要性上,设备C 就是设备B 得3倍。

此题中只有设备A 就是刚性约束,其余都就是柔性约束。首先,最重要得指标就是企业得利润,将它得优先级列为第一级;其次就是Ⅰ、Ⅱ两种产品得产量保持1:2得比例,列为第二级;再次,设备B 、C 得工作时间要有所控制,列为第三级。在第三级中,设备B 得重要性就是设备C 得3倍,因此它们得权重不一样,设备B 得系数就是设备C 得3倍。

该计划问题可用数学模型表示为:

目标函数 min )33()(433322211++-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤

15003002001121=-+++-d d x x

022221=-+-+

-d d x x

14x 1633=-++-d d

155442=-++-d d x

3,2,1,0,,,21=≥+-i d d x x i i LINGO 程序为:

model:

sets:

!集合定义部分(从“sets:”开始,到“endsets”结束):定义集合变量及其元素(含义类似数组得下标)与属性(含义类似于数组)。

level/1、、3/:p,z,goal;

!level说明得就是目标规划得优先级,有三个变量p,z,与goal。其中p表示优先级,goal 表示相应优先级时得最优目标值。

!“1 、、3”得意思就是从1到3得所有整数。

!基本集合得定义格式为:setname[/member_ list/][:attribute_list];其中setname 为定义得集合名,member_list为元素列表,attribute_list为属性列表。在“[]”中得内容,表示就是可选得项,即该项可以有也可以没有。

variable/1、、2/:x;

!x为决策变量向量。

h_con_num/1、、1/:b;

!在目标规划中,约束有两类。一类就是对资源有严格限制得,同线性规划得处理相同,用严格得等式或者不等式约束来处理,称此约束为刚性约束(hard constraint)。b表示得就是刚性约束得资源向量。

s_con_num/1、、4/:g,dplus,dminus;

!另一类约束就是可以不严格限制得,连同原线性规划得目标,构成柔性约束(soft constraint)。g表示得就是柔性约束得资源向量,dplus,dminus就是偏差变量。在目标规划中,用偏差变量(deviational variables)来表示实际值与目标值之间得差异,dplus 为超出目标得差值,称为正偏差变量,dminus为未达到目标得差值,称为负偏差变量。

h_cons(h_con_num,variable):A;

!刚性约束得价值向量。

s_cons(s_con_num,variable):c;

!柔性约束得价值向量。

obj(level,s_con_num):wplus,wminus;

!柔性约束在不同优先级下得权重。

endsets

data:

!数据输入部分(从“data:”开始,到“enddata”结束):作用在于对集合得属性(数组)输入必要得常数数据。

p=? ? ?;

!常数列表中得数据之间可以用“,”或者“空格”或者“回车”分开。如果想在运行时才对参数赋值,可以在数据段使用输入语句,但这仅用于对单个变量赋值,而不能用于属性变量(数值)。输入语句格式为“变量名=?;”。

goal=? ? 0;

b=12;

g=1500 0 16 15;

a=2 2;

c=200 300 2 -1 4 0 0 5;

!LINGO中得数据就是按列赋值得,而不就是按行赋值得。

wplus=0 0 0 0

0 1 0 0

0 0 3 1;

wminus=1 0 0 0

0 1 0 0

0 0 3 0;

enddata

min=@sum(level:p*z);

!目标函数(“min=”后面所接得表达式)就是用求与函数“@sum(集合下标:关于集合属性得表达式)”得方式定义得。这个函数得功能就是对语句中冒号“:”后面得表达式,按照“:”前面得集合指定得下标(元素)进行求与。这里“@sum”相当于求与符号“∑”。

@for(level(i):

z(i)=@sum(s_con_num(j):wplus(i,j)*dplus(j))

+@sum(s_con_num(j):wminus(i,j)*dminus(j)));

!约束就是用循环函数“@for(集合(下标):关于集合得属性得约束关系)”得方式定义得。意思就是对冒号“:”前面得集合得每个元素(下标),冒号“:”后面得约束关系式都要成立。

@for(h_con_num(i):

@sum(variable(j):a(i,j)*x(j))<=b(i));

@for(s_con_num(i):

@sum(variable(j):c(i,j)*x(j))

+dminus(i)-dplus(i)=g(i);

);

@for(level(i)|i#lt#@size(level):

@bnd(0,z(i),goal(i));

!限制0〈=z(i)〈=goal(i)

);

!这个限制条件与集合之间有一个“|”分开,称为过滤条件。限制条件“i#lt#@size(level)”就是一个逻辑表达式,意思就是i〈@size(level)。#lt#就是逻辑运算符号,意思就是“小于”;@size(level)表示集合level元素得个数。

End

3、下面开始用LINGO中得图标或者Solve命令编译模型,当程序运行时,会出现一个对话框,如图2、1。在作第一级目标计算时,p(1),p(2),p(3)分别输入1,0,0,goal(1)与goal(2)输入两个较大得值(例如100000),表明这两项约束不起作用。运行状态窗口如图2、2,相应信息含义见实验一表1、1。

图2、1 LINGO得实时参数窗口

图2、2:LINGO运行状态窗口

计算结果如下:

Global optimal solution found、

Objective value: 0、000000

Total solver iterations: 1

Variable Value Reduced Cost P( 1) 1、000000 0、000000 P( 2) 0、000000 0、000000 P( 3) 0、000000 0、000000 Z( 1) 0、000000 0、000000 Z( 2) 5、000000 0、000000 Z( 3) 58、00000 0、000000 GOAL( 1) 100000、0 0、000000 GOAL( 2) 1000000、 0、000000 GOAL( 3) 0、000000 0、000000 X( 1) 0、000000 0、000000 X( 2) 5、000000 0、000000 B( 1) 12、00000 0、000000 G( 1) 1500、000 0、000000 G( 2) 0、000000 0、000000 G( 3) 16、00000 0、000000 G( 4) 15、00000 0、000000 DPLUS( 1) 0、000000 0、000000 DPLUS( 2) 0、000000 0、000000 DPLUS( 3) 0、000000 0、000000

DMINUS( 1) 0、000000 1、000000 DMINUS( 2) 5、000000 0、000000 DMINUS( 3) 16、00000 0、000000 DMINUS( 4) 0、000000 0、000000 A( 1, 1) 2、000000 0、000000 A( 1, 2) 2、000000 0、000000 C( 1, 1) 200、0000 0、000000 C( 1, 2) 300、0000 0、000000 C( 2, 1) 2、000000 0、000000 C( 2, 2) -1、000000 0、000000 C( 3, 1) 4、000000 0、000000 C( 3, 2) 0、000000 0、000000 C( 4, 1) 0、000000 0、000000 C( 4, 2) 5、000000 0、000000 WPLUS( 1, 1) 0、000000 0、000000 WPLUS( 1, 2) 0、000000 0、000000 WPLUS( 1, 3) 0、000000 0、000000 WPLUS( 1, 4) 0、000000 0、000000 WPLUS( 2, 1) 0、000000 0、000000 WPLUS( 2, 2) 1、000000 0、000000 WPLUS( 2, 3) 0、000000 0、000000 WPLUS( 2, 4) 0、000000 0、000000 WPLUS( 3, 1) 0、000000 0、000000 WPLUS( 3, 2) 0、000000 0、000000 WPLUS( 3, 3) 3、000000 0、000000 WPLUS( 3, 4) 1、000000 0、000000 WMINUS( 1, 1) 1、000000 0、000000 WMINUS( 1, 2) 0、000000 0、000000 WMINUS( 1, 3) 0、000000 0、000000 WMINUS( 1, 4) 0、000000 0、000000 WMINUS( 2, 1) 0、000000 0、000000 WMINUS( 2, 2) 1、000000 0、000000 WMINUS( 2, 3) 0、000000 0、000000 WMINUS( 2, 4) 0、000000 0、000000 WMINUS( 3, 1) 0、000000 0、000000 WMINUS( 3, 2) 0、000000 0、000000 WMINUS( 3, 3) 3、000000 0、000000 WMINUS( 3, 4) 0、000000 0、000000 Row Slack or Surplus Dual Price

1 0、000000 -1、000000

2 0、000000 -1、000000

3 0、000000 0、000000

4 0、000000 0、000000

6 0、000000 0、000000

7 0、000000 0、000000

8 0、000000 0、000000

9 0、000000 0、000000

第一级得最优偏差为0,进行第二级计算。在第二级目标计算时,p(1),p(2),p (3)分别输入0,1,0。由于第一级得偏差为0,因此goal(1)得输入值为0,goal(2)输入一个较大得值(例如100000)。计算结果如下:

Global optimal solution found、

Objective value: 0、000000

Total solver iterations: 2

Variable Value Reduced Cost

P( 1) 0、000000 0、000000

P( 2) 1、000000 0、000000

P( 3) 0、000000 0、000000

Z( 1) 0、000000 0、000000

Z( 2) 0、000000 1、000000

Z( 3) 29、25000 0、000000

GOAL( 1) 0、000000 0、000000

GOAL( 2) 100000、0 0、000000

GOAL( 3) 0、000000 0、000000

X( 1) 1、875000 0、000000

X( 2) 3、750000 0、000000

B( 1) 12、00000 0、000000

G( 1) 1500、000 0、000000

G( 2) 0、000000 0、000000

G( 3) 16、00000 0、000000

G( 4) 15、00000 0、000000

DPLUS( 1) 0、000000 0、000000

DPLUS( 2) 0、000000 0、000000

DPLUS( 3) 0、000000 0、000000

DPLUS( 4) 3、750000 0、000000

DMINUS( 1) 0、000000 0、000000

DMINUS( 2) 0、000000 0、000000

DMINUS( 3) 8、500000 0、000000

DMINUS( 4) 0、000000 0、000000

A( 1, 1) 2、000000 0、000000

A( 1, 2) 2、000000 0、000000

C( 1, 1) 200、0000 0、000000

C( 1, 2) 300、0000 0、000000

C( 2, 1) 2、000000 0、000000

C( 2, 2) -1、000000 0、000000

C( 3, 1) 4、000000 0、000000

C( 3, 2) 0、000000 0、000000

C( 4, 2) 5、000000 0、000000

WPLUS( 1, 1) 0、000000 0、000000

WPLUS( 1, 2) 0、000000 0、000000

WPLUS( 1, 3) 0、000000 0、000000

WPLUS( 1, 4) 0、000000 0、000000

WPLUS( 2, 1) 0、000000 0、000000

WPLUS( 2, 2) 1、000000 0、000000

WPLUS( 2, 3) 0、000000 0、000000

WPLUS( 2, 4) 0、000000 0、000000

WPLUS( 3, 1) 0、000000 0、000000

WPLUS( 3, 2) 0、000000 0、000000

WPLUS( 3, 3) 3、000000 0、000000

WPLUS( 3, 4) 1、000000 0、000000

WMINUS( 1, 1) 1、000000 0、000000

WMINUS( 1, 2) 0、000000 0、000000

WMINUS( 1, 3) 0、000000 0、000000

WMINUS( 1, 4) 0、000000 0、000000

WMINUS( 2, 1) 0、000000 0、000000

WMINUS( 2, 2) 1、000000 0、000000

WMINUS( 2, 3) 0、000000 0、000000

WMINUS( 2, 4) 0、000000 0、000000

WMINUS( 3, 1) 0、000000 0、000000

WMINUS( 3, 2) 0、000000 0、000000

WMINUS( 3, 3) 3、000000 0、000000

WMINUS( 3, 4) 0、000000 0、000000

Row Slack or Surplus Dual Price

1 0、000000 -1、000000

2 0、000000 0、000000

3 0、000000 0、000000

4 0、000000 0、000000

5 0、7500000 0、000000

6 0、000000 0、000000

7 0、000000 0、000000

8 0、000000 0、000000

9 0、000000 0、000000

第二级得最优偏差为0,进行第三级计算。在第三级目标计算时,p(1),p(2),p (3)分别输入0,0,1。由于第一级、第二级得偏差均为0,因此goal(1)、goal(2)得输入值也均就是0。计算结果如下:

GGlobal optimal solution found、

Objective value: 29、00000

Total solver iterations: 0

Variable Value Reduced Cost

P( 1) 0、000000 0、000000

P( 3) 1、000000 0、000000 Z( 1) 0、000000 0、000000 Z( 2) 0、000000 -5、666667 Z( 3) 29、00000 0、000000 GOAL( 1) 0、000000 0、000000 GOAL( 2) 0、000000 0、000000 GOAL( 3) 0、000000 0、000000 X( 1) 2、000000 0、000000 X( 2) 4、000000 0、000000 B( 1) 12、00000 0、000000 G( 1) 1500、000 0、000000 G( 2) 0、000000 0、000000 G( 3) 16、00000 0、000000 G( 4) 15、00000 0、000000 DPLUS( 1) 100、0000 0、000000 DPLUS( 2) 0、000000 0、000000 DPLUS( 3) 0、000000 6、000000 DPLUS( 4) 5、000000 0、000000 DMINUS( 1) 0、000000 0、000000 DMINUS( 2) 0、000000 11、33333 DMINUS( 3) 8、000000 0、000000 DMINUS( 4) 0、000000 1、000000 A( 1, 1) 2、000000 0、000000 A( 1, 2) 2、000000 0、000000 C( 1, 1) 200、0000 0、000000 C( 1, 2) 300、0000 0、000000 C( 2, 1) 2、000000 0、000000 C( 2, 2) -1、000000 0、000000 C( 3, 1) 4、000000 0、000000 C( 3, 2) 0、000000 0、000000 C( 4, 1) 0、000000 0、000000 C( 4, 2) 5、000000 0、000000 WPLUS( 1, 1) 0、000000 0、000000 WPLUS( 1, 2) 0、000000 0、000000 WPLUS( 1, 3) 0、000000 0、000000 WPLUS( 1, 4) 0、000000 0、000000 WPLUS( 2, 1) 0、000000 0、000000 WPLUS( 2, 2) 1、000000 0、000000 WPLUS( 2, 3) 0、000000 0、000000 WPLUS( 2, 4) 0、000000 0、000000 WPLUS( 3, 1) 0、000000 0、000000 WPLUS( 3, 2) 0、000000 0、000000 WPLUS( 3, 3) 3、000000 0、000000

WMINUS( 1, 1) 1、000000 0、000000 WMINUS( 1, 2) 0、000000 0、000000 WMINUS( 1, 3) 0、000000 0、000000 WMINUS( 1, 4) 0、000000 0、000000 WMINUS( 2, 1) 0、000000 0、000000 WMINUS( 2, 2) 1、000000 0、000000 WMINUS( 2, 3) 0、000000 0、000000 WMINUS( 2, 4) 0、000000 0、000000 WMINUS( 3, 1) 0、000000 0、000000 WMINUS( 3, 2) 0、000000 0、000000 WMINUS( 3, 3) 3、000000 0、000000 WMINUS( 3, 4) 0、000000 0、000000 Row Slack or Surplus Dual Price 1 29、00000 -1、000000 2 0、000000 0、000000 3 0、000000 -5、666667 4 0、000000 -1、000000 5 0、000000 0、3333333 6 0、000000 0、000000 7 0、000000 5、666667 8 0、000000 -3、000000 9 0、000000 1、000000

第三级得最优偏差为29,所以最终结果就是:4,221==x x ,利润为1600。

目标规划典型例题

§ 主要解题方法和典型例题分析 题型I 目标规划数学模型的建立 当线性规划问题有多个目标需要满足时,就可以通过建立目标规划数学模型来描述。目标规划数学模型的建立步骤为:第一步,确定决策变量;第二步,确定各目标的优先因子;第三步,写出硬约束和软约束;第四步,确定目标函数。 例6-1 某公司生产甲、乙两种产品,分别经由I 、II 两个车间生产。已知除外购外,生产一件甲产品需要I 车间加工4小时,II 车间装配2小时,生产一件乙产品需I 车间加工1小时,II 车间装配3小时,这两种产品生产出来以后均需经过检验、销售等环节。已知每件甲产品的检验销售费用需40元,每件乙产品的检验销售费用需50元。I 车间每月可利用的工时为150小时,每小时的费用为80元;II 车间每月可利用的工时为200小时,每小时的费用为20元,估计下一年度平均每月可销售甲产品100台,乙产品80台。公司根据这些实际情况定出月度计划的目标如下: P 1:检验和销售费用每月不超过6000元; P 2:每月售出甲产品不少于100件; P 3:I 、II 两车间的生产工时应该得到充分利用; P 4:I 车间加班时间不超过30小时; P 5:每月乙产品的销售不少于80件。 试确定该公司为完成上述目标应制定的月度生产计划,建立其目标规划模型。 解:先建立目标规划的数学模型。设x 1为每月计划生产的甲产品件数,x 2为每月生产的乙产品的件数。根据题目中给出的优先等级条件,有以下目标及约束: (1) 检验及销售费用目标及约束11211 min() 40506000d x x d d +-+ ??++-=?; (2) 每月甲产品的销售目标及约束2122min() 100 d x d d --+ ??+-=?; (3) I 、II 两车间工时利用情况目标及约束 I 车间312 33min()4150d x x d d --+??++-=?,II 车间41244min()3200d x x d d - -+ ??++-=? (4) I 车间加班时间目标及约束5355min() 30d d d d ++-+ ??+-=? (5) 每月乙产品销售目标及约束62 66min() 80d x d d --+ ??+-=?

lingo灵敏度分析实例

一个实例理解Lingo的灵敏性分析 线性规划问题的三个重要概念: 最优解就是反应取得最优值的决策变量所对应的向量。 最优基就是最优单纯形表的基本变量所对应的系数矩阵如果其行列式是非奇异的,则该系数矩阵为最优基。 最优值就是最优的目标函数值。 Lingo的灵敏性分析是研究当目标函数的系数和约束右端项在什么范围(此时假定其它系数不变)时,最优基保持不变。灵敏性分析给出的只是最优基保持不变的充分条件,而不一定是必要条件。下面是一道典型的例题。 一奶制品加工厂用牛奶生产A1,A2两种奶制品,1桶牛奶可以在甲车间用12小时加工成3公斤A1,或者在乙车间用8小时加工成4公斤A2。根据市场需求,生产的A1,A2全部能售出,且每公斤A1获利24元,每公斤A2获利16元。现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间480小时,并且甲车间每天至多能加工100公斤A1,乙车间的加工能力没有限制。试为该厂制订一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题: 1)若用35元可以买到1桶牛奶,应否作这项投资?若投资,每天最多购买多少桶牛奶?2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元? 3)由于市场需求变化,每公斤A1的获利增加到30元,应否改变生产计划? 模型代码: max=72*x1+64*x2; x1+x2<=50; 12*x1+8*x2<=480; 3*x1<=100; 运行求解结果: Objective value: 3360.000 Variable Value Reduced Cost X1 20.00000 0.000000 X2 30.00000 0.000000 Row Slack or Surplus Dual Price 1 3360.000 1.000000 2 0.000000 48.00000 3 0.000000 2.000000 4 40.00000 0.000000 这个线性规划的最优解为x1=20,x2=30,最优值为z=3360,即用20桶牛奶生产A1, 30桶牛奶生产A2,可获最大利润3360元。输出中除了告诉我们问题的最优解和最优值以外,还有许多对分析结果有用的信息。 其中,“Reduced Cost”列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时, 目标函数的变化率。其中基变量的reduced cost值应为0,对于非基变量Xj, 相应的reduced cost值表示当某个变量Xj 增加一个单位时目标函数减少的量( max型问题)。本例中X1,X2均为基变量。 “Slack or Surplus”给出松驰变量的值,模型第一行表示目标函数,所以第二行对应第一个约束。3个约束条件的右端不妨看作3种“资源”:原料、劳动时间、车间甲的加工能力。输出中Slack or Surplus给出这3种资源在最优解下是否有剩余:原料、劳动时间的剩余均为

第八章 运筹学 目标规划 案例

第八章目标规划 8.1请将下列目标规划问题数学模型的一般形式转换为各优先级的数学模型。1、 min P1(d l-)+P2(d2-)+P2(d2+)+P3(d3-)+P3(d3+)+P4(d4-) 约束条件: 4 x l ≤680 4x2 ≤600 2 x l+3x2-d1+ +d1-=12 x l-x2-d2++d2-=0 2 x l+2x2-d3++d3-=12 x l+2x2-d4++d4-=8 x l,x2,d1+,d1-,d2+,d2-,d3+,d3-,d4+,d4-≥0。 解: 这是一个四级目标规划问题: 第一级: min d l- S.T. 4 x l ≤680 4x2 ≤600 2 x l+3x2-d1+ +d1-=12 x l,x2,d1+,d1-≥0 第二级: min d2-+d2+ S.T. 4 x l ≤680 4x2 ≤600 2 x l+3x2-d1+ +d1-=12 x l-x2-d2++d2-=0 d1-=第一级的最优结果 x l,x2,d1+,d1-,d2+,d2-≥0 第三级: min d3-+d3+ S.T. 4 x l ≤680 4x2 ≤600 2 x l+3x2-d1+ +d1-=12 x l-x2-d2++d2-=0 2 x l+2x2-d3++d3-=12 d1-=第一级的最优结果 d2+,d2-=第二级的最优结果 x l,x2,d1+,d1-,d2+,d2-,d3+,d3-≥0 第四级:

min d4- S.T. 4 x l ≤680 4x2 ≤600 2 x l+3x2-d1+ +d1-=12 x l-x2-d2++d2-=0 2 x l+2x2-d3++d3-=12 x l+2x2-d4++d4-=8 d1-=第一级的最优结果 d2+,d2-=第二级的最优结果 d3+,d3-=第三级的最优结果 x l,x2,d1+,d1-,d2+,d2-,d3+,d3-,d4+,d4-≥0 2、 min P1(d l-)+P2(d2-)+P2(d2+)+P3(d3-) 约束条件: 12 x l+9x2+15x3-d1+ +d1-=125 5x l+3x2+4x3-d2+ +d2-=40 5 x l+7x2+8x3-d3+ +d3-=55 x l,x2,x3,d1+,d1-,d2+,d2-,d3+,d3-≥0。 解: 这是一个三级目标规划问题: 第一级: min d l- S.T. 12 x l+9x2+15x3-d1+ +d1-=125 x l,x2,x3,d1+,d1-≥0 第二级: min d2-+d2+ S.T. 12 x l+9x2+15x3-d1+ +d1-=125 5x l+3x2+4x3-d2+ +d2-=40 d l-=第一级的最优结果 x l,x2,x3,d1+,d1-,d2+,d2-≥0 第三级: min d3- S.T. 12 x l+9x2+15x3-d1+ +d1-=125 5x l+3x2+4x3-d2+ +d2-=40 5 x l+7x2+8x3-d3+ +d3-=55 d l-=第一级的最优结果 d2+ ,d2-=第二级的最优结果 x l,x2,x3,d1+,d1-,d2+,d2-,d3+,d3-≥0 8.2某企业生产A、B、C、三种不同规格的电子产品,三种产品的装配工作在同一生产

matlab、lingo程序代码23-线性规划问题及灵敏度分析

线性规划问题及灵敏度分析在LINGO软件中的实现 (龙少波李东阳罗添元) 一、问题的提出: 某公司饲养实验用的动物以出售给动物研究所,已知这些动物的生长对饲 料中3种营养成分(蛋白质、矿物质和维生素)特别敏感,每个动物每周至少需 要蛋白质60g,矿物质3g,维生素8mg,该公司能买到5种不同的饲料,每种饲 料1kg所含各种营养成分和成本如下表所示,如果每个小动物每周食用饲料不超 过52kg,才能满足动物生长需要。 A1 A2 A3 A4 A5 营养最 低 要求蛋白质(g) 0.3 2 1 0.6 1.8 60 矿物质(g) 0.1 0.05 0.02 0.2 0.05 3 维生素(mg) 0.05 0.1 0.02 0.2 0.08 8 成本(元/ kg)0.2 0.7 0.4 0.3 0.5 问题: 1.求使得总成本最低的饲料配方? 2.如果另一个动物研究对蛋白质的营养要求变为59单位, 但是要求动物的价格比现在的价格便宜0.3元,问该养殖所 值不值得接受? 3.由于市场因素的影响,X2的价格降为0.6元每千克, 问是否要改变饲料配方? 二、建立线性规划数学模型 解答: (1)设需要饲料A1, A2, A3, A4分别为X1, X2, X3, X4kg,则建立线 性规划数学模型如下: 目标函数:MinS=0.2X1+0.7X2+0.4X3+0.3X4+0.5X5 约束条件:0.3X1+2X2+X3+0.6X4+1.8X5>=60 0.1X1+0.05X2+0.02X3+0.2X4+0.05X5>=3 005X1+0.1X2+0.02X3+0.2X4+0.08X5>=8

目标规划例题

目标规划 某企业生产甲、乙两种产品,需要用到A,B,C 三种设备,关于产品的赢利 与使用设备的工时及限制如表 2 所示。问该企业应如何安排生产,才能达到下列目标: 表 2 甲 乙 设备的生产能力(h ) A (h/件) 2 2 12 B (h/件) 4 0 16 C (h/件) 0 5 15 赢利(元/件) 200 300 (1)力求使利润指标不低于 1500 元; (2)考虑到市场需求,甲、乙两种产品的产量比应尽量保持 1:2; (3)设备 A 为贵重设备,严格禁止超时使用; (4)设备C 可以适当加班,但要控制;设备B 既要求充分利用,又尽可能不加班。 在重要性上,设备B 是设备C 的 3 倍。 建立相应的目标规划模型并求解。 解 设备 A 是刚性约束,其余是柔性约束。首先,最重要的指标是企业的利润, 因此,将它的优先级列为第一级;其次,甲、乙两种产品的产量保持 1:2 的比例,列为 第二级;再次,设备B,C 的工作时间要有所控制,列为第三级。在第三级中,设备B 的 重要性是设备C 的三倍,因此,它们的权重不一样,设备B 前的系数是设备C 前系数 的 3 倍。设生产甲乙两种产品的件数分别为x1, x2, ,相应的目标规划模型为 min z = P1d1- + P2 ( d2+ + d2- ) + P3 ( 3d3+ + 3d3- + d4+ ) 121211122213324412221220030015002040515,,,0(1,2,3,4...)i i x x x x d d x x d d x d d x d d x x d d i -+-+-+-+-++≤??++-=??-+-=??+-=??+-=?≥=?? LINGO 程序编码 model: sets: level/1..3/:p,z,goal; variable/1..2/:x; h_con_num/1..1/:b; s_con_num/1..4/:g,dplus,dminus; h_con(h_con_num,variable):a; s_con(s_con_num,variable):c; obj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus; endsets data:

数学中的灵敏度分析

假设条件成为了建模过程中一个影响模型好坏的影响因素,灵敏度分析就是在模型建立后,对假设条件变化,检验模型的优劣性 一般来说Lingo做出来的灵敏度分析能够达到一个比较理想的程度,不过还是要根据模型本身来研究,建议你在开始之前先学习一下《数值分析》,对建模的灵敏度分析很有用哈,再根据《数值分析》的方法,对M-C(蒙特卡罗)方法进行灵敏度分析,你会很快掌握~~~ 随着现代工业的迅速发展,对工业设备的精度提出了更高的要求。但是,由于制造误差、轴承间隙、弹性变形等因素的影响,不可避免地会对设备的精度产生一定的影响。因此我们就有必要建立起一个数学模型并且应用恰当的分析方法来研究上述的各种误差对精度的影响关系,找出影响最大的因素,作为我们在实际的制造和装配过程中进行误差分配,降低生产成本,提高传动精度的理论依据。这里就可以采用灵敏度分析的方法。它主要包括局部灵敏度分析方法和全局灵敏度分析方法。 一、局部灵敏度分析方法 局部法主要分析因素对模型的局部影响(如某点)。局部法可以得到参数对输出的梯度,这一数值是许多领域研究中所需要的重要数据。局部法主要应用于数学表达式比较简单,灵敏度微分方程较易推出,不确定因素较少的系统模型中。主要包括直接求导法、有限差分法、格林函数法。 1.直接求导法 对于输入因素个数少、结构不复杂、灵敏度微分方程较易推导的系统或模型,直接法是一种简单快速的灵敏度分析方法。时变(非静止)系统可以用微分或微分-代数方程进行描述。假设要考虑的初值问题是 ,(1) 同样,代表n维输出变量,代表m维输入因素。代表初值数组。 式(1)对输入因素微分得到下述的灵敏度微分方程

(2) 或以矩阵形式表示为(3) 式中,是系统代数-微分方程右边对系统输出变量的导数(可称为雅可比矩阵),是对输入因素的导数,也可称为参数雅可比。微分方程(2)的初始条件为零向量。 上述的直接法建立在微分方程(2)的基础上,要得到其灵敏度矩阵S的解,需要先求得矩阵J和F的值。而矩阵的值又是由系统变量的真实值确定,因此,需同时或预先求得(1)方程的解。 对于非时变(静止)系统,将其代数方程,式中,Y是n维输出变量,X是m维输入因素。令表示隐性代数方程式的解。对输入因素求导数,得到下面的灵敏度公式: (4) 式中,称为静态灵敏度矩阵,和由静态点的变量值计算。对于变量少、结构不复杂、灵敏度微分方程较易推出的系统,直接法是一个简单快速的灵敏度分析方法。 2.有限差分法 局部灵敏度最简单的计算方法是有限差分法,其基本做法是使设计变量有一个微小的摄动,用差分格式来计算输出对设计变量的近似导数。其中比较简单的是采用向前差分格式 (5) 式中,截断误差与同阶。有时采用更为精确的中心差分公式 (6) 而,

lingo求解多目标规划__例题

实验二:目标规划 一、实验目的 目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建立,求解过程及结果分析。 二、目标规划的一般模型 设)...2,1(n j x j =是目标规划的决策变量,共有m 个约束是国刚性约束,可能是等式约束,也可能是不等式约束。设有l 个柔性目标约束,其目标规划约束的偏差是 ),...,2,1(,l i d d i i =-+。设有q 个优先级别,分别为q p p p ,...,21。在同一个优先级k p 中,有 不同的权重,分别记为),...,2,1(,l j w w kj kj =- + 。因此目标规划模型的一般数学表达式为: min ∑∑=+ +-- =+= l j j kj j kj q k k d w d w p z 1 1 );( s.t. ,,...2,1,),(1m i b x a n j i j ij =≥=≤∑= . ,...2,1,0,, ,...,2,1,, ,...2,1,1 l i d d n x o x l i g d d x c i i j i n j i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组 实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。

四、实验容及步骤 1、打开LINGO ,并利用系统菜单和向导在E 盘创建一个项目。目录和项目名推荐使用学生自己的学号。 2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。 例2.1: 某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面: (1) 力求使利润不低于1500元; (2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2; (3) 设备A 为贵重设备,严格禁止超时使用; (4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。 在重要性上,设备C 是设备B 的3倍。 此题中只有设备A 是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B 、C 的工作时间要有所控制,列为第三级。在第三级中,设备B 的重要性是设备C 的3倍,因此它们的权重不一样,设备B 的系数是设备C 的3倍。 该计划问题可用数学模型表示为: 目标函数 min )33()(433322211+ +-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤ 15003002001121=-+++-d d x x 022221=-+-+ - d d x x 14x 1633=-++ -d d

最优化方法(线性规划)——用Lingo对线性规划进行灵敏度分析

lingo 软件求解线性规划及灵敏度分析 注:以目标函数最大化为例进行讨论,对求最小的问题,有类似的分析方法!所有程序运行环境为lingo10。 一、用lingo 软件求解线性规划 例1: m a x 23..4310 3512,0 z x y s t x y x y x y =++≤+≤≥ 在模型窗口输入: model: max=2*x+3*y; 4*x+3*y<=10; 3*x+5*y<12; ! the optimal value is :7.454545 ; End 如图所示: 运行结果如下(点击 工具栏上的‘solve ’或点击菜单‘lingo ’下的‘solve ’即可): Global optimal solution found. Objective value: 7.454545(最优解函数值) Infeasibilities: 0.000000 Total solver iterations: 2(迭代次数)

Variable (最优解) Value Reduced Cost X 1.272727 0.000000 Y 1.636364 0.000000 Row Slack or Surplus Dual Price 1 7.454545 1.000000 2 0.000000 0.9090909E-01 3 0.000000 0.5454545 例2: 12123124125m a x 54.. 390280450 z x x s t x x x x x x x x x x =+++=++=++=≥ 在模型窗口输入: model: max=5*x1+4*x2; x1+3*x2+x3=90; 2*x1+x2+x4=80; x1+x2+x5=45; end 运行(solve )结果如下: Global optimal solution found. Objective value: 215.0000 Infeasibilities: 0.000000 Total solver iterations: 3 Variable Value Reduced Cost X1 35.00000 0.000000 X2 10.00000 0.000000 X3 25.00000 0.000000 X4 0.000000 1.000000 X5 0.000000 3.000000 Row Slack or Surplus Dual Price 1 215.0000 1.000000 2 0.000000 0.000000 3 0.000000 1.000000 4 0.000000 3.000000 例3

lingo求解多目标规划__例题

实验二:目标规划 一、实验目的 目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建立,求解过程及结果分析。 二、目标规划的一般模型 设)...2,1(n j x j =是目标规划的决策变量,共有m 个约束是国刚性约束,可能是等式约束,也可能是不等式约束。设有l 个柔性目标约束,其目标规划约束的偏差是 ),...,2,1(,l i d d i i =-+。设有q 个优先级别,分别为q p p p ,...,21。在同一个优先级k p 中,有 不同的权重,分别记为),...,2,1(,l j w w kj kj =- +。因此目标规划模型的一般数学表达式为: min ∑∑=+ +--=+= l j j kj j kj q k k d w d w p z 1 1 );( s.t. ,,...2,1,),(1m i b x a n j i j ij =≥=≤∑= . ,...2,1,0,, ,...,2,1,, ,...2,1,1 l i d d n x o x l i g d d x c i i j i n j i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组 实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。

四、实验容及步骤 1、打开LINGO ,并利用系统菜单和向导在E 盘创建一个项目。目录和项目名推荐使用学生自己的学号。 2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。 例2.1: 某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面: (1) 力求使利润不低于1500元; (2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2; (3) 设备A 为贵重设备,严格禁止超时使用; (4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。在重要性上,设备C 是设备B 的3倍。 此题中只有设备A 是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B 、C 的工作时间要有所控制,列为第三级。在第三级中,设备B 的重要性是设备C 的3倍,因此它们的权重不一样,设备B 的系数是设备C 的3倍。 该计划问题可用数学模型表示为: 目标函数 min )33()(433322211+ +-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤ 15003002001121=-+++-d d x x 022221=-+-+ -d d x x 14x 1633=-++ -d d 155442=-++ -d d x 3,2,1,0,,,21=≥+ -i d d x x i i

【2017年整理】lingo灵敏度分析实例

【2017年整理】lingo灵敏度分析实例一个实例理解Lingo的灵敏性分析 线性规划问题的三个重要概念: 最优解就是反应取得最优值的决策变量所对应的向量。 最优基就是最优单纯形表的基本变量所对应的系数矩阵如果其行列式是非奇异的,则该系数矩阵为最优基。 最优值就是最优的目标函数值。 Lingo的灵敏性分析是研究当目标函数的系数和约束右端项在什么范围(此时假定其它系数不变)时,最优基保持不变。灵敏性分析给出的只是最优基保持不变的充分条件,而不一定是必要条件。下面是一道典型的例题。 一奶制品加工厂用牛奶生产A1,A2两种奶制品,1桶牛奶可以在甲车间用12小时加工成3公斤A1,或者在乙车间用8小时加工成4公斤A2。根据市场需求,生产的A1,A2全部能售出,且每公斤A1获利24元,每公斤A2获利16元。现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间480小时,并且甲车间每天至多能加工100公斤A1,乙车间的加工能力没有限制。试为该厂制订一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题: 1) 若用35元可以买到1桶牛奶,应否作这项投资,若投资,每天最多购买多少桶牛奶, 2) 若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元, 3) 由于市场需求变化,每公斤A1的获利增加到30元,应否改变生产计划, 模型代码: max=72*x1+64*x2; x1+x2<=50; 12*x1+8*x2<=480;

3*x1<=100; 运行求解结果: Objective value: 3360.000 Variable Value Reduced Cost X1 20.00000 0.000000 X2 30.00000 0.000000 Row Slack or Surplus Dual Price 1 3360.000 1.000000 2 0.000000 48.00000 3 0.000000 2.000000 4 40.00000 0.000000 这个线性规划的最优解为x1=20,x2=30,最优值为z=3360,即用20桶牛奶生产A1, 30桶牛奶生产A2,可获最大利润3360元。输出中除了告诉我们问题的最优解和最优值以外,还有许多对分析结果有用的信息。 其中,“Reduced Cost”列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时, 目标函数的变化率。其中基变量的reduced cost值应为0,对于非基变量 Xj, 相应的 reduced cost值表示当某个变量Xj 增加一个单位时目标函数减少的量( max型问题)。本例中X1,X2均为基变量。 “Slack or Surplus”给出松驰变量的值,模型第一行表示目标函数,所以第二行对应第一个约束。3个约束条件的右端不妨看作3种“资源”:原料、劳动时间、车间甲的加工能力。输出中Slack or Surplus给出这3种资源在最优解下是否有剩余:原料、劳动时间的剩余均为 零,车间甲尚余40(公斤)加工能力。

灵敏性分析

LINGO灵敏性分析(Range,Ctrl+R) 用该命令产生当前模型的灵敏性分析报告:研究当目标函数的费用系数和约束右端项在 什么范围(此时假定其它系数不变)时,最优基保持不变。灵敏性分析是在求解模型时作出的,因此在求解模型时灵敏性分析是激活状态,但是默认是不激活的。为了激活灵敏性分析,运行 LINGO|Options…,选择 General Solver Tab,在 Dual Computations 列表框中,选择 Prices and Ranges 选项。灵敏性分析耗费相当多的求解时间,因此当速度很关键时,就没有必要激活它。 下面我们看一个简单的具体例子。 例 5.1某家具公司制造书桌、餐桌和椅子,所用的资源有三种:木料、木工和漆工。生产数据如下表所示: 若要求桌子的生产量不超过 5 件,如何安排三种产品的生产可使利润最大? 用 DESKS、TABLES 和 CHAIRS 分别表示三种产品的生产量,建立 LP 模型。 max=60*desks+30*tables+20*chairs; 8*desks+6*tables+chairs<=48; 4*desks+2*tables+1.5*chairs<=20; 2*desks+1.5*tables+.5*chairs<=8; tables<=5; 求解这个模型,并激活灵敏性分析。这时,查看报告窗口(Reports Window),可以看 到如下结果。

“Global optimal solution found at iteration: 3”表示 3 次迭代后得到全局最优解。“Objective value:280.0000”表示最优目标值为 280。“Value”给出最优解中各变量的值:造 2 个书桌(desks), 0 个餐桌(tables), 8 个椅子(chairs)。所以 desks、chairs 是基变量(非 0), tables 是非基变量(0)。 “Slack or Surplus”给出松驰变量的值: 第 1 行松驰变量 =280(模型第一行表示目标函数,所以第二行对应第一个约束) 第 2 行松驰变量 =24 第 3 行松驰变量 =0 第 4 行松驰变量 =0 第 5 行松驰变量 =5 “Reduced Cost”列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时, 目标函数的变化率。其中基变量的 reduced cost 值应为 0,对于非基变量 Xj, 相应的 reduced cost 值表示当某个变量 Xj 增加一个单位时目标函数减少的量( max 型问题)。本例中:变量 tables 对应的 reduced cost 值为 5,表示当非基变量 tables 的值从 0变为 1 时(此时假定其他非基变量保持不变,但为了满足约束条件,基变量显然会发生变化),最优的目标函数值 = 280 - 5 = 275。 “DUAL PRICE”(对偶价格)表示当对应约束有微小变动时, 目标函数的变化率。输 出结果中对应于每一个约束有一个对偶价格。若其数值为 p,表示对应约束中不等式右端项若增加 1 个单位,目标函数将增加 p 个单位(max 型问题)。显然,如果在最优解处约束正好取等号(也就是“紧约束”,也称为有效约束或起作用约束),对偶价格值才可能不是0。本例中:第 3、4 行是紧约束,对应的对偶价格值为 10,表示当紧约束 3) 4 DESKS + 2 TABLES + 1.5 CHAIRS <= 20 变为 3) 4 DESKS + 2 TABLES + 1.5 CHAIRS <= 21 时,目标函数值 = 280 +10 = 290。对第 4 行也类似。 对于非紧约束(如本例中第 2、5 行是非紧约束),DUAL PRICE 的值为 0, 表示对应约束中不等式右端项的微小扰动不影响目标函数。有时, 通过分析 DUAL PRICE, 也可对产生不可行问题的原因有所了解。 灵敏度分析的结果是 目标函数中 DESKS 变量原来的费用系数为 60,允许增加(Allowable Increase)=4、允许减少(Allowable Decrease)=2,说明当它在[60-4,60+20] = [56,80]范围变化时,

lingo结果分析及灵敏性分析

lingo结果分析及灵敏性分析 问题描述 程序代码: max = 60*desks + 30*tables + 20*chairs; 8*desks + 6*tables + chairs <= 48; 2*desks + 1.5*tables + 0.5*chairs <= 8; 4*desks + 2*tables + 1.5*chairs <= 20; tables<= 5; 部分结果一: Variable Value Reduced Cost DESKS 2.000000 0.000000 TABLES 0.000000 5.000000 CHAIRS 8.000000 0.000000 ⑴Value:给出最优解中各变量的值,Value=0(非基变量),反之为基变量。

⑵Reduced Cost:表示当非基变量有微小变动时, 目标函数的变化率。本例中: 变量tables 对应的reduced cost 值为5,表示当非基变量tables 的值从0 变为1 时(此时假定其他非基变量保持不变,但为了满足约束条件,基变量显然会发生变化),最优的目标函数值= 280 - 5 = 275。 部分结果二: Row Slack or Surplus Dual Price 1 280.0000 1.000000 2 24.00000 0.000000 3 0.000000 10.00000 4 0.000000 10.00000 5 5.000000 0.000000 ⑴“Slack or Surplus”――松驰变量。 ⑵“Dual Price”――对偶价格表示当对应约束有微小变动时, 目标函数的变化 率。若其数值为p,表示对应约束中不等式右端项若增加1个单位,目标函数将增加p个单位(max 型问题)。 ⑶如果在最优解处约束正好取等号(紧约束,也称为有效约束或起作用约束), 对偶价格值才可能不是0。本例中:第3、4 行是紧约束,对应的对偶价格值为10,表示当紧约束4) 4 DESKS + 2 TABLES + 1.5 CHAIRS <= 20 变为4) 4 DESKS + 2 TABLES + 1. 5 CHAIRS <= 21 时,目标函数值= 280 +10 = 290。

Lingo与线性规划

Lingo 与线性规划 线性规划的标准形式是 1111111..0,1,2,,n n m mn n m i a x a x b s t a x a x b x i n +≤????+≤??≥= ? (1) 其中11n n z c x c x =++称为目标函数,自变量i x 称为决策变量,不等式组(1)称为约束条件. 满足不等式组(1)的所有1(,,)n x x 的集合称为可行域,在可行域里面使得z 取最小值 的**1(,,)n x x 称为最优解,最优解对应的函数值称为最优值。 求解优化模型的主要软件有Lingo 、Matlab 、Excel 等。其中Lingo 是一款专业求解优化模型的软件,有其他软件不可替代的方便功能。本文将简要介绍其在线性规划领域的应用。 一、基本规定 1、目标函数输入格式 max=函数解析式; 或者 min=函数解析式; 2、约束条件输入格式 利用:>、<、>=、<=等符号。但是>与>=没有区别。Lingo 软件默认所以自变量都大于等于0. 3、运算 加(+),减(-),乘(*),除(/),乘方(x^a),要注意乘号(*)不能省略。 4、变量名 不区分大小写字母,不超过32个字符,必须以字母开头。 5、标点符号 每个语句以分号“;”结束,感叹号“!”开始的是说明语句(说明语句也需要以分号“;”结束)。但是,model ,sets ,data 以“:”结尾。endsets ,enddata ,end 尾部不加任何符号。 6、命令不考虑先后次序 7、MODEL 语句 一般程序必须先输入MODEL :表示开始输入模型,以“END”结束。对简单的模型,这两个语句也可以省略。 8、改变变量的取值范围 @bin(变量名); 限制该变量为0或1. @bnd(a,变量名,b ); 限制该变量介于a,b 之间. @free(变量名); 允许该变量为负数. @gin(变量名); 限制该变量为整数. 例1 求目标函数1 223z x x =+的最小值,约束条件为 输入Lingo 程序: min = 2*x1 + 3*x2; x1 + x2 >= 350; x1 >= 100; 2*x1 + x2 <= 600; 有两种运行方式:

熟悉LINGO软件的灵敏度分析功能

熟悉LINGO软件的灵敏度分析功能

2012——2013学年第一学期 合肥学院数理系 实验报告 课程名称:运筹学 实验项目:熟悉LINGO软件的灵敏度分析功能实验类别:综合性□设计性□√验证性□专业班级: 姓名:学号: 实验地点: 实验时间: 2012年11月22日 指导教师:管梅成绩:

一.实验目的 1、学会使用LINGO 软件求解线性规划问题的灵敏度分析。 2、学会分析LINGO 软件求解的结果。 二.实验内容 1、求解线性规划: 12 1212max 2251228Z x x x x x x =++≥?? +≤? 并对价值系数、右端常量进行灵敏度分析。 2、已知某工厂计划生产I ,II ,III 三种产品,各产品需要在A 、B 、C 设备上加 I II III 设备有效台时 (每月) A 8 2 10 300 B 10 5 8 400 C 2 13 10 420 单位产品利润 (千元) 3 2 2.9 (1)如何发挥生产能力,使生产盈利最大? (2)若为了增加产量,可租用别工厂设备B ,每月可租用60台时,租金1.8万元,租用B 设备是否合算? (3)若另有二种新产品IV 、V ,其中新产品IV 需用设备A 为12台时、B 为5台时、C 为10台时,单位产品盈利2.1千元;新产品V 需用设备A 为4台时、B 为4台时、C 为12台时,单位产品盈利1.87千元。如A 、B 、C 的设备台时不增加,这两种新产品投产在经济上是否划算? (3)对产品工艺重新进行设计,改进结构。改进后生产每件产品I 需用设备A 为9台时、设备B 为12台时、设备C 为4台时,单位产品盈利4.5千元,这时对原计划有何影响? 三. 模型建立 1、模型略

目标规划习题

一、某企业生产A、B、C三种产品,装配工作在同一生产线上完成,三种产品装配时的工作消耗分别为6小时、8小时和10小时,生产线每月正常工作时间为200小时,三种产品销售后每件可分别获利500元、650元和800元,每月预计销量为12台、10台和6台,有关经营目标如下: P1:利润指标不少于每月16000元; P2:充分利用生产能力; P3:加班时间不超过24小时; P4:产量以预计销量为标准。 为确定生产计划,试建立该问题的相关模型。 二、某工厂生产两种产品录音机和电视机,在甲、乙两车间的单件工时及其它相关资料如下表所示: 度目标为: P1:检验和销售费每月不超过4600元; P2:每月售出录音机不少于50台; P3:甲、乙车间的生产工时得到充分利用(重要性权系数按两个车间每小时费用的比例确定); P4:甲车间加班不超过20小时。 问:试确定该厂为达到以上目标的月度计划生产数。(要求建立相关的运筹学模型,不需求解) 三、某厂拟生产甲、乙两种产品,每件利润分别为20元、30元。这两种产品都要在A、B、C、D四种设备上加工,每件甲产品需占用各设备依次为2、1、4、0小时,每件乙产品需占用各设备依次为2、2、0、4小时,而这四种设备正常生产能力依次为12、8、16、12小时。此外,A、B两种设备每天还可加班运行。 试拟订一个满足下列目标的生产计划: P1:两种产品每天总利润指标不低于120元; P2:两种产品的产量尽可能均衡;

P3:A 、B 设备都应不超负荷,其中A 设备能力还应充分利用(A 的重要程度是B 的3倍) (要求只建立模型,不需求解) 四、企业计划生产甲、乙两种产品,这些产品需要使用两种材料,要在两种不同设备上加工。每加工单件产品甲和乙的工艺资料如表所示,在生产甲、乙两种产品时,材料不能超用。 企业怎样安排生产计划,尽可能满足下列目标: P1:力求使利润指标不低于80元; P2:考虑到市场需求,甲、乙两种产品的生产量需保持1: 1比例; P3:设备A 既要求充分利用,又尽可能不加班; P4:设备B 必要时可以加班,但加班时间尽可能少。 (要求只建立模型,不需求解) 一、解:设每月生产A 、B 、C 产品分别为x1、x2、x3台,总偏差为Z 。 )(min 6655444332211+-+-+-+--++++++++=d d d d d d P d P d P d P Z ?????? ???????=≥=-+=-+=-+=-+++=-+++=-++++-+-+-+-+-+-+-6,5,4,3,2,1;0,,,,610122241086200108616000800650500321663552441333212232111321i d d x x x d d x d d x d d x d d x x x d d x x x d d x x x i i 二、解:设每月生产录音机X 1台,电视机X 2台,总偏差为Z

多目标规划问题知识讲解

多目标规划问题

3.5 黑龙江省可持续农业产业结构优化模型的求解 鉴于上面的遗传算法的基本实现技术和理论分析,对标准遗传算法进行适当改进,将其用于求解黑龙江省可持续农业产业结构优化模型中。黑龙江省农业产业结构优化模型具有大系统、多目标、非线性等特点,传统的求解方法受到了模型复杂程度的限制,由引言可知,遗传算法对解决此类问题具有明显的优势。下面介绍具体采用的遗传多目标算法操作设计以及模型求解过程。 3.5.1遗传多目标算法操作设计 3.5.1.1 实数编码方法 在求解复杂优化问题时,二进制向量表示结构有时不太方便,并且浮点数编码的遗传算法对变异操作的种群稳定性比二进制编码好(徐前锋,2000)。以浮点数编码的遗传算法也叫实数遗传算法(Real number Genetic Algorithms ,简称RGA )。每一个染色体由一个浮点数向量表示,其长度与解向量相同。假如用向量),(21n x x x X 表示最优化问题的解,则相应的染色体就是 ),(21n x x x V ,其中n 是变量个数。 3.5.1.2 种群初始化方法 遗传算法中初始群体的个体是随机产生的,由于本文优化模型所涉及的变量容易给出一个相对较大的问题空间的变量分布范围,并且若给出一定的搜索空间也会加快遗传算法的收敛速度;因此本文采取3.3.2中的第一种策略,对每一个变量设置可能区间,然后在可能区间内随机产生初始种群。为保证不会遗漏最优解,选择区间跨度范围很大。 3.5.1.3 适应度函数设计

用遗传算法求解多目标优化问题中出现的一个特殊情况就是如何根据多个目标来确定个体的适应值。本文采用Gen 和Cheng 提出的适应性权重方法 (Adaptive Weight Approach ),该方法利用当前种群中一些有用的信息来重新调整权重,从而获得朝向正理想点的搜索压力(玄光男等,2004)。将目标函数按3.3.3所述转化成带有q 个目标(本文模型3 q )的最大化问题: )}(,),(),({max 2211x f z x f z x f z q q (3-14) 对于每代中待检查的解来说,在判据空间中定义两个极限点:最大极限点 z 和最小极限点 z 如下: },,,{} ,,,{m in m in 2m in 1m ax m ax 2m ax 1q q z z z z z z z z (3-15) 其中m in m ax k k z z 和是当前种群中第k 个目标的最大值和最小值。由两个极限点定义的超平行四边形是包含当前所有解的最小超平行四边形。两个极限点每代更新,最大极限点最终将接近正理想点。目标k 的适应性权重用下式计算: ),,2,1(1 min max q k z z k k k 因此,权重和目标(Weighted-sum Objective )函数由下面的公式确定 q k k k k q k k k z z x f x f x z 1m in m ax 1)()()( (3-16) 3.5.1.4 遗传操作 (1)选择操作。以比例选择法和最优个体保存法配合使用进行选择操作,即选择过程仍以旋转赌轮来为新的种群选择染色体,适应度越高的染色体被选中的概率越大;另一方面,为了保证遗传算法的全局收敛性,在选择作用后保留当前群体中适应度最高的个体,不参与交叉和变异,同时也确保当前最优个体不被随机进行的遗传操作破坏。

相关文档