用lingo实现,y(i)=y(j)时,x(i)不等于x(j)?

大哥大姐们:请问用lingo如何实现y(i)=y(j)时,x(i)不等于x(j)?lingo有这个功能吗?我试过了,但是不行,我的现有程序是:MODEL:data:M=7... 大哥大姐们:
请问用lingo如何实现y(i)=y(j)时,x(i)不等于x(j)?
lingo有这个功能吗?
我试过了,但是不行,我的现有程序是:
MODEL:
data:
M=7;
enddata
sets:
demand/1..m/:p,a,d,x,y;
ob/1..m/:w;

endsets
data:
p=5,3,5,6,7,12,8;
a=3,4,4,1,5,8,8;
d=5,6,6,3,7,9,10;
enddata
[OBJ] min=@sum(demand(i):2*@abs(x(i)-p(i))+3*@abs(y(i)-a(i)));
@for(demand(i):
y(i)>a(i);
y(i)<d(i););
@for(ob(i)|i+1 #le#m:w(i)=@if(y(i)#eq#y(i+1),1,0));
@for(ob(i):w(i)*x(i)=0);
@for(demand(i):w(i)+x(i)>1);
@for(demand(i):@gin(x(i)));
@for(demand(i):@gin(y(i)));
end
怎么用程序表示当y相同时,x不同?
展开
 我来答
high_jah
2008-05-31 · TA获得超过224个赞
知道答主
回答量:104
采纳率:0%
帮助的人:118万
展开全部
改了一点,在逻辑上没有问题,但是就不是线性模型了,用全局最优器解。
你看看吧!
MODEL:
data:
M=7;
enddata
sets:
demand/1..m/:p,a,d,x,y;
ob/1..m/:w;
link(demand,demand):aa;
endsets
data:
p=5,3,5,6,7,12,8;
a=3,4,4,1,5,8,8;
d=5,6,6,3,7,9,10;
enddata
[OBJ] min=@sum(demand(i):2*@abs(x(i)-p(i))+3*@abs(y(i)-a(i)));
@for(demand(i):
y(i)>a(i);
y(i)<d(i););
@for(ob(i)|i+1 #le#m:w(i)=@if(y(i)#eq#y(i+1),1,0));
@for(ob(i):w(i)*x(i)=0);
@for(demand(i):w(i)+x(i)>1);
@for(demand(i):@gin(x(i)));
@for(demand(i):@gin(y(i)));
@for(demand(i):
@for(demand(j)|j #ne# i:x(i)+y(i)=x(j)+y(j)+aa(i,j)));
@for(demand(i):
@for(demand(j):@free(aa(i,j))));
@for(link:
@free(aa));
@for(link:aa*aa>0);

end
peterzhang1996
2008-06-01
知道答主
回答量:13
采纳率:0%
帮助的人:0
展开全部
zz
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式