有意者请入其实不算太难,LINGO 运输规划程序
结果是没有可行解,为何??数据太多吗???谢谢在线等。。。那个表情是“:@”不知为何变表情了
model:
sets:
warehouses/wh1..wh6/:capacity;
vendors/v1..v18/:demand;
links(warehouses,vendors):cost,volume;
endsets
!目标函数;
min=@sum(links:cost*volume*1);
!需求约束;
@for(vendors(j)sum(warehouses(i):volume(i,j))=demand(j);
!产量约束;
@for(warehouses(i)sum(vendors(j):volume(i,j))<=capacity(i));
@for(linksgin(volume));
!数据;
data:
capacity=1000 800 800 800 1000 700;
demand=260 400 1300 420 600 300 220 300 300 320 480 300 300 800 280 450 1200 700;
cost= 0 1520 1100 1400 1400 1600 1630 5100 2800 2100 3380 2680 1850 1750 1150 1000 730 940
1520 0 2620 2330 1630 1830 3150 5330 3030 2330 3610 2910 1530 1980 780 1330 2250 2460
1100 2620 0 300 1600 1800 2730 5300 3000 2300 3580 2880 2050 1250 1850 1300 1830 2040
1400 2330 300 0 1300 1500 3030 5000 2700 2000 3280 2580 1750 950 1550 1000 2130 2340
1400 1630 1600 1300 0 200 3030 3700 1400 700 1980 1280 450 350 850 400 2130 2340
1600 1830 1800 1500 200 0 3230 3500 1200 500 1780 1080 650 550 1050 600 2330 2540;
enddata
end
有没有人呐。。。。。。。。。。。。。。。。。。。。。。。。。 顶起呐,自己来 给这么多分都没有帮我??
{:soso__12444520245742863318_4:} model:
sets:
warehouses/wh1..wh6/:capacity;
vendors/v1..v18/:demand;
links(warehouses,vendors):cost,volume;
endsets
!数据;
data:
capacity=1000 800 800 800 1000 700;
demand=260 400 1300 420 600 300 220 300 300 320 480 300 300 800 280 450 1200 700;
cost= 0 1520 1100 1400 1400 1600 1630 5100 2800 2100 3380 2680 1850 1750 1150 1000 730 940
1520 0 2620 2330 1630 1830 3150 5330 3030 2330 3610 2910 1530 1980 780 1330 2250 2460
1100 2620 0 300 1600 1800 2730 5300 3000 2300 3580 2880 2050 1250 1850 1300 1830 2040
1400 2330 300 0 1300 1500 3030 5000 2700 2000 3280 2580 1750 950 1550 1000 2130 2340
1400 1630 1600 1300 0 200 3030 3700 1400 700 1980 1280 450 350 850 400 2130 2340
1600 1830 1800 1500 200 0 3230 3500 1200 500 1780 1080 650 550 1050 600 2330 2540;
enddata
!目标函数;
min=@sum(links(i,j):cost(i,j)*volume(i,j)*1);
!需求约束;
@for(vendors(j):@sum(warehouses(i):volume(i,j))=demand(j);
!产量约束;
@for(warehouses(i):@sum(vendors(j):volume(i,j))<=capacity(i));
@for(links(i,j):@gin(volume(i,j)));
end
改了一下,好像最后一个end有错,有点事,你先看看! 这三个地方要改一下:
@for(vendors(j)sum(warehouses(i):volume(i,j))=demand(j);
!产量约束;
@for(warehouses(i)sum(vendors(j):volume(i,j))<=capacity(i));
@for(links(i,j)gin(volume(i,j)));
改为:
!需求约束;
@for(vendors(j):
@sum(warehouses(i):volume(i,j))=demand(j);
!产量约束;
@for(warehouses(i):
@sum(vendors(j):volume(i,j))<=capacity(i));
@for(links(i,j):
@gin(volume(i,j)));
但还是运行不了,可能是数据有误,能将题目拿出来看看?
@便表情应该是全角与半角的转化问题,可能你是没有注意到它们间的转化。 确实不算难!就是不会! 本帖最后由 qlb061 于 2012-6-28 18:20 编辑
有些语法错误,已经修改了;另外添加了CALC部分帮你诊断可能的错误,总供给无法满足所有需求!model:
sets:
warehouses/wh1..wh6/:capacity;
vendors/v1..v18/:demand;
links(warehouses,vendors):cost,volume;
endsets
!目标函数;
min=@sum(links:cost*volume*1);
!需求约束;
@for(vendors(j):@sum(warehouses(i):volume(i,j))=demand(j));
!产量约束;
@for(warehouses(i):@sum(vendors(j):volume(i,j))<=capacity(i));
@for(links:@gin(volume));
!数据;
data:
capacity=1000 800 800 800 1000 700;
demand=260 400 1300 420 600 300 220 300 300 320 480 300 300 800 280 450 1200 700;
cost= 0 1520 1100 1400 1400 1600 1630 5100 2800 2100 3380 2680 1850 1750 1150 1000 730 940
1520 0 2620 2330 1630 1830 3150 5330 3030 2330 3610 2910 1530 1980 780 1330 2250 2460
1100 2620 0 300 1600 1800 2730 5300 3000 2300 3580 2880 2050 1250 1850 1300 1830 2040
1400 2330 300 0 1300 1500 3030 5000 2700 2000 3280 2580 1750 950 1550 1000 2130 2340
1400 1630 1600 1300 0 200 3030 3700 1400 700 1980 1280 450 350 850 400 2130 2340
1600 1830 1800 1500 200 0 3230 3500 1200 500 1780 1080 650 550 1050 600 2330 2540;
enddata
CALC:
@SET('TERSEO',1);
TOTALDEMAND=@SUM(VENDORS:DEMAND);
TOTALSUPPLY=@SUM(WAREHOUSES:CAPACITY);
@SOLVE();
@WRITE('TOTAL DEMAND IS: ',TOTALDEMAND,@NEWLINE(1));
@WRITE('TOTAL SUPPLY IS: ',TOTALSUPPLY,@NEWLINE(1));
@IFC(TOTALDEMAND #GT# TOTALSUPPLY:
@WRITE('THE DEMANDS ARE TOO BIG TO BE MET!',@NEWLINE(2));
@DEBUG();
);
@SET('TERSEO');
ENDCALC
end
页:
[1]
2