Table of Contents

Class: RouletteWheelSelection Bio/GA/Selection/RouletteWheel.py

Roulette wheel selection proportional to individuals fitness.

The implements a roulette wheel selector that selects individuals from the population, and performs mutation and crossover on the selected individuals.

Base Classes   
AbstractSelection
Methods   
__init__
_set_up_wheel
select
  __init__ 
__init__ (
        self,
        mutator,
        crossover,
        repairer=None,
        )

Initialize the selector.

Arguments:

  • mutator -- A Mutation object which will perform mutation on an individual.

  • crossover -- A Crossover object which will take two individuals and produce two new individuals which may have had crossover occur.

  • repairer -- A class which can do repair on rearranged genomes to eliminate infeasible individuals. If set at None, so repair will be done.

  _set_up_wheel 
_set_up_wheel ( self,  population )

Set up the roulette wheel based on the fitnesses.

This creates a fitness proportional wheel that will be used for selecting based on random numbers.

Returns:

  • A dictionary where the keys are the high value that an individual will be selected. The low value is determined by the previous key in a sorted list of keys. For instance, if we have a sorted list of keys like:

[.1, .3, .7, 1]

Then the individual whose key is .1 will be selected if a number between 0 and .1 is chosen, the individual whose key is .3 will be selected if the number is between .1 and .3, and so on.

The values of the dictionary are the organism instances.

  select 
select ( self,  population )

Perform selection on the population based using a Roulette model.

Arguments:

  • population -- A population of organisms on which we will perform selection. The individuals are assumed to have fitness values which are due to their current genome.


Table of Contents

This document was automatically generated on Mon Jul 1 12:03:10 2002 by HappyDoc version 2.0.1