I can&#39;t quite follow the reasoning that another line search would solve the problem.<br>If the current iterate is at the boundary and the new search direction points into the infeasible set, then a line search is unlikely to help.<br>
<br>Example:<br>min_x dot([2,1],x)<br>s.t. x &gt;= 0<br><br>the minimizer is x_* = [0,0]. If the current iterate x_k is at [3,0], then the new search direction woud be<br>s_k = -[2,1] which points directly into the infeasible set which would yield infty. <br>
<br>I&#39;m not sure what the best approach for your problem is.<br>Since  SDP is still an active topic of research one could conjecture that possibly it&#39;s not as easy as you think.<br>If you find a good solution I&#39;d be happy to hear about it.<br>
<br>regards,<br>Sebastian<br> <br>     <br><br><div class="gmail_quote">On Wed, Sep 15, 2010 at 11:19 AM, Matthieu Brucher <span dir="ltr">&lt;<a href="mailto:matthieu.brucher@gmail.com">matthieu.brucher@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,<br><br>The line search used in scipy is based on Wolfe-Powell rules and the search for appropriate values is done by interpolation. This is why it cannot be used for your kind of problems. All Wolfe-Powel line searches I&#39;ve found in the litterature are based on such interpolations.<br>

It could be changed to fit your purpose, but it would be slower for 99.99% of the other optimizations. So you may add some additional constraints here.<br><br>Matthieu<br><br><div class="gmail_quote">2010/9/15 Enrico Avventi <span dir="ltr">&lt;<a href="mailto:eavventi@yahoo.it" target="_blank">eavventi@yahoo.it</a>&gt;</span><div>
<div></div><div class="h5"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi Matthieu,<br><br>thanx for the reply. as far as i know it shouldn&#39;t be a problem at all in theory. in fact convergence theorems for newton methods and, in general, descent method do not require the function to be defined everywhere. you need just a function defined in an open convex set that has compact sublevel sets - e.g f(x) = x - log(x). this is exactly my situation.<br>


it is just a matter of slightly changing the line search method to reject steps that would lead to an infinite value.<br>i will look at how it is implemented in scipy and see if it can be fixed easily.<br><font color="#888888"><br>

/Enrico</font><div><div></div><div><br><br>
<div class="gmail_quote">On Tue, Sep 14, 2010 at 5:51 PM, Matthieu Brucher <span dir="ltr">&lt;<a href="mailto:matthieu.brucher@gmail.com" target="_blank">matthieu.brucher@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,<br><br>There are two categories of contraints optimizations:<br>- you can evaluate the function outside the constraints<br>- you cannot evaluate the function outsde the constraints.<br><br>If the first one can be handled by more general algorithms providing some tricks, you cannot use them for the second one. Your problem is clearly a second category problem, so you must use appropriate algorithms (which may not be available in scipy directly, you may want to check OpenOpt).<br>



<br>It&#39;s not a problem of routines, it&#39;s a problem of appropriate algorithms.<br><br>Matthieu<br><br><div class="gmail_quote">2010/9/14 enrico avventi <span dir="ltr">&lt;<a href="mailto:eavventi@yahoo.it" target="_blank">eavventi@yahoo.it</a>&gt;</span><br>



<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit;" valign="top">



hello all,<br><br>i am trying out some of the optimization routines for a problem of mine that is on the form:<br><br>min f(x)<br><br>s.t M(x) is positive semidefinite<br><br>where f is strictly convex in the feasible region with compact sublevel sets, M is linear and takes value in some subspace of hermitian matrices.<br>



<br>the problem is convex but the costraint can not be handled directly by any of the optimization routines in scipy. So i choose to change it to an uncostrained problem with objective function:<br><br>f1(x) = f(x) for M(x) pos semi def<br>



f1(x) = Inf otherwise<br><br>the problem is that it seems the routines can not handle the infinity values correctly. <br><br>Some of the routines (fmin_cg comes to mind) wants to check the gradient at points where the objective function is infinite. Clearly in such cases the gradient is not defined - i.e the
 calculations fail - and the algorithm terminates.<br><br>Others (like fmin_bfgs) strangely converge to a point where the objective is infinite despite the fact that the initial point was not.<br><br>Do you have any suggestion to fix this problem?<br>



<br>regards,<br><br>Enrico<br><br> <br></td></tr></tbody></table><br>



      <br>_______________________________________________<br>
SciPy-User mailing list<br>
<a href="mailto:SciPy-User@scipy.org" target="_blank">SciPy-User@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/scipy-user" target="_blank">http://mail.scipy.org/mailman/listinfo/scipy-user</a><br>
<br></blockquote></div><font color="#888888"><br><br clear="all"><br>-- <br>Information System Engineer, Ph.D.<br>Blog: <a href="http://matt.eifelle.com" target="_blank">http://matt.eifelle.com</a><br>LinkedIn: <a href="http://www.linkedin.com/in/matthieubrucher" target="_blank">http://www.linkedin.com/in/matthieubrucher</a><br>




</font><br>_______________________________________________<br>
SciPy-User mailing list<br>
<a href="mailto:SciPy-User@scipy.org" target="_blank">SciPy-User@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/scipy-user" target="_blank">http://mail.scipy.org/mailman/listinfo/scipy-user</a><br>
<br></blockquote></div><br>
</div></div><br>_______________________________________________<br>
SciPy-User mailing list<br>
<a href="mailto:SciPy-User@scipy.org" target="_blank">SciPy-User@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/scipy-user" target="_blank">http://mail.scipy.org/mailman/listinfo/scipy-user</a><br>
<br></blockquote></div></div></div><div><div></div><div class="h5"><br><br clear="all"><br>-- <br>Information System Engineer, Ph.D.<br>Blog: <a href="http://matt.eifelle.com" target="_blank">http://matt.eifelle.com</a><br>
LinkedIn: <a href="http://www.linkedin.com/in/matthieubrucher" target="_blank">http://www.linkedin.com/in/matthieubrucher</a><br>

</div></div><br>_______________________________________________<br>
SciPy-User mailing list<br>
<a href="mailto:SciPy-User@scipy.org">SciPy-User@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/scipy-user" target="_blank">http://mail.scipy.org/mailman/listinfo/scipy-user</a><br>
<br></blockquote></div><br>