INTERFACE WaltzMinimizer; (* Multivariate function minimization by downhill jumping with diagonal shortcuts. Created 96/01/06 by J.Stolfi *) IMPORT Minimizer; TYPE T <: Public; (* Another simple gradient-based optimizer. Each new probe point is generated from the current best point by moving a certain distance (the "step size") in the direction opposite to the gradient. If the new point is better than the previous one, it is accepted and the step size is adjusted; Otherwise the new point is rejected and the step size is reduced. Optionally, after "N+1" acceptances (where "N" is the number of variables), an extra probe point is tried, equal to the current minimum plus "gamma" times the total displacement accrued since the first of those "N+1" accepted points. This probe point is treated as an ordinary one. *) Public = Minimizer.T OBJECT METHODS setGamma(gamma: LONGREAL): T; (* Specifies the diagonal step factor ("gamma", default 1). If zero, no diagonal steps are taken. *) END; END WaltzMinimizer.