<?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'><id>tag:blogger.com,1999:blog-6210259640013469958</id><updated>2009-11-10T01:13:16.739-08:00</updated><title type='text'>OpenOpt</title><subtitle type='html'>free numerical optimization framework</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'/><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=26&amp;max-results=25'/><author><name>Dmitrey</name><uri>http://www.blogger.com/profile/18259817544023299492</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>184</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></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 xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></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 xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></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 xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>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='https://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:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='08845689221156003268'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>