For anyone looking for a free optimization tool in python, sypy.opimize is easy to use.<p>Eg if I have a complicated function revenue([A,B,C,D])<p>I can define obj([A,B,C,D]) = -1* revenue([A,B,C,D])<p>and use:<p><pre><code> >>>import numpy as np
>>>from scipy.optimize import minimize
>>>X0 = np.array([1.5, 0.7, 1.2, 100])
>>>options={'xtol': 1e-4, 'disp': True})
>>>X* = minimize(obj, x0, method='nelder-mead', options)
</code></pre>
<a href="http://docs.scipy.org/doc/scipy/reference/tutorial/optimize.html" rel="nofollow">http://docs.scipy.org/doc/scipy/reference/tutorial/optimize....</a>