Optimization

From Zori Wiki

 <Walk>
   <Simulation>
   <WalkType Type="Optimization">
     <Optimizer Driver="XXXXXX" Type="XXXXXX" MaxIterations="XXXXXX"
                Tolerance="XXXXXX" StepTolerance="XXXXXX"
                Verbose="XXXXXX"
                PrintIterates="XXXXX" PrintIteratesGradient="XXXXXX" >
       <Functional Type="XXXXXX" Weights="XXXXXX"
                   WeightTol="XXXX"  ERefType="XXXXXX" ERef="XXXXXX"
                   NumericalDerivs="XXXXXX" />
         <Population WalkersPerProcessor="XXXXXX" />
         <Parameters Type="Correlation" />
     </Optimizer>
   </WalkType>
 </Simulation>

Description of Input file Options

Table of contents

1 Description of Optimization Algorithms

Optimizer

Driver= this can be "GSL" [Obsolete] or "OPT++" depending which optimization algorithm one wishes to use.

GSL: BFGS, FR, PR, SD, LM

OPT++: LBFGS, TRGSS, GSS, QNTR, TRPDS, QNBT, CG

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 functional

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" sets reference energy to initial configuration and "AdaptiveMean" changes the reference energy throught the run. Mean and AdaptiveMean NOT tested

ERef= External reference energy

NumericalDerivs= whether to use numerical derivatives or analytical ones. When available always use analytical ones since they are substantially faster ("False").

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 = GSL Fletcher-Reeves conjugate gradient

PR = GSL Polak-Ribiere conjugate gradient

SD = GSL Steepest-descent conjugate gradient

LM = GSL 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

CG = Conjugate Gradient



Return to zori manual