Thanks Dr. Johan,
I wrote a minimal example for debugging where the problem is. Here is the file that is attached in this post. The result shows as follows.
% traffic demands
T=[
0 5 5 5;
0 0 10 15;
0 0 0 5;
0 15 0 0;];
-- output
reached traffic demands
...
reached a solver
===== result: long links
Polynomial scalar (real, binary, 4 variables, current value : 0)
Polynomial scalar (real, binary, 4 variables, current value : 0)
Polynomial scalar (real, binary, 4 variables, current value : 0)
Polynomial scalar (real, binary, 4 variables, current value : 50)
===== result: short links
Bilinear scalar (real, binary, 4 variables, current value : 14)
Bilinear scalar (real, binary, 4 variables, current value : 20)
===== result: traffic links
Bilinear scalar (real, binary, 4 variables, current value : 4)
Polynomial scalar (real, binary, 4 variables, current value : 5)
Polynomial scalar (real, binary, 4 variables, current value : 5)
ans =
0
Polynomial scalar (real, binary, 4 variables, current value : 10)
Polynomial scalar (real, binary, 4 variables, current value : 15)
ans =
0
ans =
0
Bilinear scalar (real, binary, 4 variables, current value : 5)
ans =
0
Polynomial scalar (real, binary, 4 variables, current value : 15)
ans =
0
--
It shows that One decision variable x(4) is selected. Long link l(4)=50 meets its constraint requirement. Short links s(1)=14; s(2)=20 also meet their constraint requirements.
I would expect that when I increase the traffic demands with more traffics on sources to destinations, it should increase the number of long links to meet all constraints, for instance, the result shows two decision variables x(4) and x(2) to handle all increased traffic and guarantee to meet all constraint requirements. When the traffic demands increase higher, if x(2) and x(4) can't handle such a higher traffics, it creates more decision variable x, say x(1), so on so forth.
The infeasible solution should occur when all resources long links capacity can not handle the traffic demands through the network, so it is apparent that there is not enough resources on long links to handle the traffic demands.
However, the problem is that when I increase the traffic demand, it shows the infeasible solution.
% traffic demands increased T(1,3)=6
T=[
0 5 6 5;
0 0 10 15;
0 0 0 5;
0 15 0 0;];
-- output
reached a solver
===== result: long links
Polynomial scalar (real, binary, 4 variables, current value : 0)
Polynomial scalar (real, binary, 4 variables, current value : 0)
Polynomial scalar (real, binary, 4 variables, current value : 0)
Polynomial scalar (real, binary, 4 variables, current value : 0)
===== result: short links
Bilinear scalar (real, binary, 4 variables, current value : 5)
Bilinear scalar (real, binary, 4 variables, current value : 5)
===== result: traffic links
Bilinear scalar (real, binary, 4 variables, current value : 5)
Polynomial scalar (real, binary, 4 variables, current value : 0)
Polynomial scalar (real, binary, 4 variables, current value : 0)
ans =
0
Polynomial scalar (real, binary, 4 variables, current value : 0)
Polynomial scalar (real, binary, 4 variables, current value : 0)
ans =
0
ans =
0
Bilinear scalar (real, binary, 4 variables, current value : 5)
ans =
0
Polynomial scalar (real, binary, 4 variables, current value : 0)
ans =
0
--
I have checked the long links, short links, traffic constraints from my code generator, it is correct as I expect. If so, do you guess where the error could be ? Many thanks.