Help:Sandbox

Алгоритъмът за оптимизация по метода на мравките (ant colony optimization, ACO) е вероятностен подход за решаване на изчислителни задачи, който може да бъде сведен до откриване на оптимални пътища в граф.

Основният такъв алгоритъм и неговите различни модификации образуват подмножество на класа алгоритми за метаевристична оптимизация. За първи път предложен от проф. Марко Дориго в докторската му дисертация от 1992 година, оригиналният алгоритъм за оптимизация по метода на мравките е имал за цел да търси оптимален път в граф на базата на поведението на мравките, търсещи път между своята колония и даден източник на храна. От тогава до днес оригиналната идея на Дориго е многократно разширявана и модифицирана, за да решава по-широк клас от изчислителни задачи, и в резултат са се появили няколко нови проблема и подхода, базирани на различни други аспекти от поведението на мравките.

Разясняване на понятието
В реалността, истинските мравки (първоначално) се движат по случаен начин и при откриване на източник на храна се завръщат към гнездото на колонията си, като по целия обратен път полагат следи от вещество, наречено феромон, което служи за комуникация с останалите мравки. Ако други мравки се натъкнат на маршрута на първата мравка, те с голяма степен на вероятност престават да се движат по случаен начин, а поемат по оставената следа от феромон до източника на храна и в случай, че също открият храна, при връщането си полагат собствена следа от феромон върху вече съществуващата. По този начин количеството феромон се увеличава и маршрута до източника на храна става още по-привлекателен за следващите мравки.

Феромонът обаче има свойството да се изпарява с времето, което снижава способността му да привлича други мравки. Колкото повече време отнема на една мравка да премине разстоянието до източника на храната и обратно, толкова повече феромонът се изпарява. За сравнение, един по-кратък път между същите две крайни точки, бива извървян за по-кратко време и интензитетът на феромона остава по-висок. В контекста на алгоритъма на мравките, изветряването на феромона представлява предимство, тъй като се избягва сходимостта на алгоритъма към решение, представляващо локален оптимум. Ако не съществуваше ефектът с изпарението, то пътищата избрани от първите "мравки" биха имали тенденцията да са прекомерно привлекателни за всички следващи, което на свой ред би ограничило значително изследваната от "мравките" област на решенията.

По този начин, когато една мравка открие добър (т.е. кратък) път от мравуняка си до някакъв източник на храна, с голяма вероятност и други мравки ще последват пътя й и постепенно положителната обратна връзка ще доведе до това всички мравки да следват един и същ път. Идеята на алгоритъма за оптимизация по метода на мравчената колония е да се имитира това поведение с "изкуствени (симулирани) мравки", които се движат по дъгите на граф, представляващ областта на възможните решения, като откритият от мравките път представлява оптималното от тези решения.

Представяне на алгоритъма


Оригиналната идея за алгоритъма произлиза от наблюденията как мравки усвояват източници на храна и по-специално от наблюдението, че индивидуално ограничените откъм когнитивни възможности мравки, взети заедно, откриват най-кратък път между източника на храната и своя мравуняк.
 * 1) Първата мравка открива източника на храна (F) по някакъв (без значение какъв) начин (a), завръща се в гнездото си (N), оставяйки след себе си следа от феромон (b).
 * 2) Мравките безразборно следват четири възможни пътя, но затвърждаването на някой от тях посредством полагането на повече феромон го прави по-привлекателен като най-краткия маршрут.
 * 3) Мравките поемат по най-краткия маршрут, като така дълги отрязъци от други маршрути губят привлекателността си, поради постепенното изпаряване на феромона от тях.

В серия от експерименти с мравчени колонии, с възможен избор между различни по дължина пътя водещи до един и същ източник на храна, биолози са наблюдавали, че мравките проявяват склонност да откриват най-късия път. Моделът, обясняващ това поведение, е следният:
 * 1) Една мравка (наречена "блиц") се движи повече или по-малко на случаен принцип в близост до колонията си;
 * 2) Ако тя се натъкне на източник на храна, тя се връща относително директно в мравуняка, като по обратния път оставя след себе си следа от феромон;
 * 3) Следите от феромон са привлекателни за другите мравки и тези, които се намират в съседство, са предразположени да поемат по оставената следа, следвайки я сравнително плътно;
 * 4) При завръщането си в мравуняка, тези мравки усилват следата от феромон по маршрута;
 * 5) Ако до един и същ източник на храня водят два пътя, за едно и също количество време повече на брой мравки ще изминат по-краткия, отколкото по-дългия път;
 * 6) Тъй като повече мравки ще избират по-късия път, той ще бъде подсилван с феромон от все повече мравки;
 * 7) По-дългият път в крайна сметка ще се загуби, тъй като феромонът е летливо вещество и се изпарява с времето;
 * 8) Накрая всички мравки решително ще избират пътя с нисоко насищане на феромон, следователно открит ще бъде най-късият път между източника на храната и мравчената колония.

Мравките използват околната среда като средство за комуникация. Те обменят информация индиректно, чрез полагане на феромон по пътя си. Това средство за общуване има локален обхват, тъй като само мравка, която се намира на място, на което е положен феромон, получава информация от предходната мравка. Такава система се нарича "стигмергия" и може да бъде открита в много животински съобщества (изучавана е при строежа на термитни стълбове).

Така този механизъм за решаване на дадена задача, която се оказва твърде сложна, за да е по силите на единични агенти ("мравки"), се явява добър пример за самоорганизираща се система. Тази система се основава на положителна обратна връзка (полагането на феромон привлича други мравки, които следвайки следата сами я подсилват) и на отрицателна обратна връзка (излиняването на пътя поради изпарението на феромона, което предотвратява системата да се препълни с информация и да се срине). На теория, ако количеството феромон остава по всички пътища непроменено във времето, то никой маршрут няма да се изяви като по-привлекателен пред останалите. На практика, поради съществуващите обратните връзки в системата, дори и слабите вариации в привлекателността на дадени пътища позволяват даден маршрут да бъде предпочетен, което с нарастващия брой на мравките, които го избират, води и до изявяването му като оптимален. Алгоритъмът еволюира от състояние на неустойчивост (когато никой път в графа не е по-привлекателен от останалите) към състояние на устойчивост (при което маршрутът се състои от най-привлекателните, т.е. най-често прохождани дъги в графа).

Разширения на понятието
Следват някои от най-популярните вариации на алгоритмите за оптимизация по метода на мравките.

Оптимизация чрез елитни мравки
Това е първата по време модификация на алгоритъма. При нея мравките, които към всяка отделна итерация дават най-добро решение, се обявяват за елитни мравки и те получават право да полагат специален феромон по маршрута си.

Минимаксна мравчена оптимизация
Моделът се променя, като се добавят максимални и минимални количества феромон [τmax,τmin] Феромон се полага само по маршрута, отговарящ на глобално най-доброто решение или най-доброто решение за конкретната итерация. Всички дъги се инициализират с τmax и повторно получават стойността τmax при наближаване на ситуация на стагнация.

Proportional pseudo-random rule
Представен е по-горе.

Мравчена система, базирана на рангове
Всички решения се ранжират по отношение на фитнес функцията им. После количеството отложен феромон се претегля за всяко решение, по такъв начин, че решенията с по-добри показатели на фитнес функцията да получат повече феромон от тези с по-слаби показатели.

Непрекъсната ортогонална мравчена система
Механизмът за полагане на феромон при непрекъснатата ортогонална мравчена система е такъв, че позволява на мравките на търсят решения по един колаборативен и ефективен начин. Използвайки orthogonal design method, мравките могат да изследват избраните от тях региони от допустимата област бързо и ефикасно с подобрени възможности за глобално търсене и с по-висока точност.

The orthogonal design method и adaptive radius adjustment method също могат да бъдат разширени към други оптимизационни алгоритми, предоставяйки по-добри възможности за решаване на задачи от практиката.

Сходимост
При някои версии на алгоритъма е възможно да се докаже сходимост (т.е. че е възможно да се открие глобален оптимум за крайно време). Първото доказателство за сходимост на алгоритъма за оптимизация по метода на мравките е дадено през 2000 година за граф-базирания алгоритъм на мравките, а впоследствие и за алгоритмите за системи от мравчени колонии и минимаксния алгоритъм за оптимизация. Както при повечето метаевристични методи, и тук е много трудно да се направи теоретична оценка на скоростта на сходимост. През 2004, Злохин (Zlochin) и негови колеги have shown COA type algorithms could be assimilated methods of стохастичното спускане по градиент, on the cross-entropy and Estimation of distribution algorithm.

Приложения
Алгоритмите за оптимизация по метода на мравките са прилагани към множество задачи за комбинаторна оптимизация, вариращи от quadratic assignment to fold protein или routing vehicles. Много производни на тях методи са адаптирани към динамични задачи с реални променливи, стохастични задачи, многоцелеви и паралелни приложения. Оптимизация по метода на мравките е използвана за достигане на почти оптимални решения на задачата за търговския пътник. Тези алгоритми имат предимство пред използването на simulated annealing и генетични алгоритми за сходни задачи, в случаите, когато графът може да се променя динамично: алгоритъмът на мравките може да се адаптира към промените в реално време. Това представлява интерес при задачи за маршрутизация в мрежа и при градски транспортни системи.

Много добър пример за приложението на алгоритъма на мравките е свързан с почти оптималните решения на задачата за търговския пътник. Първият алгоритъм от този клас, наречен Ant system е прилаган за решаване на тази задача, при която целта е да се намери най-краткия маршрут за обхождане на множество от градове.

Общият алгоритъм е относително прост и базиран на множество изкуствени мравки, всяка от които извършваща един от всички възможни обходи на градовете. На всяка итерация, мравката избира да се придвижи от един град до друг в зависимост от следните правила:
 * 1) Тя трябва да посети всеки град точно по веднъж;
 * 2) По-отдалечените градове имат по-малък шанс да бъдат избрани (проблема с видимостта);
 * 3) Колкото по-интензивна е следата от феромон, положена върху пътя, свързваща два града, толкова по-голяма е вероятността този път да бъде избран;
 * 4) След приключване на обхода, мравката полага повече феромон по пътищата, по които е минала, ако целият маршрут е счетен за къс;
 * 5) След всяка итерация следите от феромон се изпаряват.



Примерен псевдокод и формули
procedure ACO_MetaHeuristic while(not_termination) generateSolutions daemonActions pheromoneUpdate end while end procedure


 * Избор на дъга

Мравка се придвижва от връх $$i$$ до връх $$j$$ на графа с вероятност

$$ p_{i,j} = \frac { (\tau_{i,j}^{\alpha}) (\eta_{i,j}^{\beta}) } { \sum (\tau_{i,j}^{\alpha}) (\eta_{i,j}^{\beta}) } $$

където


 * $$\tau_{i,j}$$ е количеството феромон върху дъгата $$i,j$$
 * $$\alpha$$ е параметър за контрол на влиянието на $$\tau_{i,j}$$
 * $$\eta_{i,j}$$ е привлекателността на дъгата $$i,j$$ (априори, обичайно $$1/d_{i,j}$$, където $$d$$ е разстоянието)
 * $$\beta$$ е параметър за контрол на влиянието на $$\eta_{i,j}$$


 * Обновяване на феромона

$$ \tau_{i,j} = (1-\rho)\tau_{i,j} + \Delta \tau_{i,j} $$

където

\Delta \tau^{k}_{i,j} = \begin{cases} 1/L_k & \mbox{if ant }k\mbox{ travels on edge }i,j \\ 0 & \mbox{otherwise} \end{cases} $$
 * $$\tau_{i,j}$$ е количеството феромон върху дадена дъга $$i,j$$
 * $$\rho$$ е скоростта на изпарение на феромона
 * $$\Delta \tau_{i,j}$$ е количеството на отложения феромон, обичайно представен чрез
 * където $$L_k$$ е цената на $$k$$-тия обход на мравката (обичайно - дължината).

Job-shop scheduling problem

 * Job-shop scheduling problem (JSP)
 * Open-shop scheduling problem (OSP)
 * Permutation flow shop problem (PFSP)
 * Single machine total tardiness problem (SMTTP)
 * Single machine total weighted tardiness problem (SMTWTP)
 * Resource-constrained project scheduling problem (RCPSP)
 * Group-shop scheduling problem (GSP)
 * Single-machine total tardiness problem with sequence dependent setup times (SMTTPDST)

Vehicle routing problem

 * Capacitated vehicle routing problem (CVRP)
 * Multi-depot vehicle routing problem (MDVRP)
 * Period vehicle routing problem (PVRP)
 * Split delivery vehicle routing problem (SDVRP)
 * Stochastic vehicle routing problem (SVRP)
 * Vehicle routing problem with pick-up and delivery (VRPPD)
 * Vehicle routing problem with time windows (VRPTW)

Assignment problem

 * Quadratic assignment problem (QAP)
 * Generalized assignment problem (GAP)
 * Frequency assignment problem (FAP)
 * Redundancy allocation problem (RAP)

Set problem

 * Set covering problem(SCP)
 * Set partition problem (SPP)
 * Weight constrained graph tree partition problem (WCGTPP)
 * Arc-weighted l-cardinality tree problem (AWlCTP)
 * Multiple knapsack problem (MKP)
 * Maximum independent set problem (MIS)

Други

 * Задачи за класификация
 * Connection-oriented network routing
 * Connectionless network routing
 * Извличане на знания от данни
 * Discounted cash flows in project scheduling
 * Grid Workflow Scheduling Problem
 * Обработка на изображения
 * Intelligent testing system
 * System identification
 * Protein Folding
 * Power Electronic Circuit Design

A difficulty in definition
With an ACO algorithm, the shortest path in a graph, between two points A and B, is built from a combination of several paths. It is not easy to give a precise definition of what algorithm is or is not an ant colony, because the definition may vary according to the authors and uses. Broadly speaking, ant colony algorithms are regarded as populated metaheuristics with each solution represented by an ant moving in the search space. Ants mark the best solutions and take account of previous markings to optimize their search. They can be seen as probabilistic multi-agent algorithms using a probability distribution to make the transition between each iteration. In their versions for combinatorial problems, they use an iterative construction of solutions. According to some authors, the thing which distinguishes ACO algorithms from other relatives (such as algorithms to estimate the distribution or particle swarm optimization) is precisely their constructive aspect. In combinatorial problems, it is possible that the best solution eventually be found, even though no ant would prove effective. Thus, in the example of the Travelling salesman problem, it is not necessary that an ant actually travels the shortest route: the shortest route can be built from the strongest segments of the best solutions. However, this definition can be problematic in the case of problems in real variables, where no structure of 'neighbours' exists. The collective behaviour of social insects remains a source of inspiration for researchers. The wide variety of algorithms (for optimization or not) seeking self-organization in biological systems has led to the concept of "swarm intelligence", which is a very general framework in which ant colony algorithms fit.

Stigmergy algorithms
There is in practice a large number of algorithms claiming to be "ant colonies", without always sharing the general framework of optimization by canonical ant colonies (COA). In practice, the use of an exchange of information between ants via the environment (a principle called "Stigmergy") is deemed enough for an algorithm to belong to the class of ant colony algorithms. This principle has led some authors to create the term "value" to organize methods and behavior based on search of food, sorting larvae, division of labour and cooperative transportation. .

Свързани подходи

 * Genetic algorithms (GA) maintain a pool of solutions rather than just one. The process of finding superior solutions mimics that of evolution, with solutions being combined or mutated to alter the pool of solutions, with solutions of inferior quality being discarded.
 * Simulated annealing (SA) is a related global optimization technique which traverses the search space by generating neighboring solutions of the current solution. A superior neighbor is always accepted. An inferior neighbor is accepted probabilistically based on the difference in quality and a temperature parameter. The temperature parameter is modified as the algorithm progresses to alter the nature of the search.
 * Tabu search (TS) is similar to simulated annealing in that both traverse the solution space by testing mutations of an individual solution. While simulated annealing generates only one mutated solution, tabu search generates many mutated solutions and moves to the solution with the lowest fitness of those generated. To prevent cycling and encourage greater movement through the solution space, a tabu list is maintained of partial or complete solutions. It is forbidden to move to a solution that contains elements of the tabu list, which is updated as the solution traverses the solution space.
 * Artificial immune system (AIS) algorithms are modeled on vertebrate immune systems.
 * Particle swarm optimization (PSO), a Swarm intelligence method
 * Intelligent Water Drops (IWD), a swarm-based optimization algorithm based on natural water drops flowing in rivers
 * Gravitational Search Algorithm (GSA), a Swarm intelligence method
 * Ant colony clustering method (ACCM), a method that make use of clustering approach,extending the ACO.

История
Chronology of COA Algorithms.

Chronology of Ant colony optimization algorithms.
 * 1959, Pierre-Paul Grass invented the theory of Stigmergy to explain the behavior of nest building in termites ;
 * 1983, Deneubourg and his colleagues studied the collective behavior of ants ;
 * 1988, and Moyson Manderick have an article on self-organization among ants ;
 * 1989, the work of Goss, Aron, Deneubourg and Pasteels on the collective behavior of Argentine ants, which will give the idea of Ant colony optimization algorithms ;
 * 1989, implementation of a model of behavior for food by Ebling and his colleagues ;
 * 1991, M. Dorigo proposed the Ant System in his doctoral thesis (which was published in 1992 ). A technical report extracted from the thesis and co-authored by V. Maniezzo and A. Colorni was published five years later ;
 * 1996, publication of the article on Ant System ;
 * 1996, Hoos and Stützle invent the MAX-MIN Ant System ;
 * 1997, Dorigo and Gambardella publish the Ant Colony System ;
 * 1997, Schoonderwoerd and his colleagues developed the first application to telecommunication networks ;
 * 1998, Dorigo launches first conference dedicated to the ACO algorithms ;
 * 1998, Stützle proposes initial parallel implementations ;
 * 1999, Bonabeau, Dorigo and Theraulaz publish a book dealing mainly with artificial ants
 * 2000, special issue of the Future Generation Computer Systems journal on ant algorithms
 * 2000, first applications to the scheduling, scheduling sequence and the satisfaction of constraints;
 * 2000, Gutjahr provides the first evidence of convergence for an algorithm of ant colonies
 * 2001, the first use of COA Algorithms by companies (Eurobios and AntOptima);
 * 2001, IREDA and his colleagues published the first multi-objective algorithm
 * 2002, first applications in the design of schedule, Bayesian networks;
 * 2002, Bianchi and her colleagues suggested the first algorithm for stochastic problem ;
 * 2004, Zlochin and Dorigo show that some algorithms are equivalent to the stochastic gradient descent, the cross-entropy and algorithms to estimate distribution
 * 2005, first applications to folding protein problems.

Избрани публикации

 * M. Dorigo, 1992. Optimization, Learning and Natural Algorithms, PhD thesis, Politecnico di Milano, Italy.
 * M. Dorigo, V. Maniezzo & A. Colorni, 1996. "Ant System: Optimization by a Colony of Cooperating Agents", IEEE Transactions on Systems, Man, and Cybernetics–Part B, 26 (1): 29–41.
 * M. Dorigo & L. M. Gambardella, 1997. "Ant Colony System: A Cooperative Learning Approach to the Traveling Salesman Problem". IEEE Transactions on Evolutionary Computation, 1 (1): 53–66.
 * M. Dorigo, G. Di Caro & L. M. Gambardella, 1999. "Ant Algorithms for Discrete Optimization". Artificial Life, 5 (2): 137–172.
 * E. Bonabeau, M. Dorigo et G. Theraulaz, 1999. Swarm Intelligence: From Natural to Artificial Systems, Oxford University Press. ISBN 0-19-513159-2
 * M. Dorigo & T. Stützle, 2004. Ant Colony Optimization, MIT Press. ISBN 0-262-04219-3
 * M. Dorigo, 2007. "Ant Colony Optimization". Scholarpedia.
 * C. Blum, 2005 "Ant colony optimization: Introduction and recent trends". Physics of Life Reviews, 2: 353-373
 * M. Dorigo, M. Birattari & T. Stützle, 2006 Ant Colony Optimization: Artificial Ants as a Computational Intelligence Technique. TR/IRIDIA/2006-023
 * Mohd Murtadha Mohamad,”Articulated Robots Motion Planning Using Foraging Ant Strategy”,Journal of Information Technology - Special Issues in Artiﬁcial Intelligence, Vol.20, No. 4 pp. 163-181, December 2008, ISSN0128-3790.

Въъншни препратки

 * Ant Colony Optimization Home Page
 * University of Kaiserslautern, Germany, AG Wehn: Ant Colony Optimization Applet Visualization of Traveling Salesman solved by Ant System with numerous options and parameters (Java Applet)
 * Department of Electronics & Information Engineering, JBNU, Jeonju, Korea, Ant Colony Optimization