[Coin-ipopt] How to guilde the search in IPOPT

Andreas Waechter andreasw at watson.ibm.com
Tue Feb 14 18:07:22 EST 2006


Hi Dahai,

>>> 3) How can I specify "control" variables in AMPL for IPOPT given that I
>>> don't know how AMPL names these "control" variables?
>> 
>> Sorry, I don't understand what you mean by control variables.
>
> They are also called "independent" variables. As you posted before in the
> list " the parameter ISELBAS (see the
> README.IPOPT file) determines how the dependent and independent variables
> are to be chosen.  In particular, you can list the numbers of the
> (in)dependent variables in a file, or choose the first variables as the
> (in)dependent ones."
>
> Can we specify those "independent" variables and just set initial values for 
> these "independent" variables (as the start point) in AMPL?

We haven't set up any mechanism to convey information about independent 
variables from the AMPL model to Ipopt.  The only way I see with the 
current implementation is that you specify the list of numbers of the 
independent variables in a file.  In order to find out what variable 
number in Ipopt corresponds to which variable name in the AMPL model, you 
can write the 'column file' (or whatever the correct name for it is) from 
AMPL.  You do this my setting the 'auxfiles' option in AMPL to contain the 
letter 'c'.  This will write a file *.col when you solve the model (or 
when you write the *.nl file with AMPL's 'write' command, it will also be 
there).  The *.col file then lists all variables in the AMPL model by name 
in the same order as Ipopt sees them.

Specifying only the values of the independent variables in the AMPL model 
wouldn't be enough, since Ipopt needs to know the initial values for all 
variables.  I guess the underlying assumption in your questions is that 
Ipopt in principle should be able to find the values of the dependent 
variables by trying to satisfy the equality constraints.  In principle, 
this could be done, but no such code is implemented, and after all Ipopt 
is not trying first to find a feasible point (which can be almost as 
difficult as the entire optimization problem) and then start the 
optimization from that - it tries to do both things, finding a feasible 
point and minimizing the objective, at the same time.

Regards,

Andreas



More information about the Coin-ipopt mailing list