+91 94 448 29 228 --- E-Mail ID:networksimulators2@gmail.com

Genetic Algorithm code in ns2

What is genetic algorithm?

Genetic algorithm is as a special kind of stochastic search algorithms, genetic algorithm is a problem solving method which is based on the concept of natural selection and genetics.

Structure-of-genetic-algorithm

Functionalities of genetic algorithm:

  • Population generation.
  • Fitness function evaluation.
  • Selection.
  • Repair.
  • Mutation.
  • Cross over.

Genetic-Algorithm-ns2

Fields of genetic algorithm:

  • For routing.
  • For providing network security.
  • In neural network.
  • In networking communication.
  • Applications in sensor network.
  • Biological process etc.

Sample Genetic algorithm code in ns2

puts [exec ps -C tclsh -orss,size] ;# XXX
package require gaul
puts "GAUL Library: [gaul version]\n"
puts [exec ps -C tclsh -orss,size] ;# XXX
proc genrand {max num} {
    set result 
for {set i 0} {$i < $num} {incr i} { lappend result [expr { int($max * rand()) }] } return $result } proc generation {name gen} { puts "\nGeneration: $gen\n" # XXX puts [pop list] } proc evaluate {name entity} { global goal set result [expr 100 * 10] for {set i 0} {$i < 10} {incr i} { incr result [expr -1 * abs([lindex $goal $i] - [lindex $entity $i])] } #puts "Evaluate: $result" return $result } proc seed {name entity} { set seed [genrand 100 10] #puts "Seed: $seed" return $seed } proc adapt {name entity} { ;# XXX #puts "Adapt" return $entity } proc mutate {name entity} { #puts "Mutate: original: $entity" lset entity [genrand 10 1] [genrand 100 1] #puts "Mutate: mutated: $entity" return $entity } proc crossover {name entity1 entity2} { #puts "Crossover: Father: $entity1" #puts "Crossover: Mother: $entity2" set cross [genrand 10 1] #puts "Crossover: cross: $cross" set child1 [concat [lrange $entity1 0 $cross-1] [lrange $entity2 $cross end]] set child2 [concat [lrange $entity2 0 $cross-1] [lrange $entity1 $cross end]] #puts "Crossover: Child1: $child1" #puts "Crossover: Child2: $child2" return
} set goal [genrand 100 10] puts [exec ps -C tclsh -orss,size] ;# XXX gaul create pop 100 \ -generation_hook generation \ -evaluate evaluate \ -seed seed \ -adapt adapt \ -mutate mutate \ -crossover crossover \ -select_one SUS \ -select_two SUS puts [exec ps -C tclsh -orss,size] ;# XXX pop params {*}[pop params] pop seed puts [pop evolve 50] puts "Goal: $goal" puts "Solution: [pop solution]" # stats # list # rank puts [exec ps -C tclsh -orss,size] ;# XXX pop destroy puts [exec ps -C tclsh -orss,size] ;# XXX gaul create pop 100 \ -generation_hook generation \ -evaluate evaluate \ -seed seed \ -adapt adapt \ -mutate mutate \ -crossover crossover \ -select_one SUS \ -select_two SUS puts [exec ps -C tclsh -orss,size] ;# XXX rename pop {}


NS2 Member Accounts | |
© 2005 - 2018 Vanet Projects

© 2005 - 2018 Matlab Projects