title: Python constrained non-linear optimization
body: <p>What's the recommended package for constrained non-linear optimization in python ?</p>
  
  <p>The specific problem I'm trying to solve is this:</p>
  
  <p>I have an unknown <code>X</code> (Nx1), I have <code>M</code> (Nx1) <code>u</code> vectors and <code>M</code> (NxN) <code>s</code> matrices.</p>
  
  <pre><code>max [5th percentile of (ui_T*X), i in 1 to M]
  st 
  0&lt;=X&lt;=1 and
  [95th percentile of (X_T*si*X), i in 1 to M]&lt;= constant
  </code></pre>
  
  <p>When I started out the problem I only had one point estimate for <code>u</code> and <code>s</code> and I was able to solve the problem above with <code>cvxpy</code>. </p>
  
  <p>I realized that instead of one estimate for <code>u</code> and <code>s</code>, I had the entire distribution of values so I wanted to change my objective function so that I could use the entire distribution. The problem description above is my attempt to include that information in a meaningful way. </p>
  
  <p><code>cvxpy</code> cannot be used to solve this, I've tried <code>scipy.optimize.anneal</code>, but I can't seem to set bounds on the unknown values. I've looked at <code>pulp</code> too but it doesnt allow nonlinear constraints.</p>