Genetic Algorithm Implementation in ns2

Genetic Algorithms designed to simulate processes in natural systems.Over consecutive generation GA simulate the survival of the fittest among individuals.GA is a part of evolutionary computing.

Basic Operators in GA:

After initial population the algorithms defines following functions:

  • Selection.
  • Crossover.
  • Mutation.

Applications of GA:

  • Airlines Revenue Management.
  • Artificial creativity.
  • Biology and computational chemistry.
  • Chemical kinetics.
  • Computer architecture.
  • Clustering.
  • Electronic circuit design.
  • Economics.
  • Image processing.
  • Mechanical engineering.

Benefits of GA:

  • GA solve optimization problem.
  • Solves problems with multiple solutions.
  • Its execution technique not dependent on the error surface.
  • Structural genetic algorithm gives the possibility to solve the solution structure.
  • GA method is very easy to understand.
  • Easily transferred to existing simulations and models.

Genetic Algorithm Implementation in ns2 , helps to solve out

  • Multi-dimensional.
  • Non-differential.
  • Non-continuous.
  • Non-parametrical problems.

GA ARCHITECURE:

Genetic Algorithm system Architecture

 

Sample code for genetic algorithm implementation in ns2:

#Creating a new Simulator object
set ns [new Simulator]
#Opening file to be used as nam trace file
set nf [open shot.nam w]
$ns namtrace-all $nf
#Finish procedure
proc finish {} {
global ns nf
$ns flush-trace
close $nf
exec nam shot.nam &
exit 0}
#Defining two nodes
set n0 [$ns node]
set n1 [$ns node]
#Connecting two nodes
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
#CreateUDP agent and connect to node0
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
#Create CBR traffic source and attach to UDP agent
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 1
$cbr0 attach-agent $udp0
set null0 [new Agent/Null]
$ns attach-agent $n1 $null0
$ns connect $udp0 $null0
#CreateUDP agent and connect to node1
set udp1 [new Agent/UDP]
$ns attach-agent $n1 $udp1
#Create CBR traffic source and attach to UDP agent
set cbr1 [new Application/Traffic/CBR]
$cbr1 set packetSize_ 500
$cbr1 set interval_ 1
$cbr1 attach-agent $udp1
set null1 [new Agent/Null]
$ns attach-agent $n0 $null1
$ns connect $udp1 $null1
for {set i 0} {$i < 10} {incr i} {
set q [expr $i%2]
if {$q==0} {
set a i
set b [expr $i+1]
$ns at a “$cbr0 start”
$ns at b “$cbr0 stop”}
if {$q!=0} {
set a i
set b [expr $i+1]
$ns at a “$cbr1 start”
$ns at b “$cbr1 stop”}}
#Stop after 10 seconds
$ns at 10.0 “finish”
#Running simulation
$ns run