|
Optimization of Trial Wavefunction |
|
|
|
|
Written by Dominik Domin
|
|
Sunday, 20 March 2005 |
Currently Zori optimizes only the Correlation portion of the wave function. This section describes how to optimize the correlation function.
Of particular importance is if OPT++ is installed on the machine.
If only GSL is installed on your machine, then the following optimization routines are available for use in Zori 1.0:
BFGS, FR, PR, SD, LM
If OPT++ is also installed on the machine, then the following optimization routine are also available for use in Zori 1.0:
LBFGS, TRGSS, GSS, QNTR, TRPDS, QNBT, CQ
Please note that currently the GSS routine in Zori has had the most testing.
To run an OPT++ based optimization within zori use an appropriately modified input file and run using zopt
zopt -i opt.xml -p psi.xml -r walkers
The to run a GSL-based optimization within zori use an appropriately
modified optimization input file and run using the standard zori
command:
zori -i opt.xml -p psi.xml -r walkers
Multiprocessor jobs need the appropriate command such as mpirun prefixing the above command. For optimization routines that are found OPT++, one may run an optimization using zopt replacing the standard zori in the above command.
Description of Input file Options
Optimizer
Driver= this can be "GSL" or "OPT++" depending which
optimization algorithm one wishes to use. See above for which routines
belong to which optimizer.
Type= This is the optimization algorithm used in the optimization. See below for a description of the algorithms.
MaxIterations=maximum number of iterations before optimizer stops
IniStep=The size of the
first trial step in the optimization of a GSL based optimization routines.
Tolerance= the tolerance for convergence of the optimization
Functional
Type= the functional minimized,
currently zori supports "Variance" minimization, "Energy" minimization,
and "Manhattan" (absolute value) functional minimization.
Weights= Should one use the weight of the during the optimization. May contain bugs, recommended setting "False"
WeightTol= Weight Tolerance.
ERefType= "External" requires that one supply an external reference energy ("ERef" tag is required), "Mean" and "Adaptive"
NumericalDerivs= whether to use numerical derivatives or
analytical ones. When available always use analytical ones since they
are substantially faster.
Population
WalkersPerProcessor= be sure this is equal to the number of
walkers in each processors walker file. Most optimization algorithms
return better optimized parameters when the number of walkers is as
large as possible.
Parameters
Type= This is which part of the wave function one wishes to optimize. Currently Zori only accepts "Correlation"
Description of Optimization Algorithms
BFGS = GSL Broyden-Fletcher-Goldfarb-Shanno conjugate gradient
FR = Fletcher-Reeves conjugate gradient
PR = Polak-Ribiere conjugate gradient
SD = Steepest-descent conjugate gradient
LM = Levenberg-Marquardt non-linear least squares fitting
LBFGS = Limited Memory BFGS algorithm. This
algorithm operates with an approximation to the Hessian which is
updated using a small number of gradient vectors from previous
iterations. The makes LBFGS an effective
algorithm for large-scale unconstrained nonlinear optimization
problems. see D.C. Liu, and J. Nocedal, Mathematical Programming, 45, (1989)
TRGSS = Trust Region Generating Set Search
GSS = Generating Set Search
QNTR = Quasi-Newton Trust Region
TRPDS = Trust Region Parallel Direct Search
QNBT = Quasi-Newton Back-Track
CQ = Conjugate Gradient
Example of Optimization Run
Good old trusty HNO...
|
|
Last Updated ( Tuesday, 29 March 2005 )
|