Artificial immune systembased mobile node movement Adriana Ogasawara
Artificial immune systembased mobile node movement Adriana Ogasawara & Joshua Mahaz EEL 6788, Spring 2008
Goal Use YAES to implement a mobility pattern based on an artificial immune system (AIS) Create a sensor network that contains a group of mobile nodes Nodes move towards areas of interesting phenomena Nodes must load balance themselves
What is AIS? Algorithmic process based on the vertebrate immune system Based on how the immune system is self-protecting and adaptable Immune system can distinguish between self (other white blood cells) and non-self (antigens) Can learn to recognize and respond to new microbes and retain a memory of these microbes to facilitate future immune responses This is how vaccinations work
Development Environment IDE: Eclipse SDK 3. 31 Java 1. 6 & JUnit 4 (as required by YAES) OS: Windows Vista Business Edition Version Control: Tortoise SVN Created a local repository on our home network All milestone accomplishments were committed to the repository Repository was backed up once a week
AIS Sink Main purpose is to gather information Sink is stationary and located in the middle of the area we are interested in monitoring Sink receives messages when mobile sensor nodes pass within transmission range
AIS Intruders In this project, intruders are analogous to pathogens that invade the body AIS Intruders use the Actuator. Node & Actuator. Agent classes built into YAES Intruders are “dumb” & are not capable of creating diversions Intruders move randomly using the “random_waypoint” actuator movement also integrated into YAES Randomly placed within the sensor network world using arrange. Randomly. In. ARectangle() within Arrangement. Helper. java Intruders have the freedom to wander throughout the entire defined sensor network world
AIS Mobile Sensor Nodes Created a mobile sensor node class that inherits from Sensor. Node. java in YAES The mobile sensor nodes are comparable to the Bcells and T-cells in a biological immune system that destroy invading pathogens in the body The AISMobile. Sensor. Node. Agent class is responsible for: Message passing between sensor nodes & the sink Random movement of mobile sensor nodes Identification of intruders
Mobile Sensor Node Placement Randomly placed within the sensor network world using arrange. Randomly. In. ARectangle() within Arrangement. Helper. java Mobile sensor nodes can only move and perceive objects within a defined portion of the sensor network world
Sensor Network World Intruders move freely throughout Mobile sensor nodes are restricted to the center portion
Mobile Sensor Node Movement Agent calls move. Randomly() The method generates a random int using the random number generator This number corresponds to one of the eight cardinal or intercardinal directions (N, S, E, W, NE, NW, SE, SW) The mobile sensor node then moves in this direction for 100 steps until a new direction is chosen If a mobile sensor node reaches the edges of the boundary, it declares itself “stuck” and move. Randomly() changes the direction of the node to the opposite of which it was moving before it became “stuck”
Mobile Sensor Node Movement If a mobile sensor node senses an intruder and does not see another mobile sensor node following it, move. Randomly() stops and the method follow. The. Leader() is called once the perception is processed The location of the intruder is passed with the perception Once an intruder is perceived, the mobile sensor node accelerates until it catches up to the intruder follow. The. Leader() measure the distance between the node and the intruder for each call of the agent and divides this by a speed factor which is added to its normal step to apply a slight increase in speed
Mobile Sensor Node Movement Once the mobile sensor node reaches the intruder, it places a lock on the intruder to help with load balancing so no other mobile sensor nodes begin following it From here on out, the mobile sensor node will continuously follow the intruder around the world as long as it does not leave the defined area of interest
Mobile Sensor Node Load Balancing Ideally, once a mobile sensor node has locked onto an intruder, it should try to help free mobile nodes to find the other unlocked intruders within the area Even after a mobile sensor node locks onto an intruder, it still continues to process observations about other unlocked intruders within their range Information about the intruder’s location and a time of sighting are passed to other mobile sensor nodes within range If an unlocked mobile sensor node receives the message, it will examine how long ago the intruder sighting occurred If the sighting was recent, it then moves to the location received in the message
Mobile Sensor Node Load Balancing If a mobile sensor node which is already paired to an intruder receives more recent intruder location information, it will replace its own with the newly received data From then on it will broadcast the received data until it receives newer information or spots a lone intruder itself Only the most recent sighting will propagate through the network
Timer Marks An intruder entering the inner square triggers the start mark The moment a lock is obtained on an intruder another mark is saved The timer ends when the lock on the intruder terminates (when an intruder leaves the area)
Timer Marks Tstart Time intruder enters the designated area Tend Time intruder leaves the designated area TLstart Time a mobile sensor node obtains a lock on an intruder TLend Time a mobile sensor node loses its lock on an intruder
Formulas (TLend – TLstart) / (Tend – Tstart)=percentage_covered Sum[percentage_covered]/intrusions =average_coverage TLstart – Tstart = time_to_obtain_lock Sum[time_to_obtain_lock]/successful_locks =average_obtain_time
Testing Performed 10 runs with 5, 10, and 20 intruder/mobile node pairs respectively Each run the “Timer Marks” were recorded and processed with our defined formulas
Metrics Avg Amt of Time Avg. Time for Intruder is Locked Onto Mobile Node to Lock (%) Onto Intruder (ms) 5 intruder/MSN pairs 10 intruder/MSN pairs 20 intruder/MSN pairs 58. 24 356. 99 67. 52 292. 25 75. 32 208. 96
Metrics – 5 intruder/mobile node pairs 120, 00% % of intruders locked onto 100, 00% 80, 00% 60, 00% 40, 00% 20, 00% 0 - 500 501 1000 1001 1500 1501 2000 2001 2501 3001 2500 3000 3500 Time Blocks (ms) 3501 4000 4001 4500 4501 5000
Metrics – 10 intruder/mobile node pairs 120, 00% % of intruders locked onto 100, 00% 80, 00% 60, 00% 40, 00% 20, 00% 0 - 500 501 1000 1001 1500 1501 2000 2001 - 2501 - 3001 2500 3000 3500 Time Block (ms) 3501 4000 4001 4500 4501 5000
Metrics – 20 intruder/mobile node pairs 120, 00% % intruders locked onto 100, 00% 80, 00% 60, 00% 40, 00% 20, 00% 0 - 500 501 1000 1001 1500 1501 2000 2001 - 2501 - 3001 2500 3000 3500 Time Block (ms) 3501 4000 4001 4500 4501 5000
Conclusion The project can be applied to the development and testing of search and spy algorithms Already includes necessary infrastructure & results calculations The developer can concentrate on creating new and better ways to maintain coverage of a designated area
Conclusion Algorithm works best with higher numbers of intruder and mobile sensor nodes Increases the likelihood that a mobile sensor node will sense an intruder within the area of interest Also improves how well the message passing portion of our algorithm works More intruders present results in more recent & accurate sightings of intruders that are passed onto to the other nodes
Future Work Create a more sophisticated random movement algorithm Create intelligent intruders or intruders capable of creating a diversion Allow mobile sensor nodes to recognize the likelihood of diversions and in turn command free mobile sensor nodes to cover vulnerable areas.
Demo
- Slides: 26