[Ipopt] cyipopt - New python interface to Ipopt written in Cython
Amit Aides
amitibo at techunix.technion.ac.il
Sat Oct 15 11:28:24 EDT 2011
Hi,
I have tested cyipopt on a linux machine and was not able to reproduce
the problem. Both examples executed correctly.
My system's setup:
openSUSE 11.3 64bit running on a VMware
python 2.6.5
cython 0.15
numpy 1.6.1
scipy 0.10b
ipopt 3.10.1 compiled against Blas/Lapback/HSL
Amit
On 28/09/2011 17:07, Herb Schilling wrote:
> Hello Amit,
>
> On Sep 27, 2011, at 4:27 PM, Amit Aides wrote:
>
>> Hello,
>>
>> I have written a new python wrapper for Ipopt. It is called cyipopt and
>> can be downloaded from:
>> http://code.google.com/p/cyipopt/
>>
>> It is similar to pyipopt. Likewise it makes use of the Ipopt C
>> interface. But it uses a different calling convention, more similar to
>> the Matlab interface. I include two examples under the folder 'test'.
>> One is the classic hs071 problem and the other one is a translation of
>> the lasso example from the Matlab interface. The matplotlib package is
>> needed for running the lasso example.
>>
>> Another difference is that it is written using Cython, which makes it
>> much easier to develop and maintain. It also enables the implementation
>> of some convenience features, e.g. if no jacobian/hessian structure
>> callbacks are defined than the jacobian/hessian are assumed to be dense.
>> Other convenience examples are:
>> 1) It figures out the number of non zero values by calling the structure
>> callbacks.
>> 2) Missing boundaries (on the optimization variables and constraints)
>> are set to infinity.
>> It is also possible to add support for scipy.sparse matrices if needed.
>>
>> I have tested cyipopt on Win 7 32/64 bit. I will be happy to know if
>> someone is able to use it on linux machines.
>
>
> Thanks for writing this and sharing it with the mailing list.
>
> I tried it on Red Hat Linux and :
>
> 1. I had to edit the setup.py file to make the installation work. Here
> are the parts I had to change. Some of this is specific to my
> computer, obviously! The one thing I would recommend is that you use
> forward slashes for path delimiters. From
> http://docs.python.org/distutils/setupscript.html
>
> *Note that any pathnames (files or directories) supplied in
> the setup script should be written using the Unix convention,
> i.e. slash-separated. The Distutils will take care of
> converting this platform-neutral representation into whatever
> is appropriate on your current platform before actually using
> the pathname. This makes your setup script portable across
> operating systems, which of course is one of the major goals
> of the Distutils. In*
>
>
> PACKAGE_NAME = 'ipopt'
> IPOPT_ICLUDE_DIR=r'/home/hschilli/local/include/coin'
> IPOPT_LIB='ipopt'
> IPOPT_LIB_DIR=r'/home/hschilli/local/lib/coin'
> IPOPT_DLL='libipopt.so'
>
> ext_modules = [
> Extension(
> PACKAGE_NAME + '.' + 'cyipopt',
> [r'src/cyipopt.pyx'],
> include_dirs=[IPOPT_ICLUDE_DIR, np.get_include()],
>
> libraries=[IPOPT_LIB,'coinhsl','coinlapack','coinblas','coinmumps','coinmetis'],
>
> library_dirs=[IPOPT_LIB_DIR,'/home/hschilli/local/lib/coin/ThirdParty']
> )
> ],
>
>
>
> 2. The lasso example worked fine. But the other example generated this
> output. I haven't had time to look into what the problem is there.
>
> (devenv)[659]cyipopt(dev) > python test/examplehs071.py
>
> ******************************************************************************
> This program contains Ipopt, a library for large-scale nonlinear
> optimization.
> Ipopt is released as open source code under the Eclipse Public
> License (EPL).
> For more information visit http://projects.coin-or.org/Ipopt
> ******************************************************************************
>
> This is Ipopt version 3.9.2, running with linear solver ma27.
>
> Exception ValueError: 'The truth value of an array with more than one
> element is ambiguous. Use a.any() or a.all()' in
> 'ipopt.cyipopt.jacobian_cb' ignored
> Exception of type: ERROR_IN_TNLP_DERIVATIVE_TEST in file
> "IpTNLPAdapter.cpp" at line 2526:
> Exception message: retval evaluated false: In TNLP derivative test:
> Jacobian structure could not be evaluated.
>
> EXIT: Some uncaught Ipopt exception encountered.
> Solution of the primal variables: x=array([ 1., 5., 5., 1.])
>
> Solution of the dual variables: lambda=array([ 0., 0.])
>
> Objective=0.0
>
>
>
>
>
>>
>> I will appreciate any feedback: bugs, feature requests etc.
>>
>> Thank you,
>> Amit Aides
>>
>> _______________________________________________
>> Ipopt mailing list
>> Ipopt at list.coin-or.org <mailto:Ipopt at list.coin-or.org>
>> http://list.coin-or.org/mailman/listinfo/ipopt
>
> -----------------------
> Herb Schilling
> hschilling at nasa.gov <mailto:hschilling at nasa.gov>
>
>
>
>
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20111015/d7d2c91f/attachment.html>
More information about the Ipopt
mailing list