Hi Pete,<div><br></div><div>Do the differences you are observing have to do with changes in the optimal solution value or just what (alternative) optimal solution is actually produced and/or how long it takes to produce it (what the search tree looks like)? Differences in the search with different compilers/platforms/optimization levels are going to occur with any solver. Ideally, those differences should not lead to differences in the resulting solution value, but differences in which of the optima are produced is inevitable. You are correct that it is at least partially due to differences in floating point values and also differences in the ways ties get arbitrarily broken with different optimization levels and with different compilers. This should not affect correctness of the algorithm, just the order in which operations are done. Things get even messier when parallelism is involved. </div>

<div><br></div><div>There are isolated cases in which numerical difficulties can lead to incorrect solutions being produced. There have been experiments showing that even the commercial solvers can end up producing different solution values for the same problem. In general, this should not happen for &quot;well-behaved&quot; instances. I would be surprised to see it with a 0, +1, -1 matrix. Feel free to pass on the instances to me. If nothing else, they may provide good test cases for us.</div>

<div><br></div><div>Cheers,</div><div><br></div><div>Ted</div><div>
<br><div class="gmail_quote">On Thu, Sep 15, 2011 at 12:44 AM, Peter Moceyunas <span dir="ltr">&lt;<a href="mailto:moce@stretchinc.com" target="_blank">moce@stretchinc.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


Hi,<br>
<br>
I have built symphony 5.4.0 on the same machine 5 different ways each using the same gcc compiler (3.4.4) but with different optimization flags: -g, -O0, -O1, -O2 and -O3.<br>
<br>
I have models in which symphony produces different results across 1 or more of the different symphony executables.<br>
I am guessing that this is occurring because of differences in floating point values due to the different register spills generated by the different optimization levels but not sure how to confirm this.<br>
<br>
Further different compilers I have tried will generate different results - this is an issue as we would like our tool to produce the same result across linux and windows.<br>
<br>
The models have a large number of constraints (20K-30K) and variables(10-30K) but typically solve fast (&lt;few minutes) with no branching.<br>
I believe all the coefficients in constraints and objective function of the LP are either 1 or -1<br>
<br>
I can send examples if you are interested.<br>
<br>
Any thoughts or suggestions ?<br>
<br>
Pete<br>
<br>
______________________________<u></u>_________________<br>
Symphony mailing list<br>
<a href="mailto:Symphony@list.coin-or.org" target="_blank">Symphony@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/symphony" target="_blank">http://list.coin-or.org/<u></u>mailman/listinfo/symphony</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Dr. Ted Ralphs<br>Associate Professor, Lehigh University<br><a href="tel:%28610%29%20628-1280" value="+16106281280" target="_blank">(610) 628-1280</a><br>ted &#39;at&#39; lehigh &#39;dot&#39; edu<br>

<a href="http://coral.ie.lehigh.edu/~ted" target="_blank">coral.ie.lehigh.edu/~ted</a><br>
<br>
</div>