不爽 发表于 2014-11-25 10:47

大神帮我看看这个很急!!很急!!!

model:
sets:
teacher/T1..T12/:labour,inf,sup;
course/B1..B2/:workload;
links(teacher,course):evaluation,volume;
endsets
!每个老师教的课不能超过三门;
@for(teacher(I):
  @sum(course(J): volume(I,J))<=3;
);

!每堂课只能由一个老师教;
@for(course(J):
  @sum(teacher(I): volume(I,J))=1;
);

!劳动力约束;
@for(teacher(I):
    @sum(course(J): cost(I,J)*volume(I,J))<=labour(I);
);

@for(teacher(I):
   @sum(course(J):course(J)*volume(I,J)>=inf(I);
);

@for(teacher(I):
   @sum(course(J):course(J)*volume(I,J)<=sup(I);
);

@for(links: @bin(volume));

!目标函数;
min=@sum(links: cost*volume);

data:
cost=
17.6        17.6        2.48        2.56        2.96        2.4        2.4        17.6        2.64        2.72        17.6        17.6
1.44        1.44        12.6        12.6        1.2        1.26        1.26        1.32        1.5        1.5        1.2        1.26
3.96        20.7        3.6        20.7        3.6        4.05        20.7        4.05        20.7        20.7        3.96        20.7
1.01        14.4        0.72        14.4        0.72        1.08        14.4        1.08        14.4        14.4        1.01        14.4
1.76        1.76        1.76        20        1.76        2.24        1.76        20        1.76        2.14        2.14        20
24.4        24.4        24.4        24.4        24.4        24.4        24.4        3.08        24.4        24.4        3.12        3.23
0.88        0.8        1.2        0.88        1.12        16        16        16        1.12        1.04        16        16
0.65        0.81        0.54        0.645        10.8        10.8        0.76        10.8        10.8        0.54        10.8        10.8
20.2        20.2        2.3        1.92        20.2        20.2        2.21        20.2        20.2        2.11        20.2        20.2
0.8        16        16        16        0.8        16        0.8        24        16        16        16        16
3.8        23.6        23.6        23.5        4.22        3.8        3.8        4.38        23.6        23.6        4.32        23.6
1.12        22.4        22.4        22.4        1.56        1.12        1.12        1.48        22.4        22.4        1.68        22.4
2.06        23.1        23.1        1.84        23.1        23.1        2.26        23.1        23.1        23.1        23.1        23.1
3.78        20.7        20.7        3.6        20.7        20.7        3.58        20.7        20.7        20.7        20.7        20.7
25.3        25.3        25.3        25.3        25.3        25.3        4        4        25.3        25.3        4        4
23.6        23.6        23.6        23.6        23.6        23.6        3.84        3.84        23.6        23.6        3.84        3.84
22.4        22.4        22.4        22.4        22.4        22.4        22.4        1.34        22.4        22.4        1.12        1.12
1.12        0.88        0.8        16        1.12        16        0.06        1.2        0.8        0.8        16        16
22.1        22.1        22.1        3.94        22.1        4.32        3.84        22.1        22.1        3.84        22.1        22.1
24.1        24.1        24.1        2.6        24.2        3.44        2.52        24.2        24.2        2.88        24.2        24.1
2.3        2.3        2.3        2        20.8        2.1        1.8        20.8        20.8        20.8        20.8        20.8;

labour:
5.5        5.5        5.5        5.5        5.5        5.5        5.5        5.5        5.5        5.5        5.5        3.5        3.5;

inf:
3.6        3.6        3.6        3.6        3.6        3.6        3.6        3.6        3.6        3.6        3.6        0.8        0.8;

sup:
4.8        4.8        4.8        4.8        4.8        4.8        4.8        4.8        4.8        4.8        4.8        3.2        3.2;
enddata
endinvalid input error 11

QYY1994 发表于 2014-11-27 17:46

你这是用LINGO编写的程序吧!你想问的问题是什么,可以说清楚一点吗?

madio 发表于 2014-11-30 17:19

我把代码改了一下,代码没有问题了,可能数据还有问题,你看一下你的数据是不是对的model:
sets:
teacher/T1..T12/:labour,inf,sup;
course/B1..B2/:workload;
links(teacher,course):evaluation,volume,cost;
endsets
!每个老师教的课不能超过三门;
@for(teacher(I):
  @sum(course(J): volume(I,J))<=3;
);

!每堂课只能由一个老师教;
@for(course(J):
  @sum(teacher(I): volume(I,J))=1;
);

!劳动力约束;
@for(teacher(I):
    @sum(course(J): cost(I,J)*volume(I,J))<=labour(I);
);

@for(teacher(I):
   @sum(course(J):workload(J)*volume(I,J))>=inf(I);
);

@for(teacher(I):
   @sum(course(J):workload(J)*volume(I,J))<=sup(I);
);

@for(links: @bin(volume));

!目标函数;
min=@sum(links: cost*volume);

data:
cost=
17.6        17.6        2.48        2.56        2.96        2.4        2.4        17.6        2.64        2.72        17.6        17.6
1.44        1.44        12.6        12.6        1.2        1.26        1.26        1.32        1.5        1.5        1.2        1.26
3.96        20.7        3.6        20.7        3.6        4.05        20.7        4.05        20.7        20.7        3.96        20.7
1.01        14.4        0.72        14.4        0.72        1.08        14.4        1.08        14.4        14.4        1.01        14.4
1.76        1.76        1.76        20        1.76        2.24        1.76        20        1.76        2.14        2.14        20
24.4        24.4        24.4        24.4        24.4        24.4        24.4        3.08        24.4        24.4        3.12        3.23
0.88        0.8        1.2        0.88        1.12        16        16        16        1.12        1.04        16        16
0.65        0.81        0.54        0.645        10.8        10.8        0.76        10.8        10.8        0.54        10.8        10.8
20.2        20.2        2.3        1.92        20.2        20.2        2.21        20.2        20.2        2.11        20.2        20.2
0.8        16        16        16        0.8        16        0.8        24        16        16        16        16
3.8        23.6        23.6        23.5        4.22        3.8        3.8        4.38        23.6        23.6        4.32        23.6
1.12        22.4        22.4        22.4        1.56        1.12        1.12        1.48        22.4        22.4        1.68        22.4
2.06        23.1        23.1        1.84        23.1        23.1        2.26        23.1        23.1        23.1        23.1        23.1
3.78        20.7        20.7        3.6        20.7        20.7        3.58        20.7        20.7        20.7        20.7        20.7
25.3        25.3        25.3        25.3        25.3        25.3        4        4        25.3        25.3        4        4
23.6        23.6        23.6        23.6        23.6        23.6        3.84        3.84        23.6        23.6        3.84        3.84
22.4        22.4        22.4        22.4        22.4        22.4        22.4        1.34        22.4        22.4        1.12        1.12
1.12        0.88        0.8        16        1.12        16        0.06        1.2        0.8        0.8        16        16
22.1        22.1        22.1        3.94        22.1        4.32        3.84        22.1        22.1        3.84        22.1        22.1
24.1        24.1        24.1        2.6        24.2        3.44        2.52        24.2        24.2        2.88        24.2        24.1
2.3        2.3        2.3        2        20.8        2.1        1.8        20.8        20.8        20.8        20.8        20.8;

labour:
5.5        5.5        5.5        5.5        5.5        5.5        5.5        5.5        5.5        5.5        5.5        3.5        3.5;

inf:
3.6        3.6        3.6        3.6        3.6        3.6        3.6        3.6        3.6        3.6        3.6        0.8        0.8;

sup:
4.8        4.8        4.8        4.8        4.8        4.8        4.8        4.8        4.8        4.8        4.8        3.2        3.2;
enddata
end

liwenhui 发表于 2014-12-1 11:17

cost是个12行2列的矩阵,那么你的数据是不是应该写成12X2的形式呢?
页: [1]
查看完整版本: 大神帮我看看这个很急!!很急!!!