[Coin-ipopt] Influencing the dual variable
Oliveira, Ivan B
ivan.b.oliveira at intel.com
Wed Nov 2 12:16:41 EST 2005
Hi Carl,
right now it always sets the
init_lambda flag to false
Quite right - I noticed this in the code but did know if I had
misinterpreted the meaning of the init_lambda flag. I think we're on
the same wavelength.
As long as I understand that this is the case I feel comfortable
temporarily changing my version to allow me to do this. But it would be
a nice feature to be implemented in the release once you have the time.
As for influencing (note I prefer this weaker statement than 'changing'
:) the dual variables *during* iterations - I take it from you answer
there is no plan to support such a thing?
Thanks, (You guys are doing a great job!)
--Ivan.
----------------------------
Ivan B. Oliveira
SC12-205
(408)765-0584
-----Original Message-----
From: Carl Damon Laird [mailto:claird at andrew.cmu.edu]
Sent: Tuesday, November 01, 2005 9:16 PM
To: Oliveira, Ivan B
Cc: coin-ipopt at list.coin-or.org
Subject: Re: [Coin-ipopt] Influencing the dual variable
Hi Ivan,
First, I will assume that you are using the TNLP interface class (there
are others, but this is the "standard" one). The interface does allow
you
to set initial values for the multipliers (but never to "change" them
during the iterations).
You will notice that the get_starting_point method:
virtual bool get_starting_point(Index n, bool init_x, Number* x,
bool init_z, Number* z_L, Number*
z_U,
Index m, bool init_lambda,
Number* lambda)=0;
If the options are such that your NLP needs to provide initial values
for
the equality multipliers (lambda), then init_lambda will be true and you
can put the values into the lambda vector (likewise for the bound
multipliers z_L and z_U).
That was the intent of the design. Now, having said that, I looked
through
the code and I do not see any option that you can set that will actually
cause IPOPT to ask for the multipliers, right now it always sets the
init_lambda flag to false (other than a bleeding edge warm start
feature).
I apologize for this oversight.
I don't see any reason why it would not be easy for us to add the
option(s) to allow user initialized lambda, and z_L and z_U values. I
will
be out of town until early next week, but I can implement these options
then. Again, sorry for the oversight, we should have had this in place.
Any additional comments Andreas?
Thanks for the post,
Carl Laird.
On Tue, 1 Nov 2005, Oliveira, Ivan B wrote:
> Hi guys,
>
>
>
> It doesn't seem possible to either initialize or change the value of
> dual variables during the optimization in the C++ implementation of
> IPOPT. Seems all the callbacks have a const in the signature, and the
> code does not seem to provide hooks to influence the iterations
between
> evaluations. Is this correct? Are there any workarounds you can
> suggest?
>
>
>
> Thanks,
>
>
>
> --Ivan.
>
>
>
> ----------------------------
>
> Ivan B. Oliveira
>
> SC12-205
>
> (408)765-0584
>
>
>
>
More information about the Coin-ipopt
mailing list