Swarm Intelligence Part 1 Ants Algorithm BIONICS • • طبيعت منبع الهام و الگو گرفتن برای بسياری از تحقيقات و پيشرفت های علمی بوده است به عنوان مثال: – الگوريتم های ژنتيک Genetic Algorithms – شبکه های عصبی Neural Networks – سيستم های خودسازمان ده Self-organizing Systems • • گروهی از اين موارد بر اساس رفتار برخی از حشرات مثل مورچه ها و زنبور عسل که رفتار اجتماعی دارند بوده است در زمينه شبکه بر اين اساس الگوريتم های قدرتمندی برای کاربردهايی مثل مسيريابی و توزيع بار طراحی شده اند BIONICS: Application of biological principles to the study and design of engineering systems. • Swarm Intelligence “any attempt to design algorithms or distributed problemsolving devices inspired by the collective behavior of social insect colonies and other animal societies” [Bonabeau, Dorigo, Theraulaz: Swarm Intelligence, p. 7] مدل سازی و طراحی الگوريتم مورچه ها Ants • • مورچه ها يکی از شگفت انگيزترين موجودات عالم هستند. مورچه ها به صورت گروهی فعاليت های پيچيده ای را انجام می دهند: – – – – – – – – – کشف و انتقال غذا در حجم کم يا زياد ذخيره سازی غذا النه سازی پيچيده تميزکاری النه محافظت از تخم ها تشکيل پل برای عبور از آب کشاورزی گله داری ......... ويژگی مشترک • • • تک تک مورچه ها حرکاتی ساده و بعضا بدون نظم خاص انجام می دهند اما در مجموع از برآيند حرکات آنها نظمی خاص وگاها بسيار پيچيده پديد می آيد. هيچ نوع هدايت و رهبری در اين امر دخالت ندارد. Emergence Unique global behavior arising from the interaction of many agents رفتار کلی که از برآيند تعامل تعداد زيادی از عوامل جزء پديد می آيد • Emergenceوقتی اتفاق می افتد که تعدادی عوامل ساده مرتبط با هم به گونه ای هماهنگ عمل می کنند که منجر به رفتار هوشمند پيچيده ای می شود. • اين يک فرايند از پايين به باال است Emergence :از متن جمعيت عوامل شروع می شود و هيچگونه رهبری و مديريتی در آن صورت نمی گيرد. Emergence Unique global behavior arising from the interaction of many agents رفتار کلی که از برآيند تعامل تعداد زيادی از عوامل جزء پديد می آيد • Emergenceدر سيستم های متعددی اتفاق می افتد :زندگی جمعی حيوانات و خاصا بعضی از حشرات ،مغز انسان ،سيستم دفاعی بدن انسان،رفتارهای اجتماعی انسان ها ،سيتم شهرسازی و زندگی شهری انسان و..... • در هر يک از اين سيستم ها عوامل موجود در يک سطح منجر به بروز رفتار يا ويژگی در سطح باالتر می شوند. "EMERGENCE The connected lives of ants, brains, cities, and software" by Steven Johnson رفتار مورچه ها • هر مورچه الگوريتم ساده ای را اجرا می کند • الگوريتم بسيار پيچيده تری بر اثر مجموعه رفتارهای مورچه ها اجرا می شود Swarm Intelligence • Swarm Intelligenceيا هوش جمعی تعامل جزئی تعداد زيادی عوامل ساده برای حصول يک هدف کلی است • خصوصيات هوش جمعی عبارتند از: – عوامل ساده اند – عوامل به صورت غيرمستقيم با هم ارتباط برقرار می کنند – رفتار کلی پيچيده از رفتارهای جزئی ساده عوامل حاصل می شود – اين رفتارها پايدارند – تک تک عوامل در حصول نتيجه کلی بی تاثيرند مثال :تميزکاری النه مورچه ها • مورچه ها آشغال ها ويا غذای پراکنده درسطح النه را جمع آوری و در يک يا چند جا کپه می کنند • اين کار به اين ترتيب عملی می شود: – – – – – – هر مورچه شروع به گردش به صورت دلخواه و بی هدف در سطح النه می کند اگر مورچه به يک تکه آشغال برخورد کرد آن را بر می دارد مورچه به گردش تصادفی خود ادامه می دهد اگر مورچه به يک تکه آشغال ديگررسيد تکه قبلی را در کنار آن قرار می دهد و باز به گردش خود ادامه می دهد بعد از مدتی مشاهده می شود که آشغال ها در گوشه کنار النه کپه شده اند. Ant Colony Optimization • Marco Dorigo is research director of the IRIDIA lab at the Université Libre de Bruxelles • Inspired by the remarkable ability of social insects to solve problems, Dorigo and Stützle introduce new technological design principles for seeking optimized solutions to difficult real-world problems, such as network routing and task scheduling. Ant Colony Optimization • Ant Colony Optimizationاز قابليت مورچه ها برای پيدا کردن مسيرهای کوتاه يا کوتاه ترين مسيرها برای مسيريابی در شبکه استفاده می کند مورچه ها چگونه می توانند کوتاه ترين مسير را پيدا کنند ؟ چگونه مورچه ها ارتباط برقرار می کنند • • • • • مورچه ها توانايی ديدن و شنيدن را ندارند و فقط از حس بويايی استفاده می کنند مورچه ها صدا نيز ندارند به اين ترتيب مورچه ها نمی توانند با صدا و شنيدن با هم ارتباط ايجاد کنند ولی با استفاده از حس بويايی می توانند اطالعات را منتقل کنند اين نوع ارتباط را ” “stigmergyمی گويند: – – – – مورچه ها از خود موادی را به جا می گذارند که بوی خاصی دارند به اين مواد pheromoneگفته می شود مورچه ها pheromoneبه جا مانده از ساير مورچه ها را حس می کنند عالوه براين مورچه ها شدت بوی pheromoneرا نيز تشخيص می دهند The Shortest Path (1) Nest • • • • • Food Two ants start their random walk They both eventually find the food The one taking the shorter path finds the food first Each ant leaves a trail of pheromones behind Once taken the food the ants follow their pheromone trail towards the nest The Shortest Path (2) Nest Food • The one taken the shorter path returns first and arrives back to the nest first The Shortest Path (3) Nest Food • Now a third ants wants to search for food • The ant realizes the trials left behind by its predecessors • Most likely it follows one of the existing trials rather than initiating a new trial • Most likely it follows the trial with the higher density of pheromones The Shortest Path (4) Nest Food • This results in even denser pheromone trial on the shorter path • In long term this results in most ants using the shortest path Simple Stochastic Algorithm • وقتی يک مورچه شروع به حرکت می کند: – با احتمال کوچکی يک مسير جديد را شروع می کند. – با احتمال بيشتری يکی از مسيرهای موجود دارای pheromoneرا انتخاب می کند. – ولی در انتخاب مسيرهای موجود هر چه شدت pheromoneيک مسيربيشتر باشد احتمال انتخاب آن نيز باالتر خواهد بود. چرا مسيرهای تازه؟ • مورچه های قبلی الزاما کوتاه ترين مسيررا انتخاب نکرده اند • انتخاب مسيرهای جديد می تواند منجر به يافتن مسيرهای کوتاه تر بشود • در نهايت اين منتهی به يافتن کوتاه ترين مسير می شود تبخير و محو تدريجی pheromone • Pheromoneبه تدريج تبخير می شود. • اين يکی از ضروريات پويا بودن الگوريتم است. • انتقال از مسيرهای کوتاه به مسيرهای کوتاه تر بدون تبخير pheromoneدر مسيرهای قديمی امکان پذير نخواهد بود. الگوريتم وفقی • الگوريتم به صورت وفقی عمل می کند. • علت اين امر احتمال شروع مسيرهای تازه و تبخير تدريجی در مسيرهای قبلی است. مقابله با خرابی و تغييرات مسير • • • الگوريتم به دليل رفتار پويا و وفقی می تواند در صورت وقوع خرابی در مسير با يافتن مسير جايگزين با آن مقابله کند. همچنين اگر تغيير در مسير ايجاد شود الگوريتم خود را با تغييرات هماهنگ می کند. برای مثال اگر سنگی در مسير مورچه ها قرار داده شود مورچه ها آن را دور زده و مسير کوتاه جديدی را در کنار آن پيدا می کنند. *Disclaimer: May not work with a cube of ice اثر جانبی • مورچه ها در بين غذاهای موجود در محيط اطراف النه ابتدا نزديک ترين آنها را منتقل می کنند. • اين يک اثر جانبی الگوريتم است • اين پديده می تواند کاربردهای زيادی داشته باشد StarLogo • • • • • http://education.mit.edu/starlogo/ StarLogo is a programmable modeling environment for exploring the behaviors of decentralized systems, such as ant colonies. In decentralized systems, orderly patterns can arise without centralized control. Increasingly, researchers are choosing decentralized models for the organizations and technologies that they construct in the world, and for the theories that they construct about the world. StarLogo visualizes the behavior of the decentralized system StarLogo • • • • • • • • StarLogo consists of graphic turtles and an environment The behavior of the turtles can be programmed All turtles run the same program in parallel A turtle can represent almost any type of object: an ant in a colony, a car in a traffic jam, an antibody in an immune system, a molecule in a gas Also the effect of the environment on turtles can be programmed You can write programs for thousands of "patches" that make up the turtles' environment. Turtles and patches can interact with one another Turtles can be programmed to "sniff" around the environment, and change their behaviors based on what they sense in the patches Modeling the Ants Behavior DEMO Don’t go away We will continue after the demo Part 2 Ants in Networks History •ABC routing (Schoonderwoerd et al., 96) •Regular and Uniform ant routing (Subramanian et al., 97) •Antnet (Dorigo et al., 98) •Antnet++ (Dorigo et al., 02) •Improved Antnet (Boyan et al., 02) •Modified Antnet (Tekiner et al., 04) •Antnet with evaporation (Tekiner et al., 04) •Ants algorithm with QoS (Carrillo et al., 04) What Are Ants • Ants are emulated by mobile agents • Mobile agents are carried by packets • Especial packets can be used as mobile agents (ants) initialize_ant () while (current_state target_state) A = read_local_pheromone-table() P = compute_transition_probabilities (A, M, problem_constraints) next_state = apply_ant_decision_policy (P, problem_constraints) move_to_next_state (next_state) if (step-by-step_pheromone_update) update_pheromone_table() // deposit pheromone on visited arc update_ant_memory() if (delayed_pheromone_update) evaluate_solution() update_pheromone_tables() // deposit pheromone on ALL visited arcs die() What About Pheromones? • Pheromones pass the information about the length of the path (time) to other ants – The agents can pass the same information to data packets at the nodes • Ants decide based on the density of the pheromones and some probability values – The probability values can be calculated based on the path information and listed in routing tables in the nodes AntNet • First application of ants algorithm for routing in (datagram) packet networks • Ants are sent between source-destination pairs to create a test and feedback signal system • Ants discover and maintain routes – Inter-node trip times are used to adjust next-hop probabilities • Packets are forwarded based on next-hop probabilities Routing Table • Start with a static routing table for each node. • Each routing table stores the probabilities of using the next hops to reach all possible destinations – Sum of probabilities at each row equals one Ports (Neighboring Nodes) Destinations Port/ N1 dest 1 P11 N2 … Nn P12 … P1n 2 P21 P22 … P2n 3 P31 P32 … P3n Routing Table Updates • To create a dynamic routing table, create “ants” as agents that will go back and forth to random destinations. • These ants will then update the probabilities in the routing table. • Packets will be transferred to paths based on the probabilities listed in the routing table The Agents • Two types of agents (ants): – Forward Ants (to collect information) – Backward Ants (to update probability table) • Out[ ] Buffer Port1 FIFO1 Schedule r FIFO2 Two types of queues: – Low priority queue (data packets and forward ants) – High priority queue (backward ants) Port2 FIFO1 Schedule r FIFO2 • Forward ants are routed at the same priority as data packets – Forward Ants experience the same congestion and delay as data • Backward ants are routed with higher priority than other packets Port N FIFO1 FIFO2 Schedule r Forward Ants • At regular intervals every node creates a forward ant to randomly selected destinations. – Destinations are selected to match current traffic patterns – Forward ant uses probabilistic routing tables at every intermediate node to choose output port from unvisited list of nodes. • Elapsed time and node identifier is pushed to ant’s stack. • If a cycle is detected , cycle is deleted from ant’s memory. • When a forward ant reaches to its destination It transforms itself to a backward ant Backward Ants • A backward ant visits the list of the nodes in its stack in a reverse order, • Updates corresponding entries in the routing tables and array on its way back to source by using its values stored on its stack. Example Statistics • Except for the routing table, each node also keeps a table with records of the mean and variance of the trip time to every destination • At each node, backward ants update the trip time statistics to the destination in addition to the next-hop probability N1 Stat1 N2 Stat2 … … Nn Statn Routing Table Updates • Reinforcement Factor (Based on the trip time and the statistics) r = f (1 - Wbest/T) + g (mean,var) 0 < r < 1, • Increase the probability of the channel that backward ant comes from P’ = P + r * (1 - P) = P * (1 – r) + r • Decrease the probability of the other channels P’ = P * (1 - r) Data Packets • Data packets are routed using the next-hop probabilities • The packets are distributed over the paths proportional to their probabilities • A probability threshold level can be used to avoid selection of not-so-good paths • Achieve some degree of load balancing over all existing good paths Performance • AntNet reports better performance in terms of: – – – – Delay Throughput Robustness Reaction to changes • Traffic overhead is higher than OSPF Variations • Different varieties of the antnet routing algorithm will be resulted depending on the: – Forward ant routing mechanism – Routing table update mechanism – Packet forwarding criterion Router Architecture Forward_ANT Data Packet Lookup and forwarding P\N 1 2 … 3 Backward_ANT N1 P11 P21 … P31 N2 P12 P22 … P32 … … … … … Updating N3 P13 P23 … P33 Out[ ] Buffer Port1 FIFO1 Schedule r FIFO2 Port2 FIFO1 Schedule r FIFO2 Port N FIFO1 FIFO2 Schedule r Evaporation • Link usage statistics are used to evaporate the pheromone laid by the ants. • It is the proportion of number of forward ants destined to the node x over the total ants received by the current node in the given time window. • By evaporating the links probabilities in a predefined rate, average delay experienced per packet is reduced “Improved antnet routing algorithm with link probability evaporation” F. Tekiner, F. Z. Gassemlooy, and S. Al-Khayatt Congestion • • • • Agents are delayed if congestion occurs Has the same effect of a longer path Pheromones evaporate more Less pheromone if agent is delayed more Quality of Service • M-Class ants are used for M-class type of services • Probabilities in the routing table represent the probability that packets can reach the required level of QoS • The probabilities are updated based on the delay statistics per QoS class and the available bandwidth • Considering other QoS parameters, such as availability etc., can be studied “A Quality of Service Routing Scheme for Packet Switched Networks based on Ant Colony Behavior ” Liliana Carrillo and J.L. Marzo Security Issues • Threats – Untrustworthy hosts • Forward data/ant packets to a wrong direction • Delay data packets • Generate bursts of ant packets – Malicious Agents • Carry false trip time information • Attack Goals – Increase the packet latency • Mislead packets to a longer path – Break down a critical node • Mislead packets to a certain node to overload it – Drop Data Packets • Mislead packets to a malicious node “Security Issues in Ant Routing” Weilin Zhong Conclusion • Application of swarm intelligence in network routing problems • Inspired by the stigmergy model in ant colonies • Using mobile multi-agent systems • A distributed adaptive routing algorithm • Autonomous THE END