[OS] OS Ipopt Options

Kipp Martin kipp.martin at chicagogsb.edu
Fri Feb 15 17:47:45 EST 2008


Hi Susana:

Thanks Stefan!

I had entirely forgotten about ipopt.opt and was thinking very narrowly 
in terms of OS.

Susana -- you may wish to look at


http://www.coin-or.org/Ipopt/documentation/node51.html

where there is a description of using the ipopt.opt file.

Thanks!

> 
> as far as I see, Ipopt when called via IpoptSolver should still read its
> default option file.
> Line 520 of OSIpoptSolver.cpp just says
>    app->Initialize();
> which means it calls IpoptApplication with default arguments, and when I
> remember right that this mean that it reads ipopt.opt for Ipopt options.
> You can easily try this out by creating an ipopt.opt with some nonsense
> in there and see whether Ipopt complains.
> 
> Best,
> Stefan
> 
> Kipp wrote:
>>  > I would like to know how I can give the ipopt options through the 
>> OSInstace API.
>>
>> By design, a solver's options are not set through the OSInstance API. In 
>> the design of the OS system there is a complete separation of model 
>> instance with the OSInstance API, solution result with the OSResult API, 
>> and solver options with the OSOption API.
>>
>> The structure of OS  is:
>>
>>
>> OSiL (OS instance Language)   <------>  OSInstance object and API
>> OSrL (OS result Language)   <------>  OSResult object and API
>> OSoL (OS option Language)   <------>  OSOption object and API
>>
>> The abstract class DefaultSolver from which all other solver class (e.g. 
>> Ipopt) inherit has
>>
>> OSInstance *osinstance;
>> OSResult  *osresult;
>> //OSOption  *osoption;
>>
>> members. So the solver options would be set through the osoption object.
>> However, the OSoL parser and corresponding OSOption class is not yet 
>> implemented in cpp.  I hope to do this sometime this summer.
>>
>> However, in the meantime you can still give options to Ipopt. In order 
>> to give options to ipopt you need to go into
>>
>> OS/src/OSSolverInterfaces/OSIpoptSolver.cpp
>>
>> Starting in line 478 of the current trunk version you will see the method
>>
>> void IpoptSolver::solve() throw (ErrorClass)
>>
>> you can edit/change/add any valid Ipopt option in the method.  Then run 
>> make again and the options you set will available in the new Ipopt 
>> library. I realize that this is not a good solution, I just need to find 
>> more time to implement the OSOption class.
>>
>>
>> Sorry it is not more convenient at this time.
>>
>> Regards,
>>
>>
> 


-- 
Kipp Martin
Professor of Operations Research
and Computing Technology
Graduate School of Business
University of Chicago
5807 South Woodlawn Avenue
Chicago, IL 60637
773-702-7456
kipp.martin at chicagogsb.edu
http://gsbkip.chicagogsb.edu
http://www.coin-or.org


More information about the OS mailing list