Adriana Ogasawara & Joshua MahazEEL6788, Spring 2008
GoalUse YAES to implement a mobility pattern
based on an artificial immune system (AIS)Create a sensor network that contains a group
of mobile nodesNodes move towards areas of interesting
phenomenaNodes must load balance themselves
What is AIS?Algorithmic process based on the vertebrate
immune systemBased on how the immune system is self-
protecting and adaptableImmune 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 EnvironmentIDE: Eclipse SDK 3.31
Java 1.6 & JUnit 4 (as required by YAES)OS: Windows Vista Business EditionVersion 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 SinkMain purpose is to gather informationSink is stationary and located in the middle of
the area we are interested in monitoringSink receives messages when mobile sensor
nodes pass within transmission range
AIS IntrudersIn this project, intruders are analogous to
pathogens that invade the bodyAIS Intruders use the ActuatorNode &
ActuatorAgent classes built into YAESIntruders are “dumb” & are not capable of creating
diversionsIntruders move randomly using the
“random_waypoint” actuator movement also integrated into YAES
Randomly placed within the sensor network world using arrangeRandomlyInARectangle() within ArrangementHelper.java
Intruders have the freedom to wander throughout the entire defined sensor network world
AIS Mobile Sensor NodesCreated a mobile sensor node class that inherits
from SensorNode.java in YAESThe mobile sensor nodes are comparable to the
B-cells and T-cells in a biological immune system that destroy invading pathogens in the body
The AISMobileSensorNodeAgent class is responsible for:Message passing between sensor nodes & the sinkRandom movement of mobile sensor nodesIdentification of intruders
Mobile Sensor Node PlacementRandomly placed within the sensor network
world using arrangeRandomlyInARectangle() within ArrangementHelper.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 MovementAgent calls moveRandomly()
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 moveRandomly() changes the direction of the node to the opposite of which it was moving before it became “stuck” Gives the appearance that the node “bounces off” the wall
Mobile Sensor Node MovementIf a mobile sensor node senses an intruder and does
not see another mobile sensor node following it, moveRandomly() stops and the method followTheLeader() is called once the perception is processedThe location of the intruder is passed with the
perceptionOnce an intruder is perceived, the mobile sensor
node accelerates until it catches up to the intruderfollowTheLeader() 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 MovementOnce 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 BalancingIdeally, 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 rangeInformation 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 BalancingIf 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 MarksAn 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 MarksTstart Time intruder enters the designated
areaTend Time intruder leaves the designated
areaTLstart Time a mobile sensor node obtains a
lock on an intruderTLend Time a mobile sensor node loses its lock
on an intruder
Formulas(TLend – TLstart) / (Tend –
Tstart)=percentage_coveredSum[percentage_covered]/intrusions
=average_coverageTLstart – Tstart = time_to_obtain_lockSum[time_to_obtain_lock]/successful_locks
=average_obtain_time
TestingPerformed 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 Intruder is Locked Onto (%)
Avg. Time for Mobile Node to Lock Onto Intruder (ms)
5 intruder/MSN pairs 58.24 356.9910 intruder/MSN pairs 67.52 292.2520 intruder/MSN pairs 75.32 208.96
Metrics – 5 intruder/mobile node pairs
Metrics – 10 intruder/mobile node pairs
Metrics – 20 intruder/mobile node pairs
ConclusionThe project can be applied to the
development and testing of search and spy algorithmsAlready includes necessary infrastructure &
results calculationsThe developer can concentrate on creating
new and better ways to maintain coverage of a designated area
ConclusionAlgorithm works best with higher numbers of
intruder and mobile sensor nodesIncreases 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 worksMore intruders present results in more recent
& accurate sightings of intruders that are passed onto to the other nodes
Future WorkCreate a more sophisticated random
movement algorithm Create intelligent intruders or intruders
capable of creating a diversionAllow mobile sensor nodes to recognize the
likelihood of diversions and in turn command free mobile sensor nodes to cover vulnerable areas.
Demo