<br><font size=2 face="sans-serif">Jan-Willem,</font>
<br>
<br><font size=2 face="sans-serif">The easy answer is that "resolve"
is designed mainly for branch and bound so has a bias towards the dual
algorithm while "initialsolve" does not. So initialSolve
used primal while resolve used dual. When there are odd values involved
or other lack of accuracy the use of tolerances means that simplex can
get a local optimum (or infeasible solution in this case).</font>
<br>
<br><font size=2 face="sans-serif">If the problem (with 1.0e-17 element
values) is actually infeasible with a zero feasibility tolerance then the
results are reasonable. If it should be feasible, even with a zero
tolerance, then it is a defect in the code. If you wish me to investigate
further then I can.</font>
<br>
<br><font size=2 face="sans-serif">John Forrest</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>"Jan-Willem Goossens"
<j.goossens@t75.nl></b> </font>
<br><font size=1 face="sans-serif">Sent by: coin-discuss-bounces@list.coin-or.org</font>
<p><font size=1 face="sans-serif">02/07/2006 08:16 AM</font>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
Discussions about open source software for Operations Research
<coin-discuss@list.coin-or.org></font></div></table>
<br>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">"Discussions about open source
software for Operations Research" <coin-discuss@list.coin-or.org></font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">[Coin-discuss] OsiClp initialSolve vs
resolve</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><tt><font size=2>Dear all,<br>
<br>
While attempting to solve my LP problem via OsiClp, I noticed the following:<br>
<br>
after an initialSolve, I modify the problem (change some coefficients in<br>
the constraints etc.), and<br>
<br>
1) try a "resolve". This results in "Primal Infeasible"<br>
<br>
or, I modify my source code to alternatively<br>
<br>
2) try another "initialSolve". This finds the (correct) optimal
solution.<br>
<br>
>From the log file, I noticed that I was putting in some 1e-17<br>
coefficients. After removing these, _both_ approaches above worked fine<br>
(So I'm happy basically..)<br>
<br>
However, I was hoping someone could shed some light on why doing another<br>
initialSolve works fine, whereas the resolve fails.<br>
<br>
With OsiCpx (CPLEX 9.0.2), both the resolve and initialSolve work fine<br>
even _with_ the 1e-17 coefficients.<br>
<br>
Oh, and I'm running today's tarball sources (07/02/2006).<br>
<br>
Below are the interesting parts of the two logs.<br>
<br>
Thanks in advance,<br>
<br>
Jan-Willem<br>
<br>
<br>
<br>
<br>
---------------<br>
The failing "resolve" log:<br>
<br>
... (here the first solve does its thing)<br>
Clp0102I 88 1.55291e+007 In: C74 Out: R118 dj ratio 0.00934009 distance
0<br>
Clp0060I Primal error 1.13687e-013, dual error 1.13671e-016<br>
Clp0006I 88 Obj 1.55291e+007<br>
Clp0025I Looking optimal checking bounds with 1e+010<br>
Clp0013I Going back to original objective<br>
Clp0060I Primal error 1.13687e-013, dual error 0<br>
Clp0025I Looking optimal checking bounds with 1e+010<br>
Clp0000I Optimal - objective value 1.55291e+007<br>
Clp0033I Dual took 0.67 seconds (total 0.85)<br>
Coin0511I After Postsolve, objective 1.55291e+007, infeasibilities - dual<br>
0 (0), primal 0 (0)<br>
Clp0032I Optimal objective 15529105.63 - 88 iterations time 0.852,<br>
Presolve 0.18<br>
(-----------here the _first_ solve ends)<br>
Clp1001I Initial range of elements is 1.17553e-017 to 9.25e+006<br>
Clp1002I Range of elements is 2.42439e-009 to 4.12475e+008<br>
Clp1002I Range of elements is 4.5576e-005 to 21941.4<br>
Clp1003I Final range of elements is 3.94313e-006 to 100<br>
Clp0022I Absolute values of scaled rhs range from 23.5309 to 63574.8,<br>
minimum gap 1e+100<br>
Clp0020I Absolute values of scaled objective range from 134289 to<br>
1.27223e+006<br>
Clp0021I Absolute values of scaled bounds range from 0.0704473 to 70.3883,<br>
minimum gap 0.0704473<br>
Clp0060I Primal error 1.16173e-005, dual error 7.86685e-011<br>
Clp0060I Primal error 1.16173e-005, dual error 7.86685e-011<br>
Clp0006I 0 Obj -3.37723e+008 Dual inf 2.369e+007 (185)<br>
Clp0060I Primal error 496, dual error 7.86685e-011<br>
Clp0102I 1 1.83038e+017 In: C1332 Out: R1959 dj ratio 1.26265e+010<br>
distance 0.000402448<br>
Clp0102I 2 1.83037e+017 In: C308 Out: R233 dj ratio 3.44977e+009 distance<br>
4.02448e-006<br>
.... (here the resolve does its work, skipping forward)<br>
Clp0102I 145 8.43696e+006 In: R274 Out: C358 dj ratio 261473 distance 1e-018<br>
Clp0102I 146 8.26764e+006 In: R233 Out: R239 dj ratio 4.20725e+010<br>
distance 4.33448<br>
Clp0102I 147 -1.02732e+007 In: C107 Out: C547 dj ratio 2051.92 distance<br>
0.0196402<br>
Clp0102I 148 -2.03486e+008 In: C32 Out: R413 dj ratio -5069.25 distance<br>
941.62<br>
Clp0060I Primal error 7.62939e-006, dual error 5.5607e-011<br>
Clp0006I 148 Obj -2.03486e+008 Primal inf 1.81325e+009 (161)<br>
Clp0001I Primal infeasible - objective value -2.03486e+008<br>
<br>
<br>
---------------<br>
The "initialSolve"-version log:<br>
<br>
... (here the first solve does its thing (same as above))<br>
Clp0102I 88 1.55291e+007 In: C74 Out: R118 dj ratio 0.00934009 distance
0<br>
Clp0060I Primal error 1.13687e-013, dual error 1.13671e-016<br>
Clp0006I 88 Obj 1.55291e+007<br>
Clp0025I Looking optimal checking bounds with 1e+010<br>
Clp0013I Going back to original objective<br>
Clp0060I Primal error 1.13687e-013, dual error 0<br>
Clp0025I Looking optimal checking bounds with 1e+010<br>
Clp0000I Optimal - objective value 1.55291e+007<br>
Clp0033I Dual took 0.71 seconds (total 0.81)<br>
Coin0511I After Postsolve, objective 1.55291e+007, infeasibilities - dual<br>
0 (0), primal 0 (0)<br>
Clp0032I Optimal objective 15529105.63 - 88 iterations time 0.812,<br>
Presolve 0.10<br>
(-----------here the _first_ solve ends)<br>
Clp1001I Initial range of elements is 1.17553e-017 to 9.25e+006<br>
Clp1002I Range of elements is 2.42439e-009 to 4.12475e+008<br>
Clp1002I Range of elements is 4.5576e-005 to 21941.4<br>
Clp1003I Final range of elements is 3.94313e-006 to 100<br>
Clp0022I Absolute values of scaled rhs range from 23.5309 to 63574.8,<br>
minimum gap 1e+100<br>
Clp0020I Absolute values of scaled objective range from 134289 to<br>
1.27223e+006<br>
Clp0021I Absolute values of scaled bounds range from 0.0704473 to 70.3883,<br>
minimum gap 0.0704473<br>
Clp0103I Primal nonlinear change 0 (6)<br>
Clp0060I Primal error 7.63312e-006, dual error 7.86685e-011<br>
Clp0103I Primal nonlinear change 0 (6)<br>
Clp0060I Primal error 7.63312e-006, dual error 7.86685e-011<br>
Clp0006I 0 Obj -3.37723e+008 Primal inf 2.23164e-005 (6) Dual inf<br>
6.2369e+008 (192)<br>
Clp0102I 1 -3.37946e+008 In: R43 Out: R43 dj -4.02448e-006 distance<br>
3.23169e-006<br>
Clp0102I 2 -3.37935e+008 In: R234 Out: R234 dj 1e+010 distance -1.11759e-006<br>
Clp0102I 3 -3.37875e+008 In: R430 Out: R430 dj 1e+010 distance -6.00517e-006<br>
Clp0102I 4 -3.3784e+008 In: R757 Out: R757 dj 1e+010 distance -3.43844e-006<br>
Clp0102I 5 -3.3784e+008 In: R1084 Out: R1084 dj -4.02448e-006 distance<br>
1.36509e-006<br>
Clp0102I 6 -3.37804e+008 In: R1275 Out: R1275 dj 1e+010 distance<br>
-3.64333e-006<br>
Clp0102I 7 -3.37767e+008 In: R1471 Out: R1471 dj 1e+010 distance<br>
-3.64333e-006<br>
Clp0102I 8 -3.37767e+008 In: R1667 Out: R1667 dj -0.000402448 distance<br>
2.29105e-007<br>
Clp0102I 9 -3.37723e+008 In: R1960 Out: R1960 dj 1e+010 distance<br>
-4.46849e-006<br>
Clp0029I End of values pass after 9 iterations<br>
Clp0060I Primal error 1.16173e-005, dual error 7.86685e-011<br>
Clp0006I 9 Obj -3.37723e+008 Dual inf 2.369e+007 (185)<br>
Clp0102I 10 -3.30113e+008 In: C102 Out: R569 dj -1.09194e+007 distance<br>
0.696859<br>
....<br>
Clp0102I 188 -7.12343e+007 In: C1589 Out: R1996 dj -0.113365 distance<br>
1.31753e-008<br>
Clp0107I For C232 btran dj -0.00855317, ftran dj 0<br>
Clp0060I Primal error 7.62939e-006, dual error 2.0063e-010<br>
Clp0006I 188 Obj -7.12343e+007 Dual inf 5766 (26)<br>
Clp0060I Primal error 7.62939e-006, dual error 2.0063e-010<br>
Clp0102I 189 -7.12343e+007 In: C232 Out: R19 dj -0.00855317 distance 1e-012<br>
...<br>
Clp0102I 213 -7.11638e+007 In: C1586 Out: C1618 dj -0.00262515 distance<br>
1.4281e-012<br>
Clp0060I Primal error 8.26828e-006, dual error 2.0063e-010<br>
Clp0006I 213 Obj -7.11638e+007<br>
Clp0017I Looking optimal with tolerance of 1e-007<br>
Clp0060I Primal error 8.26828e-006, dual error 2.0063e-010<br>
Clp0000I Optimal - objective value -7.11638e+007<br>
_______________________________________________<br>
Coin-discuss mailing list<br>
Coin-discuss@list.coin-or.org<br>
http://list.coin-or.org/mailman/listinfo/coin-discuss<br>
</font></tt>
<br>