lingo求解多目标规划__例题.pdf





《lingo求解多目标规划__例题.pdf》由会员分享,可在线阅读,更多相关《lingo求解多目标规划__例题.pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验二:目标规划实验二:目标规划一、实验目的一、实验目的目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建立,求解过程及结果分析。立,求解过程及结果分析。二、目标规划的一般模型二、目标规
2、划的一般模型设设xj(j 1,2.n)是目标规划的决策变量,是目标规划的决策变量,共有共有m个约束是国刚性约束,个约束是国刚性约束,可能是等式约可能是等式约束束,也也可可能能是是不不等等式式约约束束。设设有有l个个柔柔性性目目标标约约束束,其其目目标标规规划划约约束束的的偏偏差差是是di,di(i 1,2,.,l)。设有。设有q个优先级别,分别为个优先级别,分别为p1,p2,.pq。在同一个优先级。在同一个优先级pk中,有中,有不同的权重,分别记为不同的权重,分别记为wkj,wkj(j 1,2,.,l)。因此目标规划模型的一般数学表达式为:。因此目标规划模型的一般数学表达式为:minminz
3、np(wkk1j1qlkjdj wkjdj);s.t.s.t.aj1nj1ijxj(,)bi,i 1,2,.m,xj didi gi,i 1,2,.l,cijxj o,x 1,2,.,n,di,di 0,i 1,2,.l.三、实验设备及分组三、实验设备及分组实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。四、实验容及步骤四、实验容及步骤1 1、打开、打开 LINGOLINGO,并利用系统菜单和向导在,并利用系统菜单和向导在 E E 盘创建一个项目。目录和项目名推荐使盘创建一个项目。目录和项目名推荐使用学生自己的学号。
4、用学生自己的学号。2 2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。例例 2.12.1:某工厂生产、两种产品,需要用到某工厂生产、两种产品,需要用到 A A,B B,C C 三种设备,已知有关数据见下表。企三种设备,已知有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面:业的经营目标不仅仅是利润,还需要考虑多个方面:(1 1)力求使利润不低于力求使利润不低于 15001500 元;元;(2 2)考虑到市场需求,、两种产品的产量比应尽量保持考虑到市场需求,、两种产品的产量比应尽量保持 1 1:
5、2 2;(3 3)设备设备 A A 为贵重设备,严格禁止超时使用;为贵重设备,严格禁止超时使用;(4 4)设备设备 C C 可以适当加班,但要控制;设备可以适当加班,但要控制;设备 B B 即要求充分利用,又尽可能不加班。即要求充分利用,又尽可能不加班。在重要性上,设备在重要性上,设备 C C 是设备是设备 B B 的的 3 3 倍。倍。A A(h/h/件)件)B B(h/h/件)件)C C(h/h/件)件)利润利润 元元/件件解:解:此题中只有设备此题中只有设备 A A 是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将
6、它的优先级列为第一级;其次是、两种产品的产量保持润,将它的优先级列为第一级;其次是、两种产品的产量保持1 1:2 2 的比例,列为第二的比例,列为第二级;再次,设备级;再次,设备 B B、C C 的工作时间要有所控制,列为第三级。在第三级中,设备的工作时间要有所控制,列为第三级。在第三级中,设备B B 的重要性的重要性是设备是设备 C C 的的 3 3 倍,因此它们的权重不一样,设备倍,因此它们的权重不一样,设备 B B 的系数是设备的系数是设备 C C 的的 3 3 倍。倍。该计划问题可用数学模型表示为:该计划问题可用数学模型表示为:目标函数目标函数minminz p1d1 p2(d2 d2
7、)p3(3d3 3d3 d4)2 24 40 02002002 20 05 5300300设备的生产能力设备的生产能力/h/h121216161515满足约束条件满足约束条件2x1 2x212200 x1 300 x2 d1 d115002x1 x2 d2 d2 04x1 d3 d3165x2 d4 d415x1,x2,di,di 0,i 1,2,3LINGOLINGO 程序为:程序为:modelmodel:setssets:!集合定义部分(从“集合定义部分(从“sets:sets:”开始,到“”开始,到“endsetsendsets”结束):定义集合变量及其元素(含义类”结束):定义集合变量
8、及其元素(含义类似数组的下标)和属性(含义类似于数组)。似数组的下标)和属性(含义类似于数组)。level/1.3/:p,z,goal;level/1.3/:p,z,goal;!levellevel说明的是目标规划的优先级,有三个变量说明的是目标规划的优先级,有三个变量p p,z z,和,和goalgoal。其中。其中p p表示优先级,表示优先级,goalgoal表表示相应优先级时的最优目标值。示相应优先级时的最优目标值。!“!“1.31.3”的意思是从”的意思是从1 1到到3 3的所有整数。的所有整数。!基本集合的定义格式为:基本集合的定义格式为:setname/member_setname
9、/member_ list/:attribute_list;list/:attribute_list;其中其中setnamesetname为定义的集合名,为定义的集合名,member_listmember_list为元素列表,为元素列表,attribute_listattribute_list为属性列表。在“为属性列表。在“”中的”中的容,表示是可选的项,即该项可以有也可以没有。容,表示是可选的项,即该项可以有也可以没有。variable/1.2/:x;variable/1.2/:x;!x x为决策变量向量。为决策变量向量。h_con_num/1.1/:b;h_con_num/1.1/:b;!
10、在目标规划中,约束有两类。一类是对资源有严格限制的,同线性规划的处理相同,用严格!在目标规划中,约束有两类。一类是对资源有严格限制的,同线性规划的处理相同,用严格的等式或者不等式约束来处理,称此约束为刚性约束(的等式或者不等式约束来处理,称此约束为刚性约束(hardhard constraintconstraint)。)。b b表示的是刚性表示的是刚性约束的资源向量。约束的资源向量。s_con_num/1.4/:g,dplus,dminus;s_con_num/1.4/:g,dplus,dminus;!另一类约束是可以不严格限制的,连同原线性规划的目标,构成柔性约束(!另一类约束是可以不严格限
11、制的,连同原线性规划的目标,构成柔性约束(softsoftconstraintconstraint)。g g表示的是柔性约束的资源向量,表示的是柔性约束的资源向量,dplus,dminusdplus,dminus是偏差变量。是偏差变量。在目标规划中,在目标规划中,用偏差变量(用偏差变量(deviationaldeviational variablesvariables)来表示实际值与目标值之间的差异,)来表示实际值与目标值之间的差异,dplusdplus为超出为超出目标的差值,称为正偏差变量,目标的差值,称为正偏差变量,dminusdminus为未达到目标的差值,称为负偏差变量。为未达到目标的
12、差值,称为负偏差变量。h_cons(h_con_num,variable):A;h_cons(h_con_num,variable):A;!刚性约束的价值向量。!刚性约束的价值向量。s_cons(s_con_num,variable):c;s_cons(s_con_num,variable):c;!柔性约束的价值向量。!柔性约束的价值向量。obj(level,s_con_num):wplus,wminus;obj(level,s_con_num):wplus,wminus;!柔性约束在不同优先级下的权重。!柔性约束在不同优先级下的权重。endsetsendsetsdatadata:!数据输入部
13、分(从“!数据输入部分(从“datadata:”开始,到“:”开始,到“enddataenddata”结束):作用在于对集合的属性(数组)”结束):作用在于对集合的属性(数组)输入必要的常数数据。输入必要的常数数据。p=?;p=?;!常数列表中的数据之间可以用“,”或者“空格”或者“回车”分开。如果想在运行时才对!常数列表中的数据之间可以用“,”或者“空格”或者“回车”分开。如果想在运行时才对参数赋值,参数赋值,可以在数据段使用输入语句,可以在数据段使用输入语句,但这仅用于对单个变量赋值,但这仅用于对单个变量赋值,而不能用于属性变量而不能用于属性变量(数(数值)。输入语句格式为“变量名值)。输
14、入语句格式为“变量名=?;”。?;”。goal=?0;goal=?0;b=12;b=12;g=1500 0 16 15;g=1500 0 16 15;a=2 2;a=2 2;c=200 300 2-1 4 0 0 5;c=200 300 2-1 4 0 0 5;!LINGOLINGO中的数据是按列赋值的,而不是按行赋值的。中的数据是按列赋值的,而不是按行赋值的。wplus=0 0 0 0wplus=0 0 0 0 0 1 0 0 0 1 0 0 0 0 3 1;0 0 3 1;wminus=1 0 0 0wminus=1 0 0 0 0 1 0 0 0 1 0 0 0 0 3 0;0 0 3
15、0;enddataenddataminmin=sumsum(level:p*z);(level:p*z);!目标函数(“!目标函数(“min=min=”后面所接的表达式)是用求和函数“”后面所接的表达式)是用求和函数“sum(sum(集合下标:关于集合属性的表集合下标:关于集合属性的表达式达式)”的方式定义的。这个函数的功能是对语句中冒号“:”后面的表达式,按照“:”前面”的方式定义的。这个函数的功能是对语句中冒号“:”后面的表达式,按照“:”前面的集合指定的下标(元素)进行求和。这里“的集合指定的下标(元素)进行求和。这里“sumsum”相当于求和符号“”。”相当于求和符号“”。forfor
16、(level(i):(level(i):z(i)=z(i)=sumsum(s_con_num(j):wplus(i,j)*dplus(j)(s_con_num(j):wplus(i,j)*dplus(j)+sumsum(s_con_num(j):wminus(i,j)*dminus(j);(s_con_num(j):wminus(i,j)*dminus(j);!约束是用循环函数“!约束是用循环函数“for(for(集合(下标):关于集合的属性的约束关系)”的方式定义的。意集合(下标):关于集合的属性的约束关系)”的方式定义的。意思是对冒号“:”前面的集合的每个元素(下标),冒号“:”后面的约束
17、关系式都要成立。思是对冒号“:”前面的集合的每个元素(下标),冒号“:”后面的约束关系式都要成立。forfor(h_con_num(i):(h_con_num(i):sumsum(variable(j):a(i,j)*x(j)=b(i);(variable(j):a(i,j)*x(j)=b(i);forfor(s_con_num(i):(s_con_num(i):sumsum(variable(j):c(i,j)*x(j)(variable(j):c(i,j)*x(j)+dminus(i)-dplus(i)=g(i);+dminus(i)-dplus(i)=g(i);););forfor(le
18、vel(i)|i#lt#(level(i)|i#lt#sizesize(level):(level):bndbnd(0,z(i),goal(i);(0,z(i),goal(i);!限制!限制0 0=z=z(i i)=goal=goal(i i)););!这个限制条件与集合之间有一个这个限制条件与集合之间有一个“|”分开,分开,称为过滤条件。称为过滤条件。限制条件限制条件“i#lt#sizei#lt#size(levellevel)”是一个逻辑表达式,是一个逻辑表达式,意思是意思是i isizesize(levellevel)。#lt#lt#是逻辑运算符号,是逻辑运算符号,意思是意思是“小于”“
19、小于”;sizesize(levellevel)表示集合)表示集合levellevel元素的个数。元素的个数。EndEnd3 3、下面开始用、下面开始用 LINGOLINGO 中的图标或者中的图标或者 SolveSolve 命令编译模型,当程序运行时,会出现一命令编译模型,当程序运行时,会出现一个对话框,如图个对话框,如图 2.12.1。在作第一级目标计算时,。在作第一级目标计算时,p p(1 1),p p(2 2),p p(3 3)分别输入)分别输入 1 1,0 0,0 0,goalgoal(1 1)和)和 goalgoal(2 2)输入两个较大的值(例如)输入两个较大的值(例如 10000
20、0100000),表明这两项约束不起作用。运行,表明这两项约束不起作用。运行状态窗口如图状态窗口如图 2.22.2,相应信息含义见实验一表,相应信息含义见实验一表 1.11.1。图图 2.1 LINGO2.1 LINGO 的实时参数窗口的实时参数窗口图图 2.2:LINGO2.2:LINGO 运行状态窗口运行状态窗口计算结果如下:计算结果如下:Global optimal solution found.Global optimal solution found.Objective value:0.000000 Objective value:0.000000 Total solver iter
21、ations:1 Total solver iterations:1 Variable Value Reduced Cost Variable Value Reduced Cost P(1)1.000000 0.000000 P(1)1.000000 0.000000 P(2)0.000000 0.000000 P(2)0.000000 0.000000 P(3)0.000000 0.000000 P(3)0.000000 0.000000 Z(1)0.000000 0.000000 Z(1)0.000000 0.000000 Z(2)5.000000 0.000000 Z(2)5.00000
22、0 0.000000 Z(3)58.00000 0.000000 Z(3)58.00000 0.000000 GOAL(1)100000.0 0.000000 GOAL(1)100000.0 0.000000 GOAL(2)1000000.0.000000 GOAL(2)1000000.0.000000 GOAL(3)0.000000 0.000000 GOAL(3)0.000000 0.000000 X(1)0.000000 0.000000 X(1)0.000000 0.000000 X(2)5.000000 0.000000 X(2)5.000000 0.000000 B(1)12.00
23、000 0.000000 B(1)12.00000 0.000000 G(1)1500.000 0.000000 G(1)1500.000 0.000000 G(2)0.000000 0.000000 G(2)0.000000 0.000000 G(3)16.00000 0.000000 G(3)16.00000 0.000000 G(4)15.00000 0.000000 G(4)15.00000 0.000000 DPLUS(1)0.000000 0.000000 DPLUS(1)0.000000 0.000000 DPLUS(2)0.000000 0.000000 DPLUS(2)0.0
24、00000 0.000000 DPLUS(3)0.000000 0.000000 DPLUS(3)0.000000 0.000000 DPLUS(4)10.00000 0.000000 DPLUS(4)10.00000 0.000000 DMINUS(1)0.000000 1.000000 DMINUS(1)0.000000 1.000000 DMINUS(2)5.000000 0.000000 DMINUS(2)5.000000 0.000000 DMINUS(3)16.00000 0.000000 DMINUS(3)16.00000 0.000000 DMINUS(4)0.000000 0
25、.000000 DMINUS(4)0.000000 0.000000 A(1,1)2.000000 0.000000 A(1,1)2.000000 0.000000 A(1,2)2.000000 0.000000 A(1,2)2.000000 0.000000 C(1,1)200.0000 0.000000 C(1,1)200.0000 0.000000 C(1,2)300.0000 0.000000 C(1,2)300.0000 0.000000 C(2,1)2.000000 0.000000 C(2,1)2.000000 0.000000 C(2,2)-1.000000 0.000000
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- lingo 求解 多目标 规划 _ 例题

限制150内