/*!
 * \page patternsearch-doc

\section patternsearch-doc Pattern Search Methods

\subsection psoverview Overview

Pattern search methods are a class of direct search optimizers that have
recently received a lot of attention because of new convergence proofs
that guarantee weak first order stationary point \if GeneratingLaTeX \latexonly convergence~\cite{DenTor94,Tor89,Tor97,Tor91}. \endlatexonly \endif \if GeneratingHTML convergence [DenTor94,Tor89,Tor97,Tor91].  \endif

The GPSOpt class provides a generic framework for defining
generalized pattern search algorithms.  This class implements the
framework used by \if GeneratingLaTeX \latexonly Torczon~\cite{Tor97} \endlatexonly \endif \if GeneratingHTML Torczon [Tor97] \endif 
to define generalized
pattern search methods.  The class \ref PatternSearch provides a specific
implementation of several types of pattern search methods that perform
a rather local search about the best current iterate.  This includes
randomized variants of these methods, which randomize the order of the
steps taken in the deterministic algorithm; these methods have the same
convergence properties as their deterministic counterparts.

The PatternSearch class defines a variety of pattern search
algorithms.  Although these algorithms could have been defined with
seperate classes, it has proved easier to maintain these algorithms within
a single class, using a switch to select which algorithm is executed.

For each of these pattern search algorithms, a single expansion and
contraction factor is used.  The default expansion factor is 2.0 and
the default contraction factor is 0.5.  None of these methods explicitly
maintains a pattern matrix, so the \c UpdateMatrix method is not defined.
The variable \c em_case is used to select amongst the following pattern
search algorithms:

- \b Standard \b PS:
	(\b em_case=0) This PS method checks for improvement in each
	dimension iteratively, examining dimensions from \f$1\f$ to \f$n\f$
	in order.  If an improvement is detected, this algorithm keeps
	that improvement and continues checking the remaining dimensions,
	using the improved point as the starting point from which new
	offsets are examined.  The order of the
	dimensions may be shuffled.  This is the default PS method.
- \b Best \b Offset \b First:
	(\b em_case=1) This PS method checks for
	improvement in each of the \f$2n\f$ possible offsets iteratively.
	This algorithm terminates as soon as any improving point is found.
	In PatternSearch each dimension from \f$1\f$ to \f$n\f$ is examined
	in order.  The order of the offsets may be shuffled.
- \b Best \b Dimension \b First:
	(\b em_case=2) This PS method checks for improvement in each
	dimension iteratively, examining dimensions from \f$1\f$ to
	\f$n\f$ in order.  This algorithm terminates as soon as any
	improving point is found.  The order of the
	dimensions may be shuffled.
- \b Asynchronous:
	(\b em_case=3)
	This PS method spans off asynchronous function evaluations
	that compute all \f$2n\f$ offsets simultaneously.  It then
	synchronizes the calculation of these offests and keeps the
	offset which provides the best improvement.
- \b Biased \b Best \b Dimension \b First:
	(\b em_case=4) This PS method uses a bias to guide the algorithm
	in a direction where improving points have previously been found.
	If improving points are not found with the bias, the bias is
	halved and then zeroed.  In each of these phases, the algorithm
	acts like the \b Best \b Dimension \b First method.  
	The order of the dimensions may be shuffled.

\subsection psstatus Current Status

The code in GPSOpt is rather stable.  The code defining the various
pattern search methods continues to be refined.

\htmlonly
\subsection psparams Solver Parameters

\endhtmlonly

*/
