LINGO used to find optimal solution:
MODEL:
SETS:
NODES/1..11/:TIME;
ARCS(NODES,NODES)/
1,2 2,3 3,4 3,5 3,8 4,6 5,7 6,8 7,8 8,9 9,10 10,11/:DUR;
ENDSETS
MIN=TIME(11) -TIME(1);
@FOR(ARCS(I,J):TIME(J) >TIME(I) +DUR(I,J));
DATA:
DUR=0.5,1,0.8,1.4,1.5,1,1.2,0,0,0.4,1.4,0.5;
ENDDATA
END
Solution report (explanatory text added with *):
Global optimal solution found at iteration: 27
Objective value: 6.400000
Variable Value Reduced Cost
TIME( 1) 0.000000 0.000000
TIME( 2) 0.5000000 0.000000
TIME( 3) 1.500000 0.000000
TIME( 4) 3.100000 0.000000
TIME( 5) 2.900000 0.000000
TIME( 6) 4.100000 0.000000
TIME( 7) 4.100000 0.000000
TIME( 8) 4.100000 0.000000
TIME( 9) 4.500000 0.000000
TIME( 10) 5.900000 0.000000
TIME( 11) 6.400000 0.000000
DUR( 1, 2) 0.5000000 0.000000
DUR( 2, 3) 1.000000 0.000000
DUR( 3, 4) 0.8000000 0.000000
DUR( 3, 5) 1.400000 0.000000
DUR( 3, 8) 1.500000 0.000000
DUR( 4, 6) 1.000000 0.000000
DUR( 5, 7) 1.200000 0.000000
DUR( 6, 8) 0.000000 0.000000
DUR( 7, 8) 0.000000 0.000000
DUR( 8, 9) 0.4000000 0.000000
DUR( 9, 10) 1.400000 0.000000
DUR( 10, 11) 0.5000000 0.000000
*Dual price indicates a critical path when its value is -. Increasing the duration of a constraint with a dual price of - will increase the duration of the whole project by the same amount.
Row Slack or Surplus Dual Price
1 6.400000 -1.000000
2 0.000000 -1.000000
3 0.000000 -1.000000
4 0.8000000 0.000000
5 0.000000 -1.000000
6 1.100000 0.000000
7 0.000000 0.000000
8 0.000000 -1.000000
9 0.000000 0.000000
10 0.000000 -1.000000
11 0.000000 -1.000000
12 0.000000 -1.000000
13 0.000000 -1.000000
Ranges in which the basis is unchanged:
*In the objective coefficient ranges block we see the amount by which each variable`s objective function coefficient may alter before becoming suboptimal. The current coefficient gives the variable`s objective function coefficient. The allowable increase shows the increase possible for the linear programme to remain optimal. The allowable decrease shows the decrease possible for the linear programme to remain optimal.
Objective Coefficient Ranges
Current Allowable Allowable
Variable Coefficient Increase Decrease
TIME( 1) -1.000000 INFINITY 0.0
TIME( 2) 0.0 INFINITY 0.0
TIME( 3) 0.0 INFINITY 0.0
TIME( 4) 0.0 0.0 0.0
TIME( 5) 0.0 INFINITY 0.0
TIME( 6) 0.0 0.0 0.0
TIME( 7) 0.0 INFINITY 0.0
TIME( 8) 0.0 INFINITY 0.0
TIME( 9) 0.0 INFINITY 0.0
TIME( 10) 0.0 INFINITY 0.0
TIME( 11) 1.000000 INFINITY 0.0
*In the righthand side ranges block we see the amount the amount by which each variable`s righthand side may alter before becoming suboptimal. The allowable increase shows the increase possible for the linear programme to remain optimal. The allowable decrease shows the decrease possible for the linear programme to remain optimal.
Righthand Side Ranges
Row Current Allowable Allowable
RHS Increase Decrease
2 0.5000000 INFINITY 0.5000000
3 1.000000 INFINITY 1.500000
4 0.8000000 0.8000000 INFINITY
5 1.400000 INFINITY 0.8000000
6 1.500000 1.100000 INFINITY
7 1.000000 0.8000000 INFINITY
8 1.200000 INFINITY 0.8000000
9 0.0 0.8000000 INFINITY
10 0.0 INFINITY 0.8000000
11 0.4000000 INFINITY 4.500000
12 1.400000 INFINITY 5.900000
13 0.5000000 INFINITY 6.400000
MODEL:
SETS:
NODES/1..11/:TIME;
ARCS(NODES,NODES)/
1,2 2,3 3,4 3,5 3,8 4,6 5,7 6,8 7,8 8,9 9,10 10,11/:DUR;
ENDSETS
MIN=TIME(11) -TIME(1);
@FOR(ARCS(I,J):TIME(J) >TIME(I) +DUR(I,J));
DATA:
DUR=0.5,1,0.8,1.4,1.5,1,1.2,0,0,0.4,1.4,0.5;
ENDDATA
END
Solution report (explanatory text added with *):
Global optimal solution found at iteration: 27
Objective value: 6.400000
Variable Value Reduced Cost
TIME( 1) 0.000000 0.000000
TIME( 2) 0.5000000 0.000000
TIME( 3) 1.500000 0.000000
TIME( 4) 3.100000 0.000000
TIME( 5) 2.900000 0.000000
TIME( 6) 4.100000 0.000000
TIME( 7) 4.100000 0.000000
TIME( 8) 4.100000 0.000000
TIME( 9) 4.500000 0.000000
TIME( 10) 5.900000 0.000000
TIME( 11) 6.400000 0.000000
DUR( 1, 2) 0.5000000 0.000000
DUR( 2, 3) 1.000000 0.000000
DUR( 3, 4) 0.8000000 0.000000
DUR( 3, 5) 1.400000 0.000000
DUR( 3, 8) 1.500000 0.000000
DUR( 4, 6) 1.000000 0.000000
DUR( 5, 7) 1.200000 0.000000
DUR( 6, 8) 0.000000 0.000000
DUR( 7, 8) 0.000000 0.000000
DUR( 8, 9) 0.4000000 0.000000
DUR( 9, 10) 1.400000 0.000000
DUR( 10, 11) 0.5000000 0.000000
*Dual price indicates a critical path when its value is -. Increasing the duration of a constraint with a dual price of - will increase the duration of the whole project by the same amount.
Row Slack or Surplus Dual Price
1 6.400000 -1.000000
2 0.000000 -1.000000
3 0.000000 -1.000000
4 0.8000000 0.000000
5 0.000000 -1.000000
6 1.100000 0.000000
7 0.000000 0.000000
8 0.000000 -1.000000
9 0.000000 0.000000
10 0.000000 -1.000000
11 0.000000 -1.000000
12 0.000000 -1.000000
13 0.000000 -1.000000
Ranges in which the basis is unchanged:
*In the objective coefficient ranges block we see the amount by which each variable`s objective function coefficient may alter before becoming suboptimal. The current coefficient gives the variable`s objective function coefficient. The allowable increase shows the increase possible for the linear programme to remain optimal. The allowable decrease shows the decrease possible for the linear programme to remain optimal.
Objective Coefficient Ranges
Current Allowable Allowable
Variable Coefficient Increase Decrease
TIME( 1) -1.000000 INFINITY 0.0
TIME( 2) 0.0 INFINITY 0.0
TIME( 3) 0.0 INFINITY 0.0
TIME( 4) 0.0 0.0 0.0
TIME( 5) 0.0 INFINITY 0.0
TIME( 6) 0.0 0.0 0.0
TIME( 7) 0.0 INFINITY 0.0
TIME( 8) 0.0 INFINITY 0.0
TIME( 9) 0.0 INFINITY 0.0
TIME( 10) 0.0 INFINITY 0.0
TIME( 11) 1.000000 INFINITY 0.0
*In the righthand side ranges block we see the amount the amount by which each variable`s righthand side may alter before becoming suboptimal. The allowable increase shows the increase possible for the linear programme to remain optimal. The allowable decrease shows the decrease possible for the linear programme to remain optimal.
Righthand Side Ranges
Row Current Allowable Allowable
RHS Increase Decrease
2 0.5000000 INFINITY 0.5000000
3 1.000000 INFINITY 1.500000
4 0.8000000 0.8000000 INFINITY
5 1.400000 INFINITY 0.8000000
6 1.500000 1.100000 INFINITY
7 1.000000 0.8000000 INFINITY
8 1.200000 INFINITY 0.8000000
9 0.0 0.8000000 INFINITY
10 0.0 INFINITY 0.8000000
11 0.4000000 INFINITY 4.500000
12 1.400000 INFINITY 5.900000
13 0.5000000 INFINITY 6.400000