AMPL EROR - 无界变量

时间:2016-10-08 10:32:17

标签: ampl

我用解算器gurobi解决问题,我得到以下错误:Gurobi 5.1.0:无界; variable.unbdd返回。

我的代码:

example.mod

set nusos;
set centr within nusos;
set links within ( nusos cross nusos );
set origens within centr;
set destins within centr;
set odpair within ( origens cross destins );
set destperorig { i in origens } :=
setof { (i1, j1) in odpair : i = i1 } j1;

param g{odpair} >0;
param t0{links};
param Tdreta { i in nusos, k in origens }:=
if i in destperorig[k] then -1.0*g[k, i]
else
if i = k then sum {j in destperorig[k]} g[k, j] else 0;

node N {i in nusos, k in origens}: net_out = Tdreta[i, k];

arc v_k { (i, j) in links, k in origens } >= 0,
from N[i, k], to N[j, k] ;

var v { (i, j) in links };

minimize Vg: sum { (i, j) in links } v[i, j]*t0[i, j];

example.dat

set nusos:= 1 2 3 4 5 6 7 8 9;
set centr:= 1 2 3 4;
set links:=
(1,5)
(3,8)
(5,6)
(5,8)
(5,9)
(6,7)
(7,2)
(7,9)
(8,5)
(8,6)
(9,4)
(9,7);

set origens:= 1 3;
set destins:= 2 4;

set odpair:=
(1,2)
(3,4);

param g:=
1 2 400
3 4 400;


param t0:=
1 5 0.1
3 8 0.1
5 6 0.2
5 8 0.7
5 9 0.5
6 7 1.0
7 2 0.1
7 9 0.1
8 5 1.0
8 6 1.0
9 4 0.08
9 7 0.7;

我无法看到问题。有什么建议吗?请解释一下。

1 个答案:

答案 0 :(得分:0)

你的问题是无限的,因为变量v是无界的,只出现在目标中。因此,您可以通过选择适当的v小值来使目标任意小。