Migration – the migration schemes, distributed GA

This module contains all the migration schemes and the distributed GA related functions.

New in version 0.6: The Migration module.

class Migration.MigrationScheme(host, port, group_name)

This is the base class for all migration schemes

Parameters:
  • host – the source hostname
  • port – the source host port
  • group_name – the group name
exchange()

Exchange individuals

getCompressionLevel()

Get the zlib compression level of network data

The values are in the interval described on the Network.pickleAndCompress()

getGroupName()

Gets the group name

Note

all islands of evolution which are supposed to exchange individuals, must have the same group name.

getMigrationRate()

Return the the generation frequency supposed to migrate and receive individuals

Return type:the number of generations
getNumIndividuals()

Return the number of individuals that will migrate

Return type:the number of individuals to be replaced
getNumReplacement()

Return the number of individuals that will be replaced in the migration process

isReady()

Returns true if is time to migrate

select()

Pickes an individual from population using specific selection method

Return type:an individual object
selectPool(num_individuals)

Select num_individuals number of individuals and return a pool

Parameters:num_individuals – the number of individuals to select
Return type:list with individuals
selector = None

This is the function slot for the selection method if you want to change the default selector, you must do this:

migration_scheme.selector.set(Selectors.GRouletteWheel) 
setCompressionLevel(level)

Set the zlib compression level of network data

The values are in the interval described on the Network.pickleAndCompress()

Parameters:level – the zlib compression level
setGAEngine(ga_engine)

Sets the GA Engine handler

setGroupName(name)

Sets the group name

Parameters:name – the group name

Note

all islands of evolution which are supposed to exchange individuals, must have the same group name.

setMigrationRate(generations)

Sets the generation frequency supposed to migrate and receive individuals.

Parameters:generations – the number of generations
setMyself(host, port)

Which interface you will use to send/receive data

Parameters:
  • host – your hostname
  • port – your port
setNumIndividuals(num_individuals)

Set the number of individuals that will migrate

Parameters:num_individuals – the number of individuals
setNumReplacement(num_individuals)

Return the number of individuals that will be replaced in the migration process

Parameters:num_individuals – the number of individuals to be replaced
start()

Initializes the migration scheme

stop()

Stops the migration engine

class Migration.WANMigration(host, port, group_name)

This is the Simple Migration class for distributed GA

Example:
>>> mig = WANMigration("192.168.0.1", "10000", "group1")
Parameters:
  • host – the source hostname
  • port – the source port number
  • group_name – the group name
exchange()

This is the main method, is where the individuals are exchanged

getCompressionLevel()

Get the zlib compression level of network data

The values are in the interval described on the Network.pickleAndCompress()

getGroupName()

Gets the group name

Note

all islands of evolution which are supposed to exchange individuals, must have the same group name.

getMigrationRate()

Return the the generation frequency supposed to migrate and receive individuals

Return type:the number of generations
getNumIndividuals()

Return the number of individuals that will migrate

Return type:the number of individuals to be replaced
getNumReplacement()

Return the number of individuals that will be replaced in the migration process

isReady()

Returns true if is time to migrate

select()

Pickes an individual from population using specific selection method

Return type:an individual object
selectPool(num_individuals)

Select num_individuals number of individuals and return a pool

Parameters:num_individuals – the number of individuals to select
Return type:list with individuals
selector = None

This is the function slot for the selection method if you want to change the default selector, you must do this:

migration_scheme.selector.set(Selectors.GRouletteWheel) 
setCompressionLevel(level)

Set the zlib compression level of network data

The values are in the interval described on the Network.pickleAndCompress()

Parameters:level – the zlib compression level
setGAEngine(ga_engine)

Sets the GA Engine handler

setGroupName(name)

Sets the group name

Parameters:name – the group name

Note

all islands of evolution which are supposed to exchange individuals, must have the same group name.

setMigrationRate(generations)

Sets the generation frequency supposed to migrate and receive individuals.

Parameters:generations – the number of generations
setMyself(host, port)

Which interface you will use to send/receive data

Parameters:
  • host – your hostname
  • port – your port
setNumIndividuals(num_individuals)

Set the number of individuals that will migrate

Parameters:num_individuals – the number of individuals
setNumReplacement(num_individuals)

Return the number of individuals that will be replaced in the migration process

Parameters:num_individuals – the number of individuals to be replaced
setTopology(graph)

Sets the topology of the migrations

Parameters:graph – the Util.Graph instance
start()

Start capture of packets and initialize the migration scheme

stop()

Stops the migration engine