# Orbit-Based Optimization

Robert P. Munafo, 2004 April 14.

"Orbit-Based Optimization" refers to a family of algorithmic techniques used in rendering the Mandelbrot Set and Julia Sets. The common principle is to exploit known properties of the iteration function and its "dynamics", with the goal of improving speed.

Many other methods are used to increase speed; see Speed Improvements for an overview of all of them.

Here some popular orbit-based algorithms. Each is described in greater detail under its own heading:

The Mandelbrot Set's mirror symmetry can be exploited in views that straddle the real axis, by plotting only the larger part of the view, then using a reflected copy of the appropriate portion of it to fill in the rest of the image.

Orbit Detection, in which a periodic attractive limit cycle is detected by explicit comparison of iterates. One or more previous iterates are retained in memory, and comparisons are made while the iteration is taking place.

The algorithm, in which a large grid of evenly-spaced points is iterated in parallel for a limited number of iterations before being split apart into separate points. Points are iterated individually as soon as they cease to travel together in a gridlike formation. The grid is tracked by following the iterates of key points (typically boundary points); non-key points are approximated by interpolation. "Control points" are also iterated and used to test the accuracy of the interpolation.

The method (applicable only to Julia Sets), in which the dwells of many points can be calculated at once, utilizing the fact that any two points with a common iterate have all of their subsequent iterates in common (starting with the common iterate).

The (also applicable only to Julia Sets) in which the iteration is performed in reverse, causing the boundary of the Julia Set to be attractive and thereby allowing a quick approximate picture of the boundary to be plotted.

From the Mandelbrot Set Glossary and Encyclopedia, by Robert Munafo, (c) 1987-2015. Mu-ency index

This page was last updated on 2015 Sep 05. s.11