• Main Page
  • Namespaces
  • Classes
  • Files
  • Class List
  • Class Hierarchy
  • Class Members

AbYSS Class Reference

Abstract class representing the algorithm AbYSS.

#include <AbYSS.h>

Inheritance diagram for AbYSS:

MoEA List of all members.

Public Member Functions

 AbYSS (MultiobjectiveProblem *problemToSolve, MutationOperator mutationOperator)
 Constructor.
virtual ~AbYSS ()
 Destructor.
virtual void start ()
 Method invoked to start the algorithm.
virtual Individual * diversificationGeneration ()
 Generates a set of diverse solutions.
virtual Individual * improvement (Individual *)
 Tries to improve an individual.
virtual void referenceSetUpdate (bool rebuild)
 Implementes the reference set update method of the scatter search algorithm.
virtual int subsetGeneration ()
 Subset generation method.
virtual void solutionCombination (Individual *, Individual *, int children)
 Solution combination method.
void distanceToPopulation (Population *, Individual *)
 This method measures the distance of an individual to a population.
void addImprovedIndividual (Population *population, Individual *)
 Add an improved solution to the population P.
bool archiveSolution (Individual *solution)
 Tries to inserts a solution into the archive.
virtual int removeIndividuals (Population *population)
 Remove individuals having non-zero raw fitness value from a population.
void readConfigurationData ()
 Reads parameters from a file named "AbYSS.cfg".
void printStatistics ()
 Print execution statistics.
void printToFiles (char *variableFileName, char *functionFileName)
 Prints the values of the variables and the objective functions.

Protected Attributes

Population * population_
Population * dummyPopulation_
Population * qualityReferenceSet_
Population * diversityReferenceSet_
Population * combinedSolutions_
Population * improvedCombinedSolutions_
int populationSize_
int maximumPopulationSize_
int qualityReferenceSetSize_
int diversityReferenceSetSize_
int numberOfSubranges_
int improvementIterations_
int maximumArchiveLength_
Population * archiveOfSolutions_
int * sumOfFrequencyValues_
int * sumOfReverseFrequencyValues_
int ** frequency_
int ** reverseFrequency_
Ranking * populationRanking_

Detailed Description

Definition at line 30 of file AbYSS.h.


Constructor & Destructor Documentation

AbYSS::AbYSS (  MultiobjectiveProblem *  problemToSolve,
MutationOperator  mutationOperator
) 
 

Parameters:
problemToSolve The problem to be optimized
mutationOperator The mutation operator used in the improvement method

Definition at line 18 of file AbYSS.cpp.

References archiveOfSolutions_, MultiobjectiveProblem::calculateMutationProbability(), combinedSolutions_, MoEA::distributionIndexForMutation_, diversityReferenceSet_, diversityReferenceSetSize_, dummyPopulation_, frequency_, improvedCombinedSolutions_, improvementIterations_, Random::initrandom(), maximumArchiveLength_, MoEA::maximumNumberOfFitnessEvaluations_, MoEA::maximumNumberOfIterations_, maximumPopulationSize_, MoEA::mutationProbability_, numberOfSubranges_, MultiobjectiveProblem::numberOfVariables_, population_, populationSize_, MoEA::problem_, qualityReferenceSet_, qualityReferenceSetSize_, MoEA::random_, Random::randomize(), Random::randreal2(), readConfigurationData(), reverseFrequency_, Random::Rseed, sumOfFrequencyValues_, and sumOfReverseFrequencyValues_.

AbYSS::~AbYSS (   )  [virtual]
 

The destructor method is incomplete and untested

Definition at line 126 of file AbYSS.cpp.

References populationRanking_.


Member Function Documentation

void AbYSS::addImprovedIndividual (  Population *  population,
Individual *  individual
) 
 

Parameters:
population Population
individual The individual to add into the population
The size of the population is always less than its maximum size. Thus, when a new individual is added and the maximum capacity is reached, the worst individual is eliminated

Definition at line 280 of file AbYSS.cpp.

References Population::addIndividual(), population_, and Population::thereIsAnEqualFitnessIndividual().

Referenced by start().

bool AbYSS::archiveSolution (  Individual *  solution  ) 
 

Returns:
TRUE if the individual has been inserted, FALSE otherwise�
The new solution is added if it is non-dimanated by the archive and, if this is full, if the solution has not the worst value according to the crowding distance density estimator

Definition at line 414 of file AbYSS.cpp.

References Population::addIndividual(), archiveOfSolutions_, Population::crowdingDistanceAssignment(), Population::deleteIth(), Individual::distance_, Individual::dominanceTest(), Population::getIth(), Population::getPopulationSize(), Individual::identicalFitness(), maximumArchiveLength_, and Individual::numberOfViolatedConstraintsTest().

Referenced by improvement().

void AbYSS::distanceToPopulation (  Population *  population,
Individual *  individual
) 
 

Parameters:
population The population
individual The individual
Distances are measured in the variable space

Definition at line 245 of file AbYSS.cpp.

References Individual::chromosome_, Individual::distance_, Chromosome::gene_, Population::getIth(), Population::getPopulationSize(), Gene::getRealAllele(), MultiobjectiveProblem::numberOfVariables_, and MoEA::problem_.

Individual * AbYSS::diversificationGeneration (   )  [virtual]
 

Definition at line 485 of file AbYSS.cpp.

References Individual::chromosome_, frequency_, Chromosome::gene_, MultiobjectiveProblem::lowerLimit_, numberOfSubranges_, MultiobjectiveProblem::numberOfVariables_, MoEA::problem_, MoEA::random_, REAL, reverseFrequency_, Random::rnd(), Random::rndreal(), sumOfFrequencyValues_, sumOfReverseFrequencyValues_, MultiobjectiveProblem::upperLimit_, and MultiobjectiveProblem::variableType_.

Referenced by start().

Individual * AbYSS::improvement (  Individual *  individual  )  [virtual]
 

Parameters:
individual The individual to improve
Returns:
A possibly improved individual
The method creates a mutant individual and compare it to the original individual. If the mutant individual is better or non dominated in respect to the original individual, it is assumed to be an improved individual. The method iterates up to improvementiTerations

Definition at line 599 of file AbYSS.cpp.

References archiveSolution(), MultiobjectiveProblem::evaluate(), MultiobjectiveProblem::evaluateConstraints(), improvementIterations_, MoEA::mutation(), MultiobjectiveProblem::numberOfConstraints_, MoEA::numberOfFitnessEvaluations_, MoEA::numberOfMutations_, and MoEA::problem_.

Referenced by start().

void AbYSS::printStatistics (   )  [virtual]
 

Implements MoEA.

Definition at line 308 of file AbYSS.cpp.

References MoEA::endTime_, MoEA::numberOfFitnessEvaluations_, MoEA::numberOfIterations_, MoEA::numberOfMutations_, and MoEA::startTime_.

Referenced by main().

void AbYSS::printToFiles (  char *  genotypeFileName,
char *  fitnessFileName
) 
 

Parameters:
genotypeFileName The name of the file to store the decision variables
fitnessFileName The name of the file to store the values of the objective functions

Definition at line 296 of file AbYSS.cpp.

References archiveOfSolutions_, Population::getPopulationSize(), MoEA::printFunctionValuesToFile(), MoEA::printVariablesToFile(), and Population::sortByFitness().

Referenced by main().

void AbYSS::readConfigurationData (   )  [virtual]
 

Implements MoEA.

Definition at line 321 of file AbYSS.cpp.

Referenced by AbYSS().

void AbYSS::referenceSetUpdate (  bool  rebuild  )  [virtual]
 

Parameters:
rebuild If this parameter is TRUE, the RefSet is built from the initial set; otherwise, the RefSet is updated with new solutions

Definition at line 657 of file AbYSS.cpp.

References Population::addIndividual(), K_Distance::calculateDistanceMatrix(), Individual::density_, Population::extractIth(), K_Distance::getIndividualKDistance(), Population::getIth(), Population::getPopulationSize(), population_, qualityReferenceSet_, qualityReferenceSetSize_, Population::sortByStrengthFitness(), Population::strengthAssignment(), Individual::strengthFitness_, Individual::strengthRawFitness_, and Population::strengthRawFitnessAssignment().

int AbYSS::removeIndividuals (  Population *  population  )  [virtual]
 

Parameters:
population The population
Returns:
The number of removed individuals

Definition at line 1047 of file AbYSS.cpp.

References Ranking::copyFrontToPopulation(), Population::crowdingDistanceAssignment(), dummyPopulation_, Population::getPopulationSize(), Ranking::nonDominatedFront_, population_, populationRanking_, populationSize_, Ranking::rankPopulation(), and Population::sortByRankAndCrowding().

void AbYSS::solutionCombination (  Individual *  parent1,
Individual *  parent2,
int  numberOfChildren
)  [virtual]
 

Parameters:
parent1 The first parent
parent2 The second parent
numberOfChildren The number of children to obtain

Definition at line 905 of file AbYSS.cpp.

References Population::addIndividual(), combinedSolutions_, MoEA::distributionIndexForCrossover_, MultiobjectiveProblem::numberOfVariables_, MoEA::problem_, and Individual::simulatedBinaryCrossover().

Referenced by subsetGeneration().

void AbYSS::start (   )  [virtual]
 

Implements MoEA.

Definition at line 133 of file AbYSS.cpp.

References addImprovedIndividual(), Population::addIndividual(), archiveOfSolutions_, Individual::distance_, diversificationGeneration(), MultiobjectiveProblem::evaluate(), MultiobjectiveProblem::evaluateConstraints(), Population::getPopulationSize(), improvement(), MAX_REAL, MoEA::numberOfFitnessEvaluations_, population_, populationSize_, MoEA::problem_, MoEA::random_, and MoEA::startTime_.

Referenced by main().

int AbYSS::subsetGeneration (   )  [virtual]
 

Only combinations of individuals from RefSet1 among them are considered; the same holds to the RefSet2

Definition at line 825 of file AbYSS.cpp.

References Population::getIth(), Population::getPopulationSize(), Individual::hasBeenSelected_, qualityReferenceSet_, and solutionCombination().


Member Data Documentation

Population* AbYSS::archiveOfSolutions_ [protected]
 

Definition at line 49 of file AbYSS.h.

Referenced by AbYSS(), archiveSolution(), printToFiles(), and start().

Population* AbYSS::combinedSolutions_ [protected]
 

Definition at line 37 of file AbYSS.h.

Referenced by AbYSS(), and solutionCombination().

Population* AbYSS::diversityReferenceSet_ [protected]
 

Definition at line 35 of file AbYSS.h.

Referenced by AbYSS().

int AbYSS::diversityReferenceSetSize_ [protected]
 

Definition at line 43 of file AbYSS.h.

Referenced by AbYSS().

Population* AbYSS::dummyPopulation_ [protected]
 

Definition at line 33 of file AbYSS.h.

Referenced by AbYSS(), and removeIndividuals().

int** AbYSS::frequency_ [protected]
 

Definition at line 53 of file AbYSS.h.

Referenced by AbYSS(), and diversificationGeneration().

Population* AbYSS::improvedCombinedSolutions_ [protected]
 

Definition at line 38 of file AbYSS.h.

Referenced by AbYSS().

int AbYSS::improvementIterations_ [protected]
 

Definition at line 46 of file AbYSS.h.

Referenced by AbYSS(), and improvement().

int AbYSS::maximumArchiveLength_ [protected]
 

Definition at line 47 of file AbYSS.h.

Referenced by AbYSS(), and archiveSolution().

int AbYSS::maximumPopulationSize_ [protected]
 

Definition at line 41 of file AbYSS.h.

Referenced by AbYSS().

int AbYSS::numberOfSubranges_ [protected]
 

Definition at line 45 of file AbYSS.h.

Referenced by AbYSS(), and diversificationGeneration().

Population* AbYSS::population_ [protected]
 

Definition at line 32 of file AbYSS.h.

Referenced by AbYSS(), addImprovedIndividual(), referenceSetUpdate(), removeIndividuals(), and start().

Ranking* AbYSS::populationRanking_ [protected]
 

Definition at line 56 of file AbYSS.h.

Referenced by removeIndividuals(), and ~AbYSS().

int AbYSS::populationSize_ [protected]
 

Definition at line 40 of file AbYSS.h.

Referenced by AbYSS(), removeIndividuals(), and start().

Population* AbYSS::qualityReferenceSet_ [protected]
 

Definition at line 34 of file AbYSS.h.

Referenced by AbYSS(), referenceSetUpdate(), and subsetGeneration().

int AbYSS::qualityReferenceSetSize_ [protected]
 

Definition at line 42 of file AbYSS.h.

Referenced by AbYSS(), and referenceSetUpdate().

int** AbYSS::reverseFrequency_ [protected]
 

Definition at line 54 of file AbYSS.h.

Referenced by AbYSS(), and diversificationGeneration().

int* AbYSS::sumOfFrequencyValues_ [protected]
 

Definition at line 51 of file AbYSS.h.

Referenced by AbYSS(), and diversificationGeneration().

int* AbYSS::sumOfReverseFrequencyValues_ [protected]
 

Definition at line 52 of file AbYSS.h.

Referenced by AbYSS(), and diversificationGeneration().


The documentation for this class was generated from the following files:
  • AbYSS.h
  • AbYSS.cpp

Our Software

orangebox Mallba

orangebox ssGA

orangebox JGDS

orangebox xxGA

orangebox JCell

orangebox MHTB

orangebox DEME

orangebox JMetal

orangebox More...

orangebox Go Back