Hi,
from now on, the gradient of the objective function and constraint
functions will be calculated (as difference quotient) but the behavior
does not change.
During debugging the optimization steps I figured out that the fault
emerges within the "least square equality and inequality constraint
subroutine" (lsei_ in slsqp.c). The method returns with *mode=6 which
means "C is not of full rank".
What am I doing wrong? The objective function has many dimensions
(sum(m_i) + n, where n is the number of players and m_i is the amount of
strategies per player).
Regards,
Tobias
Am 21.01.2014 09:40, schrieb Julius Ziegler:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I know to little about your objective function. In general, gradient
based optimization will work much better, especially in high
dimensional functions. How many dimensions does your function have?
Btw, it is absolutely doable, at least for a first shot, to use a
numeric approximation to the gradient. That is not difficult, its just
a difference quotient!
Best,
Julius
On 01/21/2014 09:03 AM, Tobias Schmidt wrote:
Hi Julian,
indeed, I do not compute the gradient. I did not notice that SQP
needs the gradient function to compute the optimum. Do you think
it is possible to use COBYLA instead? I changed the algorithm
usage and get some result but it differs from the matlab result,
too.
Regards, Tobias
Am 20.01.2014 14:20, schrieb Julius Ziegler: Hi Tobias,
from a quick look at your code - maybe I have overlooked something
-, it seems that you are not computing the gradient of your
objective function. SQP expects that, and as far as I know, nlopt
will not automatically compute a numeric gradient for you.
Best, Julius
On 01/20/2014 02:14 PM, Tobias Schmidt wrote:
Hi Julian,
thanks for your reply.
I'm expecting the result to be similar to the result of npg
in matlab, but it is not. The objective function is called
only once, but in matlab the objective function is called 80
times.
Any other suggestions?
Regards, Tobias Schmidt
Am 20.01.2014 11:05, schrieb Julius Ziegler: Hi Tobias,
(answer inline below)
On 01/20/2014 10:12 AM, Tobias Schmidt wrote:
Hey guys,
I'm trying to implement a nonlinear constrained
optimization with C++ using NLopt to compute one nash
equilibrium of an n-person game. The implementation is
based on the function "npg" of the matlab optimization
toolbox, which solves an n-person finite
non-co-operative game (DOI-Link:
http://dx.doi.org/10.1109/ICM2CS.2009.5397970). It
uses SQP based method to get a solution of the
minimization problem.
The attached code represents my implementation,
strictly oriented on the matlab implementation
referred above. Each call of the optimization function
returns "nlopt roundoff-limited" exception.
this means that a local step towards the minimum cannot
bring any improvement because of numerical limits in
floating point representation (there is such thing as a
smallest floating point number), and that this limit hit
before any of your termination criteria (like fmin,
xmin...).
Normally, this means that your result is still usable. Have
you looked at the results? Do they look reasonable?
Best regards, Julius
Does anybody know this exception or can figure out the
fault? I'm not very familiar with the mathematical
background of different optimization formulations.
Maybe the calls of add_*_constraint or the formulation
of the objective function causes the exception. You
will need the Eigen library to compile the source
code. It is available at
http://bitbucket.org/eigen/eigen/get/3.2.0.tar.bz2 .
Thanks in advance, Tobias Schmidt
_______________________________________________
NLopt-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss
_______________________________________________ NLopt-discuss
mailing list [email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss
_______________________________________________ NLopt-discuss
mailing list [email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss
- --
Dipl.-Inform. Julius Ziegler <[email protected]>
Institut für Mess- und Regelungstechnik
Karlsruher Institut für Technologie
Department of Measurement and Control
Karlsruhe Institute of Technology
Engler-Bunte-Ring 21
76131 Karlsruhe
Tel. +49 721 608 47146
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQEcBAEBAgAGBQJS3jJmAAoJEMXuNLCiya8LT+MH/1MSygHA+hKqfmveeQzsgkx3
nPMGQm6sm2tSyHbRXQ14tUSaH+W381mJ2xo3U5wsItNj4D0EaqDhrZGMH63xev5u
uQJnbdtmILFZcjVQHjItYAA1gaJKZ4Z+8cmDNqPB9cKablYSCuqzH2wX7d8Oli/9
hFP/Nlp9pqCGtW1b3B3vxJH++bh5C1BW4BdRj6PXYvd5oUWzoi8BFiJYMCTUHVfl
6HTGDHorNZKVZ05Cfe/9uZU5uhhkgrB+QGFDl1Z0Yr3HSnb2uVnrrFwUOnO0Hm2u
c27XlFIxKUCAZAdIFoHX02GA9V2Bjld7qHaDlWR0PKvBdMq7WlNRaIzsB6PdMxY=
=mBmo
-----END PGP SIGNATURE-----
_______________________________________________
NLopt-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss
--
Tobias Schmidt, B.Sc.
Student and research assistant
Automation Lab.
Institute for Computer Engineering
Heidelberg University
B6, 26, B0.19
D-68131 Mannheim
Germany
Tel. +49-621-181-2664
URL: http://proaut.ziti.uni-heidelberg.de
URL: http://www.ziti.uni-heidelberg.de
_______________________________________________
NLopt-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss