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

改了一点,在逻辑上没有问题,但是就不是线性模型了,用全局最优器解.

你看看吧!

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)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