Artificial Immune System-Based Mobile Node Movement Peter Matthews Motivation Mobile Nodes Desirable for many applications Allows dynamic node topology configuration Topology reconfigures in response to perceived conditions, internal and external Goal: Adaptively cover a large area with a small # of nodes, high sensing fidelity, and high reliability Difficult balance of area coverage and local specialization Two Desirable Traits Decentralized Operation More scalable in terms of communication, and thus requires much less power Allows more immediate response to changing conditions Both external perceptions and node status changes More robust to node / link failures Simplicity Must be designed in a fashion mindful of limited sensor node computational abilities, memory, and power One way of accomplishing this is via a form of selforganization or “distributed intelligence” Biological inspiration: Swarm Behavior, Ant Behavior, Artificial Immune Systems, and the like Relevant Adaptive Immune System Basics Natural defense mechanism. Able to discriminate between self and non-self and respond accordingly to foreign invaders. Ability to learn about pathogens and respond to them by producing antibodies that attack antigens associated with the pathogen Pathogen: Foreign substance Antigen: Molecule (protein) associated with pathogen Antibody: Protein that allows B-cell to bind to antigen and destroy it Antibodies have differing affinity to specific antigens B-cell surface has many antibodies and when one of these antibodies binds to an antigen the B-cell becomes stimulated Level of stimulation depends on How well it matches the antigen How well it matches other B-cells in the immune networks Suppression factor from other B-cells with small affinity B-Cell: Lymphocyte (white blood cell) Stimulation leads to antibody production / cloning Artificial Immune Systems The immune system is a self-organizing system that has the ability to process information, to learn and memorize, to create a diverse population of well adapted individuals, to discriminate between self and non-self, and respond to changing conditions in a decentralized fashion AIS attempt to apply the principles and mechanisms of immune system operation to a variety of problems Examples: They have been found well suited to anomaly detection, pattern recognition, data clustering, multi-modal optimization, etc. Artificial Immune System Basis of The Presented System When immune system encounters a pathogen, some Bcells are stimulated and secrete antibodies in order to destroy the antigens. Likewise, when an event occurs in sensor range some sensor nodes are stimulated and move in order to minimize distance and more accurately monitor the event B-Cells : Sensor Nodes Pathogens : Events of Interest Antigen : Distance to Event Antibody : Movement Antibody Density : Speed Node State 2 Indexes of Node Stimulation X-Stimulation, [-Max, +Max] Y-Stimulation Short-lived buffer of received event messages For discriminating whether the event report has already been processed by this node Timer for last beacon message received from sink Used to avoid node disconnection from sink Count of number of neighbors at last time quantum Updated via regular probing / taking note when overhearing other nodes’ transmissions If Node Sensor Detects an Event Node estimates XDistance, YDistance, TotalDistance. X-Stimulation, Y-Stimulation are suppressed by Observation_Suppression_Factor ( < 1) XDistance, YDistance may be negative Discounts previous stimulation state X-Stimulation += xDistance / SensorRange * Max_Detection_Stimulation Y-Stimulation updated likewise Transmit message to any nodes in range containing Estimated location of event Timestamp # Hops (= 0) # En route neighbors = # Neighbors of this node If (# neighbors > Cluster_Size AND totalDistance / SensorRange < restrictionRange) Stimulation = Max_Event_Stimulation / (# neighbors Cluster_Size ) Else Stimulation = Max_Event_Stimulation If Node Receives Event Message If already processed copy of same message or if already processed a report of event with same timestamp and within a small estimated distance of each other, ignore Calculate distance to event location If distance < Max_Distance and #EnRouteNeighbors > Max_Neighbors totalStimulation = stimulationIntensity * ( .5 * (1 – distance / Max_Distance) + .5 * (1 - #EnRouteNeighbors/Max_Neighbors)) X-Stimulation += xDistance / totalDistance * totalStimulation Y-Stimulation likewise If Estimated # Neighbors < Cluster_Size and distance < Max_Distance Retransmit message with Original location and timestamp Stimulation = original stimulationIntensity #Hops += 1 # En route neighbors += # Neighbors of this node Result of Node-Event Interaction Node is stimulated to move towards the location of an event of interest Stimulation falls off as a factor of distance and # neighbor nodes along route # neighbor nodes some indication of how crowded is route from event to node If area becomes too crowded, node does not transmit This avoids node “implosion” effects. Tunable to specify how large of a cluster is appropriate for a given application. Node-Node Stimulation Effects Via regular probing and overhearing of transmissions, each node keeps a list of neighbors within transmission range and estimated distance For each neighboring node X-Stimulus += (-xDistance / Distance) * (1 – (Distance / TransmissionRange - α)^2) * Neighbor_Stimulation_Rate Y-Stimulus likewise Result of Node-Node Interaction If a node is within transmission range - α of another sensor node, where α is very small, then this node receives a repulsive stimulation proportional to the distance to the neighbor, squared This leads to an regular, grid-like arrangement of sensor nodes in the absence of event messages. Complete coverage of an area results wherever possible. The tension between the node-event interaction and the node-node interaction is the key to balancing the need for preservation of comprehensive area coverage and the need for localized clustering in response to events. Beacon Beacon broadcast at regular intervals from sink node. If a node has not received a beacon message in a set time period, it knows it is disconnected from the sink. In this case the node is stimulated such that it will move towards the center of the area until it encounters another node which believes itself to be connected. This avoids prolonged node-sink disconnection with minimal disruption and without the associated overhead of establishing a routing tree or other such schemes. Node Movement At completion of each time unit If the absolute value of the sum of the stimulation values is above a Minimum_Threshold Normalize the absolute sum with respect to a Maximum_Stimulation_Level. The total movement is then the normalized sum * Maximum_Sensor_Movement. Move in the X and Y directions proportionally to the share of the total stimulation that each provide, multiplied by the total movement. Multiply X-Stimulation and Y-Stimulation by some Aging_Factor ( < 1) Simulation Parameters 800 x 800 Area Sensor node Sink in center Sensor range: 30 Transmission range: 120 Max speed: .2 / time unit Events of Interest 1 Per time unit Created at random location in Interest Area, the 35 x 35 “green box” visible in simulation Two Interest Area mobility models Blocked – Randomly jumps to a new location every 1000 time units Random Waypoint – Chooses a random waypoint and moves towards it at speed .25 / time unit. Once reached, randomly picks a new waypoint. Demonstration Show videos of system in practice Percentage of Time Event Detected Results: Random Node Placement, Waypoint Event Mobility Model 120 100 80 Static Nodes 60 AIS-Based Nodes 40 20 0 16 48 80 112 # Sensor Nodes Percentage of Time Event Detected Results: Random Node Placement, Blocked Event Mobility Model 90 80 70 60 Static Nodes 50 AIS-Based Nodes 40 30 20 10 0 16 48 80 112 # Sensor Nodes Percentage of Time Event Detected Results: Grid Node Placement, Waypoint Event Mobility Model 120 100 80 Static Nodes 60 AIS-Based Nodes 40 20 0 16 48 80 112 # Sensor Nodes Percentage of Time Event Detected Results: Grid Node Placement, Blocked Event Mobility Model 100 90 80 70 Static Nodes 60 50 AIS-Based Nodes 40 30 20 10 0 16 48 80 112 # Sensor Nodes Conclusions In early simulations, the Artificial Immune System-Based mobile node movement system consistently outperforms the static scheme with regards to proportion of time an event is sensed. Primitive data on sensing data utility suggests that it is not merely quantity, but quality of the sensor data that improves when the proposed scheme is utilized. The proposed scheme incurs a relatively low level of computational and communication overhead. However, further results are needed. Future Work Comparison to other comparable algorithms Simulation to show robustness of scheme in the face of node failures / geographic obstacles. Very slow scale operation as way of adapting to stochastic event locality Difficult to find an appropriate competitor / canonical test bed Would allow comparison to schemes that attempt to converge to this event distribution Incorporate T-cell role as loosely coupled global overseer