org.processmining.mining.geneticmining.geneticoperations.duplicates
Class DTEnhancedCrossover

java.lang.Object
  extended by org.processmining.mining.geneticmining.geneticoperations.duplicates.DTEnhancedCrossover
All Implemented Interfaces:
Crossover

public class DTEnhancedCrossover
extends java.lang.Object
implements Crossover

Version:
1.0
Author:
Ana Karla A. de Medeiros

Constructor Summary
DTEnhancedCrossover(java.util.Random generator)
           
 
Method Summary
 HeuristicsNet[] doCrossover(HeuristicsNet[] population)
          Do crossover over the input and output sets of two individuals in the population.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DTEnhancedCrossover

public DTEnhancedCrossover(java.util.Random generator)
Method Detail

doCrossover

public HeuristicsNet[] doCrossover(HeuristicsNet[] population)
Do crossover over the input and output sets of two individuals in the population. This crossover works as follows:
(This procedure is done for both input and output set)
- Select a random task t to be the crossover point in both individuals.
- Select a random point at the input set of t at individual x.
- Select a random point at the input set of t at individual x'.
- Do crossover for the input sets by performing one of the following operation for every subset sp to swap:
(1) Add sp as a new subset in the input set of t.
(2) Join sp with an existing subset in the input set of t.
(3) Remove from an existing subset in the input set of t that contain elements that are also in sp, and add sp to the individual.
- Check for dangling arcs and correct them.

Specified by:
doCrossover in interface Crossover
Parameters:
population - has the two individuals to crossover
Returns:
array with the two offsprings that the crossover produced. If population size is less than two, no crossover is done and the population itself is returned.