Content deleted Content added
Citation bot (talk | contribs) Add: s2cid. | You can use this bot yourself. Report bugs here. | Suggested by Abductive | Category:Genetic algorithms | via #UCB_Category |
m →History: Typo fixing, replaced: Agorithm → Algorithm |
||
(13 intermediate revisions by 11 users not shown) | |||
Line 1:
{{Evolutionary algorithms}}▼
{{COI|date=July 2018}}
▲{{Evolutionary algorithms}}
The '''Fly Algorithm''' is a computational method within the field of [[evolutionary algorithms]], designed for direct exploration of [[three-dimensional space|3D spaces]] in applications such as [[computer stereo vision]], [[robotics]], and [[medical imaging]]. Unlike traditional image-based [[stereopsis|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.
== History ==
The Fly Algorithm is a type of [[cooperative coevolution]] based on the Parisian approach.<ref name=Collet2009>{{cite book |title=Optimization in Signal and Image Processing|chapter=Artificial evolution and the Parisian approach: applications in the processing of signals and images|last2=Louchet|first2=Jean|last1=Collet|first1=Pierre|publisher=Wiley-ISTE|date=Oct 2009|isbn=9781848210448|editor1-last=Siarry|editor1-first=Patrick}}</ref> The Fly Algorithm has first been developed in 1999 in the scope of the application of [[Evolutionary algorithms]] to [[computer stereo vision]].<ref name=LouchetRFIA2000>{{cite conference |title=L'algorithme des mouches : une stratégie d'évolution individuelle appliquée en stéréovision|last1=Louchet|first1=Jean|conference=Reconnaissance des Formes et Intelligence Artificielle (RFIA2000)|date=Feb 2000}}</ref><ref name=Louchet2000ICPR>{{cite conference |title=Stereo analysis using individual evolution strategy|last1=Louchet|first1=Jean|publisher=IEEE|conference=Proceedings of 15th International Conference on Pattern Recognition, 2000 (ICPR’00)|pages=908–911|date=Sep 2000|doi=10.1109/ICPR.2000.905580|isbn=0-7695-0750-6|___location=Barcelona, Spain}}</ref> Unlike the classical image-based approach to stereovision, which extracts image primitives then matches them in order to obtain 3-D information, the Fly
The first application field of the Fly Algorithm has been stereovision.<ref name=LouchetRFIA2000 /><ref name=Louchet2000ICPR /><ref name=Louchet2001>{{cite journal |title=Using an Individual Evolution Strategy for Stereovision|last1=Louchet|first1=Jean|pages=101–109|date=Jun 2001|doi=10.1023/A:1011544128842|volume=2|issue=2|journal=Genetic Programming and Evolvable Machines|s2cid=8953837}}</ref><ref name=Boumaza2003>{{cite conference |title=Mobile robot sensor fusion using flies|last1=Boumaza|first1=Amine|last2=Louchet|first2=Jean|publisher=Springer|conference=European Conference on Genetic Programming (EuroGP 2003)|pages=357–367|date=Apr 2003|doi=10.1007/3-540-36605-9_33|isbn=978-3-540-00976-4|___location=Essex, UK|volume=2611|book-title=Lecture Notes on Computer Science}}</ref> While classical `image priority' approaches use matching features from the stereo images in order to build a 3-D model, the Fly Algorithm directly explores the 3-D space and uses image data to evaluate the validity of 3-D hypotheses. A variant called the "Dynamic Flies" defines the fly as a 6-uple (''x'', ''y'', ''z'', ''x’'', ''y’'', ''z’'') involving the fly's velocity.<ref name=Louchet2002>{{cite book |title=Apprentissage Automatique et Evolution Artificielle|chapter=L’algorithme des mouches dynamiques: guider un robot par évolution artificielle en temps réel|last1=Louchet|first1=Jean|last2=Guyon|first2=Maud|last3=Lesot|first3=Marie-Jeanne|last4=Boumaza|first4=Amine|publisher=Hermes Sciences Publications
The application of Flies to obstacle avoidance in vehicles<ref name=Bomaza2001EvoIASP>{{cite conference |title=Dynamic Flies: Using Real-time evolution in Robotics|last1=Boumaza|first1=Amine|last2=Louchet|first2=Jean|publisher=Springer|conference=Artificial Evolution in Image Analysis and Signal Processing (EVOIASP2001)|pages=288–297|date=Apr 2001|doi=10.1007/3-540-45365-2_30|isbn=978-3-540-41920-4|___location=Como, Italy|volume=2037|book-title=Lecture Notes on Computer Science}}</ref> exploits the fact that the population of flies is a time compliant, quasi-continuously evolving representation of the scene to directly generate vehicle control signals from the flies. The use of the Fly Algorithm is not strictly restricted to stereo images, as other sensors may be added (e.g. acoustic proximity sensors, etc.) as additional terms to the fitness function being optimised. Odometry information can also be used to speed up the updating of flies' positions, and conversely the flies positions can be used to provide localisation and mapping information.<ref name=Louchet2009EvoIASP>{{cite conference |title=Flies Open a Door to SLAM.|last1=Louchet|first1=Jean|last2=Sapin|first2=Emmanuel|publisher=Springer|conference=Applications of Evolutionary Computation (EvoApplications 2009)|pages=385–394|date=2009|doi= 10.1007/978-3-642-01129-0_43|___location=Tübingen, Germany|volume=5484|book-title=Lecture Notes in Computer Science}}</ref>
Another application field of the Fly Algorithm is reconstruction for emission Tomography in [[nuclear medicine]]. The Fly Algorithm has been successfully applied in [[single-photon emission computed tomography]]<ref name=Bousquet2007EA>{{cite conference |title=Fully Three-Dimensional Tomographic Evolutionary Reconstruction in Nuclear Medicine|last1=Bousquet|first1=Aurélie|last2=Louchet|first2=Jean-Marie|last3=Rocchisani|first3=Jean|publisher=Springer, Heidelberg|conference=Proceedings of the 8th international conference on Artificial Evolution (EA’07)|pages=231–242|date=Oct 2007|doi=10.1007/978-3-540-79305-2_20|isbn=978-3-540-79304-5|___location=Tours, France|volume=4926|book-title=Lecture Notes in Computer Science|url=http://jean.louchet.free.fr/publis/EA07Bousquet.pdf
.<ref name=Vidal2009MIC>{{cite conference |title=PET reconstruction using a cooperative coevolution strategy in LOR space|last1=Vidal|first1=Franck P.|last2=Louchet|first2=Jean|last3=Lutton|first3=Évelyne|last4=Rocchisani|first4=Jean-Marie|publisher=IEEE|conference=Medical Imaging Conference (MIC)|pages=3363–3366|date=
More recently it has been used in digital art to generate mosaic-like images or spray paint.<ref name=Abbood2017EvoIASP>{{cite conference |title=Evolutionary Art Using the Fly Algorithm|last1=Ali Abbood|first1=Zainab|last2=Amlal|first2=Othman|last3=Vidal|first3=Franck P.|publisher=Springer|conference=Applications of Evolutionary Computation (EvoApplications 2017)|pages=455–470|date=Apr 2017|doi=10.1007/978-3-319-55849-3_30|___location=Amsterdam,
<!--ref>{{cite conference }}</ref-->
<!--
<ref name=Vidal2010>{{cite journal |title=Flies for PET: An artificial evolution strategy for image reconstruction in nuclear medicine|last1=Vidal|first1=Franck P.|last4=Lutton|first4=Évelyne|last2=Louchet|first2=Jean|last3=Rocchisani|first3=Jean-Marie|publisher=American Association of Physicists in Medicine|page=3139|date=2010|doi=10.1118/1.3468200
-->
Line 47 ⟶ 49:
Similar internal evolutionary engines are considered in classical [[evolutionary algorithm]], [[cooperative coevolution|cooperative coevolutionary algorithm]] and Parisian evolution.
The difference between [[cooperative coevolution|cooperative coevolutionary algorithm]] and Parisian evolution resides in the population's semantics.
[[cooperative coevolution|Cooperative coevolutionary algorithm]] divides a big problem into sub-problems (groups of individuals) and solves them separately toward the big problem.<ref name=Mesejo2015>{{cite journal |title=Artificial Neuron – Glia Networks Learning Approach Based on Cooperative Coevolution|last1=Mesejo|first1=Pablo|last2=Ibanez|first2=Oscar|last3=Fernandez-blanco|first3=Enrique|last4=Cedron|first4=Francisco|last5=Pazos|first5=Alejandro|last6=Porto-pazos|first6=Ana|pages=1550012|date=2015|doi=10.1142/S0129065715500124|pmid=25843127|volume=25|issue=4|journal=International Journal of Neural Systems|hdl=2183/17502|s2cid=7653183 |url=https://hal.inria.fr/hal-01221226/file/paperReviewed2.pdf}}</ref> There is no interaction/breeding between individuals of the different sub-populations, only with individuals of the same sub-population.
However, Parisian [[evolutionary algorithms]] solve a whole problem as a big component.
All population's individuals cooperate together to drive the whole population toward attractive areas of the search space.
Line 62 ⟶ 64:
== Applications of the Fly algorithnm ==
* [[Computer stereo vision]]
* [[Obstacle avoidance]]
* [[Simultaneous localization and mapping|Simultaneous localization and mapping (SLAM)]]
* [[Single-photon emission computed tomography|Single-photon emission computed tomography (SPECT)]] reconstruction <ref name=Bousquet2007EA />
* [[Positron emission tomography|Positron emission tomography (PET)]] reconstruction <ref name=Vidal2009EA /><ref name=Vidal2009MIC /><ref name=Vidal2010EvoIASP /><ref name=Vidal2010PPSN /><ref name=Abbood2017SWEVO /><ref name=Abbood2017EA>{{cite conference |title=Basic, Dual, Adaptive, and Directed Mutation Operators in the Fly Algorithm|last1=Abbood|first1=Zainab Ali|last2=Vidal|first2=Franck P.|conference=13th Biennal International Conference on Artificial Evolution (EA-2017)|pages=106–119|date=2017|___location=Paris, France|book-title=Lecture Notes in Computer Science|
* [[Digital art]]
<!--== Methodology ==
Line 125 ⟶ 127:
(v) The algorithm iterates until convergence of the estimated and measured projection sets.
The [[pseudocode]] below is a step-by-step description of the Fly Algorithm for [[tomographic reconstruction]]. The algorithm follows the steady-state paradigm. For illustrative purposes, advanced genetic operators, such as mitosis, dual mutation, etc.<ref>{{cite conference |title=Threshold selection, mitosis and dual mutation in cooperative co-evolution: Application to medical 3D tomography|last1=Vidal|first1=Franck P.|last2=Lutton|first2=Évelyne|last3=Louchet|first3=Jean|last4=Rocchisani|first4=Jean-Marie|publisher=Springer Berlin / Heidelberg|conference=Parallel Problem Solving from Nature - PPSN XI|pages=414–423|date=Sep 2010|doi=10.1007/978-3-642-15844-5_42|isbn=978-3-642-15843-8|___location=Kraków, Poland|volume=6238|book-title=Lecture Notes in Computer Science|url=http://www.fpvidal.net/fly4pet/pdf/Vidal2010PPSN.pdf
<!-- [[File:Fly4pet.svg|512x616px|thumb|right|Flowchart of the Fly Algorithm for Positron Emission Tomography.]] -->
Line 188 ⟶ 190:
45.
46. '''If''' the local fitness is lower than or equal to 0, // Thresholded-selection of a good fly that can reproduce
47. '''else''' go to Step 34. ''// f<sub>
48. '''then''' go to Step 53. ''// f<sub>
49.
50. ''// New blood / Immigration''
Line 223 ⟶ 225:
}}
In this example, an input image is to be approximated by a set of tiles (for example as in an ancient [[mosaic]]). A tile has an orientation (angle θ), a three colour components (R, G, B), a size (w, h) and a position (x, y, z). If there are ''N'' tiles, there are 9''N'' unknown floating point numbers to guess. In other words for 5,000 tiles, there are 45,000 numbers to find. Using a classical evolutionary algorithm where the answer of the optimisation problem is the best individual, the genome of an individual would be made up of 45,000 genes. This approach would be extremely costly in term of complexity and computing time. The same applies for any classical optimisation algorithm. Using the Fly Algorithm, every individual mimics a tile and can be individually evaluated using its local fitness to assess its contribution to the population's performance (the global fitness). Here an individual has 9 genes instead of 9''N'', and there are ''N'' individuals. It can be solved as a reconstruction problem as follows:
<math>reconstruction = \operatorname{arg\,min} \overset{x<W}{\underset{
where <math>input</math> is the input image, <math>x</math> and <math>y</math> are the pixel coordinates along the horizontal and vertical axis respectively, <math>W</math> and <math>H</math> are the image width and height in number of pixels respectively, <math>F</math> is the fly population, and <math>P</math> is a projection operator that creates an image from flies. This projection operator <math>P</math> can take many forms. In her work, Z. Ali Aboodd <ref name=Abbood2017EvoIASP /> uses [[OpenGL]] to generate different effects (e.g. mosaics, or spray paint). For speeding up the evaluation of the fitness functions, [[OpenCL]] is used too.
The algorithm starts with a population <math>F</math> that is randomly generated (see Line 3 in the algorithm above). <math>F</math> is then assessed using the global fitness to compute <math>G_{fitness}(F) = \overset{x<W}{\underset{
== See also ==
Line 247 ⟶ 249:
{{reflist}}
{{Evolutionary computation}}
[[Category:Optimization algorithms and methods]]
[[Category:Genetic algorithms]]
|