Fly algorithm

The Fly Algorithm is a computational method within the field of evolutionary algorithms, designed for direct exploration of 3D spaces in applications such as computer stereo vision, robotics, and medical imaging.

Unlike traditional image-based stereovision, which relies on matching features to construct 3D information, the Fly Algorithm operates by generating a 3D representation directly from random points, termed "flies."

Each fly is a coordinate in 3D space, evaluated for its accuracy by comparing its projections in a scene.

By iteratively refining the positions of flies based on fitness criteria, the algorithm can construct an optimized spatial representation.

The Fly Algorithm has expanded into various fields, including applications in digital art, where it is used to generate complex visual patterns.

The Fly Algorithm is a type of cooperative coevolution based on the Parisian approach.

[2][3] Unlike the classical image-based approach to stereovision, which extracts image primitives then matches them in order to obtain 3-D information, the Fly Agorithm is based on the direct exploration of the 3-D space of the scene.

Once a random population of flies has been created in a search space corresponding to the field of view of the cameras, its evolution (based on the Evolutionary Strategy paradigm) used a fitness function that evaluates how likely the fly is lying on the visible surface of an object, based on the consistency of its image projections.

To this end, the fitness function uses the grey levels, colours and/or textures of the calculated fly's projections.

[6][7] The velocity components are not explicitly taken into account in the fitness calculation but are used in the flies' positions updating and are subject to similar genetic operators (mutation, crossover).

[9] Another application field of the Fly Algorithm is reconstruction for emission Tomography in nuclear medicine.

Here, the fitness of one individual is calculated as its (positive or negative) contribution to the quality of the global population.

It is used during the voxelisation process to tweak the fly's individual footprint using implicit modelling (such as metaballs).

More recently it has been used in digital art to generate mosaic-like images or spray paint.

This is implemented using an evolutionary algorithm that includes all the common genetic operators (e.g. mutation, cross-over, selection).

Here two levels of fitness function are used: In addition, a diversity mechanism is required to avoid individuals gathering in only a few areas of the search space.

In classical evolutionary approaches, the best individual corresponds to the solution and the rest of the population is discarded.

Examples of Parisian Evolution applications include: Cooperative coevolution is a broad class of evolutionary algorithms where a complex problem is solved by decomposing it into subcomponents that are solved independently.

The Parisian approach makes use of a single-population whereas multi-species may be used in cooperative coevolutionary algorithm.

The difference between cooperative coevolutionary algorithm and Parisian evolution resides in the population's semantics.

Cooperative coevolution and particle swarm optimisation (PSO) share many similarities.

PSO is inspired by the social behaviour of bird flocking or fish schooling.

Both algorithms are search methods that start with a set of random solutions, which are iteratively corrected toward a global optimum.

Tomography reconstruction is an inverse problem that is often ill-posed due to missing data and/or noise.

The answer to the inverse problem is not unique, and in case of extreme noise level it may not even exist.

Note that a regularisation term can be introduced to prevent overfitting and to smooth noise whilst preserving edges.

Iterative methods can be implemented as follows: The pseudocode below is a step-by-step description of the Fly Algorithm for tomographic reconstruction.

For illustrative purposes, advanced genetic operators, such as mitosis, dual mutation, etc.

A tile has an orientation (angle θ), a three colour components (R, G, B), a size (w, h) and a position (x, y, z).

In her work, Z. Ali Aboodd [16] uses OpenGL to generate different effects (e.g. mosaics, or spray paint).

Iterative correction in tomography reconstruction.