[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