<div dir="ltr"><div><div><div>Hi Udit, <br><br></div>With the tol = 1e-5 you use I don&#39;t think the objective is actually different. The difference in obj. func. (1.3085e-006) is within the allowed tolerance.<br><br>Depending on the problem type, there are problems that the optimal solution gives the same value for the objective function but different values for the variables. If the obj. func. is strictly convex and the feasible set is convex, then there exists at most one solution. If the feasible set is compact, there exists exactly one solution. But if the obj. func. is not strictly convex then there are more than one solutions that yield the same optimal value for the obj. func.<br>
<br></div>Regards,<br></div>Kostis Nikolaou<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-04-10 9:08 GMT+03:00 Udit Gupta <span dir="ltr">&lt;<a href="mailto:gupta117@umn.edu" target="_blank">gupta117@umn.edu</a>&gt;</span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div><br></div><div>I am using IpOpt to optimize a problem with 5 decision variables in successive runs. My first run involves using all 5 variables (relaxing all variables simultaneously). IpOpt terminates successfully and gives an optimum solution. Next I relax only one variable (4th) of the 5 (keeping other 4 variables constant from the earlier run). I find that IpOpt provides a relatively &quot;bad&quot; optimum solution with higher objective value (i am minimising my obj fn). NLP functions are being evaluated using a DAE solver.</div>

<div><br></div><div><b>First Run:</b></div><div><br></div><div><div>Total number of variables............................:        5</div><div>                     variables with only lower bounds:        0</div><div>                variables with lower and upper bounds:        5</div>

<div>                     variables with only upper bounds:        0</div><div>Total number of equality constraints.................:        0</div><div>Total number of inequality constraints...............:        0</div>

<div>        inequality constraints with only lower bounds:        0</div><div>   inequality constraints with lower and upper bounds:        0</div><div>        inequality constraints with only upper bounds:        0</div>

<div><br></div><div>iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls</div><div>   0 3.4059520e-001 0.00e+000 1.26e-001   0.0 0.00e+000    -  0.00e+000 0.00e+000   0</div><div>   1 3.3227739e-001 0.00e+000 5.39e-002  -5.0 6.09e-002    -  9.86e-001 1.00e+000f  1</div>

<div>   2 2.8068876e-001 0.00e+000 2.95e-002  -2.5 5.58e-001    -  9.75e-001 8.79e-001f  1</div><div>   3 2.7651747e-001 0.00e+000 7.72e-003  -2.6 1.62e-001    -  9.93e-001 1.00e+000f  1</div><div>   4 2.6969369e-001 0.00e+000 9.19e-003  -4.1 2.00e-001    -  9.98e-001 9.85e-001f  1</div>

<div>   5 2.6371187e-001 0.00e+000 1.16e-002  -4.0 7.34e-001    -  1.00e+000 5.35e-001f  1</div><div>   6 2.5342676e-001 0.00e+000 2.66e-002  -4.9 3.35e+000    -  1.00e+000 3.31e-001f  1</div><div>   7 2.3664505e-001 0.00e+000 5.43e-002  -4.2 5.52e+000    -  8.07e-001 1.00e+000f  1</div>

<div>   8 2.3213622e-001 0.00e+000 1.01e-002  -5.1 1.97e+000    -  1.00e+000 1.00e+000f  1</div><div>   9 2.3155882e-001 0.00e+000 6.38e-003  -3.9 5.49e-001    -  1.00e+000 1.00e+000f  1</div><div>iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls</div>

<div>  10 2.3030322e-001 0.00e+000 6.01e-003  -4.6 1.16e+000    -  9.98e-001 1.00e+000f  1</div><div>  11 2.3008095e-001 0.00e+000 4.60e-002  -2.6 3.02e+001    -  5.36e-001 2.27e-001f  2</div><div>  12 2.2783106e-001 0.00e+000 1.06e-001  -2.4 2.06e+001    -  1.00e+000 2.02e-001f  2</div>

<div>  13 2.1571297e-001 0.00e+000 5.67e-002  -2.3 8.77e+000    -  1.00e+000 2.21e-001f  3</div><div>  14 1.8078192e-001 0.00e+000 5.68e-002  -2.9 7.69e+000    -  9.97e-001 3.62e-001f  2</div><div>  15 1.4540550e-001 0.00e+000 8.58e-002  -3.8 6.54e+000    -  1.00e+000 3.26e-001f  1</div>

<div>  16 1.5533380e-001 0.00e+000 1.25e-001  -2.4 5.58e+000    -  9.45e-001 5.00e-001f  2</div><div>  17 1.4003026e-001 0.00e+000 4.40e-002  -2.6 1.05e+000    -  1.00e+000 2.93e-001f  2</div><div>  18 1.1513233e-001 0.00e+000 3.28e-002  -3.5 1.65e+000    -  1.00e+000 1.00e+000f  1</div>

<div>  19 1.1058175e-001 0.00e+000 5.58e-002  -3.5 7.25e-001    -  1.00e+000 1.83e-001f  1</div><div>iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls</div><div>  20 1.0840715e-001 0.00e+000 2.40e-002  -4.6 5.04e-001    -  1.00e+000 5.00e-001f  2</div>

<div>  21 1.0730184e-001 0.00e+000 2.59e-003  -4.7 8.46e-002    -  1.00e+000 4.43e-001f  1</div><div>  22 1.0693632e-001 0.00e+000 1.15e-003  -6.2 1.83e-002    -  1.00e+000 1.00e+000f  1</div><div>  23 1.0692761e-001 0.00e+000 3.95e-005  -8.0 1.93e-003    -  1.00e+000 9.85e-001f  1</div>

<div>  24 1.0692755e-001 0.00e+000 1.11e-004 -11.0 1.05e-003    -  1.00e+000 1.00e+000f  1</div><div>  25 1.0692753e-001 0.00e+000 1.09e-006 -11.0 6.86e-004    -  1.00e+000 1.00e+000f  1</div><div><br></div><div>Number of Iterations....: 25</div>

<div><br></div><div>                                   (scaled)                 (unscaled)</div><div>Objective...............:  <b>1.0692753478330776e-001 </b>  1.0692753478330776e-001</div><div>Dual infeasibility......:  1.0936467431047899e-006   1.0936467431047899e-006</div>

<div>Constraint violation....:  0.0000000000000000e+000   0.0000000000000000e+000</div><div>Complementarity.........:  1.0027270245806282e-011   1.0027270245806282e-011</div><div>Overall NLP error.......:  1.0936467431047899e-006   1.0936467431047899e-006</div>

<div><br></div><div><br></div><div>Number of objective function evaluations             = 62</div><div>Number of objective gradient evaluations             = 26</div><div>Number of equality constraint evaluations            = 0</div>

<div>Number of inequality constraint evaluations          = 0</div><div>Number of equality constraint Jacobian evaluations   = 0</div><div>Number of inequality constraint Jacobian evaluations = 0</div><div>Number of Lagrangian Hessian evaluations             = 0</div>

<div>Total CPU secs in IPOPT (w/o function evaluations)   =     25.657</div><div>Total CPU secs in NLP function evaluations           =   1809.632</div></div><div><br></div><div>Optimal Solution : 5.24069, 1.21765, 5.77537e-10, <b>3.33815e-10</b>, 3.99296e-10</div>

<div><br></div><div><b>Second Run: (The bold variable is changed in this run)</b></div><div><div>Total number of variables............................:        1</div><div>                     variables with only lower bounds:        0</div>

<div>                variables with lower and upper bounds:        1</div><div>                     variables with only upper bounds:        0</div><div>Total number of equality constraints.................:        0</div>

<div>Total number of inequality constraints...............:        0</div><div>        inequality constraints with only lower bounds:        0</div><div>   inequality constraints with lower and upper bounds:        0</div>

<div>        inequality constraints with only upper bounds:        0</div><div><br></div><div>iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls</div><div>   0 1.0692753e-001 0.00e+000 2.99e-002   0.0 0.00e+000    -  0.00e+000 0.00e+000   0</div>

<div>   1 1.0998169e-001 0.00e+000 6.45e-002  -1.1 8.05e-002    -  9.98e-001 1.00e+000f  1</div><div>   2 1.6595396e-001 0.00e+000 2.03e-002  -1.1 5.84e-001    -  1.00e+000 1.00e+000f  1</div><div>   3 1.3200249e-001 0.00e+000 4.12e-003  -1.8 2.83e-001    -  1.00e+000 1.00e+000f  1</div>

<div>   4 1.1346410e-001 0.00e+000 5.79e-003  -2.7 2.35e-001    -  1.00e+000 1.00e+000f  1</div><div>   5 1.0877403e-001 0.00e+000 1.68e-003  -4.0 9.49e-002    -  1.00e+000 1.00e+000f  1</div><div>   6 1.0735574e-001 0.00e+000 3.01e-004  -4.0 3.88e-002    -  1.00e+000 1.00e+000f  1</div>

<div>   7 1.0696293e-001 0.00e+000 3.89e-005  -6.0 1.25e-002    -  1.00e+000 1.00e+000f  1</div><div>   8 1.0692884e-001 0.00e+000 9.98e-007  -6.0 1.14e-003    -  1.00e+000 1.00e+000f  1</div><div><br></div><div>Number of Iterations....: 8</div>

<div><br></div><div>                                   (scaled)                 (unscaled)</div><div>Objective...............:  <b>1.0692884325163618e-001</b>   1.0692884325163618e-001</div><div>Dual infeasibility......:  9.9778841742863659e-007   9.9778841742863659e-007</div>

<div>Constraint violation....:  0.0000000000000000e+000   0.0000000000000000e+000</div><div>Complementarity.........:  1.3088189011168833e-006   1.3088189011168833e-006</div><div>Overall NLP error.......:  1.3088189011168833e-006   1.3088189011168833e-006</div>

<div><br></div><div><br></div><div>Number of objective function evaluations             = 9</div><div>Number of objective gradient evaluations             = 9</div><div>Number of equality constraint evaluations            = 0</div>

<div>Number of inequality constraint evaluations          = 0</div><div>Number of equality constraint Jacobian evaluations   = 0</div><div>Number of inequality constraint Jacobian evaluations = 0</div><div>Number of Lagrangian Hessian evaluations             = 0</div>

<div>Total CPU secs in IPOPT (w/o function evaluations)   =     20.861</div><div>Total CPU secs in NLP function evaluations           =    228.325</div><div><br></div><div>EXIT: Optimal Solution Found.</div></div><div><br>

</div><div><br></div><div>Objective fn value changed from <b>1.0692753478330776e-001 ---&gt; </b><b>1.0692884325163618e-001</b></div><div>Variable value changed from <b>3.33815e-10 ---&gt; 4.36996e-5</b></div><div><b><br>

</b></div><div>I presume that for the second run, the optimal dual is calculated in the 8 iterations but my solution degrades from the starting point.</div><div><br></div><div>My options:</div><div><div>app-&gt;Options()-&gt;SetNumericValue(&quot;tol&quot;, 1e-5);</div>

<div>app-&gt;Options()-&gt;SetNumericValue(&quot;constr_viol_tol&quot;, 1e-10);</div><div>app-&gt;Options()-&gt;SetNumericValue(&quot;bound_frac&quot;, 1e-15);</div><div>app-&gt;Options()-&gt;SetNumericValue(&quot;bound_push&quot;, 1e-15);</div>

<div>app-&gt;Options()-&gt;SetNumericValue(&quot;tiny_step_tol&quot;, 1e-10);</div><div>app-&gt;Options()-&gt;SetNumericValue(&quot;tiny_step_y_tol&quot;, 1e-10);</div><div>app-&gt;Options()-&gt;SetNumericValue(&quot;bound_relax_factor&quot;, 0);</div>

<div>app-&gt;Options()-&gt;SetStringValue(&quot;mu_strategy&quot;, &quot;adaptive&quot;);</div><div>app-&gt;Options()-&gt;SetStringValue(&quot;hessian_approximation&quot;, &quot;limited-memory&quot;);<br></div></div><div>

<br></div><div><br></div><div>Is there a way to avoid calculating new iterations or considering the initial solution as the final solution?</div><div><br></div><div>Thank You</div><div><br></div><div>Regards</div><span class="HOEnZb"><font color="#888888"><div>
Udit Gupta</div>
<div><b><br></b></div></font></span></div>
<br>_______________________________________________<br>
Ipopt mailing list<br>
<a href="mailto:Ipopt@list.coin-or.org">Ipopt@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/ipopt" target="_blank">http://list.coin-or.org/mailman/listinfo/ipopt</a><br>
<br></blockquote></div><br></div>