ec.coevolve
Interface GroupedProblemForm

All Known Implementing Classes:
CoevolutionaryRosenbrock, CompetitiveMaxOne, MasterProblem

public interface GroupedProblemForm

GroupedProblemForm.java

GroupedProblemForm is an interface which defines methods for Problems to implement simple coevolutionary evaluation. In particular, the evaluate method receives as parameters a set of individuals that need to be evaluated. An additional vector-parameter (updateFitness) marks which individual fitnesses need to be updated during the evaluation process.

Version:
1.0
Author:
Sean Luke & Liviu Panait

Method Summary
 void evaluate(EvolutionState state, Individual[] ind, boolean[] updateFitness, boolean countVictoriesOnly, int threadnum)
          Deprecated. 
 void evaluate(EvolutionState state, Individual[] ind, boolean[] updateFitness, boolean countVictoriesOnly, int[] subpops, int threadnum)
          Evaluates the individuals found in ind together.
 void postprocessPopulation(EvolutionState state, Population pop)
          Finish processing the population (such as fitness information) after evaluation.
 void preprocessPopulation(EvolutionState state, Population pop)
          Set up the population pop (such as fitness information) prior to evaluation.
 

Method Detail

preprocessPopulation

void preprocessPopulation(EvolutionState state,
                          Population pop)
Set up the population pop (such as fitness information) prior to evaluation. Although this method is not static, you should not use it to write to any instance variables in the GroupedProblem instance; this is because it's possible that the instance used is in fact the prototype, and you will have no guarantees that your instance variables will remain valid during the evaluate(...) process. Do not assume that pop will be the same as state.pop -- it may not. state is only provided to give you access to EvolutionState features.


postprocessPopulation

void postprocessPopulation(EvolutionState state,
                           Population pop)
Finish processing the population (such as fitness information) after evaluation. Although this method is not static, you should not use it to write to any instance variables in the GroupedProblem instance; this is because it's possible that the instance used is in fact the prototype, and you will have no guarantees that your instance variables will remain valid during the evaluate(...) process. Do not assume that pop will be the same as state.pop -- it may not. state is only provided to give you access to EvolutionState features.


evaluate

void evaluate(EvolutionState state,
              Individual[] ind,
              boolean[] updateFitness,
              boolean countVictoriesOnly,
              int[] subpops,
              int threadnum)
Evaluates the individuals found in ind together. If updateFitness[i] is true, then you should use this evaluation to update the fitness of the individual in ind[i]. Individuals which are updated should have their fitnesses modified so that immediately after evaluation (and prior to postprocessPopulation(...) being called) individuals' fitnesses can be checked to see which is better than which. Do not assume that the individuals in ind will actually be in state.pop (they may not -- this method may be called at the end of a run to determine the best individual of the run in some kind of contest).

If countVictoriesOnly is true, you should update fitnesses such that if two individuals' fitnesses are compared, the one which has won the most times has a superior fitness. This will be used in single elimination tournament style evaluators.


evaluate

@Deprecated
void evaluate(EvolutionState state,
                         Individual[] ind,
                         boolean[] updateFitness,
                         boolean countVictoriesOnly,
                         int threadnum)
Deprecated.