Click here to Skip to main content
15,886,422 members
Articles / Desktop Programming / MFC

Genetic Algorithm Library

Rate me:
Please Sign up or sign in to vote.
4.93/5 (175 votes)
7 Apr 2012GPL358 min read 437.9K   34.7K   555  
A framework for genetic algorithms
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Genetic Algorithm Library: Class List</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.5 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li class="current"><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Class List</h1>Here are the classes, structs, unions and interfaces with brief descriptions:<table>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_crossover_operations_1_1_ga_add_crossover.html">Chromosome::CrossoverOperations::GaAddCrossover</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_crossover_operations_1_1_ga_add_crossover.html" title="GaAddCrossover crossover operation creates offspring which code has values which...">GaAddCrossover</a></code> crossover operation creates offspring which code has values which are calculated form corresponding values of codes of both parents by summing them </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_ga_algorithm.html">Algorithm::GaAlgorithm</a></td><td class="indexvalue">Interface for genetic algorithms </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_ga_algorithm_params.html">Algorithm::GaAlgorithmParams</a></td><td class="indexvalue">Interface for parameters of genetic algorithm </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_arithmetical_code.html">Chromosome::Representation::GaArithmeticalCode</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_representation_1_1_ga_arithmetical_code.html" title="GaArithmeticalCode interface should be implemented by chromosomes&#39; classes which...">GaArithmeticalCode</a></code> interface should be implemented by chromosomes' classes which code supports arithmetical operations over it or its values </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_ga_base_algorithm.html">Algorithm::GaBaseAlgorithm</a></td><td class="indexvalue">This class implements control of algorithm's execution and its state. It also provides synchronization for multithreading control of algorithm </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_coupling_operations_1_1_ga_best_always_coupling.html">Population::CouplingOperations::GaBestAlwaysCoupling</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_coupling_operations_1_1_ga_best_always_coupling.html" title="GaBestAlwaysCoupling coupling always takes chromosome with the best fitness value...">GaBestAlwaysCoupling</a></code> coupling always takes chromosome with the best fitness value from selection result set, and the second parents are sequentially taken from. If all parents are used, but more children should be produced, this coupling operation wraps-around parent counter for second the parents and starts from beginning until enough children is produced. When two parents are chosen this operation produces specified number of children using crossover operation and then it chooses child with best fitness value among produced children and the second parent is bound to it. This coupling use GaMultipleCrossoverCouplingParams class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_binary_chromosome.html">Chromosome::Representation::GaBinaryChromosome</a></td><td class="indexvalue">This class can be used for solutions of problems which can be encoded as array of bits </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_binary_chromosome_params.html">Chromosome::Representation::GaBinaryChromosomeParams</a></td><td class="indexvalue">This class is used by <a class="el" href="class_chromosome_1_1_representation_1_1_ga_binary_chromosome.html" title="This class can be used for solutions of problems which can be encoded as array of...">GaBinaryChromosome</a> class as chromosomes' parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_bit.html">Chromosome::Representation::GaBit</a></td><td class="indexvalue">This class is used by <a class="el" href="class_chromosome_1_1_representation_1_1_ga_binary_chromosome.html" title="This class can be used for solutions of problems which can be encoded as array of...">GaBinaryChromosome</a> class for extracting of single values from chromosome's code and other manipulation on chromosome's code </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_catalogue.html">Common::GaCatalogue&lt; T &gt;</a></td><td class="indexvalue"><code><a class="el" href="class_common_1_1_ga_catalogue.html" title="GaCatalogue template class stores and manages catalogue (directory) for genetic operations...">GaCatalogue</a></code> template class stores and manages catalogue (directory) for genetic operations. Data can be accessed by its key (name). When user adds new data into catalogue, catalogue takes over responsibility for memory allocated by the data. Data must come from heap. Key/data combination is stored in <a class="el" href="class_common_1_1_ga_catalogue_entry.html" title="This template class manages key and pointer to data of a catalogue entry. Catalogue...">GaCatalogueEntry</a> object. Duplicates of key in catalogue are not allowed </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_catalogue_1_1_ga_cataolgue_hash_map_comparator.html">Common::GaCatalogue&lt; T &gt;::GaCataolgueHashMapComparator</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="struct_common_1_1_ga_catalogue_1_1_ga_string_comparator.html">Common::GaCatalogue&lt; T &gt;::GaStringComparator</a></td><td class="indexvalue"></td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_catalogue_entry.html">Common::GaCatalogueEntry&lt; T &gt;</a></td><td class="indexvalue">This template class manages key and pointer to data of a catalogue entry. Catalogue entry stores key's string value and pointer to data. Entry stores copied string value of a key. After binding data to an entry, entry object takes over responsibility for memory occupied by data. Data must be located at heap </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_ga_chromosome.html">Chromosome::GaChromosome</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_ga_chromosome.html" title="GaChromosome is interface for all chromosomes types in the library. Algorithms, populations...">GaChromosome</a></code> is interface for all chromosomes types in the library. Algorithms, populations and genetic operations assume that all chromosomes obey this interface. Genetic operations over chromosomes (crossover, mutation, fitness function) may require additional interfaces to be implemented, but all other built-in parts of the library don't have additional assumptions </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_chromosome_domain_block.html">Chromosome::Representation::GaChromosomeDomainBlock&lt; T &gt;</a></td><td class="indexvalue">This class is CCB for chromosomes which have codes with values which must be in defined domains. This CCB stores pointer to value sets </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_ga_chromosome_operations_block.html">Chromosome::GaChromosomeOperationsBlock</a></td><td class="indexvalue">This class is CCB for chromosomes which use extern genetic operations. This CCB stores pointer to those operations </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_ga_chromosome_params.html">Chromosome::GaChromosomeParams</a></td><td class="indexvalue">This class is base class for all chromosomes' parameters. Built-in genetic operations (crossover, mutation, fitness function and comparator) share their parameters with chromosomes parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_ga_chromosome_params_block.html">Chromosome::GaChromosomeParamsBlock</a></td><td class="indexvalue">This class represent base for chromosome's configuration block (CCB). CCB stores entire setup of chromosome. <code><a class="el" href="class_chromosome_1_1_ga_chromosome_params_block.html" title="This class represent base for chromosome&#39;s configuration block (CCB). CCB stores...">GaChromosomeParamsBlock</a></code> class stores only pointer to chromosomes' parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_chromosome_value.html">Chromosome::Representation::GaChromosomeValue&lt; TYPE &gt;</a></td><td class="indexvalue">This class is used by <a class="el" href="class_chromosome_1_1_representation_1_1_ga_multi_value_chromosome.html" title="This class can be used for chromosomes which code has multiple values. Values can...">GaMultiValueChromosome</a> template class for extracting of single values from chromosome's code and other manipulation on chromosome's code </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_code_value.html">Chromosome::Representation::GaCodeValue</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_representation_1_1_ga_code_value.html" title="GaCodeValue is interface for values which are parts of chromosome&#39;s code. It...">GaCodeValue</a></code> is interface for values which are parts of chromosome's code. It is used by interfaces which manipulate chromosome's code </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_code_values_buffer.html">Chromosome::Representation::GaCodeValuesBuffer</a></td><td class="indexvalue">This class represents buffer for storing values of chromosome's code. It is also used for building chromosomes' codes. <code><a class="el" href="class_chromosome_1_1_representation_1_1_ga_code_values_buffer.html" title="This class represents buffer for storing values of chromosome&#39;s code. It is also...">GaCodeValuesBuffer</a></code> class also keeps track of current position for filling the buffer, but interpretation of it is left to users </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_combined_value_set.html">Chromosome::Representation::GaCombinedValueSet&lt; T &gt;</a></td><td class="indexvalue">This template represents value set which is consisted of multiple value sets. Value sets can be of any kind, but must contains same type of data </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_coupling_operation.html">Population::GaCouplingOperation</a></td><td class="indexvalue">This class is interface for coupling operations which produce offspring from selected chromosomes </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_coupling_params.html">Population::GaCouplingParams</a></td><td class="indexvalue">This class is base for parameters of coupling operation </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_coupling_result_set.html">Population::GaCouplingResultSet</a></td><td class="indexvalue">This class is used as storage for coupling operation (result set). Result set contains pointer to selection result set which stores parent chromosomes. It also contains array of newly produced chromosomes and array of their parents' indices </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_threading_1_1_ga_critical_section.html">Threading::GaCriticalSection</a></td><td class="indexvalue"><code><a class="el" href="class_threading_1_1_ga_critical_section.html" title="GaCriticalSection class is wrapper class for system synchronization object.">GaCriticalSection</a></code> class is wrapper class for system synchronization object </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_coupling_operations_1_1_ga_cross_coupling.html">Population::CouplingOperations::GaCrossCoupling</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_coupling_operations_1_1_ga_cross_coupling.html" title="GaCrossCoupling coupling takes first parents sequentially from selection result set...">GaCrossCoupling</a></code> coupling takes first parents sequentially from selection result set, and second parents are the ones who are right below the first. If all parents are used, but more children should be produced, this coupling operation wraps-around parent counter and starts from beginning until enough children is produced. When two parents are chosen this operation produces specified number of children using crossover operation and then it chooses child with best fitness value among produced children and first parent is bound to it. This coupling use GaMultipleCrossoverCouplingParams class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_ga_crossover_operation.html">Chromosome::GaCrossoverOperation</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_ga_crossover_operation.html" title="GaCrossoverOperation class is base for crossover operations.">GaCrossoverOperation</a></code> class is base for crossover operations </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_ga_default_chromosome.html">Chromosome::GaDefaultChromosome</a></td><td class="indexvalue"><a class="el" href="class_chromosome_1_1_ga_default_chromosome.html" title="GaDefaultChromosome class implements some basic feature of chromosome such as management...">GaDefaultChromosome</a> class implements some basic feature of chromosome such as management of fitness value, CCB and probability of crossover and mutation operations </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_domain_chromosome.html">Chromosome::Representation::GaDomainChromosome&lt; T &gt;</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_representation_1_1_ga_domain_chromosome.html" title="GaDomainChromosome class should be base for chromosomes which have codes with values...">GaDomainChromosome</a></code> class should be base for chromosomes which have codes with values which must bi in defined domain </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_ga_dynamic_operation_chromosome.html">Chromosome::GaDynamicOperationChromosome</a></td><td class="indexvalue">This class should be base for chromosomes which use extern genetic operations </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_scaling_operations_1_1_ga_exponential_scaling.html">Population::ScalingOperations::GaExponentialScaling</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_scaling_operations_1_1_ga_exponential_scaling.html" title="GaExponentialScaling operation calculates scaled fitness value of chromosome by raising...">GaExponentialScaling</a></code> operation calculates scaled fitness value of chromosome by raising fitness value to specified power which is defined by scale factor in parameters. This scaling operation is not based on ranking of chromosome and use GaScaleFactor class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_ga_fitness_comparator.html">Chromosome::GaFitnessComparator</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_ga_fitness_comparator.html" title="GaFitnessComparator class is base for fitness comparators.">GaFitnessComparator</a></code> class is base for fitness comparators </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_fitness_criteria.html">Algorithm::StopCriterias::GaFitnessCriteria</a></td><td class="indexvalue"><code><a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_fitness_criteria.html" title="GaFitnessCriteria is used to stop genetic algorithm when specified type of fitness...">GaFitnessCriteria</a></code> is used to stop genetic algorithm when specified type of fitness value reaches desired value. This stop criteria uses <a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_fitness_criteria_params.html" title="GaFitnessCriteriaParams class is used by GaFitnessCriteria class as parameters for...">GaFitnessCriteriaParams</a> class as parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_fitness_criteria_params.html">Algorithm::StopCriterias::GaFitnessCriteriaParams</a></td><td class="indexvalue"><code><a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_fitness_criteria_params.html" title="GaFitnessCriteriaParams class is used by GaFitnessCriteria class as parameters for...">GaFitnessCriteriaParams</a></code> class is used by <a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_fitness_criteria.html" title="GaFitnessCriteria is used to stop genetic algorithm when specified type of fitness...">GaFitnessCriteria</a> class as parameters for the criteria. It contains desired fitness value of specified type and it also specifies type of comparison which is used to compare desired and current fitness values </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_ga_fitness_operation.html">Chromosome::GaFitnessOperation</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_ga_fitness_operation.html" title="GaFitnessOperation class is base for fitness operations.">GaFitnessOperation</a></code> class is base for fitness operations </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_fitness_progress_criteria.html">Algorithm::StopCriterias::GaFitnessProgressCriteria</a></td><td class="indexvalue"><code><a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_fitness_progress_criteria.html" title="GaFitnessProgressCriteria is used to stop genetic algorithm when specified number...">GaFitnessProgressCriteria</a></code> is used to stop genetic algorithm when specified number of generations fail to meet required progress of defined type of fitness value. This stop criteria uses <a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_fitness_progress_criteria_params.html" title="GaFitnessProgressCriteriaParams class is used by GaFitnessProgressCriteria class...">GaFitnessProgressCriteriaParams</a> class as parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_fitness_progress_criteria_params.html">Algorithm::StopCriterias::GaFitnessProgressCriteriaParams</a></td><td class="indexvalue"><code><a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_fitness_progress_criteria_params.html" title="GaFitnessProgressCriteriaParams class is used by GaFitnessProgressCriteria class...">GaFitnessProgressCriteriaParams</a></code> class is used by <a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_fitness_progress_criteria.html" title="GaFitnessProgressCriteria is used to stop genetic algorithm when specified number...">GaFitnessProgressCriteria</a> class as parameters for the criteria. It contains desired progress of fitness value of specified type; it also specifies type of comparison which is used to compare desired and current progresses and number of generation which should continuously fail to meet required progress before algorithm stops </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_mutation_operations_1_1_ga_flip_mutation.html">Chromosome::MutationOperations::GaFlipMutation</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_mutation_operations_1_1_ga_flip_mutation.html" title="GaFlipMutation mutation chooses random number of values at random positions in chromosome&#39;s...">GaFlipMutation</a></code> mutation chooses random number of values at random positions in chromosome's code and sets them with random value from chromosome's value set. Maximum number of changed values is specified in chromosomes parameters. This mutation changes at least one of the values </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_generation_criteria.html">Algorithm::StopCriterias::GaGenerationCriteria</a></td><td class="indexvalue"><code><a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_generation_criteria.html" title="GaGenerationCriteria is used to stop genetic algorithm when it reaches specified...">GaGenerationCriteria</a></code> is used to stop genetic algorithm when it reaches specified number of generations. This stop criteria uses <a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_generation_criteria_params.html" title="GaGenerationCriteriaParams class is used by GaGenerationCriteria class as parameters...">GaGenerationCriteriaParams</a> class as parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_generation_criteria_params.html">Algorithm::StopCriterias::GaGenerationCriteriaParams</a></td><td class="indexvalue"><code><a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_generation_criteria_params.html" title="GaGenerationCriteriaParams class is used by GaGenerationCriteria class as parameters...">GaGenerationCriteriaParams</a></code> class is used by <a class="el" href="class_algorithm_1_1_stop_criterias_1_1_ga_generation_criteria.html" title="GaGenerationCriteria is used to stop genetic algorithm when it reaches specified...">GaGenerationCriteria</a> class as parameters for the criteria. It contains number of generation after which execution of algorithm should be stopped </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_simple_algorithms_1_1_ga_incremental_algorithm.html">Algorithm::SimpleAlgorithms::GaIncrementalAlgorithm</a></td><td class="indexvalue">Incremental algorithm replaces only specified number of chromosomes at the end of each generation, thus allowing majority of chromosomes to survive </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_interval_value_set.html">Chromosome::Representation::GaIntervalValueSet&lt; T &gt;</a></td><td class="indexvalue">This template represents value set which has interval of values. Intervals as specified by theirs bounds. This value set uses user-specified random generator to generate values within the interval </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_coupling_operations_1_1_ga_inverse_coupling.html">Population::CouplingOperations::GaInverseCoupling</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_coupling_operations_1_1_ga_inverse_coupling.html" title="GaInverseCoupling coupling takes first parents sequentially from selection results...">GaInverseCoupling</a></code> coupling takes first parents sequentially from selection results, and second parents are the ones who are at the distance from the last chromosome in selection results which is equal to distance of first parent form first chromosome in result set. If all parents are used, but more children should be produced, this coupling operation wraps-around parent counter and starts from beginning until enough children is produced. When two parents are chosen this operation produces specified number of children using crossover operation and then it chooses child with best fitness value among produced children and first parent is bound to it. This coupling use GaMultipleCrossoverCouplingParams class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_mutation_operations_1_1_ga_invert_mutation.html">Chromosome::MutationOperations::GaInvertMutation</a></td><td class="indexvalue">GaSapwMutation mutation chooses random number of pairs of values at random positions in chromosome's code and swaps their positions. Maximum number of swapped pairs is specified in chromosomes parameters. This mutation swaps at least on pair of values </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_scaling_operations_1_1_ga_linear_scaling.html">Population::ScalingOperations::GaLinearScaling</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_scaling_operations_1_1_ga_linear_scaling.html" title="GaLinearScaling operation calculates scaled fitness value of chromosome by applying...">GaLinearScaling</a></code> operation calculates scaled fitness value of chromosome by applying linear function <code>a * f + b</code> fitness value, to where a and b are calculated from scale factor which is provided in operation parameters. This scaling operation is not based on ranking of chromosome and use GaScaleFactor class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_fitness_comparators_1_1_ga_max_fitness_comparator.html">Chromosome::FitnessComparators::GaMaxFitnessComparator</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_fitness_comparators_1_1_ga_max_fitness_comparator.html" title="GaMaxFitnessComparator can be used when objective of evolution is to maximize fitness...">GaMaxFitnessComparator</a></code> can be used when objective of evolution is to maximize fitness value </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_crossover_operations_1_1_ga_midpoint_crossover.html">Chromosome::CrossoverOperations::GaMidpointCrossover</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_crossover_operations_1_1_ga_midpoint_crossover.html" title="GaMidpointCrossover crossover operation creates offspring which code has values which...">GaMidpointCrossover</a></code> crossover operation creates offspring which code has values which are calculated form corresponding values of codes of both parents by midpoint algorithm </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_fitness_comparators_1_1_ga_min_fitness_comparator.html">Chromosome::FitnessComparators::GaMinFitnessComparator</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_fitness_comparators_1_1_ga_min_fitness_comparator.html" title="GaMinFitnessComparator can be used when objective of evolution is to minimize fitness...">GaMinFitnessComparator</a></code> can be used when objective of evolution is to minimize fitness value </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_coupling_operations_1_1_ga_mulitple_crossover_coupling_params.html">Population::CouplingOperations::GaMulitpleCrossoverCouplingParams</a></td><td class="indexvalue">This class should be used (directly or by inheritance) by coupling operations which produce more then one child per parent pair before it chooses best child </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_ga_multithreading_algorithm.html">Algorithm::GaMultithreadingAlgorithm</a></td><td class="indexvalue">This class implements features to allow parallel execution of some operations of genetic algorithm. It runs multiple threads which execute work which can be done in parallel, one control thread which controls workers and executes all operations which must be executed sequentially </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_ga_multithreading_algorithm_params.html">Algorithm::GaMultithreadingAlgorithmParams</a></td><td class="indexvalue">This class should be used (directly or by inheritance) by genetic algorithms which use multiple threads for parallel execution of work </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_multi_value_chromosome.html">Chromosome::Representation::GaMultiValueChromosome&lt; TYPE &gt;</a></td><td class="indexvalue">This class can be used for chromosomes which code has multiple values. Values can be of any type, but all values must have same type, they must use same value set and must obey requirements introduced by the value set </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_multi_value_code.html">Chromosome::Representation::GaMultiValueCode</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_representation_1_1_ga_multi_value_code.html" title="GaMultiValueCode interface should be implemented by chromosomes&#39; classes which...">GaMultiValueCode</a></code> interface should be implemented by chromosomes' classes which code contains multiple values </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_crossover_operations_1_1_ga_multi_value_crossover.html">Chromosome::CrossoverOperations::GaMultiValueCrossover</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_crossover_operations_1_1_ga_multi_value_crossover.html" title="GaMultiValueCrossover crossover operation create offspring by choosing specified...">GaMultiValueCrossover</a></code> crossover operation create offspring by choosing specified number of crossover points at random positions, then it alternately copies values from parents' codes, and at very crossover point it changes parent from which it copies values. The first parent from which copying starts is chosen randomly </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_multi_value_set.html">Chromosome::Representation::GaMultiValueSet&lt; T &gt;</a></td><td class="indexvalue">This template represents value set with multiple values and their counterpart (inverted values) </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_mutable_code.html">Chromosome::Representation::GaMutableCode</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_representation_1_1_ga_mutable_code.html" title="GaMutableCode interface should be implemented by chromosomes&#39; classes which code...">GaMutableCode</a></code> interface should be implemented by chromosomes' classes which code supports random changes and inversion of its parts </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_ga_mutation_operation.html">Chromosome::GaMutationOperation</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_ga_mutation_operation.html" title="GaMutationOperation class is base for mutation operations.">GaMutationOperation</a></code> class is base for mutation operations </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_m_v_arithmetic_chromosome.html">Chromosome::Representation::GaMVArithmeticChromosome&lt; TYPE &gt;</a></td><td class="indexvalue">This class can be used for chromosomes which code has multiple values that support arithmetic operations. Values can be of any type, but all values must have same type, they must use same value set and must obey requirements introduced by the value set </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_scaling_operations_1_1_ga_normalization_scaling.html">Population::ScalingOperations::GaNormalizationScaling</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_scaling_operations_1_1_ga_normalization_scaling.html" title="GaNormalizationScaling operation calculates scaled fitness based on ranking of chromosome...">GaNormalizationScaling</a></code> operation calculates scaled fitness based on ranking of chromosome. This scaling operation doesn't require any parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_observing_1_1_ga_observer.html">Observing::GaObserver</a></td><td class="indexvalue"><code><a class="el" href="class_observing_1_1_ga_observer.html" title="GaObserver interface is base class for all algorithms&#39; observers. This interface...">GaObserver</a></code> interface is base class for all algorithms' observers. This interface has defined methods to handle each event which can be raised by an algorithm </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_observing_1_1_ga_observer_adapter.html">Observing::GaObserverAdapter</a></td><td class="indexvalue">This is adapter class for <a class="el" href="class_observing_1_1_ga_observer.html" title="GaObserver interface is base class for all algorithms&#39; observers. This interface...">GaObserver</a> interface. It overrides all methods from the interface, so classes inherited from this class can implements only necessary methods. Detail description of the methods is given in specification of <a class="el" href="class_observing_1_1_ga_observer.html" title="GaObserver interface is base class for all algorithms&#39; observers. This interface...">GaObserver</a> interface </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_observing_1_1_ga_observers_list.html">Observing::GaObserversList</a></td><td class="indexvalue">This class manages subscriptions of observers to algorithm's events </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_operation.html">Common::GaOperation</a></td><td class="indexvalue">Interface for genetic operations </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_operation_parameters_pair.html">Common::GaOperationParametersPair&lt; OTYPE, PTYPE &gt;</a></td><td class="indexvalue">This template class is used for storing genetic operations and their parameters. This class has no built-in synchronizator, so <code>LOCK_OBJECT</code> and <code>LOCK_THIS_OBJECT</code> macros cannot be used with instances of this class </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_parameters.html">Common::GaParameters</a></td><td class="indexvalue">Interface for parameters of genetic operations </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_population.html">Population::GaPopulation</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_ga_population.html" title="GaPopulation class is used to host chromosomes. Population also provides statistical...">GaPopulation</a></code> class is used to host chromosomes. <a class="el" href="namespace_population.html" title="Contatins interfaces, classes and datatypes used to implement population of chromosomes...">Population</a> also provides statistical information about chromosomes in population by using GaStatistics class. Same chromosome can be hosted by multiple populations because they are stored in population using scaled chromosome object which contains smart pointer to chromosome and value of scaled fitness (because this value depends on population, but not on chromosome itself and same chromosome can be in multiple populations). Chromosomes in population can be sorted which provides easy way of tracking best and worst chromosomes, but if chromosomes are not sorted, population provides to sorted groups which stores indices of best and worst chromosomes. Sorting of chromosomes in population or in sorted groups is done my using provided sorting comparator. Both scaled and non-scaled fitness values of chromosomes can be used for sorting, which value is going to be used depends on specified parameters, but if scaling operation is not defined for the population, non-scaled fitness values are used. Maximal number of chromosomes which can be hosted is specified in population's parameters. Also whether the population is going to be fixed-size (number of chromosomes in population is always equals to maximal number of chromosomes it can store) or resizable (population can host from 0 to maximal number of chromosomes) is specified in population's parameters. During population initialization, provided prototype is used to create chromosomes which fill the population. Fixed-size populations are always filled during initialization, which is not the case with resizable populations. Besides hosting of chromosomes, population also binds extern genetic operations (selection, coupling, scaling, and replacement) which are going to be used by genetic algorithm during evolution </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_population_configuration.html">Population::GaPopulationConfiguration</a></td><td class="indexvalue">This class stores parameters and genetic operations of a population or a group of populations. All populations bound to the configuration, are updated and notified every time when configuration is changed. Note that each population copies parameters' of the population and use local copy </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_population_parameters.html">Population::GaPopulationParameters</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_ga_population_parameters.html" title="GaPopulationParameters class represents parameters of population.">GaPopulationParameters</a></code> class represents parameters of population </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_random.html">Common::GaRandom&lt; TYPE &gt;</a></td><td class="indexvalue">Interface for random value generators </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_random_bool.html">Common::GaRandomBool</a></td><td class="indexvalue"><code><a class="el" href="class_common_1_1_ga_random_bool.html" title="GaRandomBool class generates random boolean values. It supports generating boolean...">GaRandomBool</a></code> class generates random boolean values. It supports generating boolean with defined probabilities of <code>true</code> and <code>false</code> states. The class implements <a class="el" href="class_common_1_1_ga_random.html" title="Interface for random value generators.">GaRandom</a> interface. This class has no built-in synchronizator, so <code>LOCK_OBJECT</code> and <code>LOCK_THIS_OBJECT</code> macros cannot be used with instances of this class, but all public methods are thread-safe </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_coupling_operations_1_1_ga_random_coupling.html">Population::CouplingOperations::GaRandomCoupling</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_coupling_operations_1_1_ga_random_coupling.html" title="GaRandomCoupling coupling takes first parents sequentially from selection result...">GaRandomCoupling</a></code> coupling takes first parents sequentially from selection result set, and second parents are chosen randomly. If all parents are used as firs parent, but more children should be produced, this coupling operation wraps-around parent counter for the first parent and starts from beginning until enough children is produced. When two parents are chosen this operation produces specified number of children using crossover operation and then it chooses child with best fitness value among produced children and first parent is bound to it. This coupling use GaMultipleCrossoverCouplingParams class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_random_double.html">Common::GaRandomDouble</a></td><td class="indexvalue"><code><a class="el" href="class_common_1_1_ga_random_double.html" title="GaRandomDouble class generates random double precision floating-point numbers. Class...">GaRandomDouble</a></code> class generates random double precision floating-point numbers. Class takes care about endianness of the architecture. Targeted architecture must support IEEE 754 standard. The class implements <a class="el" href="class_common_1_1_ga_random.html" title="Interface for random value generators.">GaRandom</a> interface. This class has no built-in synchronizator, so <code>LOCK_OBJECT</code> and <code>LOCK_THIS_OBJECT</code> macros cannot be used with instances of this class, but all public methods are thread-safe </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_random_float.html">Common::GaRandomFloat</a></td><td class="indexvalue"><code><a class="el" href="class_common_1_1_ga_random_float.html" title="GaRandomFloat class generates random single precision floating-point numbers. Targeted...">GaRandomFloat</a></code> class generates random single precision floating-point numbers. Targeted architecture must support IEEE 754 standard. The class implements <a class="el" href="class_common_1_1_ga_random.html" title="Interface for random value generators.">GaRandom</a> interface. This class has no built-in synchronizator, so <code>LOCK_OBJECT</code> and <code>LOCK_THIS_OBJECT</code> macros cannot be used with instances of this class, but all public methods are thread-safe </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_random_generator.html">Common::GaRandomGenerator</a></td><td class="indexvalue"><code><a class="el" href="class_common_1_1_ga_random_generator.html" title="GaRandomGenerator class implements algorithm for generating 64-bits wide random unsigned...">GaRandomGenerator</a></code> class implements algorithm for generating 64-bits wide random unsigned integers and floating-point numbers. It takes care of architecture's endianness, but underlying CPU architecture must support floating-point by IEEE 754 standard. <code><a class="el" href="class_common_1_1_ga_random_generator.html" title="GaRandomGenerator class implements algorithm for generating 64-bits wide random unsigned...">GaRandomGenerator</a></code> class does not implement <a class="el" href="class_common_1_1_ga_random.html" title="Interface for random value generators.">GaRandom</a> interface. Primary purpose of this class is to provide service for generating random numbers for classes which implement <a class="el" href="class_common_1_1_ga_random.html" title="Interface for random value generators.">GaRandom</a> interface </td></tr>
  <tr><td class="indexkey"><a class="el" href="struct_common_1_1_ga_random_generator_1_1_ga_state.html">Common::GaRandomGenerator::GaState</a></td><td class="indexvalue">Defines representations of random generator's state </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_random_integer.html">Common::GaRandomInteger</a></td><td class="indexvalue"><code><a class="el" href="class_common_1_1_ga_random_integer.html" title="GaRandomInteger class generates random 32-bits wide integer numbers. The class implements...">GaRandomInteger</a></code> class generates random 32-bits wide integer numbers. The class implements <a class="el" href="class_common_1_1_ga_random.html" title="Interface for random value generators.">GaRandom</a> interface. This class has no built-in synchronizator, so <code>LOCK_OBJECT</code> and <code>LOCK_THIS_OBJECT</code> macros cannot be used with instances of this class, but all public methods are thread-safe </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_replacement_operations_1_1_ga_replace_best.html">Population::ReplacementOperations::GaReplaceBest</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_replacement_operations_1_1_ga_replace_best.html" title="GaReplaceBest replaces chromosomes with best fitness values in population. If population...">GaReplaceBest</a></code> replaces chromosomes with best fitness values in population. If population is sorted this operation can replace any number of chromosomes, if it is not sorted this operation can only replace chromosomes which are stored in the best chromosome sorted group of population. This replacement operation use <a class="el" href="class_population_1_1_ga_replacement_params.html" title="This class is base for parameters of replacement operation.">GaReplacementParams</a> class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_replacement_operations_1_1_ga_replace_elitism_params.html">Population::ReplacementOperations::GaReplaceElitismParams</a></td><td class="indexvalue">This class should be used (directly or by inheritance) by replacement operations which can unintentionally remove the best chromosomes from population </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_replacement_operation.html">Population::GaReplacementOperation</a></td><td class="indexvalue">This class is interface for replacement operations which replace chromosomes of population with new chromosomes </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_replacement_params.html">Population::GaReplacementParams</a></td><td class="indexvalue">This class is base for parameters of replacement operation </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_replacement_operations_1_1_ga_replace_parents.html">Population::ReplacementOperations::GaReplaceParents</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_replacement_operations_1_1_ga_replace_parents.html" title="GaReplaceParents replaces chromosomes which are marked as parents by coupling operation...">GaReplaceParents</a></code> replaces chromosomes which are marked as parents by coupling operation to offspring chromosomes. This operation saves the best chromosomes from replacement if specified in parameters. This replacement operation use <a class="el" href="class_population_1_1_replacement_operations_1_1_ga_replace_elitism_params.html" title="This class should be used (directly or by inheritance) by replacement operations...">GaReplaceElitismParams</a> class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_replacement_operations_1_1_ga_replace_random.html">Population::ReplacementOperations::GaReplaceRandom</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_replacement_operations_1_1_ga_replace_random.html" title="GaReplaceRandom randomly chooses chromosomes which are going to be replaced. This...">GaReplaceRandom</a></code> randomly chooses chromosomes which are going to be replaced. This operation saves best chromosomes from replacement if specified in parameters. This replacement operation use <a class="el" href="class_population_1_1_replacement_operations_1_1_ga_replace_elitism_params.html" title="This class should be used (directly or by inheritance) by replacement operations...">GaReplaceElitismParams</a> class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_replacement_operations_1_1_ga_replace_worst.html">Population::ReplacementOperations::GaReplaceWorst</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_replacement_operations_1_1_ga_replace_worst.html" title="GaReplaceWorst replaces chromosomes with worst fitness values in population. If population...">GaReplaceWorst</a></code> replaces chromosomes with worst fitness values in population. If population is sorted this operation can replace any number of chromosomes, if it is not sorted this operation can only replace chromosomes which are stored in the worst chromosome sorted group of population. This replacement operation use <a class="el" href="class_population_1_1_ga_replacement_params.html" title="This class is base for parameters of replacement operation.">GaReplacementParams</a> class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_ga_scaled_chromosome.html">Chromosome::GaScaledChromosome</a></td><td class="indexvalue">This class wraps chromosome class and represents it in population. To reduce memory usage and improve performance same chromosome can be placed in multiple populations, but some chromosome's values has different values for separate populations. All values which are specific to the population are extracted from chromosome class to this class. Same object of <code><a class="el" href="class_chromosome_1_1_ga_scaled_chromosome.html" title="This class wraps chromosome class and represents it in population. To reduce memory...">GaScaledChromosome</a></code> cannot be located in multiple populations </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_scaling_operations_1_1_ga_scale_factor_params.html">Population::ScalingOperations::GaScaleFactorParams</a></td><td class="indexvalue">This class should be used (directly or by inheritance) by scaling operations which use user defined factor of scaling </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_scaling_operation.html">Population::GaScalingOperation</a></td><td class="indexvalue">This class is interface for scaling operations which transform chromosomes' fitness values </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_scaling_params.html">Population::GaScalingParams</a></td><td class="indexvalue">This class is base for parameters of scaling operation </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_threading_1_1_ga_section_lock.html">Threading::GaSectionLock</a></td><td class="indexvalue"><code><a class="el" href="class_threading_1_1_ga_section_lock.html" title="GaSectionLock class is used for automatic access control with help of GaCriticalSection...">GaSectionLock</a></code> class is used for automatic access control with help of <a class="el" href="class_threading_1_1_ga_critical_section.html" title="GaCriticalSection class is wrapper class for system synchronization object.">GaCriticalSection</a> class. Synchronization object can be automatically acquired when instance of <code><a class="el" href="class_threading_1_1_ga_section_lock.html" title="GaSectionLock class is used for automatic access control with help of GaCriticalSection...">GaSectionLock</a></code> is created. If synchronization object is locked by instance of <code><a class="el" href="class_threading_1_1_ga_section_lock.html" title="GaSectionLock class is used for automatic access control with help of GaCriticalSection...">GaSectionLock</a></code> it is released when the instance goes out of scope. This mechanism provides simple way of managing critical sections because users don't have to worry about releasing of synchronization object in most cases, but for more complicated cases <code>LOCK</code> and <code>UNLOCK</code> macros can be used with instances of this class or with <a class="el" href="class_threading_1_1_ga_critical_section.html" title="GaCriticalSection class is wrapper class for system synchronization object.">GaCriticalSection</a> class. <code><a class="el" href="class_threading_1_1_ga_section_lock.html" title="GaSectionLock class is used for automatic access control with help of GaCriticalSection...">GaSectionLock</a></code> is mainly employed by <code>LOCK_OBJECT</code> and <code>LOCK_THIS_OBJECT</code> </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_best.html">Population::SelectionOperations::GaSelectBest</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_best.html" title="GaSelectBest selection is selects defined number of best chromosomes. If population...">GaSelectBest</a></code> selection is selects defined number of best chromosomes. If population is not-sorted, this selection can only select chromosomes which are in best sorted group. This selection use <a class="el" href="class_population_1_1_ga_selection_params.html" title="This class is base for parameters of selection operation.">GaSelectionParams</a> class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_duplicates_params.html">Population::SelectionOperations::GaSelectDuplicatesParams</a></td><td class="indexvalue">This class should be used (directly or by inheritance) by selection operations which can control duplicates of chromosome in result set </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_selection_operation.html">Population::GaSelectionOperation</a></td><td class="indexvalue">This class is interface for selection operation which selects chromosomes from population which are going to be used as parents in production of new chromosomes </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_selection_params.html">Population::GaSelectionParams</a></td><td class="indexvalue">This class is base for parameters of selection operation </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_selection_result_set.html">Population::GaSelectionResultSet</a></td><td class="indexvalue">This class is used as storage for selection operation (result set). It uses sorted group to store indices of selected chromosomes </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_random.html">Population::SelectionOperations::GaSelectRandom</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_random.html" title="GaSelectRandom selection is randomly selects defined number of chromosomes. This...">GaSelectRandom</a></code> selection is randomly selects defined number of chromosomes. This selection use <a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_duplicates_params.html" title="This class should be used (directly or by inheritance) by selection operations which...">GaSelectDuplicatesParams</a> class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_random_best.html">Population::SelectionOperations::GaSelectRandomBest</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_random_best.html" title="GaSelectRandomBest selection is randomly selects number of chromosomes and then it...">GaSelectRandomBest</a></code> selection is randomly selects number of chromosomes and then it cuts off chromosomes with worst fitness values to fit in selection size. This selection use <a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_random_best_params.html" title="This class is used by GaSelectRandomBest selection operations.">GaSelectRandomBestParams</a> class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_random_best_params.html">Population::SelectionOperations::GaSelectRandomBestParams</a></td><td class="indexvalue">This class is used by <a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_random_best.html" title="GaSelectRandomBest selection is randomly selects number of chromosomes and then it...">GaSelectRandomBest</a> selection operations </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_roulette_wheel.html">Population::SelectionOperations::GaSelectRouletteWheel</a></td><td class="indexvalue">When <code><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_roulette_wheel.html" title="When GaSelectRouletteWheel selection is used chromosomes with better fitness values...">GaSelectRouletteWheel</a></code> selection is used chromosomes with better fitness values have better chances to be selected. It virtually transforms fitness value of chromosome to probability of selection. <a class="el" href="namespace_population.html" title="Contatins interfaces, classes and datatypes used to implement population of chromosomes...">Population</a> on which selection performed must be sorted. This selection can work with minimization or maximization of fitness values, as well as negative fitness values. This selection use <a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_duplicates_params.html" title="This class should be used (directly or by inheritance) by selection operations which...">GaSelectDuplicatesParams</a> class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_tournament.html">Population::SelectionOperations::GaSelectTournament</a></td><td class="indexvalue"><code>GaSelectTorunament</code> selection is similar to <a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_roulette_wheel.html" title="When GaSelectRouletteWheel selection is used chromosomes with better fitness values...">GaSelectRouletteWheel</a> selection. For one place in result set it performs multiple roulette wheel selection before it chooses only one chromosome with best fitness value among selected. This increases probability of selection of chromosome with better fitness value. This selection use GaSelectTorunamentParams class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_tournament_params.html">Population::SelectionOperations::GaSelectTournamentParams</a></td><td class="indexvalue">This class is used by <code><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_tournament.html" title="GaSelectTorunament selection is similar to GaSelectRouletteWheel selection. For one...">GaSelectTournament</a></code> selection operations </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_worst.html">Population::SelectionOperations::GaSelectWorst</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_selection_operations_1_1_ga_select_worst.html" title="GaSelectWorst selection is selects defined number of worst chromosomes. If population...">GaSelectWorst</a></code> selection is selects defined number of worst chromosomes. If population is not-sorted, this selection can only select chromosomes which are in worst sorted group. This selection use <a class="el" href="class_population_1_1_ga_selection_params.html" title="This class is base for parameters of selection operation.">GaSelectionParams</a> class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_simple_algorithms_1_1_ga_simple_algorithm.html">Algorithm::SimpleAlgorithms::GaSimpleAlgorithm</a></td><td class="indexvalue">Simple algorithm creates entirely new population of chromosomes at the end of each generation, only specified number of best chromosomes survive and they are copied into new generation. This algorithm uses two populations to avoid overlapping of generations which are used alternately </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_simple_algorithms_1_1_ga_simple_algorithm_params.html">Algorithm::SimpleAlgorithms::GaSimpleAlgorithmParams</a></td><td class="indexvalue">This class is used by <a class="el" href="class_algorithm_1_1_simple_algorithms_1_1_ga_simple_algorithm.html" title="Simple algorithm creates entirely new population of chromosomes at the end of each...">GaSimpleAlgorithm</a> as parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_coupling_operations_1_1_ga_simple_coupling.html">Population::CouplingOperations::GaSimpleCoupling</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_coupling_operations_1_1_ga_simple_coupling.html" title="GaSimpleCoupling coupling takes first two parents and it produces two child using...">GaSimpleCoupling</a></code> coupling takes first two parents and it produces two child using crossover operations, and each parent is bound to one child, then it takes next two parents, and so on... If all parents are used, but more children should be produced, this coupling operation wraps-around parent counter and starts from beginning until enough children is produced. This coupling use <a class="el" href="class_population_1_1_ga_coupling_params.html" title="This class is base for parameters of coupling operation.">GaCouplingParams</a> class for parameters </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_single_value_chromosome.html">Chromosome::Representation::GaSingleValueChromosome&lt; TYPE &gt;</a></td><td class="indexvalue">This class can be used for chromosomes which code has only one value. Value can be of any type as long as that type obeys requirements introduced by value set </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_single_value_set.html">Chromosome::Representation::GaSingleValueSet&lt; T &gt;</a></td><td class="indexvalue">This template represents value set with only one value and its counterpart (inverted value) </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_sizable_code.html">Chromosome::Representation::GaSizableCode</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_representation_1_1_ga_sizable_code.html" title="GaSizableCode interface should be implemented by chromosomes&#39; classes which code...">GaSizableCode</a></code> interface should be implemented by chromosomes' classes which code supports adding of new values into it or removing from it </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_smart_ptr.html">Common::GaSmartPtr&lt; T &gt;</a></td><td class="indexvalue"><code><a class="el" href="class_common_1_1_ga_smart_ptr.html" title="GaSmartPtr template class wraps C++ raw pointers, and takes over responsibility of...">GaSmartPtr</a></code> template class wraps C++ raw pointers, and takes over responsibility of managing the allocated memory. Smart pointer holds address of user data and reference to an object which is responsible for counting number of references to data, when there are no instances of <code><a class="el" href="class_common_1_1_ga_smart_ptr.html" title="GaSmartPtr template class wraps C++ raw pointers, and takes over responsibility of...">GaSmartPtr</a></code> pointing to location of the data (reference count of the location reaches 0), object is destroyed and memory used by the object is freed. Memory management by <code><a class="el" href="class_common_1_1_ga_smart_ptr.html" title="GaSmartPtr template class wraps C++ raw pointers, and takes over responsibility of...">GaSmartPtr</a></code> class is thread-safe, but after dereferencing smart pointer to access the data, it cannot be guaranteed that memory will not be freed if some other thread changes dereferenced pointer. Implemented smart pointers have some limitations: <br>
1. Dynamically allocated arrays cannot be managed by <a class="el" href="class_common_1_1_ga_smart_ptr.html" title="GaSmartPtr template class wraps C++ raw pointers, and takes over responsibility of...">GaSmartPtr</a> class. <br>
2. Circular references can cause memory leakage </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_smart_storage.html">Common::GaSmartStorage&lt; T &gt;</a></td><td class="indexvalue"><code><a class="el" href="class_common_1_1_ga_smart_storage.html" title="GaSmartStorage template class provides reference-counting for smart pointers. GaSmartStorage...">GaSmartStorage</a></code> template class provides reference-counting for smart pointers. <code><a class="el" href="class_common_1_1_ga_smart_storage.html" title="GaSmartStorage template class provides reference-counting for smart pointers. GaSmartStorage...">GaSmartStorage</a></code> objects holds address of used data and number of references (smart pointers) which point to the data. Object of this class as well as the data are destroyed and memory is freed when there are no more references which points to the data. Arrays cannot be used with this class. This class has no built-in synchronizator, so <code>LOCK_OBJECT</code> and <code>LOCK_THIS_OBJECT</code> macros cannot be used with instances of this class, but all public method and operators are thread-safe </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_ga_sorted_group.html">Population::GaSortedGroup</a></td><td class="indexvalue">Sorted group stores indices of chromosomes in sorted order, chromosomes must be from same population. For sorting, group use provided fitness comparator. Direction depends on type of group. It group type is <code>GASGT_BEST</code> or <code>GASGT_OTHER</code> chromosomes are sorted in descending order by their fitness value, if group type is <code>GASGT_WORST</code> chromosomes are sorted in ascending order by their fitness value. Sorted group can only accept fixed number of chromosomes </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_statistics.html">Common::GaStatistics</a></td><td class="indexvalue"><code><a class="el" href="class_common_1_1_ga_statistics.html" title="GaStatistics class keeps track of statistical information about populations, groups...">GaStatistics</a></code> class keeps track of statistical information about populations, groups of populations or algorithms. It contains information about previous and current statistics, and provides information about progress of statistical values </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_common_1_1_ga_stat_value.html">Common::GaStatValue&lt; T &gt;</a></td><td class="indexvalue"><code><a class="el" href="class_common_1_1_ga_stat_value.html" title="GaStatValue template class stores single statistical value and keeps track of changes...">GaStatValue</a></code> template class stores single statistical value and keeps track of changes of that value between generations </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_ga_stop_criteria.html">Algorithm::GaStopCriteria</a></td><td class="indexvalue">This class is interface for stop criteria of genetic algorithm </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_algorithm_1_1_ga_stop_criteria_params.html">Algorithm::GaStopCriteriaParams</a></td><td class="indexvalue">Interface for parameters of stop criteria operation </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_crossover_operations_1_1_ga_sub_crossover.html">Chromosome::CrossoverOperations::GaSubCrossover</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_crossover_operations_1_1_ga_sub_crossover.html" title="GaSubCrossover crossover operation creates offspring which code has values which...">GaSubCrossover</a></code> crossover operation creates offspring which code has values which are calculated form corresponding values of codes of both parents by subtracting them </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_s_v_arithmetic_chromosome.html">Chromosome::Representation::GaSVArithmeticChromosome&lt; TYPE &gt;</a></td><td class="indexvalue">This class can be used for chromosomes which code has only one value that supports arithmetic operations. Value can be of any type as long as that type obeys requirements introduced by value set and has defined arithmetic operators </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_swapable_code.html">Chromosome::Representation::GaSwapableCode</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_representation_1_1_ga_swapable_code.html" title="GaSwapableCode interface should be implemented by chromosomes&#39; classes which...">GaSwapableCode</a></code> interface should be implemented by chromosomes' classes which code supports swapping of positions of its positions </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_mutation_operations_1_1_ga_swap_mutation.html">Chromosome::MutationOperations::GaSwapMutation</a></td><td class="indexvalue"><code><a class="el" href="class_chromosome_1_1_mutation_operations_1_1_ga_invert_mutation.html" title="GaSapwMutation mutation chooses random number of pairs of values at random positions...">GaInvertMutation</a></code> mutation chooses random number of values at random positions in chromosome's code and inverts them. Maximum number of inverted values is specified in chromosomes parameters. This mutation changes at least on value </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_threading_1_1_ga_thread.html">Threading::GaThread</a></td><td class="indexvalue"><code><a class="el" href="class_threading_1_1_ga_thread.html" title="GaThread class controls system threads. It wraps system specific control of threading...">GaThread</a></code> class controls system threads. It wraps system specific control of threading. This class has built-in synchronizator so it is allowed to use <code>LOCK_OBJECT</code> and <code>LOCK_THIS_OBJECT</code> macros with instances of this class </td></tr>
  <tr><td class="indexkey"><a class="el" href="struct_threading_1_1_ga_thread_parameter.html">Threading::GaThreadParameter</a></td><td class="indexvalue"><code><a class="el" href="struct_threading_1_1_ga_thread_parameter.html" title="GaThreadParameter structure contains information needed to start new thread. It has...">GaThreadParameter</a></code> structure contains information needed to start new thread. It has pointer to function which is entry point of thread and pointer to parameters which will be passed to the function. Restrictions of entry point's function of a thread are described by <code>GaThreadFunctionPointer</code> type </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_unbound_value_set.html">Chromosome::Representation::GaUnboundValueSet&lt; T &gt;</a></td><td class="indexvalue">This template represents value set with no additional limitations, except limitation introduced by the type and random generator used to generate values </td></tr>
  <tr><td class="indexkey"><a class="el" href="union_common_1_1_ga_unsigned_int_to_double.html">Common::GaUnsignedIntToDouble</a></td><td class="indexvalue">This union is used for conversation from 64-bits long integer random number to double precision floating point number in interval (0, 1) </td></tr>
  <tr><td class="indexkey"><a class="el" href="union_common_1_1_ga_unsigned_int_to_float.html">Common::GaUnsignedIntToFloat</a></td><td class="indexvalue">This union is used for conversation from 32-bits long integer random number to single precision floating point number in interval (0, 1) </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_value_interval_bounds.html">Chromosome::Representation::GaValueIntervalBounds&lt; T &gt;</a></td><td class="indexvalue">This template class represents bounds of interval value set </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_chromosome_1_1_representation_1_1_ga_value_set.html">Chromosome::Representation::GaValueSet&lt; T &gt;</a></td><td class="indexvalue">This template class is base class for all value set. Value sets store values which can be found in chromosomes' codes </td></tr>
  <tr><td class="indexkey"><a class="el" href="class_population_1_1_scaling_operations_1_1_ga_window_scaling.html">Population::ScalingOperations::GaWindowScaling</a></td><td class="indexvalue"><code><a class="el" href="class_population_1_1_scaling_operations_1_1_ga_window_scaling.html" title="GaWindowScaling operation calculates scaled fitness value of chromosome by subtracting...">GaWindowScaling</a></code> operation calculates scaled fitness value of chromosome by subtracting fitness value of worst chromosome from fitness value of chromosome which is scaled. This operation can work with minimization or maximization of fitness values, as well as negative fitness values. This scaling operation is not based on ranking of chromosome and doesn't require any parameters </td></tr>
</table>
</div>
<br/><a href="http://www.coolsoft-sd.com/ProductVersion.aspx?vid=9">Genetic Algorithm Library</a><br/><a href="http://www.coolsoft-sd.com/">Coolsoft Software Development</a>
</body>
</html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)


Written By
Software Developer
Serbia Serbia
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions