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

Reply via email to