马振 发表于 2013-5-15 09:17

求解释,lingo哪儿错了?

问题:一个管理人员安排4位工程师在18个月内完成3个项目。3个项目分别需要18、12、和30人-月来完成。4位工程师每个月的工资分别为3 000美元、3 500美元、3 200美元和3 900美元。求完成所有项目的总费用最小的分配方案(分配工程师到具体项目)。以下是我的lingo文件,可找不到可行解,求解释!
model:
sets:
ren/1..4/:a;
job/1..3/:b;
link(ren,job):c,x;
endsets
data:
c=3000 3000 3000
3500 3500 3500
3200 3200 3200
3900 3900 3900 ;
a=18 18 18 18;
b=12 18 30;
enddata
min=@sum(link(i,j):c(i,j)*x(i,j));
@for(ren(i):@sum(job(j):x(i,j))<a);
@for(job(j):@sum(ren(i):x(i,j))=b);
@for(link(i,j):@bin(x(i,j)));


马振 发表于 2013-5-15 09:18

model:
sets:
ren/1..4/:a;
job/1..3/:b;
link(ren,job):c,x;
endsets
data:
c=3000 3000 3000
3500 3500 3500
3200 3200 3200
3900 3900 3900 ;
a=18 18 18 18;
b=12 18 30;
enddata
min=@sum(link(i,j):c(i,j)*x(i,j));
@for(ren(i):@sum(job(j):x(i,j))<a);
@for(job(j):@sum(ren(i):x(i,j))=b);
@for(link(i,j):@bin(x(i,j)));

马振 发表于 2013-5-15 09:19

@冒号怎么变成:@

马振 发表于 2013-5-15 09:20

        @@@@

madio 发表于 2013-5-15 11:31

要选择禁用表情才行

madio 发表于 2013-5-15 11:36

把=b改为<=b就有结果了,等于的约束太强了

马振 发表于 2013-5-15 20:16

madio 发表于 2013-5-15 11:36 static/image/common/back.gif
把=b改为

可我觉得按题目意思不就是=吗?

马振 发表于 2013-5-15 20:21

madio 发表于 2013-5-15 11:36 static/image/common/back.gif
把=b改为

还是行不通啊,谢谢你

马振 发表于 2013-5-16 00:11

终于弄出来了,谢谢大家啊1
model:
sets:
ren/1..4/:a;
job/1..3/:b;
link(ren,job):c,x;
endsets
data:
c=3000 3000 3000
3500 3500 3500
3200 3200 3200
3900 3900 3900 ;
a=18 18 18 18;
b=12 18 30;
enddata
min=@sum(link(i,j):c(i,j)*x(i,j));
@for(ren(i):@sum(job(j):x(i,j))<a(i));
@for(job(j):@sum(ren(i):x(i,j))=b(j));
@for(link(i,j):@gin(x(i,j)));

李芳 发表于 2014-4-20 15:37

页: [1]
查看完整版本: 求解释,lingo哪儿错了?