<p>This is a continuation of the thread of discussion in <a href="https://github.com/mlpack/mlpack/issues/3" class="issue-link" title="sparse matrix support for SDP-LR [continued]">#3</a>. </p>

<p>The following diff <a href="https://github.com/stephentu/mlpack/compare/mlpack:10d90d0...stephentu:8af98d5" class="commit-link">stephentu@<tt>mlpack:10d90d0...stephentu:8af98d5</tt></a> allows the lovasz theta SDP test case to pass without removing the last edge that was causing the problem.</p>

<p>Essentially, the pattern of optimization looks like:</p>

<ul class="task-list">
<li>For the smaller values of sigma (e.g. sigma less than ~1000), the solution tends to R=0</li>
<li>As sigma is increased, I saw a discrepancy of behaviors. In the L-BFGS-B implementation, I saw it was able to climb out of the R=0 saddle point and converge towards the correct solution. However, in the mlpack L-BFGS implementation, I saw it get stuck in the saddle point no matter how large sigma got.</li>
</ul>

<p>In my diff above, I added some logic to the mlpack optimizer to help guide it out of the saddle point. I'm not submitting this as a pull request yet because I'm not sure it is the right thing to do-- I'll defer that to Ryan who implemented L-BFGS in the first place. </p>

<p><a href="https://github.com/rcurtin" class="user-mention">@rcurtin</a>: To respond to your desire to keep out the external fortran L-BFGS-B dependency. That's fine by me if you feel very strongly about it (which you clearly do <img class="emoji" title=":smile:" alt=":smile:" src="https://assets-cdn.github.com/images/icons/emoji/unicode/1f604.png" height="20" width="20" align="absmiddle">). But, I will point out that I was pushing for L-BFGS-B not because I think the specifics of the modified variant of the algorithm (versus what you have implemented) are necessary to get the SDPs to converge, but instead I was just looking for a fast, reliable black box with a self contained implementation which we could easily import. In other words, if you want to invest time in improving an in house optimization routine, I think it's better to go off of the existing implementation. </p>

<p>Anyways, this patch should be enough for you to decide how to proceed with the optimizer. </p>

<p>I'm going to turn my attention to writing a few more SDP test cases, and then building a higher level wrapper for matrix completion problems. </p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br>Reply to this email directly or <a href="https://github.com/mlpack/mlpack/issues/370">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AJ4bFMqpBA170s4kAPSdw3deJVqNJp0Rks5ndg-egaJpZM4DNsex.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
  <div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
    <link itemprop="url" href="https://github.com/mlpack/mlpack/issues/370"></link>
    <meta itemprop="name" content="View Issue"></meta>
  </div>
  <meta itemprop="description" content="View this Issue on GitHub"></meta>
</div>