在不,有个lingo的问题 是81和92错误,我不知道问题在哪。是逻辑问题吗? 谢谢了 急死了

2025-05-08 16:04:45
推荐回答(1个)
回答1:

没有可行解 考虑一下是不是数据之类的写错了

model:
title 飞远公司配送中心选址;
sets:
supplynumber /1..3/:a; !定义供应商个数;
distributionnumber /1..5/:z,f,m1,m; !定义备选配送中心个数;
clientnumber /1..18/:q; !定义客户个数;
link21(supplynumber,distributionnumber):c,x;
link22(distributionnumber,clientnumber):d,y;
endsets
data:
e=1; !单位运费;
c=322 247 451 580 075
080 402 211 273 286
276 161 312 549 138; !供应商到配送中心运输距离;
d=322 147 276 000 397 080 095 110 163 178 169 351 316 278 258 445 525 419
247 388 161 397 000 402 336 198 423 354 211 507 202 238 177 321 249 119
451 227 362 316 202 211 304 287 363 363 077 497 000 387 342 142 320 085
580 209 549 351 507 273 435 399 434 434 426 000 262 497 454 142 320 347
075 286 138 278 238 384 193 161 375 186 355 497 387 000 043 633 440 344;
!配送中心到客户运输距离;
m=30 20 30 25 25; !配送中心对产品管理费用;
f=800 700 600 630 750; !配送中心固定投资费用;
a=872 748 556; !供应商的供应能力;
m1=900 800 700 700 800; !配送中心的建设容量;
q=184 172 155 125 121 117 114 112 106 98 96 92 89 87 77 72 65 56;
!客户需求量;
enddata
min=@sum(link21(k,i):c(k,i)*e*x(k,i))+@sum(link22(i,j):d(i,j)*e*y(i,j))+@sum(link21(k,i):m(i)*x(k,i))+@sum(distributionnumber(i):z(i)*f(i));
!目标函数;
@for(supplynumber(k):@sum(distributionnumber(i):x(k,i))!供货能力约束;
@for(clientnumber(j):@sum(distributionnumber(i):y(i,j))>q(j));
!配送中心满足客户需求约束;
@for(distributionnumber(i):@sum(clientnumber(j):y(i,j))!需求量小于配送中心容量约束;
@for(distributionnumber(i):@sum(supplynumber(k):x(k,i))!配送量小于配送中心容量约束;
@for(distributionnumber(i):@sum(supplynumber(k):y(k,i))=@sum(clientnumber(j):y(i,j)));
!配送中心货物进出量相等约束;
@for(distributionnumber(i):@bin(z(i)));
!z的取值约束(0或1);
end