/* Copyright 2006 by Sean Luke and George Mason University Licensed under the Academic Free License version 3.0 See the file "LICENSE" for more information */ package ec.exchange; import ec.*; import ec.util.*; import java.io.*; /* * InterPopulationExchange.java * * Created Sat Feb 10 13:44:11 EST 2001 * By: Liviu Panait */ /** * InterPopulationExchange is an Exchanger which implements a simple exchanger * between subpopulations. IterPopulationExchange uses an arbitrary graph topology * for migrating individuals from subpopulations. The assumption is that all * subpopulations have the same representation and same task to solve, otherwise * the exchange between subpopulations does not make much sense. *
InterPopulationExchange has a topology which is similar to the one used by * IslandExchange. Every few generations, a subpopulation will send some number * of individuals to other subpopulations. Since all subpopulations evolve at * the same generational speed, this is a synchronous procedure (IslandExchange * instead is asynchronous by default, though you can change it to synchronous). *
Individuals are sent from a subpopulation prior to breeding. They are stored * in a waiting area until after all subpopulations have bred; thereafter they are * added into the new subpopulation. This means that the subpopulation order doesn't * matter. Also note that it means that some individuals will be created during breeding, * and immediately killed to make way for the migrants. A little wasteful, we know, * but it's simpler that way.
Parameters
base.chatty boolean, default = true |
Should we be verbose or silent about our exchanges? |
Note: For each subpopulation in your population, there must be one exch.subpop... declaration set.
base.subpop.n.select classname, inherits and != ec.SelectionMethod |
The selection method used by subpopulation #n for picking migrants to emigrate to other subpopulations. If not set, uses the default parameter below. |
base.select classname, inherits and != ec.SelectionMethod |
server: Default parameter: the selection method used by a given subpopulation for picking migrants to emigrate to other subpopulations. |
base.subpop.n.select-to-die classname, inherits and != ec.SelectionMethod (Default is random selection) |
The selection method used by subpopulation #n for picking individuals to be replaced by migrants. If not set, uses the default parameter below. |
base.select-to-die classname, inherits and != ec.SelectionMethod (Default is random selection) |
server: Default parameter: the selection method used by a given subpopulation for picking individuals to be replaced by migrants. |
base.subpop.n.mod int >= 1 |
The number of generations that subpopulation #n waits between sending emigrants. If not set, uses the default parameter below. |
base.mod int >= 1 |
server: Default parameter: the number of generations that a given subpopulation waits between sending emigrants. |
base.subpop.n.start int >= 0 |
The generation when subpopulation #n begins sending emigrants. If not set, uses the default parameter below. |
base.start int >= 0 |
server: Default parameter: the generation when a given subpopulation begins sending emigrants. |
base.subpop.n.size int >= 0 |
The number of emigrants sent at one time by generation #n. If not set, uses the default parameter below. |
base.subpop.n.num-dest int >= 0 |
The number of destination subpopulations for this subpopulation. |
base.subpop.n.dest.m int >= 0 |
Subpopulation #n's destination #m is this subpopulation. |
Parameter bases
base.subpop.n.select | selection method for subpopulation #n's migrants |