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

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

public class DTDuplicatesCrossover
extends java.lang.Object
implements Crossover

Version:
1.0
Author:
Ana Karla A. de Medeiros

Constructor Summary
DTDuplicatesCrossover(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

DTDuplicatesCrossover

public DTDuplicatesCrossover(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. The crossover point is a task label. So, if two or more tasks have the same label, one of them is randomly selected at one individual and another task is selected at the other individual. This crossover works as follows:
(This procedure is done for both input and output set)
- Select a random task label l to be the crossover point in both individuals.
- Select a random point at the input set of t at individual x. t has label l.
- Select a random point at the input set of t' at individual x'. t' has label l.
- 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 (t').
(2) Join sp with an existing subset in the input set of t (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.