数学建模社区-数学中国
标题:
求大神帮我看看这个程序问题出在哪
[打印本页]
作者:
lyfsky
时间:
2017-3-16 22:34
标题:
求大神帮我看看这个程序问题出在哪
model:
sets:
house/1,2,3/:m,v;
cargo/1,2,3,4/:p,q,c;
link(house,cargo):x;
endsets
data:
!每个货舱所能容纳的最大质量;
m=10,16,8;
!每个货舱所能容纳的最大体积;
v=6800,8700,5300;
!每种货物的质量;
p=18,15,23,12;
!每种货物的体积(m^3*t^-1);
q=480,650,580,390;
!每种货物的利润;
c=3100,3800,3500,2850;
enddata
!目标;
max=@sum(link(i,j):x(i,j)*c(j));
!约束条件;
@for(house(i):@sum(cargo(j):x(i,j)/m(i))=@sum(cargo(j):x(i+1,j)/m(i+1)));
@for(house(i):@sum(cargo(j): x(i,j)<=m(i));
@for(house(i):@sum(cargo(j):x(i,j)*q(j)<=v(i)));
@for(cargo(j):@sum(house(i):x(i,j)<=p(j)));
作者:
liwenhui
时间:
2017-3-17 09:28
这样就可以了:
model:
sets:
house/1,2,3/:m,v;
cargo/1,2,3,4/:p,q,c;
link(house,cargo):x;
endsets
data:
!每个货舱所能容纳的最大质量;
m=10,16,8;
!每个货舱所能容纳的最大体积;
v=6800,8700,5300;
!每种货物的质量;
p=18,15,23,12;
!每种货物的体积(m^3*t^-1);
q=480,650,580,390;
!每种货物的利润;
c=3100,3800,3500,2850;
enddata
!目标;
max=@sum(link(i,j):x(i,j)*c(j));
!约束条件;
@for(house(i):@sum(cargo(j):x(i,j)/m(i))=@sum(cargo(j)|i#le#2:x(i+1,j)/m(i+1)));
@for(house(i):@sum(cargo(j): x(i,j))<=m(i));
@for(house(i):@sum(cargo(j):x(i,j)*q(j))<=v(i));
@for(cargo(j):@sum(house(i):x(i,j))<=p(j));
end
复制代码
运行结果:
Global optimal solution found.
Objective value: 0.000000
Infeasibilities: 0.000000
Total solver iterations: 0
Model Class: LP
Total variables: 12
Nonlinear variables: 0
Integer variables: 0
Total constraints: 14
Nonlinear constraints: 0
Total nonzeros: 68
Nonlinear nonzeros: 0
Variable Value Reduced Cost
M( 1) 10.00000 0.000000
M( 2) 16.00000 0.000000
M( 3) 8.000000 0.000000
V( 1) 6800.000 0.000000
V( 2) 8700.000 0.000000
V( 3) 5300.000 0.000000
P( 1) 18.00000 0.000000
P( 2) 15.00000 0.000000
P( 3) 23.00000 0.000000
P( 4) 12.00000 0.000000
Q( 1) 480.0000 0.000000
Q( 2) 650.0000 0.000000
Q( 3) 580.0000 0.000000
Q( 4) 390.0000 0.000000
C( 1) 3100.000 0.000000
C( 2) 3800.000 0.000000
C( 3) 3500.000 0.000000
C( 4) 2850.000 0.000000
X( 1, 1) 0.000000 700.0000
X( 1, 2) 0.000000 0.000000
X( 1, 3) 0.000000 300.0000
X( 1, 4) 0.000000 950.0000
X( 2, 1) 0.000000 700.0000
X( 2, 2) 0.000000 0.000000
X( 2, 3) 0.000000 300.0000
X( 2, 4) 0.000000 950.0000
X( 3, 1) 0.000000 700.0000
X( 3, 2) 0.000000 0.000000
X( 3, 3) 0.000000 300.0000
X( 3, 4) 0.000000 950.0000
Row Slack or Surplus Dual Price
1 0.000000 1.000000
2 0.000000 38000.00
3 0.000000 98800.00
4 0.000000 129200.0
5 10.00000 0.000000
6 16.00000 0.000000
7 8.000000 0.000000
8 6800.000 0.000000
9 8700.000 0.000000
10 5300.000 0.000000
11 18.00000 0.000000
12 15.00000 0.000000
13 23.00000 0.000000
14 12.00000 0.000000
复制代码
作者:
liwenhui
时间:
2017-3-17 09:31
好像解都是0。你再考虑一下你的模型吧。
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5