next up previous
Next: Applying Amoeba to Increase Up: Rational and Bounded-Rational Players Previous: Solving the leakage problem

The Amoeba algorithm

Consider the unconstrained optimization problem of maximizing a nonlinear function tex2html_wrap1744 for tex2html_wrap_inline1746 . A well-known class of methods for solving this problem is direct search, which does not rely on derivative information (either explicitly or implicitly), but employs only function evaluations [2]. One of the most widely used direct search methods for nonlinear unconstrained optimization problems is the Nelder-Mead simplex algorithm [15]. (This simplex algorithm should not be confused with the simplex algorithm of Dantzig for linear programming.) Nelder-Mead's algorithm is parsimonious in the number of function evaluations per iteration, and is often able to find reasonably good solutions quickly. On the other hand, the theoretical underpinnings of the algorithm, such as its convergence properties, are less than satisfactory [10, 13]. In response, a number of variants have been proposed in the literature which attempt to address such issues [14, 20, 21]. For a detailed survey of the Nelder-Mead algorithm, the reader may refer to  [25, 26]. In this paper, we focus on one implementation of the Nelder-Mead algorithm as described in the popular handbook Numerical Recipes [17], where it is called the amoeba algorithm.

The amoeba algorithm maintains at each iteration a nondegenerate simplex, a geometric figure in n dimensions of nonzero volume that is the convex hull of n+1 vertices, tex2html_wrap_inline1752 , and their respective function values. In each iteration, new points are computed, along with their function values, to form a new simplex. The algorithm terminates when the function values at the vertices of the simplex satisfy a predetermined condition.

One iteration of the amoeba algorithm consists of the following steps:

  1. Order: Order and re-label the n+1 vertices as tex2html_wrap_inline1752 , such that tex2html_wrap_inline1758 . Since we want to maximize, we refer to tex2html_wrap_inline1760 as the best vertex or point, to tex2html_wrap_inline1762 as the worst point, and to tex2html_wrap_inline1764 as the next-worst point. Let tex2html_wrap_inline1766 refer to the centroid of the n best points in the vertex (i.e., all vertices except for tex2html_wrap_inline1770 .
  2. Reflect. Compute the reflection point tex2html_wrap_inline1772 ,

    equation472

    Evaluate tex2html_wrap_inline1774 . If tex2html_wrap_inline1776 , accept the reflected point tex2html_wrap_inline1772 and terminate the iteration.

  3. Expand. If tex2html_wrap_inline1780 , compute the expansion point tex2html_wrap_inline1782 ,

    equation494

    If tex2html_wrap_inline1784 accept tex2html_wrap_inline1782 and terminate the iteration; otherwise (i.e., if tex2html_wrap_inline1788 ) accept tex2html_wrap_inline1772 and terminate the iteration.

  4. Contract. If tex2html_wrap_inline1792 , perform a contraction between tex2html_wrap_inline1766 and tex2html_wrap_inline1762

    equation518

    If tex2html_wrap_inline1798 accept tex2html_wrap_inline1800 and terminate the iteration.

  5. Shrink Simplex. Evaluate tex2html_wrap_inline1802 at the n new vertices for tex2html_wrap_inline1806 .

    equation531

For the four coefficients, the standard values reported in the literature are: tex2html_wrap_inline1128 .


next up previous
Next: Applying Amoeba to Increase Up: Rational and Bounded-Rational Players Previous: Solving the leakage problem

kephart
Thu Nov 18 11:46:57 EST 1999