[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