[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-bug-tracker] [bug #32717] sqp returns an error when the local qp
From: |
Gabriele Pannocchia |
Subject: |
[Octave-bug-tracker] [bug #32717] sqp returns an error when the local qp is infeasible |
Date: |
Tue, 08 Mar 2011 16:31:48 +0000 |
User-agent: |
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-us) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4 |
URL:
<http://savannah.gnu.org/bugs/?32717>
Summary: sqp returns an error when the local qp is infeasible
Project: GNU Octave
Submitted by: gpannocchia
Submitted on: Tue 08 Mar 2011 05:31:47 PM CET
Category: None
Severity: 3 - Normal
Priority: 5 - Normal
Item Group: Crash
Status: None
Assigned to: None
Originator Name:
Originator Email:
Open/Closed: Open
Discussion Lock: Any
Release: 3.2.4
Operating System: Mac OS
_______________________________________________________
Details:
Dear Octave Developers,
The nonlinear optimization routine "sqp" seems to not deal properly with the
case where the qp subproblem turns out to be infeasible (either because the
actual nonlinear program is infeasible or because the local constraint
linearization gave rise to an infeasible problem).
To show the error, you may execute the following lines of code (to which I am
attaching two necessary .m files, which defines the equality constraints and
the objective function).
x0 = zeros(2,1);
xmin = [-1;-1];
xmax = [ 0;0];
[xopt, obj, info, iter] = sqp (x0, "objfun", "eqcon", [], xmin, xmax);
Specifically, the chosen example is infeasible. The routine sqp returns an
error at the following lines:
if (! isempty (A))
t = ((A_new - A)'*lambda);
y -= t;
endif
because lambda is an empty vector due to the fact the qp subproblem was
infeasible.
I briefly skimmed the relevant chapter of Nocedal and Wright optimization
book, which maybe was used as a reference for writing the code, and the
solution does not seem trivial and may involve using slack variables and large
linear penalties to ensure that the qp sub-problems are always feasible at
each iteration.
I may try to explore this path if the Team thinks it is useful. In the short
term I would suggest adding a check, right after the qp call, to detect if it
was infeasible and in such case exist sqp and return a code for infeasible
problem.
Thanks and please let me know if I can be of any help with this.
Gabriele Pannocchia
_______________________________________________________
File Attachments:
-------------------------------------------------------
Date: Tue 08 Mar 2011 05:31:47 PM CET Name: objfun.m Size: 58B By:
gpannocchia
<http://savannah.gnu.org/bugs/download.php?file_id=22857>
-------------------------------------------------------
Date: Tue 08 Mar 2011 05:31:47 PM CET Name: eqcon.m Size: 81B By:
gpannocchia
<http://savannah.gnu.org/bugs/download.php?file_id=22858>
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?32717>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Octave-bug-tracker] [bug #32717] sqp returns an error when the local qp is infeasible,
Gabriele Pannocchia <=