目标规划、lingo学习笔记2

在这里插入图片描述
在这里插入图片描述

lingo中如无特殊规定,变量默认大于等于0

例题

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

model:
sets:
level/1..3/:p,z,goal;
variable/1,2/:x;    
!x为决策变量向量;

hconnum/1/:b; !刚性约束,b表示刚性约束的资源向量;
sconnum/1..4/:g,dplus,dminus; !柔性约束,g表示柔性约束的资源向量,dplus,dminus是偏差变量;
hcons(hconnum,variable):A; ! 基于集合构造的集合,叫做派生集合;
scons(sconnum,variable):c;
obj(level,sconnum):wplus,wminus;
endsets

data:
p=? ? ?;
goal=? ? 0;
b=12;
g=1500 0 16 15;
a=2 2;
c=200 300 2 -1 4 0 0 5;
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);
@for(level(i):
z(i)=@sum(sconnum(j):wplus(i,j)*dplus(j))+@sum(sconnum(j):wminus(i,j)*dminus(j)));
@for(hconnum(i):
@sum(variable(j):a(i,j)*x(j))<=b(i));
@for(sconnum(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)););
End

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

例题

在这里插入图片描述
在这里插入图片描述

约束和逻辑关系式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

lingo求解规划问题例题

集合 eg:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

model:
sets:
col/1,2/:x,y,e;
row/1..6/:d,a,b;
link(row,col):c;
endsets
data:
a=1.25,8.75,0.5,5.75,3,7.25;
b=1.25,0.75,4.75,5,6.5,7.75;
d=3,5,4,7,6,11;
e=20,20;
x=5,2;
y=1,7;
enddata
min=@sum(col(j):@sum(row(i):c(i,j)*@sqrt((x(j)-a(i))^2+(y(j)-b(i))^2)));
@for(row(i):@sum(col(j):c(i,j))=d(i));
@for(col(j):@sum(row(i):c(i,j))<=e(j));
end

tips

1.lingo 不区分大小写
2.乘法符号不能省略,可以加空格
3.不能写成 x1,x2>=3;
要分两行写:
x1>=3;
x2>=3;
4.@gin(x1):要求x1是整数
5.由于lingo里默认x>=0,使用free(x)函数可以将x变成任意实数
eg:如果x是-5~5之间的实数,则需首先free(x),再令其处于-5 ~ 5
在这里插入图片描述
B站的lingo编程教学视频

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值