1 / 17
文档名称:

lingo求解多目标规划.docx

格式:docx   大小:72KB   页数:17页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

lingo求解多目标规划.docx

上传人:zhuwo11 2022/6/24 文件大小:72 KB

下载得到文件列表

lingo求解多目标规划.docx

文档介绍

文档介绍:实验二:目标规划
一、实验目的
目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题 而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛 盾。这些问题用线性规划求解就比较困难,因而提出了dminus;
!另一类约束是可以不严格限制的,连同原线性规划的目标,构成柔性约束(soft cons train t)。 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;
! LING0中的数据是按列赋值的,而不是按行赋值的。
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”分开,称为过滤条件。限制条件“i#lt#***@size (level)” 是一^逻辑表达式,意思是i〈***@size (level )o #lt#是逻辑运算符号,意思是“小于”;***@size (level )表示集合leveI元素的个数。
End
3、下面开始用LING0中的图标或者Solve 命令编译模型,当程序运行时,会出现一个 对话框,如图。在作第一级目标计算时,p (1), p (2), p (3)分别输入1, 0, 0, goal
(1)和goal (2)输入两个较大的值(例如100000),表明这两项约束不起作用。运行状 态窗口如图,相应信息含义见实验一表。
LIHG-0 Runt i_Me Input
Pie ase 1 nput a v:= for :
图LING0的实时参数窗口
图:LINGO运行状态窗口
计算结果如下:
Global optimal solution found.
Objective value:
Total solver iterations:
Variable
Value
Reduced Cost
P( 1)
P( 3)
Z( 1)