next up previous contents
Next: The simulated-annealing algorithm Up: Optimization Algorithms Previous: The Powell conjugate gradient   Contents


The ``SLOP'' algorithm

The slop algorithm ([16]) is a simple algorithm, suitable for the minimization of a particular function of a digital circuit, the delay. It is feasible for smaller circuit, since it has no heuristics in reaching the minimum, and also it stops at the first minimum it finds.

The idea behind the algorithm is simple: start from a given point $ \mathbf{x}^0 < \mathbf{x}^\star$, the increment at each iteration a single component of $ \mathbf{x}^0$ by a defined step. For each increment track the diminution of the objective function, then conserve memory only of the increment that give the best diminution. Finally, use this increment as a new starting point.
Clearly, this algorithm works only if the starting point is $ \mathbf{x}^0 < \mathbf{x}^\star$ (see notation 4.18), so that an increment in one component moves the function $ f$ near the minimum. Also at the first minimum encountered the algorithm stops.

The same function of figure 4.2 is shown in figures 4.4, minimized by the SLOP algorithm. It is possible to see that the SLOP algorithm stops as just as it encounters the first minimum (a local minimum) at $ x=10$.

Figure 4.4: Minimization by SLOP algorithm of a function $ \sim x^4$: 180 steps.
\includegraphics[width=\myfigwidth,clip]{figures/matopt/f.slop.eps}

Algorithm 5.36   SLOP algorithm
\begin{algorithmic}
% latex2html id marker 3638
[1]
\REQUIRE $\mathbf{x}^0< \mat...
...x}}} = x_{i_{\text{max}}} + \Delta x$\UNTIL{halting criterion}
\end{algorithmic}


next up previous contents
Next: The simulated-annealing algorithm Up: Optimization Algorithms Previous: The Powell conjugate gradient   Contents
marco+site@equars.com