Benchmark function to compare GNE computational methods.
bench.GNE.nseq(xinit, ..., echo=FALSE, control=list())
bench.GNE.ceq(xinit, ..., echo=FALSE, control=list())
bench.GNE.fpeq(xinit, ..., echo=FALSE, control.outer=list(),
control.inner=list())
bench.GNE.minpb(xinit, ..., echo=FALSE, control.outer=list(),
control.inner=list())
For GNE.bench.ceq
and GNE.bench.nseq
, a data.frame
is returned with columns:
method
the name of the method.
fctcall
the number of calls of the function.
jaccall
the number of calls of the Jacobian.
comptime
the computation time.
normFx
the norm of the merit function at the final iterate.
code
the exit code.
localmethods
the name of the local method.
globalmethods
the name of the globalization method.
x
the final iterate.
For GNE.bench.minpb
, a data.frame
is returned with columns:
method
the name of the method.
minfncall.outer
the number of calls of the merit function.
grminfncall.outer
the number of calls of the gradient of the merit function.
gapfncall.inner
the number of calls of the gap function.
grgapfncall.outer
the number of calls of the gradient of the gap function.
comptime
the computation time.
normFx
the norm of the merit function at the final iterate.
code
the exit code.
x
the final iterate.
For GNE.bench.fpeq
, a data.frame
is returned with columns:
method
the name of the method.
fpfncall.outer
the number of calls of the fixed-point function.
merfncall.outer
the number of calls of the merit function.
gapfncall.inner
the number of calls of the gap function.
grgapfncall.outer
the number of calls of the gradient of the gap function.
comptime
the computation time.
normFx
the norm of the merit function at the final iterate.
code
the exit code.
x
the final iterate.
a numeric vector for the initial point.
further arguments to be passed to GNE.nseq
,
GNE.ceq
, GNE.fpeq
or GNE.minpb
.
NOT to the functions func1
and func2
.
a logical to get some traces of the benchmark computation.
a list with control
parameters to be passed to GNE.xxx
function.
Christophe Dutang
Computing generalized Nash Equilibrium can be done in three different approaches.
It consists in solving the non smooth extended Karush-Kuhn-Tucker
(KKT) system \(\Phi(z)=0\). func1
is \(Phi\) and func2
is \(Jac Phi\).
It consists in solving equation \(y(x)=x\). func1
is \(y\) and
func2
is ?
It consists in minimizing a gap function \(min V(x)\).
func1
is \(V\) and func2
is \(Grad V\).
F. Facchinei, A. Fischer & V. Piccialli (2009), Generalized Nash equilibrium problems and Newton methods, Math. Program.
A. von Heusinger (2009), Numerical Methods for the Solution of the Generalized Nash Equilibrium Problem, Ph. D. Thesis.
A. von Heusinger & J. Kanzow (2009), Optimization reformulations of the generalized Nash equilibrium problem using Nikaido-Isoda-type functions, Comput Optim Appl .
See GNE.fpeq
, GNE.minpb
, GNE.ceq
and GNE.nseq
for other approaches.