lingo sample code for a QP problem

model:

sets:
	P/0,1,2,3,10/: pSize;		
	P2P(P, P)/@file('e:/qali/pagesel/ham4.txt')/: distance;	
	F/@file('e:/qali/pagesel/004a.gf.out')/: fSize;		
	E(F, F, F): factor;
	F2P(F, P) | pSize(&1) #eq# 0 #or# &2 #ne# 0 : x,r;	
	E2P2P(E, P, P): z;	
	
endsets

data:
	pSize = 2048;	
	distance = @file('e:/qali/pagesel/ham4.txt');
	fSize = @file('e:/qali/pagesel/004a.gf.out');
	E, factor = @file('e:/qali/pagesel/004a.gf.out');	

	!output;
	@text('e:/qali/pagesel/004a.txt') = x;
enddata

!goal;
!min = @sum(E(f1, f2, f3):  @sum(P2P(p1,p2): x(f1,p1)*x(f2,p2)*distance(p1,p2)*factor(f1, f2, f3) ) );
min = @sum(E(f1,f2,i): @sum(P2P(p1,p2): z(f1,f2,i,p1,p2)*distance(p1,p2))) ;

!binary constraits;
@for( F2P: @bin(x));
@for( E2P2P: @bin(z));

!edge constraits;
@for(E(f1,f2,f3): @for(P2P(i,j): z(f1,f2,f3,i,j) > x(f1,i) + x(f2,j) - 1) );
@for( E(f1,f2,f3): @sum(P2P(i,j): z(f1,f2,f3,i,j) ) = 1);

@for(F2P(i,j): r(i,j) >= fSize(i) + @sum(E(f1,f2,i): @sum(P2P(p1,p2): z(f1,f2,i,p1,p2)*distance(p1,p2))) + (x(i,j)-1)*pSize(j) );

!allocate constraits;
@for( F(i): @sum(P(j): x(i,j)) = 1 );

@for( P(j): @sum(F(i): r(i,j) ) <= pSize(j) ); 
!@for( P(j): @sum(F(i): x(i,j)*(fSize(i) + @sum(E(f1, f2, i):  @sum(P2P(p1,p2):@floor((x(f1,p1) + x(f2,p2))/2) * distance(p1,p2)*factor(f1, f2, i)) ) ) ) <= pSize(j) );

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值