Hi Andreas -<br><br>I figured out my mistake. Thanks for your reply.<br>I had a mistake in the gradient.<br><br>suresh<br><br><div class="gmail_quote">On Wed, Apr 22, 2009 at 8:05 PM, Suresh Pamujula <span dir="ltr">&lt;<a href="mailto:suresh.pamujula@gmail.com">suresh.pamujula@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi Andreas -<br><br>The problem is not infeasible. I ran it with different lower bound and it gave me an answer I expected.<br>
<br>Also, if I run the loop 10 times with same constraint bounds, e.g., g_L[0] = 0.065, I don&#39;t get any<br>
infeasible solution, but I get correct solution everytime.<br><font color="#888888"><br>suresh</font><div><div></div><div class="h5"><br><br><br><div class="gmail_quote">On Wed, Apr 22, 2009 at 7:10 PM, Andreas Waechter <span dir="ltr">&lt;<a href="mailto:andreasw@watson.ibm.com" target="_blank">andreasw@watson.ibm.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi Suresh,<br>
<br>
Maybe this is not an error, maybe your problem is indeed infeasible if you increase the lower bound on the first constraint...?  Do you also get the same behavior if you run the loop 10 times but always set the same constraint bounds, e.g., g_L[0] = 0.065, or even relax it as j increases, as g_L[0] = 0.065 - j*0.05 ?<br>

<font color="#888888">
<br>
Andreas</font><div><div></div><div><br>
<br>
On Tue, 21 Apr 2009, Suresh Pamujula wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
More on multiple calls to IpoptSolve(...)<br>
<br>
I get following error when the function is invoked second time.<br>
<br>
EXIT: Converged to a point of local infeasibility. Problem may be<br>
infeasible.<br>
<br>
<br>
Attached is the code for your quick reference.<br>
<br>
<br>
<br>
Here is code snippet ......<br>
<br>
.................<br>
.................<br>
 Index j;                             /* generic counter */<br>
<br>
 for (j=0;j&lt;10;j++) {  /* Basically want to execute IpoptSolve 10 times<br>
with different values on constraints */<br>
<br>
   /* Number of nonzeros in the Jacobian of the constraints */<br>
   Index nele_jac = 6;<br>
   /* Number of nonzeros in the Hessian of the Lagrangian (lower or<br>
    upper triangual part only) */<br>
   Index nele_hess = 6;<br>
   /* indexing style for matrices */<br>
   Index index_style = 0; /* C-style; start counting of rows and column<br>
                           indices at 0 */<br>
<br>
   /* set the number of variables and allocate space for the bounds */<br>
   n=3;<br>
   x_L = (Number*)malloc(sizeof(Number)*n);<br>
   x_U = (Number*)malloc(sizeof(Number)*n);<br>
   /* set the values for the variable bounds */<br>
   for (i=0; i&lt;n; i++) {<br>
     x_L[i] = 0.0;<br>
     x_U[i] = 1.0;<br>
   }<br>
<br>
   /* set the number of constraints and allocate space for the bounds */<br>
   m=2;<br>
   g_L = (Number*)malloc(sizeof(Number)*m);<br>
   g_U = (Number*)malloc(sizeof(Number)*m);<br>
<br>
   /* set the values of the constraint bounds */<br>
   g_L[0] = 0.065 + j*0.05;  /* increment return by 5% */<br>
   g_U[0] = 2e19;<br>
   g_L[1] = 1;<br>
   g_U[1] = 1;<br>
<br>
   /* create the IpoptProblem */<br>
   nlp = CreateIpoptProblem(n, x_L, x_U, m, g_L, g_U, nele_jac, nele_hess,<br>
                          index_style, &amp;eval_f, &amp;eval_g, &amp;eval_grad_f,<br>
                          &amp;eval_jac_g, &amp;eval_h);<br>
<br>
   /* We can free the memory now - the values for the bounds have been<br>
    copied internally in CreateIpoptProblem */<br>
   free(x_L);<br>
   free(x_U);<br>
   free(g_L);<br>
   free(g_U);<br>
<br>
   /* Set some options.  Note the following ones are only examples,<br>
    they might not be suitable for your problem. */<br>
   AddIpoptNumOption(nlp, &quot;tol&quot;, 1e-7);<br>
   AddIpoptStrOption(nlp, &quot;mu_strategy&quot;, &quot;adaptive&quot;);<br>
   AddIpoptStrOption(nlp, &quot;output_file&quot;, &quot;ipopt.out&quot;);<br>
<br>
   /* allocate space for the initial point and set the values */<br>
   x = (Number*)malloc(sizeof(Number)*n);<br>
   x[0] = 0.2;<br>
   x[1] = 0.4;<br>
   x[2] = 0.4;<br>
<br>
   /* allocate space to store the bound multipliers at the solution */<br>
   mult_x_L = (Number*)malloc(sizeof(Number)*n);<br>
   mult_x_U = (Number*)malloc(sizeof(Number)*n);<br>
<br>
   /* solve the problem */<br>
   status = IpoptSolve(nlp, x, NULL, &amp;obj, NULL, mult_x_L, mult_x_U, NULL);<br>
<br>
   if (status == Solve_Succeeded) {<br>
   printf(&quot;\n\nSolution of the primal variables, x\n&quot;);<br>
   for (i=0; i&lt;n; i++) {<br>
     printf(&quot;x[%d] = %e\n&quot;, i, x[i]);<br>
   }<br>
<br>
   printf(&quot;\n\nSolution of the bound multipliers, z_L and z_U\n&quot;);<br>
   for (i=0; i&lt;n; i++) {<br>
     printf(&quot;z_L[%d] = %e\n&quot;, i, mult_x_L[i]);<br>
   }<br>
   for (i=0; i&lt;n; i++) {<br>
     printf(&quot;z_U[%d] = %e\n&quot;, i, mult_x_U[i]);<br>
   }<br>
<br>
   printf(&quot;\n\nObjective value\n&quot;);<br>
   printf(&quot;f(x*) = %e\n&quot;, obj);<br>
   }<br>
<br>
   /* free allocated memory */<br>
   FreeIpoptProblem(nlp);<br>
   free(x);<br>
   free(mult_x_L);<br>
   free(mult_x_U);<br>
 }<br>
<br>
...........................<br>
...........................<br>
..........................<br>
<br>
<br>
On Tue, Apr 21, 2009 at 11:57 AM, Suresh Pamujula &lt;<a href="mailto:suresh.pamujula@gmail.com" target="_blank">suresh.pamujula@gmail.com</a><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
wrote:<br>
</blockquote>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On 4/20/09, Suresh Pamujula &lt;<a href="mailto:suresh.pamujula@gmail.com" target="_blank">suresh.pamujula@gmail.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello -<br>
<br>
I want to inquire if there is a way to invoke functions<br>
<br>
CreateIpoptProblem(....)<br>
and<br>
IpoptSolve(...)<br>
<br>
multiple times with different lower bound on one of the constraints.<br>
<br>
<br>
<br>
I tried to call within a for loop, but it gives me &quot;infeasible solution&quot;<br>
when it<br>
is invoked second time.<br>
<br>
<br>
Any help is truly appreciated.<br>
<br>
<br>
<br>
suresh<br>
<br>
</blockquote>
<br>
</blockquote>
<br>
</blockquote>
</div></div></blockquote></div><br>
</div></div></blockquote></div><br>