<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6210259640013469958</id><updated>2011-04-21T13:44:32.573-07:00</updated><title type='text'>OpenOpt</title><subtitle type='html'>Our server is down since 2010-07-14, we're working on fixing it</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default?start-index=101&amp;max-results=100'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>184</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-683682648884697181</id><published>2008-12-15T14:20:00.000-08:00</published><updated>2008-12-15T14:22:29.868-08:00</updated><title type='text'>the blog is moved to new location</title><content type='html'>update your rss feeds if you want to get the posts furthermore.&lt;br /&gt;New location:&lt;br /&gt;&lt;a href="http://forum.openopt.org/viewforum.php?id=19"&gt;http://forum.openopt.org/viewforum.php?id=19&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-683682648884697181?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/683682648884697181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=683682648884697181' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/683682648884697181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/683682648884697181'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/12/blog-is-moved-to-new-location.html' title='the blog is moved to new location'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-2078377559142776202</id><published>2008-12-15T13:27:00.000-08:00</published><updated>2008-12-16T01:41:32.846-08:00</updated><title type='text'>OpenOpt (and my) Future</title><content type='html'>My interim in icyb.kiev.ua optimization dept is up to be finished.&lt;br /&gt;&lt;br /&gt;Today I have spoken with my chiefs from about my further career.&lt;br /&gt;They have informed me: because of financial crisis the situation is undefined.&lt;br /&gt;&lt;br /&gt;Still I have some chances. Moreover, there are some chances I  will be permitted to spent some work time for further openopt development.&lt;br /&gt;However, it is provided some conditions to be satisfied.&lt;br /&gt;&lt;br /&gt;Some days ago I had been forced to move my code out of scikits framework, my chiefs want me to host it inside Ukraine under our control (mb you know I had been refused to obtain veto rule for openopt code changes within scikits framework; I understand scipy community - they can't take taht something is hosted inside their server and is out of control, but I understand my chiefs position as well).&lt;br /&gt;&lt;br /&gt;I have contacted uafoss.org (FOSS Ukraine dept), and they gladly allowed me to host it here.&lt;br /&gt;Full transportation (svn repository, doc, wiki etc) will be finished within several days. But numerical optimization forum already works, you are welcome: &lt;a href="http://forum.openopt.org/"&gt;http://forum.openopt.org&lt;/a&gt;. I had noticed openopt.com and openopt.net are already taken by someone, so it's definitely correct time to go.&lt;br /&gt;&lt;br /&gt;Thanks to Michailo Danilenko and Volodimir M. Lisivka from linux.org.ua (LOU) community.&lt;br /&gt;Special thanks to Wadim V. Mashkov and Michael Shigorin  from linux.kiev.ua community.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-2078377559142776202?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/2078377559142776202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=2078377559142776202' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2078377559142776202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2078377559142776202'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/12/openopt-and-my-future.html' title='OpenOpt (and my) Future'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-480165932628746035</id><published>2008-12-15T12:50:00.000-08:00</published><updated>2008-12-16T09:41:05.639-08:00</updated><title type='text'>OpenOpt release 0.21</title><content type='html'>Hi all,&lt;br /&gt;I'm glad to inform you about new OpenOpt release: v 0.21.&lt;br /&gt;&lt;br /&gt;Changes since previous release &lt;a href="http://openopt.blogspot.com/2008/09/openopt-release-019.html"&gt;0.19&lt;/a&gt; (June 15, 2008):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;major changes for NLP / NSP solver ralg&lt;/li&gt;&lt;li&gt;&lt;a href="http://openopt.blogspot.com/2008/09/new-converter-qp2nlp.html"&gt;new converter: qp2nlp&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://openopt.blogspot.com/2008/09/new-converter-lp2nlp.html"&gt;new converter: lp2nlp&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://openopt.blogspot.com/2008/09/new-converter-lsp2nlp.html"&gt;new converter: nllsp2nlp&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://openopt.blogspot.com/2008/09/new-converter-nlsp2nlp.html"&gt;new converter: nlsp2nlp&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://openopt.blogspot.com/2008/11/new-converter-minimax-to-nlp.html"&gt;new converter: minimax to NLP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://openopt.blogspot.com/2008/10/introducing-openopt-gui.html"&gt;Introducing OpenOpt GUI&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://openopt.blogspot.com/2008/10/pswarm-13-has-been-connected.html"&gt;PSwarm 1.3 has been connected&lt;/a&gt; instead of v 1.1. It has much more parameters to modify and ability to use user-supplied callback function.&lt;/li&gt;&lt;li&gt;Lots of changes related to oofun: add oovar and oolin, now fixed oovars can be correctly handled&lt;/li&gt;&lt;li&gt;&lt;a href="http://openopt.blogspot.com/2008/11/enhanced-iterfcn-connection-for-scipy.html"&gt;enhanced iterfcn connection for scipy fmin_cobyla&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://openopt.blogspot.com/2008/11/some-doc-updates-for-result-structure.html"&gt;some doc updates for result structure&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://openopt.blogspot.com/2008/11/new-openopt-api-func-oosolver.html"&gt;new openopt API func: oosolver&lt;/a&gt;&lt;/li&gt;&lt;li&gt;some code cleanup and bugfixes&lt;/li&gt;&lt;li&gt;some other minor changes&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Backward incompatibility:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;instead of "from scikits.openopt" now you should use "from openopt import ..."&lt;/li&gt;&lt;li&gt;&lt;a href="http://openopt.blogspot.com/2008/07/some-changes.html"&gt;&lt;/a&gt;LSP has been renamed to NLLSP&lt;/li&gt;&lt;li&gt;oofun with ordinary variables (x) support had been ceased (it's hard to keep maintaining), use oovars instead.&lt;/li&gt;&lt;/ul&gt;Until OpenOpt subversion repository will be finally moved to new host, you can download v 0.21 from &lt;a href="http://www.box.net/shared/uevh6tgr52"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Welcome to &lt;a href="http://forum.openopt.org/"&gt;http://forum.openopt.org&lt;/a&gt; - new forum about numerical optimization and related free and open source software.&lt;br /&gt;&lt;br /&gt;For assist with new host and forum&lt;br /&gt;Thanks to Michailo Danilenko and Volodimir M. Lisivka from linux.org.ua (aka LOU) community.&lt;br /&gt;Special thanks to Wadim V. Mashkov and Michael Shigorin  from linux.kiev.ua community.&lt;br /&gt;&lt;br /&gt;Regards, Dmitrey.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-480165932628746035?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/480165932628746035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=480165932628746035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/480165932628746035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/480165932628746035'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/12/openopt-release-021.html' title='OpenOpt release 0.21'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-8311952762778380192</id><published>2008-12-15T05:51:00.000-08:00</published><updated>2008-12-15T06:03:20.233-08:00</updated><title type='text'>Some changes for oofun</title><content type='html'>Some changes for oofun:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;oolin now can handle matrices: oolin(C) creates oofun that returns numpy.dot(C, inp_array); oolin(C, d) yields oofun that returns numpy.dot(C, x) + d. See updated oolin &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/oofun/oolin.py"&gt;example&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;add fixed variables handling for oovars. Now you can declare v.fixed = True or just v = oovar(..., fixed = True). So all oofuns that recursively depend on fixed oovars only will be calculated only once, and derivatives will be all-zero (hence no calculations will be required for those parts of code that depend on fixed oofuns only). In future it will be good to have inner fixed coords for oovars, like this: v.fixed = [0, 1, 15] (i.e. positions of fixed coords inside the oovar). See the fixed oovars &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/oofun/fixedOOVars.py"&gt;example&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;However, let me remember you that currently oolin(anything) is considered as non-linear code, i.e. it goes to non-linear constraints and objective function only. In future it should be implemented oolin(some_oovars) -&gt; general linear constraints (Ax &lt;= b, Aeq x = beq). As for lb &lt;= x &lt;= ub, they are handled correctly from oovar fields.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-8311952762778380192?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/8311952762778380192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=8311952762778380192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8311952762778380192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8311952762778380192'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/12/some-changes-for-oofun.html' title='Some changes for oofun'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-8738772772397384502</id><published>2008-12-06T01:48:00.001-08:00</published><updated>2008-12-06T01:50:43.555-08:00</updated><title type='text'>some changes</title><content type='html'>I have committed some changes to OO Kernel, most important is a fix reducing time for connecting oovars to prob instance (the recursive function throw all oofuncs took too much time previously).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-8738772772397384502?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/8738772772397384502/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=8738772772397384502' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8738772772397384502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8738772772397384502'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/12/some-changes.html' title='some changes'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1327677629787428296</id><published>2008-11-27T09:59:00.000-08:00</published><updated>2008-11-27T10:44:21.850-08:00</updated><title type='text'>Ironclad v0.7 released (NumPy on IronPython)</title><content type='html'>&lt;a href="http://www.resolversystems.com/documentation/index.php/Ironclad"&gt;IronClad&lt;/a&gt; developers have &lt;a href="http://permalink.gmane.org/gmane.comp.python.numeric.general/26513"&gt;announced&lt;/a&gt; release v 0.7.&lt;br /&gt;I guess it makes possible to use OO and some solvers (like ralg) from IronPython.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1327677629787428296?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1327677629787428296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1327677629787428296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1327677629787428296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1327677629787428296'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/11/ironclad-v07-released-numpy-on.html' title='Ironclad v0.7 released (NumPy on IronPython)'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-7484557418398618129</id><published>2008-11-25T00:08:00.000-08:00</published><updated>2008-11-25T00:17:55.664-08:00</updated><title type='text'>CorePy: Assembly Programming in Python</title><content type='html'>I've got to know about BSD-licensed v 1.0 release of &lt;a href="http://www.corepy.org/"&gt;CorePy&lt;/a&gt;  - "a Python package for developing assembly-level applications on x86, Cell BE and PowerPC processors".&lt;br /&gt;&lt;br /&gt;I guess it would be useful for those objective or non-linear functions that are required to be evaluated sufficiently faster than pure Python-coded.&lt;br /&gt;&lt;br /&gt;Of course, using C, C++, Fortran code via Cython, f2py, ctypes, SWIG, Pyrex etc could yield some speedup as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-7484557418398618129?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/7484557418398618129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=7484557418398618129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7484557418398618129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7484557418398618129'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/11/corepy-assembly-programming-in-python.html' title='CorePy: Assembly Programming in Python'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1638644808464467250</id><published>2008-11-19T02:29:00.000-08:00</published><updated>2008-11-19T02:32:45.887-08:00</updated><title type='text'>new openopt API func: oosolver</title><content type='html'>I have committed entry for &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/oosolver.py"&gt;oosolver&lt;/a&gt; (that has been recently implemented) into OO &lt;a href="http://scipy.org/scipy/scikits/wiki/OODoc"&gt;Doc&lt;/a&gt; page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1638644808464467250?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1638644808464467250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1638644808464467250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1638644808464467250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1638644808464467250'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/11/new-openopt-api-func-oosolver.html' title='new openopt API func: oosolver'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-2844817980404768039</id><published>2008-11-18T07:44:00.000-08:00</published><updated>2008-11-18T07:53:34.597-08:00</updated><title type='text'>changes for ralg linear constraints</title><content type='html'>I have committed some changes for general linear constraints (A x &lt;= b, Aeq x = beq) handling by NLP/NSP ralg solver.&lt;br /&gt;&lt;br /&gt;The changes are essential for len(b) &gt;&gt; 1 or len(beq) &gt;&gt; 1 only.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-2844817980404768039?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/2844817980404768039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=2844817980404768039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2844817980404768039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2844817980404768039'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/11/changes-for-ralg-linear-constraints.html' title='changes for ralg linear constraints'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-8242235131516323810</id><published>2008-11-18T03:20:00.000-08:00</published><updated>2008-11-18T07:54:23.507-08:00</updated><title type='text'>bugfix for nonlinear group + changes for ralg</title><content type='html'>&lt;ul&gt;&lt;li&gt;I have found and fixed serious bug for non-linear problems group (NLP, NSP etc). Sometimes it has been triggered with some constrained problems and those solvers who can use splitting (ralg, algencan). Still algencan doesn't work essentially better (for those examples I had tried).&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Some changes for ralg have been committed  (to decrease non-linear inequality constraints evaluation number)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-8242235131516323810?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/8242235131516323810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=8242235131516323810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8242235131516323810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8242235131516323810'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/11/bugfix-for-nonlinear-group-changes-for.html' title='bugfix for nonlinear group + changes for ralg'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1786776520333624936</id><published>2008-11-17T08:35:00.000-08:00</published><updated>2008-11-17T08:42:01.712-08:00</updated><title type='text'>new converter: minimax to NLP</title><content type='html'>I have committed the converter along with usage &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/mmp_2.py"&gt;example&lt;/a&gt;. Like MATLAB's fminimax and lots of similar MMP solvers, it works via solving NLP&lt;br /&gt;&lt;br /&gt;t -&gt; min&lt;br /&gt;&lt;br /&gt;subjected to&lt;br /&gt;t &gt;= f0(x)&lt;br /&gt;t &gt;= f1(x)&lt;br /&gt;...&lt;br /&gt;t &gt;= fk(x)&lt;br /&gt;&lt;br /&gt;Let me note that the NLP problem obtained is always constrained (in addition to constraints lb, ub, A, Aeq, c, h from original mmp we get new non-linear inequality constraints written above).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_t7NvRg6yt4E/SSGeT0k-b9I/AAAAAAAAAH4/zRFCCJMgjMg/s1600-h/mmp_examplepng.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 241px;" src="http://1.bp.blogspot.com/_t7NvRg6yt4E/SSGeT0k-b9I/AAAAAAAAAH4/zRFCCJMgjMg/s320/mmp_examplepng.png" alt="" id="BLOGGER_PHOTO_ID_5269667102368624594" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1786776520333624936?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1786776520333624936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1786776520333624936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1786776520333624936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1786776520333624936'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/11/new-converter-minimax-to-nlp.html' title='new converter: minimax to NLP'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_t7NvRg6yt4E/SSGeT0k-b9I/AAAAAAAAAH4/zRFCCJMgjMg/s72-c/mmp_examplepng.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-6298052630932515283</id><published>2008-11-16T03:04:00.000-08:00</published><updated>2008-11-16T03:12:41.406-08:00</updated><title type='text'>some doc updates for result structure</title><content type='html'>I have updated the doc page &lt;a href="http://scipy.org/scipy/scikits/wiki/OOResultStruct"&gt;ResultStruct&lt;/a&gt; with description of&lt;br /&gt;&lt;ul&gt;&lt;li&gt;negative values of r.evals['df'], r.evals['dc'], r.evals['dh'] (it means they have been obtained via finite-difference approximation; in the case we take into account for r.evals['f'] all f calls - both from objFunc and from finite-difference derivatives approximation)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;r.iterValues.rt, r.iterValues.ri (type and index of max residual).&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-6298052630932515283?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/6298052630932515283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=6298052630932515283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6298052630932515283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6298052630932515283'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/11/some-doc-updates-for-result-structure.html' title='some doc updates for result structure'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-3034973610088873321</id><published>2008-11-15T12:10:00.000-08:00</published><updated>2008-11-16T06:52:36.194-08:00</updated><title type='text'>enhanced iterfcn connection for scipy fmin_cobyla</title><content type='html'>I have connected changes related to handling of scipy_cobyla iterfcn, so now instead of direct line (as before) it looks like this:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_t7NvRg6yt4E/SR8t7U6JBMI/AAAAAAAAAHw/4bQSl_g9QGA/s1600-h/scipy_cobyla_iterfcnpng.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 241px;" src="http://4.bp.blogspot.com/_t7NvRg6yt4E/SR8t7U6JBMI/AAAAAAAAAHw/4bQSl_g9QGA/s320/scipy_cobyla_iterfcnpng.png" alt="" id="BLOGGER_PHOTO_ID_5268980586294871234" border="0" /&gt;&lt;/a&gt;Of course, adequate text output is provided as well:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;solver: scipy_cobyla   problem: unnamed   goal: minimum&lt;br /&gt;iter    objFunVal    log10(maxResidual)&lt;br /&gt; 0  6.115e+01               2.13&lt;br /&gt;10  2.015e+01              -2.82&lt;br /&gt;20  2.029e+01              -6.46&lt;br /&gt;30  2.030e+01              -7.60&lt;br /&gt;40  2.032e+01              -8.70&lt;br /&gt;50  2.032e+01             -10.30&lt;br /&gt;60  2.033e+01              -9.78&lt;br /&gt;70  2.033e+01             -13.41&lt;br /&gt;80  2.033e+01             -15.58&lt;br /&gt;90  2.033e+01             -12.50&lt;br /&gt;96  2.033e+01             -21.03&lt;br /&gt;istop:  1000&lt;br /&gt;Solver:   Time Elapsed = 0.72     CPU Time Elapsed = 0.69&lt;br /&gt;Plotting: Time Elapsed = 6.72     CPU Time Elapsed = 5.31&lt;br /&gt;objFunValue: 20.329368 (feasible, max constraint =  9.3314e-22)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Also, fEnough, maxTime, maxCPUTime and some other stop criteria work (for scipy_cobyla).&lt;br /&gt;&lt;br /&gt;Initially users had to connect iterfcn by themselves (to df, dc, dh etc), then it had been done automatically by default to df, now (with latest changes) it is for f and df only and automatically.&lt;br /&gt;&lt;br /&gt;Now NLP instance has parameter f_iter (default is max(nVars,4)), so when number of called objective function exceeds  p.f_iter (for scipy_cobyla and other solvers w/o iterfcn connected and gradient using), OO iterfcn function is called (and hence user-supplied callback functions(s) if any are declared).&lt;br /&gt;&lt;br /&gt;Also, for those solvers who hasn't native connection to OO iterfcn and use derivatives (algencan, ipopt, scipy_slsqp, some unconstrained and box-bounded ones) there is parameter df_iter, default True (use iterfcn each call for df); if positive integer s(s&gt;1, 1 is same to default True) - use iterfcn each s-th objective function gradient call.&lt;br /&gt;&lt;br /&gt;Mb I'll change "f_iter" and "df_iter" to more appropriate field names till next OO release.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-3034973610088873321?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/3034973610088873321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=3034973610088873321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3034973610088873321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3034973610088873321'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/11/enhanced-iterfcn-connection-for-scipy.html' title='enhanced iterfcn connection for scipy fmin_cobyla'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_t7NvRg6yt4E/SR8t7U6JBMI/AAAAAAAAAHw/4bQSl_g9QGA/s72-c/scipy_cobyla_iterfcnpng.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-5172430955780518060</id><published>2008-11-12T08:07:00.000-08:00</published><updated>2008-11-12T08:14:14.938-08:00</updated><title type='text'>Any Toronto openopt users?</title><content type='html'>hi all,&lt;br /&gt;if anyone from Toronto is OO user (I had noticed some in webcounters) it would be nice would you mention OO in (imaginary) "Million Dollar Python Project" (&lt;a href="http://groups.google.com/group/comp.lang.python.announce/browse_thread/thread/cb0788be8e433a60/049b762989c3d423?show_docid=049b762989c3d423"&gt;link&lt;/a&gt;) by &lt;a href="http://www.engcorp.com/pygta/wiki/PyGTA"&gt;PyGTA&lt;/a&gt;&lt;span id="thread_subject_site"&gt; (Toronto Python User's Group on Tuesday&lt;span style="text-decoration: underline;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;img src="http://www.blogger.com/img/blank.gif" alt="Link" class="gl_link" border="0" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-5172430955780518060?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/5172430955780518060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=5172430955780518060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5172430955780518060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5172430955780518060'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/11/any-toronto-openopt-users.html' title='Any Toronto openopt users?'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1172861348469766575</id><published>2008-11-09T06:19:00.000-08:00</published><updated>2008-11-10T02:21:14.896-08:00</updated><title type='text'>OpenOpt in Debian packages</title><content type='html'>&lt;pre wrap=""&gt;&lt;a href="http://www.onerussian.com/"&gt;Yaroslav Halchenko&lt;/a&gt; from &lt;a href="http://www.pymvpa.org/"&gt;PyMVPA&lt;/a&gt; project (that uses OpenOpt) has organized &lt;a href="http://packages.debian.org/en/sid/python-scikits-openopt"&gt;python-scikits-openopt&lt;/a&gt; deb package and put it into Debian Linux repository.&lt;br /&gt;&lt;br /&gt;However, I don't know how stable it is (I haven't tried/tested it yet and will hardly do in nearest future, currently I'm busy because of many other urgent things to be done, my dept chiefs require that ones).&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1172861348469766575?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1172861348469766575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1172861348469766575' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1172861348469766575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1172861348469766575'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/11/openopt-in-debian-packages.html' title='OpenOpt in Debian packages'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-8170519114710094325</id><published>2008-11-09T04:28:00.000-08:00</published><updated>2008-11-09T04:29:59.208-08:00</updated><title type='text'>some changes &amp; bugfixes</title><content type='html'>I have committed&lt;br /&gt;&lt;ul&gt;&lt;li&gt;some changes for ralg&lt;/li&gt;&lt;li&gt;some bugfixes for oofun-oovar&lt;/li&gt;&lt;li&gt;some other changes&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-8170519114710094325?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/8170519114710094325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=8170519114710094325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8170519114710094325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8170519114710094325'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/11/some-changes-bugfixes.html' title='some changes &amp; bugfixes'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-6086255792969144508</id><published>2008-10-28T13:05:00.000-07:00</published><updated>2008-10-28T23:33:35.139-07:00</updated><title type='text'>Major changes for ralg</title><content type='html'>I have committed some major changes for &lt;a href="http://scipy.org/scipy/scikits/wiki/NLP"&gt;NLP&lt;/a&gt;/&lt;a href="http://scipy.org/scipy/scikits/wiki/NSP"&gt;NSP&lt;/a&gt; solver &lt;a href="http://scipy.org/scipy/scikits/wiki/ralg"&gt;ralg&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A couple of ideas have been stolen from &lt;a href="http://www.kfunigraz.ac.at/imawww/kuntsevich/solvopt/"&gt;SolvOpt&lt;/a&gt; (made by our dept worker Alex Kuntsevich during his voyage to Austria, in collaboration with Franz Kappel), that still remains to be most famous Naum Z. Shor r-algorithm implementation with Fortran90, C and MATLAB API.&lt;br /&gt;&lt;br /&gt;However, the implementation is more heuristic than original Naum Z. Shor r-algorithm; since convergence of latter hasn't been proved yet even for smooth convex functions, proving convergence for SolvOpt's implementation will hardly be ever possible (especially because of those heuristics like backward line search approach, see SolvOpt's &lt;a href="http://www.box.net/shared/a213bflpgi"&gt;paper&lt;/a&gt; for algorithm details).&lt;br /&gt;&lt;br /&gt;So my dept chief is not fond of SolvOpt heuristics (he consider they reduce % of problems that can be solved, because SolvOpt can stop further from optimum, then primal Naum Z. Shor r-algorithm), still SolvOpt remains rather popular in our optimization dept.&lt;br /&gt;&lt;br /&gt;Currently I have taken 2 ideas from SolvOpt: modifications for initial step size and step multiplier for forward line search. As for backward search, I found SolvOpt's approach very unclear and currently my own way still remains in OO ralg implementation. Handling of constraints is also performed in a different way.&lt;br /&gt;&lt;br /&gt;Also, some code cleanup for OO kernel have been committed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-6086255792969144508?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/6086255792969144508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=6086255792969144508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6086255792969144508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6086255792969144508'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/10/major-changes-for-ralg.html' title='Major changes for ralg'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1797017166515823438</id><published>2008-10-21T06:21:00.000-07:00</published><updated>2008-10-21T06:27:38.350-07:00</updated><title type='text'>PSwarm 1.3 has been connected</title><content type='html'>I have connected new PSwarm version: 1.3.&lt;br /&gt;&lt;br /&gt;As PSwarm developer Ismael Vaz promised, now Python API has much more available parameters to modify (see updated &lt;a href="http://scipy.org/scipy/scikits/wiki/GLP"&gt;GLP&lt;/a&gt; page for details) and outputfcn connected (that improves text and graphics output), so now user-provided callback function(s) can be handled by the solver (also, openopt GUI p.manage() function works better, see &lt;a href="http://openopt.blogspot.com/2008/10/introducing-openopt-gui.html"&gt;previous post&lt;/a&gt; for description).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1797017166515823438?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1797017166515823438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1797017166515823438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1797017166515823438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1797017166515823438'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/10/pswarm-13-has-been-connected.html' title='PSwarm 1.3 has been connected'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1772303530192109167</id><published>2008-10-15T10:54:00.000-07:00</published><updated>2008-10-15T11:46:28.824-07:00</updated><title type='text'>Introducing OpenOpt GUI</title><content type='html'>I'm glad to introduce initial version of OpenOpt GUI.&lt;br /&gt;&lt;br /&gt;I had some months of GUI experience in PyGTK and tcl/tk so I have some experience in GUI development; on the other hand I know very well what's the deuce it is: you have to try all possible combinations of buttons (and the dummy task is NP-Hard of course) to ensure all works ok, to enable/disable buttons in correct order, to story related variables etc.&lt;br /&gt;&lt;br /&gt;For OO I decided to use Tkinter, because it doesn't require any additional soft installation (it is included in Python distribution).&lt;br /&gt;&lt;br /&gt;I had took a look at AMPL and GAMS GUIs before starting my own one, and of course I have no intention to duplicate Python IDEs.&lt;br /&gt;&lt;br /&gt;Running OO GUI is performed via&lt;br /&gt;&lt;br /&gt;r = p.manage()&lt;br /&gt;&lt;br /&gt;instead of p.solve(), or via&lt;br /&gt;&lt;br /&gt;from scikits.openopt import manage&lt;br /&gt;r = manage(p, solver, ...)&lt;br /&gt;&lt;br /&gt;Let me also note: manage() can handle named argument start = {False}/True/0/1, that means start w/o waiting for user-pressed "Run".&lt;br /&gt;&lt;br /&gt;Currently there are only 3 buttons: "Run/Pause", "Exit" and "Enough".&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_t7NvRg6yt4E/SPYu8H3L5PI/AAAAAAAAAHo/9LLcMNfATt4/s1600-h/OO_GUI.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_t7NvRg6yt4E/SPYu8H3L5PI/AAAAAAAAAHo/9LLcMNfATt4/s320/OO_GUI.jpg" alt="" id="BLOGGER_PHOTO_ID_5257441225439175922" border="0" /&gt;&lt;/a&gt;As you probably know lots of solvers have troubles with stop criteria. Especially it's relevant to NSP solvers, where calculating derivatives only for to check stop criteria isn't a good idea. So pressing "Enough" button yields triggering of stop criterion, like this:&lt;br /&gt;------------&lt;br /&gt;solver: ralg   problem: GUI_example   goal: minimum&lt;br /&gt;iter    objFunVal    log10(maxResidual) &lt;br /&gt;...&lt;br /&gt;102  5.542e+01              -6.10&lt;br /&gt;istop:  88 (button Enough has been pressed)&lt;br /&gt;Solver:   Time Elapsed = 1.19     CPU Time Elapsed = 1.12&lt;br /&gt;Plotting: Time Elapsed = 6.86     CPU Time Elapsed = 5.97&lt;br /&gt;objFunValue: 55.423444 (feasible, max constraint =  7.98936e-07)&lt;br /&gt;&lt;br /&gt;Let me also note that&lt;br /&gt;&lt;ul&gt;&lt;li&gt;pressing "Exit" before "Enough" and before solver finish will return None, so there will be no fields r.ff, r.xf etc.&lt;/li&gt;&lt;li&gt;for some IDEs pressing "Exit" doesn't close matplotlib window (if you are using p.plot=1). You should either wait for newer matplotlib version (they intend to fix it) or try to fix it by yourself via choosing correct Agg, see &lt;a href="http://www.nabble.com/Re%3A-how-to-close-%28complitly-destroy%29-pylab-figure--p19606525.html"&gt;here&lt;/a&gt; for details&lt;/li&gt;&lt;li&gt;OO Doc webpage entry related to OO GUI will be committed later&lt;/li&gt;&lt;li&gt;you could play with the GUI &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/GUI_1.py"&gt;example&lt;/a&gt; by yourself &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1772303530192109167?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1772303530192109167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1772303530192109167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1772303530192109167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1772303530192109167'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/10/introducing-openopt-gui.html' title='Introducing OpenOpt GUI'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_t7NvRg6yt4E/SPYu8H3L5PI/AAAAAAAAAHo/9LLcMNfATt4/s72-c/OO_GUI.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-7810593739527823387</id><published>2008-10-11T04:24:00.001-07:00</published><updated>2008-10-11T04:25:45.649-07:00</updated><title type='text'>bugfix for ooIterPrint.py in Python 2.4</title><content type='html'>I have been informed of Python 2.4 issue&lt;br /&gt;   File&lt;br /&gt;"/usr/lib/python2.4/site-packages/scikits/openopt/Kernel/ooIterPrint.py",&lt;br /&gt;line 6&lt;br /&gt;     'isFeasible': lambda p: ('+' if p.rk &lt; p.contol else&lt;br /&gt;'-')&lt;br /&gt;                                   ^&lt;br /&gt;SyntaxError: invalid syntax&lt;br /&gt;&lt;br /&gt;I have committed workaround for Python 2.4. Still I guess it's better to use Python 2.5, as it is mentioned in OO install webpage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-7810593739527823387?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/7810593739527823387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=7810593739527823387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7810593739527823387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7810593739527823387'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/10/bugfix-for-ooiterprintpy-in-python-24.html' title='bugfix for ooIterPrint.py in Python 2.4'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-8184217793938466780</id><published>2008-10-10T06:57:00.000-07:00</published><updated>2008-10-10T10:46:21.092-07:00</updated><title type='text'>Example of 10X speedup for NLP via oofun</title><content type='html'>I have committed the &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/oofun/speedup.py"&gt;example&lt;/a&gt; of unconstrained NLP where using oofun yields 10X speedup vs classic style (via reducing of the time required for gradient approximation for a costly function).&lt;br /&gt;&lt;br /&gt;Of course,&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I could construct example where the profit is 100X or even more, but it's longer to wait for output.&lt;/li&gt;&lt;li&gt;There can be similar examples constructed for constrained NLP or some other classes from non-linear group (NSP, NLSP, LSP).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I used scipy_ncg solver but speedup ~ 4X...10X is observed while using any other non-linear solver as well (provided the solver deals with at least 1st derivatives, so scipy_cobyla, goldenSection, scipy_fminbound, scipy_powell or GLP solvers are inappropriate).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Also, some changes to oofun-, oovar-related and some other OO Kernel files have been committed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-8184217793938466780?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/8184217793938466780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=8184217793938466780' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8184217793938466780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8184217793938466780'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/10/example-of-10x-speedup-for-nlp-via.html' title='Example of 10X speedup for NLP via oofun'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-5150770571981106494</id><published>2008-10-07T05:03:00.000-07:00</published><updated>2008-10-07T05:18:36.786-07:00</updated><title type='text'>oovar and oolin</title><content type='html'>I have committed my implementation of oovar and oolin to OpenOpt svn repository.&lt;br /&gt;&lt;br /&gt;So, 2 new entries to &lt;a href="http://scipy.org/scipy/scikits/wiki/OOFun"&gt;oofun doc webpage&lt;/a&gt; have been added:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;using oovar (&lt;span style="font-weight: bold;"&gt;O&lt;/span&gt;pen&lt;span style="font-weight: bold;"&gt;O&lt;/span&gt;pt &lt;span style="font-weight: bold;"&gt;Var&lt;/span&gt;iable)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;using oolin (that is &lt;span style="font-weight: bold;"&gt;lin&lt;/span&gt;ear &lt;span style="font-weight: bold;"&gt;oo&lt;/span&gt;fun)&lt;/li&gt;&lt;/ul&gt;Currently oolin(f) returns (f, x) (that is numpy.dot). In future I intend to add c: oolin(f, c) is (f, x) + c.&lt;br /&gt;Also, mb ooquad(H, f, c) will be implemented in future (that is 0.5 * x&lt;sup&gt;T&lt;/sup&gt;Hx + fx + c).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-5150770571981106494?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/5150770571981106494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=5150770571981106494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5150770571981106494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5150770571981106494'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/10/oovar-and-oolin.html' title='oovar and oolin'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-493719159626360121</id><published>2008-10-03T01:04:00.000-07:00</published><updated>2008-10-03T01:14:54.847-07:00</updated><title type='text'>new Python optimization soft: Pyomo</title><content type='html'>I've got to know about Pyomo (thanks to Nils Wagner) that is made by Sandia Labs (Trilinos/PyTrilinos developers). In the &lt;a href="http://www.optimization-online.org/DB_HTML/2008/09/2095.html"&gt;article&lt;/a&gt; they say "However, Coopr Opt is not as mature as the OpenOpt package", I guess that's the reason why my site daily visitors number has jumped from ~ 50-60 to ~ 80-90 this week.&lt;br /&gt;&lt;br /&gt;Also, in the paper they inform of willing to collaborate with OO. I had &lt;a href="http://openopt.blogspot.com/2007/09/nlsp-non-linear-solve-problem-new-oo.html"&gt;contacted&lt;/a&gt; them long time ago but the provided examples of their soft usage were too difficult for me to understand and connect to OO during an adequate time. I guess it will be much easier for them to understand my code instead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-493719159626360121?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/493719159626360121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=493719159626360121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/493719159626360121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/493719159626360121'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/10/new-python-optimization-soft-pyomo.html' title='new Python optimization soft: Pyomo'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-2292743519494573667</id><published>2008-10-03T00:55:00.000-07:00</published><updated>2008-10-03T01:18:08.213-07:00</updated><title type='text'>Very important bugfix for nonlinear problems</title><content type='html'>I have committed very important bugfix for nonlinear problems.&lt;br /&gt;I don't know how many days the nasty bug was hiding and lurkering (I guess several months), did the one affects some solvers work or no, because it has been somehow (but maybe not everytime) overwritten by other code, and only my latest changes (committed to subversion repository some days ago) have revealed the one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-2292743519494573667?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/2292743519494573667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=2292743519494573667' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2292743519494573667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2292743519494573667'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/10/very-important-bugfix-for-nonlinear.html' title='Very important bugfix for nonlinear problems'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-4690683961326266055</id><published>2008-09-29T12:33:00.000-07:00</published><updated>2008-09-29T12:47:46.510-07:00</updated><title type='text'>Changes for converters</title><content type='html'>I have committed lots of changes for (all) converters; also, the &lt;a href="http://openopt.blogspot.com/2008/09/new-converter-nlsp2nlp.html"&gt;issue&lt;/a&gt; with splitted funcs (for nlps2nlp and lsp2nlp) has been fixed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-4690683961326266055?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/4690683961326266055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=4690683961326266055' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/4690683961326266055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/4690683961326266055'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/09/changes-for-converters.html' title='Changes for converters'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-8437903271733389277</id><published>2008-09-29T12:25:00.000-07:00</published><updated>2008-09-29T12:31:44.109-07:00</updated><title type='text'>PSwarm v 1.2: bugfixes for Linux</title><content type='html'>After another one OO user (Nils Wagner) has informed &lt;a href="http://www.norg.uminho.pt/aivaz/pswarm/"&gt;PSwarm&lt;/a&gt; developer Ismael Vaz about same bugs ("use -fPIC" and "undefined symbol 'opt'") the bugs have been fixed.&lt;br /&gt;&lt;br /&gt;PSwarm v. 1.2 is already available with the bugfixes.&lt;br /&gt;&lt;br /&gt;I have removed mention of the bug from &lt;a href="http://scipy.org/scipy/scikits/wiki/GLP"&gt;GLP&lt;/a&gt; docpage entry.&lt;br /&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="on down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-8437903271733389277?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/8437903271733389277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=8437903271733389277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8437903271733389277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8437903271733389277'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/09/pswarm-v-12-bugfixes-for-linux.html' title='PSwarm v 1.2: bugfixes for Linux'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1396743139212542600</id><published>2008-09-27T13:13:00.000-07:00</published><updated>2008-09-27T13:24:22.747-07:00</updated><title type='text'>new converter: nlsp2nlp</title><content type='html'>I have committed nlsp2nlp converter, see &lt;a href="http://scipy.org/scipy/scikits/wiki/NLSP"&gt;NLSP&lt;/a&gt; page for details. It tries to minimize&lt;br /&gt;&lt;pre&gt;   &lt;i&gt;||F(x)||&lt;/i&gt;&lt;i&gt;&lt;sub&gt;&lt;i&gt;2&lt;/i&gt;&lt;/sub&gt;&lt;/i&gt;&lt;i&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/i&gt;&lt;/pre&gt;and, of course, it is capable of handling constrained problems.&lt;br /&gt;&lt;br /&gt;You can try updated &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/nlsp_1.py"&gt;nlsp_1.py&lt;/a&gt; or &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/nlsp_constrained.py"&gt;nlsp_constrained.py&lt;/a&gt; from &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples"&gt;/examples&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;However, a requirement should be satisfied: non-linear functions shouldn't be &lt;a href="http://openopt.blogspot.com/2008/05/major-changes-for-non-linear.html"&gt;splitted&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This minor issue is intended to be fixed in future (BTW, splitting can't yield benefits for nlsp2nlp converter with any NLP solver).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1396743139212542600?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1396743139212542600/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1396743139212542600' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1396743139212542600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1396743139212542600'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/09/new-converter-nlsp2nlp.html' title='new converter: nlsp2nlp'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1777381903167274651</id><published>2008-09-23T05:59:00.000-07:00</published><updated>2008-09-23T06:12:00.087-07:00</updated><title type='text'>Some more openopt install issues</title><content type='html'>Latest &lt;span style="font-weight: bold;"&gt;NumPy&lt;/span&gt; (taken from subversion repository) forced some OO users to inform me about some more openopt's install issues.&lt;br /&gt;&lt;br /&gt;First of all, sometimes openopt's "python setup.py install" starts to search and download numpy 1.1.x from internet, while recent numpy from svn is already installed.&lt;br /&gt;&lt;br /&gt;At second (it's especially inconvenient to me), modifying any single line in openopt's sources and then running "python setup.py install" now recompiles &lt;span style="font-weight: bold;"&gt;all&lt;/span&gt; openopt's files. Even if there were no changes at all, anyway &lt;span style="font-weight: bold;"&gt;all&lt;/span&gt; OO files are recompiled. Taking into account that I run this dozens times per day it's very annoying, and my increases danger for my HDD. Of course I could use OO without "python setup.py install" but this is inconvenient because of some reasons (I had already tried).&lt;br /&gt;&lt;br /&gt;So, please take into account: these issues are not up to me, they are up to numpy.distutils developers. I hope they will fixed it ASAP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1777381903167274651?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1777381903167274651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1777381903167274651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1777381903167274651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1777381903167274651'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/09/some-more-openopt-install-issues.html' title='Some more openopt install issues'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-2952406107781094739</id><published>2008-09-22T07:39:00.000-07:00</published><updated>2008-09-22T07:42:57.905-07:00</updated><title type='text'>Install issues with latest numpy</title><content type='html'>Recently some changes have been committed to numpy, and previous openopt versions can't work with those ones.&lt;br /&gt;&lt;br /&gt;So I have committed some changes to openopt, and AFAIK now openopt runs with all known to me numpy versions &gt;= 1.1.0 correctly.&lt;br /&gt;&lt;br /&gt;Hence, install/update OpenOpt from latest tarball or subversion repository is recommended.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-2952406107781094739?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/2952406107781094739/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=2952406107781094739' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2952406107781094739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2952406107781094739'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/09/install-issues-with-latest-numpy.html' title='Install issues with latest numpy'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-5921163997860102568</id><published>2008-09-20T04:51:00.000-07:00</published><updated>2008-09-20T04:56:54.350-07:00</updated><title type='text'>new converter: lsp2nlp</title><content type='html'>I have committed lsp2nlp converter, see &lt;a href="http://scipy.org/scipy/scikits/wiki/LSP"&gt;LSP&lt;/a&gt; page for details.&lt;br /&gt;&lt;a href="http://openopt.blogspot.com/2008/09/new-converter-qp2nlp.html"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-5921163997860102568?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/5921163997860102568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=5921163997860102568' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5921163997860102568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5921163997860102568'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/09/new-converter-lsp2nlp.html' title='new converter: lsp2nlp'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-8988090212053226486</id><published>2008-09-19T04:56:00.000-07:00</published><updated>2008-09-19T05:00:32.865-07:00</updated><title type='text'>new converter: lp2nlp</title><content type='html'>I have committed lp2nlp converter, see &lt;a href="http://scipy.org/scipy/scikits/wiki/LP"&gt;&lt;span style="text-decoration: underline;"&gt;L&lt;/span&gt;P&lt;/a&gt; page for details.&lt;br /&gt;See also the remark about &lt;a href="http://www.coin-or.org/Ipopt/documentation/node58.html#app.options_ref"&gt;ipopt.opt&lt;/a&gt; file &lt;a href="http://openopt.blogspot.com/2008/09/new-converter-qp2nlp.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-8988090212053226486?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/8988090212053226486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=8988090212053226486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8988090212053226486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8988090212053226486'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/09/new-converter-lp2nlp.html' title='new converter: lp2nlp'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-7180090435542758327</id><published>2008-09-18T07:00:00.000-07:00</published><updated>2008-09-18T07:20:21.257-07:00</updated><title type='text'>new converter: qp2nlp</title><content type='html'>I have committed qp2nlp converter, see &lt;a href="http://scipy.org/scipy/scikits/wiki/QP"&gt;QP&lt;/a&gt; page for details.&lt;br /&gt;Let me note that if a problem have been converted to NLP from QP, LLSP, LP (latter will be added soon), then the following lines are automatically appended to &lt;a href="http://www.coin-or.org/Ipopt/documentation/node58.html#app.options_ref"&gt;ipopt.opt&lt;/a&gt; file:&lt;br /&gt;&lt;br /&gt;jac_c_constant yes&lt;br /&gt;jac_d_constant yes&lt;br /&gt;hessian_constant yes&lt;br /&gt;&lt;br /&gt;Also, bugfix for example &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/qp_1.py"&gt;qp_1.py&lt;/a&gt; has been committed:&lt;br /&gt;&lt;br /&gt;Instead of&lt;br /&gt;x1^2 + 2x2^2 + 3x3^2 + 15x1 + 8x2 + 80x3 -&gt; min&lt;br /&gt;&lt;br /&gt;we have&lt;br /&gt;0.5 * (x1^2 + 2x2^2 + 3x3^2) + 15x1 + 8x2 + 80x3 -&gt; min&lt;br /&gt;&lt;br /&gt;I.e. if H = diag((1,2,3)), instead of&lt;br /&gt;xHx + fx -&gt; min&lt;br /&gt;&lt;br /&gt;we search for&lt;br /&gt;0.5 * xHx + fx -&gt; min&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-7180090435542758327?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/7180090435542758327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=7180090435542758327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7180090435542758327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7180090435542758327'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/09/new-converter-qp2nlp.html' title='new converter: qp2nlp'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-430322989873086396</id><published>2008-09-15T05:15:00.000-07:00</published><updated>2008-09-15T11:28:51.730-07:00</updated><title type='text'>OpenOpt release 0.19</title><content type='html'>Hi all,&lt;br /&gt;I'm glad to inform you about new OpenOpt release: v 0.19.&lt;br /&gt;&lt;br /&gt;Changes since previous release &lt;a href="http://openopt.blogspot.com/2008/06/openopt-018.html"&gt;0.18&lt;/a&gt; (June 15, 2008):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Some changes for NLP/NSP solver ralg (especially related to handling linear constraints Ax &lt;= b, Aeq x = beq, lb &lt;= x &lt;= ub)&lt;/li&gt;&lt;li&gt;Bugfix for ralg and IPOPT linear constraints handling&lt;br /&gt;&lt;/li&gt;&lt;li&gt;ALGENCAN v 2.0.x has been connected (v 1.0 is no longer supported, v 2.0.3 or later is required)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Bugfix for constrained NLSP graphic output (constrained nssolve isn't turned to latest ralg version yet)&lt;/li&gt;&lt;li&gt;Scale parameter for lpSolve (p.scale = {False} | True | 0 | 1)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;New OO class &lt;a href="http://scipy.org/scipy/scikits/wiki/LLAVP"&gt;LLAVP&lt;/a&gt; (linear least absolute values aka linear least deviations)&lt;/li&gt;&lt;li&gt;Improved handling of non-linear functions with &lt;a href="http://openopt.blogspot.com/2008/07/non-linear-functions-with-restricted.html"&gt;restricted&lt;/a&gt; dom&lt;/li&gt;&lt;li&gt;&lt;a href="http://scipy.org/scipy/scikits/wiki/GLP"&gt;GLP&lt;/a&gt; (global) solver galileo now can handle integer problems (via p.useInteger = 1 or True)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Another one &lt;a href="http://scipy.org/scipy/scikits/wiki/GLP"&gt;GLP&lt;/a&gt; solver connected: pswarm&lt;/li&gt;&lt;li&gt;Lots of work related to oofun concept (see OO Doc page for details)&lt;/li&gt;&lt;li&gt;Add converters &lt;a href="http://openopt.blogspot.com/2008/07/first-converter-is-ready-llsp2nlp.html"&gt;llsp2nlp&lt;/a&gt;, llavp2nsp &lt;/li&gt;&lt;li&gt;Convenient handling of maximization problems (via p.goal = 'max' or 'maximum')&lt;/li&gt;&lt;li&gt;Some code clean up and bugfixes&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Backward incompatibility:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://openopt.blogspot.com/2008/07/some-changes.html"&gt;Changed&lt;/a&gt; objective function in LLSP&lt;br /&gt;&lt;/li&gt;&lt;li&gt;MATLAB-style gradtol renamed to gtol (for to provide same syntax to scipy.optimize fmin_bfgs, fmin_cg and less-to-type)&lt;/li&gt;&lt;/ul&gt; Regards, Dmitrey.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-430322989873086396?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/430322989873086396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=430322989873086396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/430322989873086396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/430322989873086396'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/09/openopt-release-019.html' title='OpenOpt release 0.19'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-360912713373291716</id><published>2008-09-15T05:12:00.000-07:00</published><updated>2008-09-15T05:15:19.533-07:00</updated><title type='text'>changes for ralg and oofun derivatives example</title><content type='html'>&lt;ul&gt;&lt;li&gt;some ralg changes, mainly for linear constraints (A, Aeq, lb, ub)&lt;/li&gt;&lt;li&gt;example of oofun derivatives has been attached to OO Doc page&lt;/li&gt;&lt;li&gt;some code cleanup and minor bugfixes&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-360912713373291716?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/360912713373291716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=360912713373291716' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/360912713373291716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/360912713373291716'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/09/changes-for-ralg-and-oofun-derivatives.html' title='changes for ralg and oofun derivatives example'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-4009623754646896241</id><published>2008-09-01T01:10:00.000-07:00</published><updated>2008-09-01T02:22:58.944-07:00</updated><title type='text'>changes for ralg, oofun, handling NaNs</title><content type='html'>I have committed some changes related to&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ralg: change for matrix B rejuvenation criterium, now by default it performs check "cond(b) less than 1e5" each 250th iter or provided a stop criterion has triggered on. However, for large nVars evaluation of numpy.linalg.cond(b) takes a time (for nVars = 1000 I got ~5 seconds at my AMD 3800+ X2). So it would be good to get estimation of cond(b) instead of exact value (like MATLAB's &lt;span style="font-style: italic;"&gt;condest&lt;/span&gt; for sparse matrices; however, b is dense).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;oofun: recursive 1st derivatives, appropriate example will be committed soon&lt;br /&gt;&lt;/li&gt;&lt;li&gt;handling NaNs: if right-derivative (f(x+dx)-f(x))/dx is NaN then left-derivative (f(x)-f(x-dx))/dx will be used; it's valid for both oofun and classic style, however, it doesn't resolve all possible issues. Also, I intend to add double-side derivative possibility in future: (f(x+dx)-f(x-dx))/(2*dx) via an oofun field, for example c2 = oofun(..., useDoubleSideDerivative = True,...)&lt;/li&gt;&lt;li&gt;some other (minor) ralg changes&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-4009623754646896241?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/4009623754646896241/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=4009623754646896241' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/4009623754646896241'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/4009623754646896241'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/09/changes-for-ralg-oofun-handling-nans.html' title='changes for ralg, oofun, handling NaNs'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1506756236469295340</id><published>2008-08-19T13:19:00.000-07:00</published><updated>2008-08-19T22:34:33.338-07:00</updated><title type='text'>New GLP solver: pswarm</title><content type='html'>I'm glad to inform that new &lt;a href="http://scipy.org/scipy/scikits/wiki/GLP"&gt;GLP&lt;/a&gt; solver has been connected to OO: pswarm.&lt;br /&gt;&lt;br /&gt;Note that along with box-bound constraints&lt;br /&gt;lb &lt;= x &lt;= ub&lt;br /&gt;this one is capable of handling linear inequalities:&lt;br /&gt;Ax &lt;= b&lt;br /&gt;&lt;br /&gt;However, I encountered some troubles in my KUBUNTU (such as "recompile with -fPIC" and then, after fixing it, "undefined symbol opt") and have connected pswarm within WinXP. I have mailed PSwarm author the issues but he hasn't responded yet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1506756236469295340?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1506756236469295340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1506756236469295340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1506756236469295340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1506756236469295340'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/08/new-glp-solver-pswarm.html' title='New GLP solver: pswarm'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-429753755149810380</id><published>2008-08-18T06:22:00.000-07:00</published><updated>2008-08-18T09:40:08.544-07:00</updated><title type='text'>some changes</title><content type='html'>&lt;ul&gt;&lt;li&gt;minor changes for ralg&lt;/li&gt;&lt;li&gt;minor changes for tests. In order to check openopt after installation users wont to use the files (relevant to their class) from /examples, and now you can alternatively use the tests from /tests directory. First of all /tests/nlp1.py is recommended, because it uses ralg and hence doesn't require any other 3rd party solvers installation. Maybe in future openopt tests will use nose or texttest framework.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-429753755149810380?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/429753755149810380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=429753755149810380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/429753755149810380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/429753755149810380'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/08/some-changes.html' title='some changes'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-3648807578724979680</id><published>2008-08-07T04:29:00.000-07:00</published><updated>2008-08-07T08:27:03.557-07:00</updated><title type='text'>Updates in 1) oofun doc 2) ralg</title><content type='html'>1. Some changes for NLP/NSP ralg solver have been made. A personal wiki &lt;a href="http://scipy.org/scipy/scikits/wiki/ralg"&gt;page&lt;/a&gt; for ralg has been committed.&lt;br /&gt;&lt;br /&gt;2. I have added new entry to openopt &lt;a href="http://scipy.org/scipy/scikits/wiki/OODoc"&gt;doc page&lt;/a&gt; about how to use oofun to prevent recalculating same parts of code.&lt;br /&gt;(This is rather common problem, mentioned for example &lt;a href="http://list.coin-or.org/pipermail/ipopt/2008-July/001185.html"&gt;here&lt;/a&gt; and &lt;a href="http://permalink.gmane.org/gmane.comp.python.scientific.user/17133"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Let me note once again that calling df(x1) doesn't guarantee that f(x1) (i.e. in same point) was called immediately before the df call (and same to c, h, dc, dh). Still in 90-95% cases it's true, so it would be convenient to check and (if input, according to dependencies, is same) substitute already calculated values automatically. &lt;br /&gt;&lt;br /&gt;So oofun is an implementation of possible solutions to the issue. There are some other convenient tools based on oofun usage, already available in OO code. Still lots of other oofun-related work in Kernel remains to be done (recursive 1st derivatives, implementation of oovar etc).&lt;br /&gt;&lt;br /&gt;Of course oofun concept isn't something new, for example, something like this is present in &lt;a href="http://control.ee.ethz.ch/~joloef/yalmip.php"&gt;YALMIP&lt;/a&gt; (free MATLAB toolbox for some numerical optimization problems, translates YALMIP scripts to MATLAB). Also, there is some similar work involving in our dept using Visual C and Rational Rose.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-3648807578724979680?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/3648807578724979680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=3648807578724979680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3648807578724979680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3648807578724979680'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/08/updates-in-1-oofun-doc-2-ralg.html' title='Updates in 1) oofun doc 2) ralg'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-7027380099834778408</id><published>2008-08-03T11:38:00.000-07:00</published><updated>2008-08-04T00:55:10.657-07:00</updated><title type='text'>IBM to acquire ILOG (CPLEX developer)</title><content type='html'>I've got to know: IBM and ILOG announced that they had signed an agreement regarding to the proposed acquisition of ILOG by IBM (one of URLs is &lt;a href="http://www.it-director.com/enterprise/content.php?cid=10654"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Let me remember those ones who are not closely connected to numerical optimization, that ILOG develops CPLEX (and some other, less famous, numerical optimization solvers), so ILOG is known as leader of commercial LP/MILP (and probably QP) solvers vendors (along with other well-known commercial ones - XA, XPRESS, Mosek, LOQO etc). You can check some benchmark results &lt;a href="http://plato.asu.edu/bench.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Also, IBM is know as sponsor of well-know project &lt;a href="http://www.coin-or.org/"&gt;COIN-OR&lt;/a&gt; that hosts lots of free solvers under CPL (an OSI-approved license with copyleft), including IPOPT, most famous free NLP solver (BTW Python programmers can can use this one from OO, but currently for Linux OSes only). &lt;br /&gt;&lt;br /&gt;So it means there are some chances CPLEX will move from commercial-only status to more permissive one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-7027380099834778408?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/7027380099834778408/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=7027380099834778408' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7027380099834778408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7027380099834778408'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/08/ibm-to-acquire-ilog-cplex-developer.html' title='IBM to acquire ILOG (CPLEX developer)'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-7863922894773552525</id><published>2008-08-03T11:17:00.000-07:00</published><updated>2008-08-03T12:19:44.345-07:00</updated><title type='text'>some changes for ralg</title><content type='html'>I have committed some changes for NLP/NSP solver ralg (some ones to speedup and some ones for better handling NaNs, if x is outside of dom objFunc or dom of some non-linear constraints).&lt;br /&gt;&lt;br /&gt;Another one parameter (mostly for NLP/NSP) have been added: isNaNInConstraintsAllowed (default False). This one means is nan (not a number) allowed in non-linear constraints for optim point (mostly for inequalities: p.c(r.xf)). &lt;br /&gt;Non-default value True is encountered very seldom, for very special cases.&lt;br /&gt;&lt;br /&gt;Also, some code cleanup for ralg and some examples, + some changes for tests/chain.py.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-7863922894773552525?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/7863922894773552525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=7863922894773552525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7863922894773552525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7863922894773552525'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/08/some-changes-for-ralg.html' title='some changes for ralg'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-3138287065590224075</id><published>2008-07-27T05:14:00.000-07:00</published><updated>2008-07-27T05:24:50.199-07:00</updated><title type='text'>integer problems for GLP solver galileo</title><content type='html'>I have committed new parameter "useInteger" for &lt;a href="http://scipy.org/scipy/scikits/wiki/GLP"&gt;GLP&lt;/a&gt; solver galileo. Valid values are 0, 1, True, False (default). If true, galileo will search solution with all-integer variables.&lt;br /&gt;&lt;br /&gt;Hence my GSoC schedule is finished. Nevertheless, mb I'll have written some more OO code till next OO release, first of all I intend to add some more converters (lp2nlp, qp2nlp, lsp2nlp), also, mb some modifications for ralg will be made.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-3138287065590224075?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/3138287065590224075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=3138287065590224075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3138287065590224075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3138287065590224075'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/07/integer-problems-for-glp-solver-galileo.html' title='integer problems for GLP solver galileo'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-3427919170451808334</id><published>2008-07-25T04:09:00.000-07:00</published><updated>2008-07-25T04:28:51.451-07:00</updated><title type='text'>non-linear functions with restricted dom</title><content type='html'>Some non-linear functions have much more restricted dom than R^nVars.&lt;br /&gt;For example F(x) = log(x); dom F = R+ = {x: x&gt;0}&lt;br /&gt;&lt;br /&gt;I had posted a small &lt;a href="http://comments.gmane.org/gmane.comp.python.scientific.user/16937"&gt;manual&lt;/a&gt; of using ralg with the problems (via +inf and contol shift), however, optimization solvers wont to expect user-povided F(x) = nan (if x is out of dom).&lt;br /&gt;&lt;br /&gt;So I have made ralg handling doms in accordance with the mentioned standard; now there are no needs to do that contol shift mentioned, and using [numpy.]nan instead of +inf is recommended.&lt;br /&gt;&lt;br /&gt;An &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/restricted_dom.py"&gt;example&lt;/a&gt; has been attached to OO Doc Page.&lt;br /&gt;&lt;br /&gt;Note also that some solvers (BTW all connected to OO except of ralg) require x0 from dom(objFunc).&lt;br /&gt;As for ralg it doesn't matter, provided for each point x out of dom objFunc there is at least one active constraint (usually lb&lt;=x&lt;=ub are used, but any other constraints, including non-linear, are OK).&lt;br /&gt;&lt;br /&gt;Note: some ralg iters have objFunc = nan:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;-----------------------------------------------------&lt;br /&gt;solver: ralg   problem: unnamed   goal: minimum&lt;br /&gt; iter    objFunVal    log10(maxResidual)   &lt;br /&gt;    0  1.925e+04            -100.00 &lt;br /&gt;   50        nan               1.32 &lt;br /&gt;  100        nan              -0.26 &lt;br /&gt;  150  1.045e+03            -100.00 &lt;br /&gt;  200  1.027e+03            -100.00 &lt;br /&gt;  250        nan              -3.49 &lt;br /&gt;  300        nan              -3.19 &lt;br /&gt;  350  1.016e+03            -100.00 &lt;br /&gt;  400        nan              -5.20 &lt;br /&gt;  450        nan              -6.75 &lt;br /&gt;  500        nan              -5.72 &lt;br /&gt;  550        nan              -5.91 &lt;br /&gt;  555  1.015e+03            -100.00 &lt;br /&gt;istop:  4 (|| F[k] - F[k-1] || &lt; ftol)&lt;br /&gt;Solver:   Time Elapsed = 2.45  CPU Time Elapsed = 2.37&lt;br /&gt;objFunValue: 1015.082 (feasible, max constraint =  0)&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-3427919170451808334?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/3427919170451808334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=3427919170451808334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3427919170451808334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3427919170451808334'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/07/non-linear-functions-with-restricted.html' title='non-linear functions with restricted dom'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-6872037631081650037</id><published>2008-07-19T07:03:00.000-07:00</published><updated>2008-07-19T07:20:03.626-07:00</updated><title type='text'>New OO class: LLAVP</title><content type='html'>New OO class is ready: &lt;a href="http://scipy.org/scipy/scikits/wiki/LLAVP"&gt;LLAVP&lt;/a&gt; - linear least absolute value problem, aka linear least absolute deviation problem&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    &lt;i&gt;||C*x-d||&lt;sub&gt;1&lt;/sub&gt; + damp*||x-X||&lt;sub&gt;1&lt;/sub&gt; -&gt; min&lt;/i&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; subjected to box-bound constraints:&lt;br /&gt;      lb &lt;= x &lt;= ub (some coords of lb and ub can be +/- inf)&lt;br /&gt;&lt;br /&gt; (some more constraints are intended to be added)&lt;br /&gt;&lt;br /&gt;currently single solver available is converter llavp2nsp. Usage example:&lt;br /&gt;r = p.solve('nsp:ralg')&lt;br /&gt;Recommended solvers to try are ralg, ipopt (using maxIter for ipopt is recommended) and algencan.&lt;br /&gt;&lt;br /&gt;However note: ipopt and algencan are NLP solvers and convergence for non-smooth problems like LLAVP is not guarantied. As for Naum Z. Shor r-algorithm implemented in ralg, convergence haven't been proved even for convex NL problems yet.&lt;br /&gt;&lt;br /&gt;Also, I intended to connect Fortran-written &lt;a href="http://www.netlib.org/toms/615"&gt;toms615&lt;/a&gt; but I got f2py error:&lt;br /&gt;$ f2py -c -m toms615 toms615.f&lt;br /&gt;  ...&lt;br /&gt;  File "/usr/lib/python2.5/site-packages/numpy/f2py/f2py2e.py", line 364, in run_main&lt;br /&gt;    raise TypeError,'All blocks must be python module blocks but got %s'%(`postlist[i]['block']`)&lt;br /&gt;TypeError: All blocks must be python module blocks but got 'program'&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-6872037631081650037?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/6872037631081650037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=6872037631081650037' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6872037631081650037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6872037631081650037'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/07/new-oo-class-llavp.html' title='New OO class: LLAVP'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-5959259637130941625</id><published>2008-07-18T11:19:00.000-07:00</published><updated>2008-07-18T11:40:21.581-07:00</updated><title type='text'>ALGENCAN diffInt issue</title><content type='html'>After some experiments with ALGENCAN 2.0.x series I have noticed that decreasing diffInt can be very helpful. &lt;br /&gt;&lt;br /&gt;The diffInt parameter is used for getting derivatives via finite-difference approximation (when no derivatives are provided by user). Currently default value in OO for NLP is 1e-7, and it it recommended to try values 1e-8, 1e-9, 1e-10, 1e-11.&lt;br /&gt;&lt;br /&gt;Seems like ALGENCAN is much more sensitive to the gradient precision than other OO-connected NLP solvers.&lt;br /&gt;&lt;br /&gt;Drawback of so small diffInt can raise when some non-linear funcs are hard to evaluate precisely because of rather big numerical noise.&lt;br /&gt;&lt;br /&gt;I don't know yet which diffInt value is used in ALGENCAN by default and is it fixed or somehow changes during calculations. If latter, mb in future I'll turn off OO-supplied gradient obtaining via finite-difference and let ALGENCAN evaluating it by itself. The drawback is the following: each separate evaluation of non-lin func (objfunc or non-lin constraints) is very costly, because it is wrapper that performs some checks, update counters of func calls, translates Python list, tuples, numpy matrices (that can be returning by user funcs) into numpy.ndarray type etc, while calling for derivatives is a little bit optimized and obtaining, for example, dc/dx is performed faster than separate obtaining (c(x + dx1)-c0)/diffInt, (c(x+dx2)-c0)/diffInt ..., (c(x+dxn)-c0)/diffInt, where dxk is all-zeros vector except of coord k with value diffInt.&lt;br /&gt;&lt;br /&gt;Let me also note once again a good user-provided gradtol value can be helpful (try 1e-1...1e-10).&lt;br /&gt;&lt;br /&gt;Probably, in future OO versions gradtol will be renamed to gtol (less to type).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-5959259637130941625?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/5959259637130941625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=5959259637130941625' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5959259637130941625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5959259637130941625'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/07/algencan-diffint-issue.html' title='ALGENCAN diffInt issue'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-8498258975111914585</id><published>2008-07-17T08:16:00.000-07:00</published><updated>2008-07-17T08:23:45.754-07:00</updated><title type='text'>ALGENCAN 1.0 is no longer supported</title><content type='html'>I have removed ALGENCAN solver from svn repository according to demand of my gsoc mentor (it makes svn repository unavailable from Win and Mac OS since ALGENCAN_oo.py and algencan_oo.py are case-insensitive same names for the OSes subversion clients). Still I think it could wait till next OO release.&lt;br /&gt;&lt;br /&gt;So now you can use ALGENCAN v 2.x only, as "algencan" solver (lower-case). You should have at least 2.0.3 (for now latest is 2.0.4).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-8498258975111914585?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/8498258975111914585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=8498258975111914585' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8498258975111914585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8498258975111914585'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/07/algencan-10-is-no-longer-supported.html' title='ALGENCAN 1.0 is no longer supported'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-2081082257688785943</id><published>2008-07-15T05:27:00.000-07:00</published><updated>2008-07-15T05:34:27.930-07:00</updated><title type='text'>Introduction to oofun</title><content type='html'>I have added another one entry to &lt;a href="http://scipy.org/scipy/scikits/wiki/OODoc"&gt;OO Doc webpage&lt;/a&gt;, related to oofun. It can handle dependencies info and provide some other benefits. &lt;br /&gt;&lt;br /&gt;For more info see the &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/oofun_intro.py"&gt;entry&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Of course, the concept of oofun is not something new, for example, even some my dept workers implement something similar using Visual C++ and Rational Rose.&lt;br /&gt;&lt;br /&gt;I intend to continue oofun development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-2081082257688785943?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/2081082257688785943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=2081082257688785943' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2081082257688785943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2081082257688785943'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/07/introduction-to-oofun.html' title='Introduction to oofun'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-5776429868770002395</id><published>2008-07-14T07:10:00.000-07:00</published><updated>2008-07-14T07:18:42.371-07:00</updated><title type='text'>ALGENCAN 2.0.3beta has been released</title><content type='html'>ALGENCAN developers have informed me they have fixed the &lt;a href="http://groups.google.com/group/tango-project/t/f85257be0108c721"&gt;bug&lt;/a&gt; with Python API installation, and today corrected ALGENCAN 2.0.3 beta has been released (works well with OO as "algencan" solver). &lt;br /&gt;&lt;br /&gt;Still, as I had &lt;a href="http://openopt.blogspot.com/2008/06/connecting-algencan-2x-beta.html"&gt;informed&lt;/a&gt;, those my examples (nlp_bench_1, nlp3) work better with ALGENCAN 1.0, mb because some funcs (that are used there) are too far from being quadratic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-5776429868770002395?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/5776429868770002395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=5776429868770002395' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5776429868770002395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5776429868770002395'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/07/algencan-203-bet-has-been-released.html' title='ALGENCAN 2.0.3beta has been released'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-909456787808567182</id><published>2008-07-12T02:03:00.000-07:00</published><updated>2008-07-12T03:14:40.228-07:00</updated><title type='text'>changes in ralg and derivatives check</title><content type='html'>&lt;list&gt;&lt;br /&gt;&lt;li&gt;Some major changes for NLP/NSP ralg solver. &lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;I have committed some changes in check user-supplied derivatives. &lt;br /&gt;&lt;br /&gt;Old-style difference is not a good choice because sometimes you have values to compare like 1.24*10&lt;sup&gt;5&lt;/sup&gt; (user-supplied) and 1.23*10&lt;sup&gt;5&lt;/sup&gt; (finite-difference), while sometimes 1.24*10&lt;sup&gt;-5&lt;/sup&gt; (user-supplied) and 1.23*10&lt;sup&gt;-5&lt;/sup&gt; (finite-difference).&lt;br /&gt;&lt;br /&gt;The new way is based on comparing &lt;br /&gt;1 - derivative_user/derivative_finite_diff &lt;br /&gt;to maxViolation value&lt;br /&gt;&lt;br /&gt;The parameter maxViolation can be used as prob field or via for example p.checkdc(maxViolation=0.05)&lt;br /&gt;Note that x remains to be 1st argument for checkdc, checkdf, checkdh (default p.x0), and can be used as kwarg as well: p.checkdh(maxViolation=0.05, x = 0.5*(p.lb+p.ub)), that is same to p.checkdh(0.5*(p.lb+p.ub), maxViolation=0.05).&lt;br /&gt;&lt;br /&gt;So new text output is like this one below (this one is produced by updated &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/checkDerivatives.py"&gt;examples/checkDerivatives.py&lt;/a&gt; file). &lt;br /&gt;&lt;br /&gt;Note that RD (relative difference) is defined as&lt;br /&gt;&lt;br /&gt;int(ceil(log10(abs(Diff) / maxViolation + 1e-150)))&lt;br /&gt;&lt;br /&gt;where &lt;br /&gt;&lt;br /&gt;Diff = 1 - (info_user+1e-150)/(info_numerical + 1e-150)&lt;br /&gt;&lt;br /&gt;(those small numbers are used to suppress zeros)&lt;br /&gt;################################&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;OpenOpt checks user-supplied gradient df (shape: (30,) )&lt;br /&gt;according to prob.diffInt = [9.9999999999999995e-08]&lt;br /&gt;lines with 1 - info_user/info_numerical greater than maxViolation = 0.01 will be shown&lt;br /&gt;df num         user-supplied     numerical               RD&lt;br /&gt;    0             +7.000e+00     -8.000e+00              3&lt;br /&gt;    8             -2.291e+00     -1.029e+01              2&lt;br /&gt;max(abs(df_user - df_numerical)) = 14.9999995251&lt;br /&gt;(is registered in df number 0)&lt;br /&gt;========================&lt;br /&gt;OpenOpt checks user-supplied gradient dc (shape: (2, 30) )&lt;br /&gt;according to prob.diffInt = [9.9999999999999995e-08]&lt;br /&gt;lines with 1 - info_user/info_numerical greater than maxViolation = 0.01 will be shown&lt;br /&gt;dc num   i,j:dc[i]/dx[j]   user-supplied     numerical               RD&lt;br /&gt;    32             1 / 2         +1.417e+01     -8.323e-01              4&lt;br /&gt;max(abs(dc_user - dc_numerical)) = 14.9999999032&lt;br /&gt;(is registered in dc number 32)&lt;br /&gt;========================&lt;br /&gt;OpenOpt checks user-supplied gradient dh (shape: (2, 30) )&lt;br /&gt;according to prob.diffInt = [9.9999999999999995e-08]&lt;br /&gt;lines with 1 - info_user/info_numerical greater than maxViolation = 0.01 will be shown&lt;br /&gt;dh num   i,j:dh[i]/dx[j]   user-supplied     numerical               RD&lt;br /&gt;    58            1 / 28         -4.474e+01     -5.974e+01              2&lt;br /&gt;max(abs(dh_user - dh_numerical)) = 14.9999962441&lt;br /&gt;(is registered in dh number 58)&lt;br /&gt;========================&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/list&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-909456787808567182?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/909456787808567182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=909456787808567182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/909456787808567182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/909456787808567182'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/07/changes-in-ralg-and-derivatives-check.html' title='changes in ralg and derivatives check'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-6332817964572108849</id><published>2008-07-04T13:20:00.000-07:00</published><updated>2008-07-05T00:33:25.842-07:00</updated><title type='text'>First converter is ready: llsp2nlp</title><content type='html'>I have committed some changes, so LLSP class has new form:&lt;br /&gt;&lt;pre&gt;&lt;font size="4"&gt;&lt;i&gt;0.5*||C*x-d||&lt;sup&gt;2&lt;/sup&gt; + 0.5*damp*||x-X||&lt;sup&gt;2&lt;/sup&gt; + f&lt;sup&gt;T&lt;/sup&gt;x-&gt; min&lt;/font&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size="4"&gt;subjected to:&lt;/font&gt;&lt;br /&gt;&lt;font size="4"&gt; lb &lt;= x &lt;= ub  &lt;/font&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;A*x &lt;= b, Aeq*x = beq constraints are intended to be added in future.  &lt;br /&gt;&lt;br /&gt;Using llsp2nlp converter is performed via &lt;br /&gt;&lt;br /&gt;r = p.solve('nlp:NLPSolverName') &lt;br /&gt;&lt;br /&gt;for example &lt;br /&gt;r = p.solve('nlp:ralg')  &lt;br /&gt;&lt;br /&gt;For more details read &lt;a href="http://scipy.org/scipy/scikits/wiki/LLSP"&gt;LLSP&lt;/a&gt; webpage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-6332817964572108849?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/6332817964572108849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=6332817964572108849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6332817964572108849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6332817964572108849'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/07/first-converter-is-ready-llsp2nlp.html' title='First converter is ready: llsp2nlp'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-7403535239827856310</id><published>2008-07-03T13:26:00.000-07:00</published><updated>2008-07-03T23:04:34.989-07:00</updated><title type='text'>some changes</title><content type='html'>&lt;ol&gt;&lt;li&gt;I have &lt;a href="http://scipy.org/scipy/scikits/changeset/1091"&gt;committed&lt;/a&gt; lots of changes, mostly code cleanup (still some more remain to be done) + some bugfixes.&lt;/li&gt;&lt;li&gt;Objective function in &lt;a href="http://scipy.org/scipy/scikits/wiki/LLSP"&gt;LLSP&lt;/a&gt; have been changed from ||Cx-d|| (lapack-, &lt;a href="http://lib.stat.cmu.edu/general/bvls"&gt;BVLS&lt;/a&gt;-style) to 0.5*||Cx-d||^2 (&lt;a href="http://www.cs.ubc.ca/%7Empf/bcls/"&gt;BCLS&lt;/a&gt;, lsqlin, lots of other LLSP solvers style).These changes are required to simplify writing llsp2nlp converter. Also, some optional fields like those from BCLS will be added to LLSP soon.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-7403535239827856310?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/7403535239827856310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=7403535239827856310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7403535239827856310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7403535239827856310'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/07/some-changes.html' title='some changes'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-9066119076731617116</id><published>2008-06-29T10:58:00.000-07:00</published><updated>2008-06-29T11:00:49.516-07:00</updated><title type='text'>scale parameter for lpSolve</title><content type='html'>I have committed scale parameter (bool flag) handling for lpSolve.&lt;br /&gt;&lt;br /&gt;It should be used as&lt;br /&gt;&lt;br /&gt;p.solve('lpSolve', scale = 1)&lt;br /&gt;or&lt;br /&gt;p.solve('lpSolve', scale = True)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-9066119076731617116?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/9066119076731617116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=9066119076731617116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/9066119076731617116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/9066119076731617116'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/06/scale-parameter-for-lpsolve.html' title='scale parameter for lpSolve'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-4743663869698201988</id><published>2008-06-27T13:53:00.000-07:00</published><updated>2008-06-28T02:04:12.420-07:00</updated><title type='text'>bugfix for constrained NLSP graphic output</title><content type='html'>I have committed the bugfix mentioned in OO GSoC timeline.&lt;br /&gt;Here's graphic output for a little bit modified &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/nlsp_constrained.py"&gt;/examples/nlsp_constrained.py&lt;/a&gt;.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_t7NvRg6yt4E/SGVUG23bh9I/AAAAAAAAAFk/wjwHgR-impI/s1600-h/nlsp_constrained.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_t7NvRg6yt4E/SGVUG23bh9I/AAAAAAAAAFk/wjwHgR-impI/s400/nlsp_constrained.jpg" alt="" id="BLOGGER_PHOTO_ID_5216668220162541522" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-4743663869698201988?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/4743663869698201988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=4743663869698201988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/4743663869698201988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/4743663869698201988'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/06/bugfix-for-nlsp-graphic-output.html' title='bugfix for constrained NLSP graphic output'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_t7NvRg6yt4E/SGVUG23bh9I/AAAAAAAAAFk/wjwHgR-impI/s72-c/nlsp_constrained.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-2932213561211861820</id><published>2008-06-24T22:20:00.000-07:00</published><updated>2008-06-24T22:22:22.382-07:00</updated><title type='text'>bugfix for ralg A, Aeq constraints handling</title><content type='html'>I have committed bugfix for ralg A, Aeq constraints handling. &lt;br /&gt;Unfortunately, the bug is present in 0.18, when I add Point class.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-2932213561211861820?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/2932213561211861820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=2932213561211861820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2932213561211861820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2932213561211861820'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/06/bugfix-for-ralg-aeq-constraints.html' title='bugfix for ralg A, Aeq constraints handling'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-281380841274240431</id><published>2008-06-24T02:46:00.000-07:00</published><updated>2008-06-24T03:06:03.852-07:00</updated><title type='text'>connecting algencan 2.x beta</title><content type='html'>Some weeks ago I had downloaded and compiled algencan 2.0 beta (version from March 25). Now new version is available: 2.0.1 beta, but currently I fail to compile both these versions (I guess because of some KUBUNTU updates). Fortunately, I can use those old compiled files from 2.0 beta.&lt;br /&gt;&lt;br /&gt;So I have provided OO-algencan 2.0 beta connection (I guess it should work with 2.0.1 as well).&lt;br /&gt;&lt;br /&gt;On the other hand, v 1.0 works better than 2.0beta (at least for those examples I have examined). Mb v. 2.0.1beta or v. 2 release will work better?&lt;br /&gt;&lt;br /&gt;also, pay attention to the issues:&lt;br /&gt;&lt;list&gt;&lt;br /&gt;&lt;li&gt;you should remove old algencan files (first of all pywrapper.so that is situated somewhere on your PYTHONPATH). Mb I could use some tricks to allow both ALGENCAN (i.e. 1.0) and algencan (i.e. v 2.x) to be available in OO, but it requires some more efforts, and I don't see much sense because in future ALGENCAN support will be ceased.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;provide algencan with either bigger gradtol (1e-1...1e-5 instead of default 1e-6) or other stop criteria like maxTime, maxCPUTime, maxIter, maxFunEvals&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;you can encountered text output "PYTHON INTERFACE ERROR: in evalg, PyEval_CallFunction returned NULL" - this one is due to stop triggering (maxTime, maxCPUTime etc, via Python exception)  of artificially binded OO iterfcn, because currently algencan has no native one (&lt;a href="http://groups.google.com/group/tango-project/browse_thread/thread/eaea03700f4b657f"&gt;here&lt;/a&gt;'s the thread with my proposition to create the one) &lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/list&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-281380841274240431?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/281380841274240431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=281380841274240431' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/281380841274240431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/281380841274240431'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/06/connecting-algencan-2x-beta.html' title='connecting algencan 2.x beta'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-7803006810148927908</id><published>2008-06-16T06:24:00.000-07:00</published><updated>2008-06-16T06:42:05.383-07:00</updated><title type='text'>bugfix for ipopt linear constraints  handling</title><content type='html'>I have committed bugfix for ipopt linear constraints  handling Ax&lt;=b, Aeq x = beq.&lt;br /&gt;I just forgot to implement the one because ipopt API has only x_L &lt;= x &lt;= x_U and g_L &lt;= g(x) &lt;= g_U constraints.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-7803006810148927908?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/7803006810148927908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=7803006810148927908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7803006810148927908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7803006810148927908'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/06/bugfix-for-ipopt-linear-constraints.html' title='bugfix for ipopt linear constraints  handling'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-6645383510708803619</id><published>2008-06-15T12:27:00.000-07:00</published><updated>2008-06-15T23:55:47.126-07:00</updated><title type='text'>OpenOpt 0.18</title><content type='html'>Hi all,&lt;br /&gt;I'm glad to inform you about new OpenOpt release: v 0.18.&lt;br /&gt;&lt;br /&gt;Changes since previous release &lt;a href="http://openopt.blogspot.com/2008/03/openopt-017.html"&gt;0.17&lt;/a&gt; (March 15, 2008):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;connection to glpk MILP solver (requires cvxopt v &gt;= 1.0)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;connection to &lt;a href="http://scipy.org/scipy/scikits/wiki/NLP"&gt;NLP&lt;/a&gt; solver IPOPT (requires pyipopt installation, that is currently available for Linux only)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;major changes for NLP/NSP solver ralg&lt;/li&gt;&lt;br /&gt;&lt;li&gt;splitting non-linear constraints can &lt;a href="http://openopt.blogspot.com/2008/05/major-changes-for-non-linear.html"&gt;benefit&lt;/a&gt; for some solvers&lt;/li&gt;&lt;br /&gt;&lt;li&gt;unified text output for NLP solvers &lt;/li&gt;&lt;br /&gt;&lt;li&gt;handling of  &lt;a href="http://openopt.blogspot.com/2008/06/maximization-problems.html"&gt;maximization problems&lt;/a&gt; (via p.goal = 'max' or 'maximum')&lt;/li&gt;&lt;br /&gt;&lt;li&gt;some bugfixes, lots of code cleanup&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt; Regards, Dmitrey.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-6645383510708803619?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/6645383510708803619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=6645383510708803619' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6645383510708803619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6645383510708803619'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/06/openopt-018.html' title='OpenOpt 0.18'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-641973902218235120</id><published>2008-06-15T05:02:00.000-07:00</published><updated>2008-06-15T05:48:37.813-07:00</updated><title type='text'>major changes for ralg</title><content type='html'>I have committed some major &lt;a href="http://scipy.org/scipy/scikits/changeset/1021#file5"&gt;changes&lt;/a&gt; for ralg (+ some more code for &lt;a href="http://scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/Kernel/Point.py"&gt;prob.point&lt;/a&gt;, to simplify my further OO development).&lt;br /&gt;&lt;br /&gt;Since I have been busy with connecting ipopt and these ralg changes, patterns are intended to be implemented in next OO release.&lt;br /&gt;&lt;br /&gt;Below is output of OO v0.17 ralg vs current ralg implementation  (made by /examples/nlp_bench2.py  for N=100). Usually OO v0.17 ralg consumes about 5-10% objFunc and 3-5% nonlinear constraints evaluations greater.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_t7NvRg6yt4E/SFUM0LXqLnI/AAAAAAAAAFc/3NYPWcAOmAk/s1600-h/ralgChanges.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_t7NvRg6yt4E/SFUM0LXqLnI/AAAAAAAAAFc/3NYPWcAOmAk/s400/ralgChanges.jpg" alt="" id="BLOGGER_PHOTO_ID_5212086234295971442" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-641973902218235120?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/641973902218235120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=641973902218235120' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/641973902218235120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/641973902218235120'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/06/major-changes-for-ralg.html' title='major changes for ralg'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_t7NvRg6yt4E/SFUM0LXqLnI/AAAAAAAAAFc/3NYPWcAOmAk/s72-c/ralgChanges.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-3082917858897736323</id><published>2008-06-12T11:51:00.000-07:00</published><updated>2008-06-12T12:17:02.452-07:00</updated><title type='text'>Connecting IPOPT, Part 3</title><content type='html'>I have wrote automatic generation of &lt;a href="http://www.coin-or.org/Ipopt/documentation/node54.html"&gt;ipopt.opt&lt;/a&gt; file. That one is read from current directory; to omit creating of the one (and hence all-defaults or using ipopt.opt file from current directory) use&lt;br /&gt;r = p.solve('ipopt', optFile = False)&lt;br /&gt;(default value for optFile is "auto", also, I intend to provide possibility for loading the file from given location, like&lt;br /&gt;optFile  = "\\home\\dmitrey\\myipoptsettings.opt"&lt;br /&gt;).&lt;br /&gt;&lt;br /&gt;Currently it consists of 3 lines:&lt;br /&gt;print_level -2 (to suppress annoying huge text output)&lt;br /&gt;tol (p.ftol is put here)&lt;br /&gt;constr_viol_tol (p.contol is put here)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I found it too long and complicated to implement all those parameters with their default values (and hence duplicate ipopt code) that are can be changed by IPOPT developers from time to time (and it's hard to monitor), so to add other fields from ipopt.opt file &lt;a href="http://www.coin-or.org/Ipopt/documentation/node58.html#app.options_ref"&gt;specification&lt;/a&gt; you should use "options" as string (comma and semicolon delimiters can be used here, and space or "=" can be delimiters for option name and value), not as Python *args or **kwargs.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;br /&gt;r = p.solve('ipopt', options = 'dual_inf_tol=1.005; compl_inf_tol 1.005e-4, alpha_for_y dual-and-full')&lt;br /&gt;&lt;br /&gt;Let me also remember you that running ipopt from OO requires pyipopt installation, and currently pyipopt is Linux-only. Also, some days ago pyipopt bug related to fail on problems w/o non-linear constraints has been fixed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-3082917858897736323?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/3082917858897736323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=3082917858897736323' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3082917858897736323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3082917858897736323'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/06/connecting-ipopt-part-3.html' title='Connecting IPOPT, Part 3'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1686335596735297056</id><published>2008-06-07T09:25:00.000-07:00</published><updated>2008-06-07T10:19:15.230-07:00</updated><title type='text'>numpy-related bug</title><content type='html'>If you have encountered problems (during using OO) like the one:&lt;br /&gt;[...]&lt;br /&gt;&lt;pre wrap=""&gt;  File "/usr/lib/python2.5/site-packages/scipy/sparse/base.py", line&lt;br /&gt;139, in spmatrix&lt;br /&gt;  @deprecate&lt;br /&gt;TypeError: deprecate() takes exactly 3 arguments (1 given)&lt;/pre&gt;then numpy update is recommended (and using OO from latest tarball or svn), as it is mentioned &lt;a href="http://comments.gmane.org/gmane.comp.python.scientific.user/16618"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1686335596735297056?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1686335596735297056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1686335596735297056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1686335596735297056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1686335596735297056'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/06/numpy-related-bug.html' title='numpy-related bug'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-3325770272232457746</id><published>2008-06-06T03:04:00.000-07:00</published><updated>2008-06-06T03:13:59.174-07:00</updated><title type='text'>Unified text output</title><content type='html'>I have turned NLP/NSP/GLP solvers to show unified text output. That one can be  edited by user (I'll publish detailed description in OO Doc page ASAP).&lt;br /&gt;&lt;br /&gt;Now it's like this for constrained problems:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;iter    objFunVal    log10(maxResidual) &lt;br /&gt;   0  6.115e+01               2.13&lt;br /&gt;  10  2.360e+01               0.72&lt;br /&gt;  20  1.754e+01               0.38&lt;br /&gt;..........&lt;br /&gt;1290  2.015e+01              -6.23&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and like this for unconstrained (or those problem-solver pairs which always have feasible iter points, for example some box-bounded problems and solvers):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;iter    objFunVal &lt;br /&gt;   0  -2.825e+06&lt;br /&gt;  10  -7.106e+05&lt;br /&gt;...&lt;br /&gt;1570  -4.787e-03&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-3325770272232457746?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/3325770272232457746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=3325770272232457746' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3325770272232457746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3325770272232457746'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/06/unified-text-output.html' title='Unified text output'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1561110716357775017</id><published>2008-06-06T01:38:00.000-07:00</published><updated>2008-06-06T03:01:47.279-07:00</updated><title type='text'>Maximization problems</title><content type='html'>I have committed some changes, they allows handling of maximization problems&lt;br /&gt;&lt;br /&gt;objFunc -&gt; max&lt;br /&gt;(subjected to some constraints)&lt;br /&gt;&lt;br /&gt;via p.goal = 'max'&lt;br /&gt;(or 'maximum')&lt;br /&gt;&lt;br /&gt;Currently LP, MILP, QP classes have no the possibility, it's only valid for NLP, NSP, GLP&lt;br /&gt;&lt;br /&gt;of course, the parameter goal could be used in prob assignment or solve function as well:&lt;br /&gt;p = NLP(..., goal='max')&lt;br /&gt;or&lt;br /&gt;r = p.solve(solverName, ... (other parameters), goal='max')&lt;br /&gt;here's graphical output from modified nlp3.py (using -f instead of f, already in subversion).&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_t7NvRg6yt4E/SEkHuskGgrI/AAAAAAAAAFU/eiJFHWgqfnk/s1600-h/goalMax.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_t7NvRg6yt4E/SEkHuskGgrI/AAAAAAAAAFU/eiJFHWgqfnk/s400/goalMax.jpg" alt="" id="BLOGGER_PHOTO_ID_5208702942848647858" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1561110716357775017?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1561110716357775017/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1561110716357775017' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1561110716357775017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1561110716357775017'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/06/maximization-problems.html' title='Maximization problems'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_t7NvRg6yt4E/SEkHuskGgrI/AAAAAAAAAFU/eiJFHWgqfnk/s72-c/goalMax.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-2957786079779398939</id><published>2008-06-03T09:03:00.000-07:00</published><updated>2008-06-04T00:00:27.716-07:00</updated><title type='text'>Connecting IPOPT, Part 2</title><content type='html'>I intend to have OpenOpt&lt;-&gt;IPOPT bridge (via Eric's &lt;a href="http://blog.youxu.info/2008/05/10/pyipopt-python-marries-with-ipopt/"&gt;pyipopt&lt;/a&gt;) till next OO release.&lt;br /&gt;&lt;br /&gt;However, currently it works for Linux only (and I'm certainly not the one who could try to make it cross-platform) and requires hand-turn of makefile, first of all related to paths (python and numpy directories); also, probably you'll have to add -llapack (provided lapack-dev installation, if you have message "undefined symbol @dswap_") and -lgfortran (if you have "/usr/lib/libipopt.so.0: undefined symbol: _gfortran_concat_string", mb it requires gfortran installation, if you haven't the one installed). For more details see comments &lt;a href="http://openopt.blogspot.com/2008/03/connecting-ipopt-part-1.html"&gt;here&lt;/a&gt; (somehow they are not mentioned in Eric's README file).&lt;br /&gt;&lt;br /&gt;So after the issues I have IPOPT working for me. Here's picture below. This one referrs to nlp_bench2.py (from /examples) with modified h3: instead of&lt;br /&gt;(x[-5]+x[-6]-2*M+1.5)**6=0&lt;br /&gt;I have taken&lt;br /&gt;(x[-5]+x[-6]-2*M+1.5)**2=0&lt;br /&gt;(because, as I have noticed, IPOPT handles the constraint so badly that I thought I have bug(s) in IPOPT connection, and hunting for those ones took a long time for me, because that constraint is present in my other NLP tests involved). And (despite IPOPT work probably can be somehow enhances via ipopt.opt file options modification) this is another one proof that having several solvers (like OO provides) is always better than having a single one, even so famous as IPOPT, isn't it?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_t7NvRg6yt4E/SEVvkAcXdTI/AAAAAAAAAFM/P69Ft9L7ocQ/s1600-h/ipopt_bench.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_t7NvRg6yt4E/SEVvkAcXdTI/AAAAAAAAAFM/P69Ft9L7ocQ/s400/ipopt_bench.png" alt="" id="BLOGGER_PHOTO_ID_5207691208508798258" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-2957786079779398939?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/2957786079779398939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=2957786079779398939' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2957786079779398939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2957786079779398939'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/06/connecting-ipopt-part-2.html' title='Connecting IPOPT, Part 2'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_t7NvRg6yt4E/SEVvkAcXdTI/AAAAAAAAAFM/P69Ft9L7ocQ/s72-c/ipopt_bench.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1675207023079286547</id><published>2008-05-18T02:12:00.000-07:00</published><updated>2008-05-18T02:19:59.111-07:00</updated><title type='text'>major changes for non-linear constraints</title><content type='html'>After some code cleanup (still there is some more to be done) I have committed some changes for non-linear constraints handling. If your constraints are split, for example&lt;br /&gt;p.c = [c1, c2, c3],&lt;br /&gt;or&lt;br /&gt;p.h = [h1, h2]&lt;br /&gt;&lt;br /&gt;some solvers can take benefits (ralg for c and h, ALGENCAN for c; others available for now in OO cannot).&lt;br /&gt;&lt;br /&gt;They will take less evaluations for these non-linear constraints.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1675207023079286547?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1675207023079286547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1675207023079286547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1675207023079286547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1675207023079286547'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/05/major-changes-for-non-linear.html' title='major changes for non-linear constraints'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-4634041256913073108</id><published>2008-05-08T04:28:00.000-07:00</published><updated>2008-05-08T04:47:38.652-07:00</updated><title type='text'>blas and lapack issues with CVXOPT installation</title><content type='html'>As I have made conclusion from my own experience with CVXOPT installation (from source, i.e. tarball), as well as from some user comments, CVXOPT sometimes cannot find lapack and blas, despite they are present.&lt;br /&gt;&lt;br /&gt;I noticed that it searches for llapack and lblas, and despite I have libblas.so.3 and liblapack.so.3 (installed in my KUBUNTU 8.04, to /usr/lib, via aptitude) it doesn't work. So I had copied libblas.so.3 and liblapack.so.3 into files libblas.so and liblapack.so (same directory /usr/lib) and now all works ok (mb creating soft links would be enough?).&lt;br /&gt;&lt;br /&gt;I hope CVXOPT developers will take it into account, mb this problem happens with some other OSes as well.&lt;br /&gt;&lt;br /&gt;P.S. If you intend to use OO&lt;-&gt;CVXOPT&lt;-&gt;glpk connection don't forget to set BUILD_GLPK=1 in CVXOPT setup.py file. glpk should be already installed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-4634041256913073108?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/4634041256913073108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=4634041256913073108' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/4634041256913073108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/4634041256913073108'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/05/blas-and-lapack-issues-with-cvxopt.html' title='blas and lapack issues with CVXOPT installation'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-5249108110155301416</id><published>2008-05-07T12:07:00.000-07:00</published><updated>2008-05-07T12:16:42.464-07:00</updated><title type='text'>Some code cleanup</title><content type='html'>I have started some code cleanup (mentioned in OO timeline), some changes have been already committed and some more will be done from time to time, so current OO taken from svn or latest tarball can work unstably (of course, I have checked my tests before code commit, but some other may fail).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-5249108110155301416?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/5249108110155301416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=5249108110155301416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5249108110155301416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5249108110155301416'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/05/some-code-cleanup.html' title='Some code cleanup'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-7090014778030079835</id><published>2008-05-01T15:40:00.000-07:00</published><updated>2008-05-01T15:46:12.435-07:00</updated><title type='text'>Python Wins "Favorite Scripting Language" Award</title><content type='html'>(The information has been taken from PSF blog)&lt;br /&gt;--------------------------------------------------------------------------------------&lt;br /&gt;Python Wins "Favorite Scripting Language" Award.&lt;br /&gt;&lt;br /&gt;May 1, 2008 Linux Journal announced their 2008 &lt;a href="http://www.linuxjournal.com/article/10065"&gt;Readers' Choice Awards&lt;/a&gt; today, and we are happy to say that Python won the Favorite Scripting Language category with 28.9% of the vote. PHP, Bash and Perl (in that order) won honorable mentions. Thanks to everyone who took the time to register their votes. Python's popularity does seem to be climbing this year, as attendance at the recent Chicago PyCon confirmed with a 77% increase in attendance. Let's hope that leads to career opportunities for Python users!&lt;br /&gt;&lt;br /&gt;--------------------------------------------------------------------------------------&lt;br /&gt;&lt;div class="titlepage"&gt;Favorite Scripting Language:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="bold"&gt;&lt;b&gt;Python&lt;/b&gt;&lt;/span&gt; (28.9%) &lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;span class="emphasis"&gt;&lt;em&gt;Honorable Mentions&lt;/em&gt;&lt;/span&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt; PHP (21.7%) &lt;/li&gt;&lt;li&gt; bash (19.8%) &lt;/li&gt;&lt;li&gt; Perl (17%) &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-7090014778030079835?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/7090014778030079835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=7090014778030079835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7090014778030079835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7090014778030079835'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/05/python-wins-favorite-scripting-language.html' title='Python Wins &quot;Favorite Scripting Language&quot; Award'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-876506309852596332</id><published>2008-04-30T11:43:00.000-07:00</published><updated>2008-04-30T11:46:57.676-07:00</updated><title type='text'>Using OpenOpt with KUBUNTU 8.04</title><content type='html'>After KUBUNTU 8.04 installation + python-matplotlib from channel I had a error message "can't find gtk module" (while using p.plot=1). After installation python-gtk2 from &lt;a href="http://packages.ubuntu.com/hardy/python/python-gtk2"&gt;here&lt;/a&gt; all works ok.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-876506309852596332?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/876506309852596332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=876506309852596332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/876506309852596332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/876506309852596332'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/04/using-openopt-with-kubuntu-804.html' title='Using OpenOpt with KUBUNTU 8.04'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-8982214810262030525</id><published>2008-04-29T09:19:00.000-07:00</published><updated>2008-04-29T09:27:00.483-07:00</updated><title type='text'>new OO MILP solver: glpk</title><content type='html'>Another one &lt;a href="http://scipy.org/scipy/scikits/wiki/MILP"&gt;MILP&lt;/a&gt; solver has been connected - glpk. This one can handle binary constraints: x_j should be from {0, 1} for all j from p.binVars (lpSolve cannot, but maybe setting for those coords &lt;br /&gt;lb[j], ub[j] = 0, 1 &lt;br /&gt;and demand them to be integers (p.intVars = [...])&lt;br /&gt;can be helpful).&lt;br /&gt;&lt;br /&gt;Requires CVXOPT ver &gt;= 1.0 + Python ver &gt;= 2.4 (code contains Python set) + glpk.&lt;br /&gt;See more details + example in OO MILP webpage (mentioned above).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-8982214810262030525?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/8982214810262030525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=8982214810262030525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8982214810262030525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8982214810262030525'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/04/new-oo-milp-solver-glpk.html' title='new OO MILP solver: glpk'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-6980507372244252260</id><published>2008-04-27T11:39:00.000-07:00</published><updated>2008-04-27T11:48:47.873-07:00</updated><title type='text'>CVXOPT 1.0 has been released</title><content type='html'>&lt;a href="http://abel.ee.ucla.edu/cvxopt"&gt;CVXOPT&lt;/a&gt; developers have informed of release 1.0. &lt;br /&gt;&lt;br /&gt;As I had &lt;a href="http://openopt.blogspot.com/2008/03/mb-cvxopt-will-include-glpk-milp-solver.html"&gt;informed&lt;/a&gt;, one of the changes is interface to GLPK integer LP solver. I intend to have the one connected to OO (till next.OO release). Currently single MILP solver connected to OO is lp_solve (as lpSolve).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-6980507372244252260?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/6980507372244252260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=6980507372244252260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6980507372244252260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6980507372244252260'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/04/cvxopt-10-has-been-released.html' title='CVXOPT 1.0 has been released'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-5645147500196918067</id><published>2008-04-25T12:39:00.000-07:00</published><updated>2008-04-25T12:50:55.635-07:00</updated><title type='text'>OpenOpt will participate in GSoC 2008</title><content type='html'>My OpenOpt-related application have been accepted to participate in GSoC 2008.&lt;br /&gt;This year assigned mentors are Alan G Isaac (same as GSoC 2007) and (co-mentor) Nils Wagner.&lt;br /&gt;&lt;br /&gt;Here's intended &lt;a href="http://scipy.org/scipy/scikits/wiki/OOTimeLine"&gt;schedule&lt;/a&gt;, mb I'll start to do some chapters from the one earlier.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-5645147500196918067?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/5645147500196918067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=5645147500196918067' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5645147500196918067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5645147500196918067'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/04/openopt-will-participate-in-gsoc-2008.html' title='OpenOpt will participate in GSoC 2008'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-6543953887970600477</id><published>2008-04-01T01:25:00.000-07:00</published><updated>2008-04-01T06:49:34.762-07:00</updated><title type='text'>Fortress v. 1.0 has been released</title><content type='html'>Today Fortress language v. 1.0 (Fortran successor from Sun Microsystems, sponsored in DARPA HPCS project along with IBM X10 and Cray Chapel) has been released. I don't know how stable is the one - IIRC in 2006 fortress developers had promised rather stable one in 2009-2010 only. Note that this is still Java-based version, native code compilation is intended to be done some time later.&lt;br /&gt;&lt;br /&gt;Here's a letter from mail list below. Note also that along with Emacs plugin mentioned here Fortress has plugins for Eclipse and NetBeans already.&lt;br /&gt;&lt;br /&gt;---------------------------&lt;br /&gt;Fortress Community Members:&lt;br /&gt;&lt;br /&gt;Today, we are releasing the first version of the Fortress specification with a compliant implementation: Fortress 1.0. Both the new specification and the implementation are available from the project website:&lt;br /&gt;&lt;br /&gt;http://projectfortress.sun.com&lt;br /&gt;&lt;br /&gt;The 1.0 implementation is available both as a stand-alone download and through a Subversion repository. Please follow the instructions on the website to get it.&lt;br /&gt;&lt;br /&gt;Our tandem release of a specification and matching interpreter is a major milestone for the project; it is a goal we have been working toward for some time.  All Fortress source code appearing in this specification has been tested by executing it with the open source Fortress implementation. Moreover, all code has been rendered automatically with the tool Fortify, also ! included s distribution. (In case you haven't used it yet, Fortify is an open source tool contributed by Guy Steele that converts Fortress source code to LaTeX.) Also note that this release includes a Fortress mode for Emacs, contributed by Yuto Hayamizu, and over 10,000 lines of Fortress library code, contributed both by Sun and by Fortress community member Michael Spiegel.&lt;br /&gt;&lt;br /&gt;Our reference implementation has evolved gradually, in parallel with the evolution of the language specification and the development of the core libraries.  In order to synchronize the specification with the implementation, it was necessary both to add features to the implementation and to drop features from the specification. Most significantly, most static checks in the implementation are currently turned off, as we are in the process of completing the static type checker and the type inference&lt;br /&gt;engine. Static constraints are still included in the specification as documentation. Contrary to the Fortress Version 1.0.beta, inference of static parameter instantiations is based on the runtime types of the arguments to a functional call. Support for syntactic abstraction is not included in this release. We do not yet support nontrivial distributions, nor parallel nested transactions.  Moreover, many other language features defined in the Fortress Language Specification, Version 1.0.beta have been elided. Many of these features require additional research before they can be implemented reliably; this research and development is a high priority.&lt;br /&gt;&lt;br /&gt;With this release, our goal in moving forward is to incrementally add back features taken out of the specification as they are implemented. In particular, all language features included in the Fortress Specification version 1.0 beta remain goals for eventual inclusion in the language (perhaps with additional modification and evolution of their design). By proceeding in this manner, we hope that our implementation will be useful for more ta ill comply with the public specification. Moreover, the Fortress community will be better able to evaluate the design of new features, as users will be able to use them immediately, and developers will be able to contribute to the implementation effort more easily, as they will be able to build off of a relatively stable and well-specified base.&lt;br /&gt;&lt;br /&gt;Moving forward with the implementation, in concert with the open source community, our goal is to build off of the infrastructure of our interpreter to construct an optimizing Fortress compiler and to achieve our long-standing goal of constructing a new programming language with high performance and high programmer productivity, owned by the community that uses it, and able to grow gracefully with the tasks it is applied to.&lt;br /&gt;&lt;br /&gt;Thanks to all those who sent feedback on earlier versions; many of your suggestions have influenced changes in this new version. Please keep the feedback coming!&lt;br /&gt;&lt;br /&gt;Watch this space for future news from &gt;-- Eric Allen&lt;br /&gt;&lt;br /&gt;Check out Fortress!                http://projectfortress.sun.com &lt;br /&gt;---------------------------&lt;br /&gt;&lt;br /&gt;See also: my &lt;a href="http://openopt.blogspot.com/2008/01/jan-2008-python-continue-to-grow-tiobe.html"&gt;impressions&lt;/a&gt; of Python, Fortress and some other langueges&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-6543953887970600477?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/6543953887970600477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=6543953887970600477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6543953887970600477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6543953887970600477'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/04/fortress-v-10-has-been-released.html' title='Fortress v. 1.0 has been released'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-7354370689160871785</id><published>2008-03-27T11:49:00.000-07:00</published><updated>2008-03-27T12:05:39.865-07:00</updated><title type='text'>GSoC tasks for OO further development</title><content type='html'>hi all,&lt;br /&gt;my GSoC 2007 mentor Alan G Isaac recommends to specify in my proposition which tasks from &lt;a href="http://scipy.org/scipy/scikits/wiki/OO_TODO"&gt;OO TODO list&lt;/a&gt; and/or beyond the one are intended to be done during GSoC 2008. So if you have a feature request(s) and/or other OpenOpt enhancement proposition(s) they can be considered to be appended to the list as well till student application deadline (March 31).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-7354370689160871785?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/7354370689160871785/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=7354370689160871785' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7354370689160871785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7354370689160871785'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/03/gsoc-tasks-for-oo-further-development.html' title='GSoC tasks for OO further development'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-2617144175451697230</id><published>2008-03-22T08:16:00.000-07:00</published><updated>2008-03-22T08:43:41.219-07:00</updated><title type='text'>constraints handling for NLSP solver nssolve</title><content type='html'>I'm glad to inform that &lt;a href="http://scipy.org/scipy/scikits/wiki/NLSP"&gt;NLSP&lt;/a&gt; solver nssolve now can handle all types of constraints; user-supplied derivatives to f, c, h can be handled as well.&lt;br /&gt;&lt;br /&gt;See NLSP constrained &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/nlsp_constrained.py"&gt;example&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Also, a small bugfix for nssolve iprint parameter handling has been made.&lt;br /&gt;&lt;br /&gt;However, currently graphic output for constrained NLSP does not work properly yet, it's intended to be fixed in future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-2617144175451697230?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/2617144175451697230/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=2617144175451697230' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2617144175451697230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2617144175451697230'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/03/constraints-handling-for-nlsp-solver.html' title='constraints handling for NLSP solver nssolve'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-18998206064228534</id><published>2008-03-22T02:14:00.000-07:00</published><updated>2008-03-22T02:57:04.362-07:00</updated><title type='text'>Connecting IPOPT, Part 1</title><content type='html'>a Ph.D. student from Washington University has informed me, that he spent just a single day and already has working Python-IPOPT connection (of course, it requires some more time to make it appropriate enough). That one is implemented via Python's C-API, but maybe in future numpy's C-API or something else will be used.&lt;br /&gt;&lt;br /&gt;Unfortunately, I still have some problems with build, for me it yields "/usr/lib/libipopt.so.0: undefined symbol: _gfortran_concat_string".&lt;br /&gt;You could take a look at the code by yourself, the one is available &lt;a href="http://scipy.org/scipy/scikits/attachment/wiki/OOFiles/pyipopt0.0.1.tar.gz?format=raw"&gt;here&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;You must have IPOPT installed (I have tried 3.3.1 and 3.3.5, note that this one requires LP solver installed such as MUMPS); modify links to IPOPT directories in batch.sh and run the file (note that for now the code is usable in Linux only).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-18998206064228534?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/18998206064228534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=18998206064228534' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/18998206064228534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/18998206064228534'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/03/connecting-ipopt-part-1.html' title='Connecting IPOPT, Part 1'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-3371536805870043851</id><published>2008-03-20T11:58:00.000-07:00</published><updated>2008-04-15T23:40:58.815-07:00</updated><title type='text'>paypal does not allow payments to Ukraine</title><content type='html'>I have been informed that paypal link from OO page refuses to make donation to OpenOpt, because paypal does not allow payments to Ukraine. So I will try to find another approach. Ideas or leads are very welcome.&lt;br /&gt;&lt;span style="font-style:italic;"&gt;(Last edit: 2008/04/16 09:39 by Dmitrey)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-3371536805870043851?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/3371536805870043851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=3371536805870043851' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3371536805870043851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3371536805870043851'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/03/paypal-does-not-allow-payments-to.html' title='paypal does not allow payments to Ukraine'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-6603691424100092105</id><published>2008-03-20T10:16:00.000-07:00</published><updated>2008-03-20T11:33:24.211-07:00</updated><title type='text'>ALGENCAN connection bugfix</title><content type='html'>I have fixed a bug in ALGENCAN &lt;-&gt; openopt connection.&lt;br /&gt;svn and tarball from OO install page have been updated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-6603691424100092105?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/6603691424100092105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=6603691424100092105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6603691424100092105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6603691424100092105'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/03/algencan-connection-bugfix.html' title='ALGENCAN connection bugfix'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-8913550156735603706</id><published>2008-03-20T01:01:00.000-07:00</published><updated>2008-03-20T01:06:24.468-07:00</updated><title type='text'>to openopt users</title><content type='html'>hi all,&lt;br /&gt;&lt;br /&gt;I decided to create a list of openopt users, similar to T0M0PT's one (i.e. that one mentioned in OO start page)&lt;br /&gt;&lt;br /&gt;could anyone provide some info like the one from &lt;a href="http://scipy.org/scipy/scikits/wiki/OpenOptUsers"&gt;here&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;It would increase openopt's chances for obtaining participation in GSoC 2008 (students propositions start soon, some days later) or mb an other one.&lt;br /&gt;&lt;br /&gt;Regards, &lt;br /&gt;Dmitrey.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-8913550156735603706?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/8913550156735603706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=8913550156735603706' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8913550156735603706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8913550156735603706'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/03/to-openopt-users.html' title='to openopt users'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-2594018496468868180</id><published>2008-03-16T06:00:00.000-07:00</published><updated>2008-03-16T06:11:22.098-07:00</updated><title type='text'>mb CVXOPT will include glpk milp solver</title><content type='html'>I have contacted CVXOPT developers (Lieven Vandenberghe, Joachim Dahl) about implementing glpk milp solver available in CVXOPT (since they already have glpk lp solver connected). &lt;br /&gt;They have answered: maybe next CVXOPT version will include connection to glpk milp solver (then it will be connected to OO as well).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-2594018496468868180?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/2594018496468868180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=2594018496468868180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2594018496468868180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2594018496468868180'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/03/mb-cvxopt-will-include-glpk-milp-solver.html' title='mb CVXOPT will include glpk milp solver'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-9107128726694425481</id><published>2008-03-15T13:00:00.000-07:00</published><updated>2008-03-15T13:01:57.546-07:00</updated><title type='text'>OpenOpt 0.17</title><content type='html'>We're pleased to announce:&lt;br /&gt;OpenOpt 0.17 (release), free (license: BSD) optimization framework for Python language programmers,  is available for download.&lt;br /&gt;&lt;br /&gt;Changes since previous release (December 15, 2007):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;new classes: GLP (global problem), MMP (mini-max problem)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;several new solvers written: goldenSection, nsmm&lt;/li&gt;&lt;br /&gt;&lt;li&gt;some more solvers connected: scipy_slsqp, bvls, galileo&lt;/li&gt;&lt;br /&gt;&lt;li&gt;possibility to change default solver parameters&lt;/li&gt;&lt;br /&gt;&lt;li&gt;user-defined callback functions&lt;/li&gt;&lt;br /&gt;&lt;li&gt;changes in auto derivatives check&lt;/li&gt;&lt;br /&gt;&lt;li&gt;"noise" parameter for noisy functions&lt;/li&gt;&lt;br /&gt;&lt;li&gt;some changes to NLP/NSP solver ralg&lt;/li&gt;&lt;br /&gt;&lt;li&gt;some changes in graphical output: initial estimations xlim, ylim&lt;/li&gt;&lt;br /&gt;&lt;li&gt;scaling&lt;/li&gt;&lt;br /&gt;&lt;li&gt;some bugfixes&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-9107128726694425481?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/9107128726694425481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=9107128726694425481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/9107128726694425481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/9107128726694425481'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/03/openopt-017.html' title='OpenOpt 0.17'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-326929260526443426</id><published>2008-03-15T01:01:00.000-07:00</published><updated>2008-03-15T02:36:01.487-07:00</updated><title type='text'>changes in auto derivatives check</title><content type='html'>Old-style p.check.df=1, p.check.dc=1, p.check.dh=1 is no longer valid. That one was inspired from MATLAB syntax.&lt;br /&gt;&lt;br /&gt;So for now you should use p.checkdf(), p.checkdc(), p.checkdh() instead. If you want to check 1st derivatives in point x (i.e. other than p.x0) than you should use p.checkdf(x), p.checkdc(x), p.checkdh(x). See updated example checkDerivatives.py from openopt/examples (or the &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/checkDerivatives.py"&gt;link&lt;/a&gt; from OO Doc webpage).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-326929260526443426?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/326929260526443426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=326929260526443426' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/326929260526443426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/326929260526443426'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/03/changes-in-auto-derivatives-check.html' title='changes in auto derivatives check'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-557335200660363742</id><published>2008-03-14T06:39:00.001-07:00</published><updated>2008-03-14T08:37:08.371-07:00</updated><title type='text'>new LLSP solver: bvls</title><content type='html'>I have searched for free constrained LLS solvers for some my own purposes - connecting the ones to scikits.openopt and using the ones for solving ralg/lincher subproblems (in future).&lt;br /&gt;&lt;br /&gt;So now new LLSP solver is available:bvls. It &lt;span style="font-weight:bold;"&gt;requires separate installation&lt;/span&gt;, see &lt;a href="http://scipy.org/scipy/scikits/wiki/LLSP"&gt;OO LLSP webpage&lt;/a&gt; for more details. Other well-known routines - NNLS and WNNLS - are BVLS ancestors.&lt;br /&gt;&lt;br /&gt;Thanks to Alan G Isaac and solver authors (Robert L. Parker &amp;amp; Philip B. Stark) who came to agreement of turning bvls license from free-for-non-commercial to GPL and then, moreover, to BSD.&lt;br /&gt;&lt;br /&gt;Also, thanks to Pearu Peterson for help with f2py usage.&lt;br /&gt;&lt;br /&gt;I have tried some examples with nVars ~ 400...500 and bvls returns better results (r.ff) than translating the problem to NLP and soling via scipy_lbfgsb or scipy_tnc (you could try /examples/llsp_2.py for more details. As for ralg, results are same, but currently time elapsed is  much greater). &lt;br /&gt;The solver is intended to be connected to future scipy version. Unfortunately, the BVLS routine is intended for dense problems only (and it's quite bad for my ralg/lincher purposes).&lt;br /&gt;&lt;br /&gt;There are other free routines that could be considered - toms/587 (I don't know is the one intended for dense problems only or for sparse ones as well) and BCLS. Latter has GPL (written in ANSI C) and is capable of handling sparse problems, moreover, implicit A matrix via defining funcs Ax and A^T x. BCLS consists of lots files; it has convenient MATLAB API (2 single standalone  func for implicit and explicit matrix A) but calling it from C API is very inconvenient, one function is not enough, so I can't connect it to Python via ctypes, the task is too complicated.&lt;br /&gt;&lt;br /&gt;As for toms/587, my OS KUBUNTU yields same bug as &lt;a href="http://openopt.blogspot.com/2008/02/linux-algencan-bug-maybe-due-to-latest.html"&gt;this one&lt;/a&gt;(with ALGENCAN), so I intend to try using the one with next KUBUNTU version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-557335200660363742?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/557335200660363742/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=557335200660363742' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/557335200660363742'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/557335200660363742'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/03/new-llsp-solver-bvls.html' title='new LLSP solver: bvls'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-2630625397271365171</id><published>2008-03-09T14:42:00.000-07:00</published><updated>2008-03-09T14:48:41.599-07:00</updated><title type='text'>maybe ralg-related bug in recent svn changes</title><content type='html'>Some users inform that recent openopt version from svn yields bug for ralg solver:&lt;br /&gt;&lt;br /&gt;OpenOptException: incorrect solver is called, maybe the solver "ralg" is not installed&lt;br /&gt;&lt;br /&gt;I can't reproduce the bug in my OS (KUBUNTU 7.10 &amp; Ubuntu 7.04), so I'll try to find and fix the one ASAP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-2630625397271365171?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/2630625397271365171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=2630625397271365171' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2630625397271365171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2630625397271365171'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/03/maybe-ralg-related-bug-in-recent-svn.html' title='maybe ralg-related bug in recent svn changes'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-4940931289946240414</id><published>2008-02-21T10:38:00.000-08:00</published><updated>2008-02-21T10:50:41.491-08:00</updated><title type='text'>goldenSection vs scipy.optimize fminbound</title><content type='html'>For some numerical experiments (intended by our chief Petro I. Stetsyuk and me) with r-algorithm (that is implemented in OO ralg solver) a good line-search optimizer is required.&lt;br /&gt;&lt;br /&gt;As you know scipy.optimize has single-variable box-bounded optimization routine "fminbound" (connected to OO as scipy_fminbound). Unfortunately, it has 2 drawbacks:&lt;br /&gt;- it uses mix of golden section and quadratic spline approximation, and latter works very bad for non-smooth and/or noisy funcs, that we deal with&lt;br /&gt;- sometimes solution returned is out of lb-ub bounds.&lt;br /&gt;&lt;br /&gt;So I have implemented pure golden section algorithm into OO solver "goldenSection" (nothing special, just several lines of code).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-4940931289946240414?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/4940931289946240414/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=4940931289946240414' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/4940931289946240414'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/4940931289946240414'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/02/goldensection-vs-scipyoptimize.html' title='goldenSection vs scipy.optimize fminbound'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-160883352041465767</id><published>2008-02-11T05:56:00.000-08:00</published><updated>2008-02-11T07:47:12.080-08:00</updated><title type='text'>"noise" parameter for noisy functions</title><content type='html'>1. For NSP problems a new parameter has been implemented: noise (currently default value is 0, mb it will be changed in future). Currently ralg can handle the param for objFunc only, not for non-lin constraints c and h.&lt;br /&gt;Also, the parameter can be used with nssolve and nsmm.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/nssolveVSfsolve_1.py"&gt;examples/nssolveVSfsolve_1.py&lt;/a&gt; has been updated (add noise=1e-8 to prob definition).&lt;br /&gt;&lt;br /&gt;2. Some more changes to ralg.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-160883352041465767?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/160883352041465767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=160883352041465767' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/160883352041465767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/160883352041465767'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/02/noise-parameter-for-noisy-functions.html' title='&quot;noise&quot; parameter for noisy functions'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-3880533183844249155</id><published>2008-02-07T07:56:00.001-08:00</published><updated>2008-02-07T07:56:37.995-08:00</updated><title type='text'>some changes to NLP/NSP solver ralg</title><content type='html'>some changes for ralg have been committed, they affect both trajectory and stop criteria (for constrained problems).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-3880533183844249155?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/3880533183844249155/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=3880533183844249155' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3880533183844249155'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3880533183844249155'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/02/some-changes-to-nlpnsp-solver-ralg.html' title='some changes to NLP/NSP solver ralg'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-687999759280660662</id><published>2008-02-07T07:50:00.001-08:00</published><updated>2008-02-07T07:50:49.561-08:00</updated><title type='text'>Scaling</title><content type='html'>Possibility to use scale factor(s) is undoubtedly a "MUST HAVE" feature for any advisable optimization solver or framework.&lt;br /&gt;&lt;br /&gt;Since now scaling is available in OO (update from svn or tarball is required), and example of scale factor usage (p.scale, "scaleFactor" is too long to type) has been committed to OO Doc page. &lt;br /&gt;&lt;br /&gt;Note that using of p.diffInt as vector is also allowed.&lt;br /&gt;However, using scale is more preferred: it affects xtol for those solvers who use native OO stop criteria (ralg, lincher, nssolve, nsmm, mb some else).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-687999759280660662?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/687999759280660662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=687999759280660662' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/687999759280660662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/687999759280660662'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/02/scaling.html' title='Scaling'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-3153653206753432163</id><published>2008-02-05T12:19:00.000-08:00</published><updated>2008-02-05T12:59:28.447-08:00</updated><title type='text'>MMP solver nsmm: constraints have been implemented</title><content type='html'>constraints handling for &lt;a href="http://scipy.org/scipy/scikits/wiki/MMP"&gt;MMP&lt;/a&gt; (minimax problem) solver nsmm has been implemented.&lt;br /&gt;Here's text and graphical output of the updated &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/mmp_1.py"&gt;mmp example&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;starting solver nsmm (license: BSD)  with problem  unnamed&lt;br /&gt;Niter      ObjFun      log10(maxResidual)&lt;br /&gt;  0         6.47e+03   1.9&lt;br /&gt;  10        6.45e+03   -1.1&lt;br /&gt;  20        6.46e+03   -3.6&lt;br /&gt;  30        6.46e+03   -5.8&lt;br /&gt;nsmm has finished solving the problem unnamed&lt;br /&gt;istop:  3 (|| X[k] - X[k-1] || &lt; xtol)&lt;br /&gt;Solver:   Time Elapsed = 0.26  CPU Time Elapsed = 0.21&lt;br /&gt;Plotting: Time Elapsed = 3.56  CPU Time Elapsed = 2.99&lt;br /&gt;objFunValue: 6461.0983572120513 (feasible, max constraint =  9.66019e-07)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_t7NvRg6yt4E/R6jN2m4nRtI/AAAAAAAAAFA/rGTqcWVv98U/s1600-h/nsmmConstrained.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_t7NvRg6yt4E/R6jN2m4nRtI/AAAAAAAAAFA/rGTqcWVv98U/s400/nsmmConstrained.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5163603310814906066" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-3153653206753432163?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/3153653206753432163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=3153653206753432163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3153653206753432163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/3153653206753432163'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/02/mmp-solver-nsmm-constraints-have-been.html' title='MMP solver nsmm: constraints have been implemented'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_t7NvRg6yt4E/R6jN2m4nRtI/AAAAAAAAAFA/rGTqcWVv98U/s72-c/nsmmConstrained.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-8212723365663628525</id><published>2008-02-03T12:44:00.000-08:00</published><updated>2008-02-03T12:48:54.392-08:00</updated><title type='text'>bugfix for some scipy NLP solvers (unconstrained)</title><content type='html'>Another one bugfix have been committed (appered due to some recent svn changes for scipy_cg, scipy_ncg, scipy_powell, scipy_bfgs, scipy_fminbound).&lt;br /&gt;Thanks to Nils Wagner for reporting the issue.&lt;br /&gt;That one was due to definition of exception "isSolved" migrated from BaseProblem.py to ooMisc.py&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-8212723365663628525?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/8212723365663628525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=8212723365663628525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8212723365663628525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8212723365663628525'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/02/bugfix-for-some-scipy-nlp-solvers.html' title='bugfix for some scipy NLP solvers (unconstrained)'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-6343319964400886114</id><published>2008-02-03T10:29:00.000-08:00</published><updated>2008-02-03T10:34:16.180-08:00</updated><title type='text'>[Linux] ALGENCAN bug, maybe due to latest glibc</title><content type='html'>Some days ago I have accepted a proposition for glibc recent version installation from Ubuntu software updates channel, and I guess it's the matter for the bug (while starting ALGENCAN):&lt;br /&gt;&lt;pre wrap=""&gt;StdErr: *** glibc detected *** /usr/bin/python: free(): invalid pointer:&lt;br /&gt;0x00000000008362f0 ***&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-6343319964400886114?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/6343319964400886114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=6343319964400886114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6343319964400886114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/6343319964400886114'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/02/linux-algencan-bug-maybe-due-to-latest.html' title='[Linux] ALGENCAN bug, maybe due to latest glibc'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1512614055496782658</id><published>2008-02-03T10:17:00.000-08:00</published><updated>2008-02-03T10:29:01.454-08:00</updated><title type='text'>bugfix for "incorrect func index type" (some OS/Arch)</title><content type='html'>Some users informed me that some OS/Arch raises the error "incorrect func index type".&lt;br /&gt;As far as we understand for now, it's due to strange nmpy.argmax() return type (numpy.int32 with type id 1810419808, that differs from 1810419616). For more info see discuss in scipy-dev mail lists:  &lt;a href="http://comments.gmane.org/gmane.comp.python.scientific.devel/7327"&gt;url1&lt;/a&gt;, &lt;a href="http://permalink.gmane.org/gmane.comp.python.scientific.devel/7351"&gt;url2&lt;/a&gt; .&lt;br /&gt;So some changes committed (also available from OO install page -&gt; openopt.tar.gz) allows to avoid the bug.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1512614055496782658?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1512614055496782658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1512614055496782658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1512614055496782658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1512614055496782658'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/02/bugfix-for-incorrect-func-index-type.html' title='bugfix for &quot;incorrect func index type&quot; (some OS/Arch)'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-453255537507634746</id><published>2008-02-02T06:32:00.000-08:00</published><updated>2008-02-02T06:56:05.748-08:00</updated><title type='text'>how to change solver default parameters</title><content type='html'>A new &lt;a href="http://scipy.org/scipy/scikits/wiki/OODoc"&gt;OO doc page&lt;/a&gt; entry has been committed:&lt;br /&gt;how to change solver default parameters (via kwargs for p.solve()).&lt;br /&gt;&lt;br /&gt;AFAIK it's especially important for global solvers, like GA-based "galileo". However, currently only 3 parameters are available for the solver modification:&lt;br /&gt;population (default 15)&lt;br /&gt;crossoverRate (default 1.0, it means always do crossover)&lt;br /&gt;mutationRate (default 0.05, it means "not very often")&lt;br /&gt;There are some more parameters available for modification, but I lack free time and experience in global optimization.&lt;br /&gt;&lt;br /&gt;Old way p.solverParameters.(solvername) = {...} has been removed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-453255537507634746?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/453255537507634746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=453255537507634746' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/453255537507634746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/453255537507634746'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/02/how-to-change-solver-default-parameters.html' title='how to change solver default parameters'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-1478103986276308902</id><published>2008-02-01T00:07:00.000-08:00</published><updated>2008-02-01T00:21:30.757-08:00</updated><title type='text'>solver settings as kwargs for p.solve()</title><content type='html'>An openopt user asked: could he modify GLP solver galileo parameters.&lt;br /&gt;Currently it's possible to access some ralg parameters, via for example&lt;br /&gt;p=NSP(...)&lt;br /&gt;p.solverParameters.ralg={'h0':0.1, 'alp':3} #I suspect it's too long to type, isn't it?&lt;br /&gt;&lt;br /&gt;(h0 is initial step length approximation, default 1, alp is space dilation parameter, default 2 (fixed for Python implementation, more advanced handling with non-fixed value in fortran version))&lt;br /&gt;&lt;br /&gt;For modifying other solvers parameters some minor changes should be done.&lt;br /&gt;Also, I had already decided how to use kwargs (and maybe some args in future, I didn't decided yet which ones) in solve(). I think it will be something like&lt;br /&gt;r = p.solve('galileo', crossoverRate=0.80, mutationRate=0.15)&lt;br /&gt;So, if a kwargs parameter is in dir(solverName.solverName) (i.e. is a solver parameter, like in the ralg case above:&lt;br /&gt;&gt;&gt;&gt;import scikits.openopt, ralg&lt;br /&gt;&gt;&gt;&gt;dir(ralg.ralg)&lt;br /&gt;['__alg__', '__authors__', '__constraintsThatCannotBeHandled__', '__decodeIterFcnArgs__', '__doc__', '__economyMult__', '__expectedArgs__', '__homepage__', '__info__', '__init__', '__isIterPointAlwaysFeasible__', '__iterfcnConnected__', '__license__', '__module__', '__name__', '__solver__', 'alp', 'getRalgDirection', 'getRalgDirection2', 'h0', 'hmult', 'nh', 'q1', 'q2']&lt;br /&gt;), then it will change the value of the solver setting, elseware if it's in dir(p) (i.e. is prob parameter, like maxIter=15) then it will change the prob field value, elseware a error message will be raised.&lt;br /&gt;I intend to implement the changes during this week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-1478103986276308902?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/1478103986276308902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=1478103986276308902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1478103986276308902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/1478103986276308902'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/02/solver-settings-as-kwargs-for-psolve.html' title='solver settings as kwargs for p.solve()'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-8368923659415800285</id><published>2008-01-31T01:16:00.000-08:00</published><updated>2008-01-31T02:40:12.016-08:00</updated><title type='text'>About prob structure redefinition</title><content type='html'>I have noticed 2 lines of code sent by an openopt user:&lt;br /&gt;&lt;br /&gt;#unfortunately, as openopt is now, this needs to be defined again&lt;br /&gt;#each time it is solved&lt;br /&gt;It is followed by function for prob redefinition:&lt;br /&gt;def setupF2dProblem(init_point, maxIterates):&lt;br /&gt;...&lt;br /&gt;return prob &lt;oo&gt;&lt;br /&gt;&lt;br /&gt;Let me explain the situation once again. Maybe, you have already noticed the error messages when trying to use prob instance one more time: r=p.solve(...). This problem is due to Python issue 1515: &lt;span&gt;deepcopy doesn't copy instance methods&lt;/span&gt; &lt;a href="http://bugs.python.org/issue1515"&gt;(url)&lt;/a&gt;&lt;br /&gt;prob instance contains lots of function handlers, referring to each other, and while running p.solve(...) they seriously changes to other values, and some new fields (function handlers, flags True/False, some new values - Python lists, arrays etc) appear. It's impossible for me to remove all the changes done and successfully keep cleaning the prob instance of all that stuff after solving finish. It may cause inpredictable bugs, appearing once time-to-time, and hunting for this kind is very difficult.&lt;br /&gt;So I decided to wait until Python developers will fix the bug. They informed me of the url for issue 1515 during Python bug day, when I have committed the &lt;a href="http://pastebin.com/m6641c52"&gt;bugreport&lt;/a&gt; (some weeks later pastebin.com will remove the code). So, they recommended me temporary solution - to add the line&lt;br /&gt;&lt;/oo&gt;&lt;pre&gt;d[types.MethodType] = _deepcopy_atomic&lt;/pre&gt;to copy.py file (like it's mentioned in the url provided), but modifying Python core sources is inappropriate solution for the case - I can't demand the one from each OO user (moreover, not all of them has write access to Python core files). I haven't tried it by myself as well, so I don't know does it helps or no.&lt;br /&gt;So, it would be nice to increase the bug severity from "normal" (as it is assigned for now) to something bigger, maybe Python developers would increase their efforts to fix the one. Let me also attach in comment the bugreport, since it will disappear soon from pastebin.com.&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-8368923659415800285?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/8368923659415800285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=8368923659415800285' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8368923659415800285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8368923659415800285'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/01/about-prob-structure-redefinition.html' title='About prob structure redefinition'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-9099016982075607347</id><published>2008-01-29T11:29:00.000-08:00</published><updated>2008-01-29T12:39:24.429-08:00</updated><title type='text'>New OO class: GLP (global problem)</title><content type='html'>New OO class have been created: &lt;a href="http://scipy.org/scipy/scikits/wiki/GLP"&gt;GLP&lt;/a&gt; (global problem)&lt;br /&gt;Currently single GLP solver is "galileo" (by Donald Goodman, alg: Genetic Algorithm; license: GPL)&lt;br /&gt;I have included galileo code to OO. For now it can solve only continuous problems with finite box-bounds. I intend to add handling all-discrete problems as well (AFAIK this solver can't handle mixed discrete-continuous).&lt;br /&gt;&lt;br /&gt;For GLP default p.plotOnlyCurrentMinimum = True, while for all other classes default value is False.&lt;br /&gt;Currently stop criteria for GLP are maxIter,  maxFunEvals,  maxTime,  maxCPUTime, fEnough.  AFAIK xtol and ftol are inappropriate stop criteria for GLP class. I intend to add something like maxNonSuccess = 15 (number of iterations when better value haven't been obtained).&lt;br /&gt;Here's graphical output for the &lt;a href="http://projects.scipy.org/scipy/scikits/browser/trunk/openopt/scikits/openopt/examples/glp_1.py"&gt;example&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_t7NvRg6yt4E/R59_0m4nRqI/AAAAAAAAAEo/p3JUYQQd6eI/s1600-h/glp_1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_t7NvRg6yt4E/R59_0m4nRqI/AAAAAAAAAEo/p3JUYQQd6eI/s400/glp_1.png" alt="" id="BLOGGER_PHOTO_ID_5160984239757805218" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-9099016982075607347?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/9099016982075607347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=9099016982075607347' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/9099016982075607347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/9099016982075607347'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/01/new-oo-class-glp-global-problem.html' title='New OO class: GLP (global problem)'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_t7NvRg6yt4E/R59_0m4nRqI/AAAAAAAAAEo/p3JUYQQd6eI/s72-c/glp_1.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-5820186944530131777</id><published>2008-01-28T04:59:00.000-08:00</published><updated>2008-01-28T05:40:32.414-08:00</updated><title type='text'>SAGE online Calc: very convenient</title><content type='html'>Today I have created account (available for free) for &lt;a href="http://www.sagemath.org/"&gt;SAGE&lt;/a&gt; &lt;span class="l"&gt;Notebook&lt;/span&gt; (&lt;a href="https://www.sagenb.org/"&gt;online calculator&lt;/a&gt;) and found the one very convenient. Here's snapshot from Mozilla browser:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_t7NvRg6yt4E/R53T1W4nRpI/AAAAAAAAAEg/v0qhsGav4RE/s1600-h/SAGE_Calc.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_t7NvRg6yt4E/R53T1W4nRpI/AAAAAAAAAEg/v0qhsGav4RE/s400/SAGE_Calc.png" alt="" id="BLOGGER_PHOTO_ID_5160513661666018962" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-5820186944530131777?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/5820186944530131777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=5820186944530131777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5820186944530131777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5820186944530131777'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/01/sage-online-calc-very-convenient.html' title='SAGE online Calc: very convenient'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_t7NvRg6yt4E/R53T1W4nRpI/AAAAAAAAAEg/v0qhsGav4RE/s72-c/SAGE_Calc.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-2376804929476943173</id><published>2008-01-28T01:36:00.000-08:00</published><updated>2008-01-28T01:56:42.695-08:00</updated><title type='text'>Some major changes to ralg</title><content type='html'>Some major changes to ralg have been made. Almost all tests works better now.&lt;br /&gt;Also, since now ralg will take into account do you define problem as NLP or NSP (and hence behaviour and trajectory will be different).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-2376804929476943173?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/2376804929476943173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=2376804929476943173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2376804929476943173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/2376804929476943173'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/01/some-major-changes-to-ralg.html' title='Some major changes to ralg'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-5654144177791729209</id><published>2008-01-24T11:32:00.000-08:00</published><updated>2008-01-24T11:35:05.774-08:00</updated><title type='text'>bugfix related to "ratAll undefined"</title><content type='html'>some days ago I forget to commit some changes to svn&lt;br /&gt;if you had encountered "ratAll undefined" update svn (or try using updated openopt.tar.gz file)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-5654144177791729209?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/5654144177791729209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=5654144177791729209' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5654144177791729209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/5654144177791729209'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/01/bugfix-related-to-ratall-undefined.html' title='bugfix related to &quot;ratAll undefined&quot;'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-7145218054349223179</id><published>2008-01-21T12:37:00.000-08:00</published><updated>2008-01-21T12:41:30.368-08:00</updated><title type='text'>some more changes to ralg</title><content type='html'>some more changes to enhance solution precision.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-7145218054349223179?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/7145218054349223179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=7145218054349223179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7145218054349223179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/7145218054349223179'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/01/some-more-changes-to-ralg.html' title='some more changes to ralg'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-8857304927859270611</id><published>2008-01-21T07:10:00.001-08:00</published><updated>2008-01-21T08:18:03.892-08:00</updated><title type='text'>Some changes in ralg</title><content type='html'>Some changes have been committed to NLP/NSP solver ralg (first of all to improve solution precision). They are similar to Fortran ralg version, however, equality constraints handling of the latter is still better than Python one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-8857304927859270611?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/8857304927859270611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=8857304927859270611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8857304927859270611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/8857304927859270611'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/01/some-changes-in-ralg.html' title='Some changes in ralg'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6210259640013469958.post-4125534273740417279</id><published>2008-01-20T08:50:00.000-08:00</published><updated>2008-01-20T08:57:52.717-08:00</updated><title type='text'>Some changes in graphics</title><content type='html'>Since matplotlib has some problems with axhline+autoscaling, especially while using 2 subplots, I have made some changes.&lt;br /&gt;So now examples/nlp_bench_1.py works w/o backward xlim modifications that have been occurred earlier.&lt;br /&gt;Let me also remember you: &lt;a href="http://openopt.blogspot.com/2007/12/graphic-output-initial-estimations-xlim.html"&gt;using&lt;/a&gt; initial approximations for xlim, ylim can be very useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6210259640013469958-4125534273740417279?l=openopt.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://openopt.blogspot.com/feeds/4125534273740417279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6210259640013469958&amp;postID=4125534273740417279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/4125534273740417279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6210259640013469958/posts/default/4125534273740417279'/><link rel='alternate' type='text/html' href='http://openopt.blogspot.com/2008/01/some-changes-in-graphics.html' title='Some changes in graphics'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
