Swarm Computing & Routing Algorithms Dr. Mikhail Nesterenko Presented By Ibrahim Motiwala Swarm Swarm is a software package for multi-agent simulation of complex systems. It is a collection of object oriented software libraries which provide support for simulation programming. •A Swarm is an object that implements – memory allocation – event scheduling Model GUI Swarm kernel Operating System CPU Schedule Probes The Interface The Model Swarm Agent Sub-Swarm Sub-sub-Swarm Allows you to treat the model as a nested hierarchy of models. Schedules are objects, all agents in simulation can communicate with them : future events or cause actions to be dropped based. Schedule : Is a ordered set of events or a group of events. Probe : Probe attaches itself to an agent, • send a message, • change a variable or • retrieve values by calling agent or • reading variable directly Agent: • Provides service • communicates with other agents • No prior knowledge of the other agent can be assumed, not even the form of its communication. State Variables Behavior Methods An object Event simulation The event loop is now embedded in an object that sends messages to agents and objects Each agent saves his own behavior and state and acts when called upon by scheduler or other agents The Swarm, OOP way The event loop is now embedded in an object that sends messages to agents and objects Each agent saves his own behavior and state and acts when called upon by scheduler or other agents Some terminology • Class – The definition of an object and the object factory • Superclass – A class that an object inherits behavior and variables from (recursive) • Subclass – A class that inherits behavior and variables from a superclass • Instance – An object (instance of a class) that has been created and exists in memory • Instance variable – A variable available to all functions in an object • Method – A function. Can be called by sending message to an object of this class •Encapsulation –Objects hide their functions (methods) and data (instance variables and method variables) •Inheritance –Each subclass inherits all variables of its superclass •Polymorphism –Multiple instances of same class, sharing behavior but not state or memory •Main difference between C++ and Objective-C: –Easy to learn: A simple superclass of C - no new keywords –Main difference : Partially interpreted: Dynamic binding at runtime for objects and methods. A few Objective-C basics @interface Bug : SwarmObject { Super class int xPos, yPos; int worldXSize, worldYSize; id foodSpace; } Sub classes -setX: (int) x Y: (int) y; -step; @end Instance Variables Methods Scientific objectives : • Scale components increase : critical mass. • Physical Embedding interacting directly with a physical environment. • Device Administrator Ratio : automatic configuration group formation failure detection fault-tolerance. No individual devices. Swarm intelligence for Routing in Communication Networks Routing algorithms must address 2 issues : • average throughput and delay Good delay throughput curve • Quality of service (QoS) : guaranteed allocation of bandwidth maximum delay minimum hop-count. • Swarm intelligence mobile software agents n/w management autonomous entities adapt intelligent movement Routing algorithms can be classified as static or dynamic, and centralized or distributed. • Centralized algorithms : scalability failure at the central controlling station. • Static routing time-invariant. shortest-path route. • Adaptive routing : node failures , potential oscillations that lead to circular paths and instability : frequently changing routing • Routing algorithms non-minimal ( choosing the path by utilizing other heuristics). minimal (optimal routing and shortest-path routing) 2. QoS algorithm pertaining to delay and bandwidth. tendency to temporarily overuse network resources. Swarm Intelligence Swarm Intelligence appears in biological swarms of certain insect species. Interaction requires no supervision. “ Stigmergy”, or communication through the environment. Pheromone , hormone that can be sensed by ants as they travel along trails. task-related stigmergy : sand grain laying by termites when constructing nests . Random location -> critical mass Swarm Intelligence • • • • • • • Scalability: Population adaptation Scalability is also promoted by local and distributed agent interactions. Fault tolerance Do not rely on a centralized control mechanism. Graceful, scalable degradation. Adaptation: Change, die or reproduce Speed: Changes can be propagated very fast. Modularity: Agents act independently Autonomy: Little or no human supervision. Parallelism: Operations are inherently parallel. Routing Algorithms • • • AntNet : adaptive agent-based routing algorithm. ABC Ant-Based Control. ARS : agent-based routing system. AntNet Two kinds of Agents(Ant Packets) Forward Ant. • explores the network and collects information. • when reaches the destination, changes into backward ant. Backward Ant. • goes back in the same path as forward ant. • update routing tables for all the nodes in the path. Subdivision of agents • Backward ants to utilize the useful information gathered by the forward ants on their trip from source to destination. • Update the routing table of the nodes. • No node routing updates are performed by the forward ants. Report delay conditions to the backward ants, trip times, update the routing table of the nodes. The entries of the routing table are probabilities, and as such, must sum to 1 for each row of the network. (1) the exploration agents of the network use them to decide the next hop to a destination, randomly selecting among all candidates based on the routing table probabilities for a specific destination (2) the data packets deterministically select the path with the highest probability for the next hop. AntNet routing table 1. Each network node launches forward ants to all destinations in regular time intervals. 2. The ant finds a path to the destination randomly based on the current routing tables. 3. The forward ant creates a stack, pushing in trip times for every node as that node is reached. 4. When the destination is reached, the backward ant inherits the stack. 5. The backward ant pops the stack entries and follows the path in reverse. 6. The node tables of each visited node are updated based on the trip times. Raw information contained in the trip time is processed and then used to manage the system more efficiently . Intermediate quantity in the processing of the raw trip time information, we need a measure that takes on small values when the trip time is short relative to the mean and vice-versa. This quantity, r' where T is the trip time, µ is average of T, and C is a scaling factor, usually set to 2. Except for the routing table, each node also possesses a table with records of the mean and variance of the trip time to every destination. Ratio of the variance to the mean, ( µ / σ ), • measures the consistency of the trip times, • alter the effect of the trip time • On r΄, determine the relative goodness of the trip time of an ant. Strategies of either decreasing or increasing the value of r’ by a certain amount. Based on setting the threshold for the good/bad trip time to 0.5, and selecting a threshold δ for the ( µ / σ ) ratio. • • • • • • • • Small values of r' correspond to small values of T and vice versa. e.g. . Where consistency is high and the time is good, r΄ to be even smaller underscores goodness of this trip time and its consistency. an exponential quantity is subtracted. This quantity is the exponentially decaying function of the consistency ratio and achieves its highest value when the variance is very small. The decay rate can be controlled by a΄ and a. +ve or -ve reinforcement of good or bad routes is next, via -ve feedback. +ve reinforcement -negatively proportional to current probabilities -ve reinforcement proportional to current probabilities. Prevent saturation to 0 or 1 of the routing table probabilities. Positive reinforcement is the one from which the backward ant comes. Neighbors –vely reinforced to preserve the unit sum probabilities of next hops. The reinforcement equations where Pdf, Pdn are the previous routing table probabilities, f is the node from which the backward ant comes, Nk is the neighborhood of node k (current node), and d is the destination node. The last step is to update the routing table probabilities using the following rules. Ant-based Control ( ABC ) Algorithm shares many key features with AntNet, • Use of a multitude of agents interacting using stigmergy. • Adaptive and exhibits robustness under various network conditions. • Randomness in the motion of ants. • Ants only traverse the network nodes following highest probability Differences • Only one class of ants, which is launched from the sources to various destinations at regular time intervals. • The ants are eliminated once they reach their destination. • Probabilities of the routing tables are updated as the ant visits the nodes, based on the life of the ant at the time of the visit. • Update rules are different. Multiple Round Trip Routing •Nodes launch forward ants in regular intervals. •Utilizes the cost measured by forward ants to update the routing table entries. The interesting improvement to this algorithm is based on Bellman’s principle of dynamic programming. • Every node in the path of a source-destination pair s-d, is considered a destination. • The back-propagating agent will update the routing table of a visited node n not just for the destination, but also for the intermediate nodes. • Hence the updates occur all at once. example, on node n , the backward agent will also update the entry for node s1. Conclusion 1. • AntNet and Multiple Trip Routing Round-trip agents. the forward ants act as investigators and the backward ants are the ones who update the routing tables. 2. • ABC Forward agents, who perform the update as they travel through the network. update is faster and more reliable, no delay. Inherent properties of swarm intelligence • massive system scalability • emergent behavior and intelligence from low complexity local interactions • autonomy, and stigmergy • communication through the environment.