Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
genetic_algorithm_tool [2011/07/31 17:19]
hermann created
genetic_algorithm_tool [2015/10/11 23:58] (current)
admin
Line 7: Line 7:
 ===== Inputs ===== ===== Inputs =====
  
-^ Name ^ Type ^ Description ^ +^ Name  ^ Type  ^ Description ​ 
-| Use Convergence Stopping Criteria ​ | [[ Bool Type| Bool  ​]]  | If true, the optimization process will halt if evolution of generations becomes asymptotic, as defined by the asymptotic parameter. Otherwise, the total number of generations specified by "​Number Of Generations"​ is used.  | +| Use Convergence Stopping Criteria ​ | [[Real Value Type]] ​ | If true, the optimization process will halt if evolution of generations becomes asymptotic, as defined by the asymptotic parameter. Otherwise, the total number of generations specified by "​Number Of Generations"​ is used.  | 
-| Number of Generations ​ | [[Positive ​Int Type|Positive Int  ​]]  | If the "Use Convergence Stopping Criteria"​ is true, the "​Number Of Generations"​ specifies the minimum number of generations to detect convergence. Otherwise, it becomes the maximum number of generations. ​ | +| Number of Generations ​ | [[Positive ​Integer Value Type]] ​ | If the "Use Convergence Stopping Criteria"​ is true, the "​Number Of Generations"​ specifies the minimum number of generations to detect convergence. Otherwise, it becomes the maximum number of generations. ​ | 
-| Population Size  | [[Positive ​Int Type|Positive Int  ​]]  | Number of individuals per population. ​ | +| Population Size  | [[Positive ​Integer Value Type]] ​ | Number of individuals per population. ​ | 
-| Individual Genotype ​ | [[Lookup Table Group Type|Lookup Table Group  ​]]  | The genotype that defines the template for individuals. ​ | +| Individual Genotype ​ | [[Lookup Table Group Type]] ​ | The genotype that defines the template for individuals. ​ | 
-| Default Lower Bound  | [[Double ​Type|Double  ​]]  | The default lower value for alleles. ​ | +| Default Lower Bound  | [[Real Value Type]] ​ | The default lower value for alleles. ​ | 
-| Default Upper Bound  | [[Double ​Type|Double ​ ]]  | The default upper value for alleles. ​ | +| Default Upper Bound  | [[Real Value Type]] ​ | The default upper value for alleles. ​ |
-| Default Upper Bound  | [[Double Type|Double  ​]]  | The default upper value for alleles. ​ |+
  
 ===== Optional Inputs ===== ===== Optional Inputs =====
  
-^ Name ^ Type ^ Description ^ Default Value ^ +^ Name  ^ Type  ^ Description ​ ^ Default Value  
-| Convergence Limit | [[ Percent Type| Percent  ​]]  | Convergence limit (in percentage of fitness variation) across the given number of generations used to halt the optimization process. ​ | 0.99  | +| Convergence Limit  | [[Percent Type]] ​ | Convergence limit (in percentage of fitness variation) across the given number of generations used to halt the optimization process. ​ | 0.99  | 
-| Lower Bounds ​ | [[Lookup Table Group Type|Lookup Table Group ]]  | The lower limits per alleles. If omitted, the "​Default Lower Bound" is used for missing limits. ​ | None  | +| Lower Bounds ​ | [[Lookup Table Group Type]] ​ | The lower limits per alleles. If omitted, the "​Default Lower Bound" is used for missing limits. ​ | None  | 
-| Upper Bounds | [[Lookup Table Group Type|Lookup Table Group ]]  | The upper limits per alleles. If omitted, the "​Default Upper Bound" is used for missing limits. ​ | None  | +| Upper Bounds ​ | [[Lookup Table Group Type]] ​ | The upper limits per alleles. If omitted, the "​Default Upper Bound" is used for missing limits. ​ | None  | 
-| Meta Heuristic Evaluation Percent ​ | [[Percent Type|Percent  ​]]  | A percentage of individuals whose finesses are obtained via meta-heuristic estimation (in percentage of individuals). ​ | None  | +| Meta Heuristic Evaluation Percent ​ | [[Percent Type]] ​ | A percentage of individuals whose finesses are obtained via meta-heuristic estimation (in percentage of individuals). ​ | None  | 
-| Maximum Log Level  | [[Log Tag Type|Log Tag  ​]]  | Maximum log level used to run the contained functors. ​ | Warning ​ |+| Maximum Log Level  | [[Log Tag Type]] ​ | Maximum log level used to run the contained functors. ​ | Warning ​ |
  
 ===== Outputs ===== ===== Outputs =====
Line 29: Line 28:
 ^ Name ^ Type ^ Description ^ ^ Name ^ Type ^ Description ^
 | Best Individual ​ | [[ Lookup Table Group Type|Lookup Table Group  ]]  | The resulting best individual from all generations. ​ | | Best Individual ​ | [[ Lookup Table Group Type|Lookup Table Group  ]]  | The resulting best individual from all generations. ​ |
-| Best Individual Fitness ​ | [[Double ​Type|Double ​ ​]] ​ | The '​fitness'​ score of the overall best individual. ​ | +| Best Individual Fitness ​ | [[Real Value Type|Real Value  ​]] ​ | The '​fitness'​ score of the overall best individual. ​ | 
-| Worst Fitness Per Generation | [[Double ​Type|Double ​ ​]] ​ | The '​fitness'​ score of the worst individual per generation. ​ |+| Worst Fitness Per Generation | [[Real Value Type|Real Value  ​]] ​ | The '​fitness'​ score of the worst individual per generation. ​ |
  
 ===== Group ===== ===== Group =====
Line 37: Line 36:
  
 ===== Notes ===== ===== Notes =====
 +
 +To calibrate Weights of Evidence coefficients,​ the "​.dcf"​ file representing the Weight of Evidence ranges and coefficients can be converted into the corresponding set of "​.csv"​ tables and back to the original format using the [[weights_of_evidence_file_conversion|ConvertWeightFiles utility]].
 +
 +If the "Meta Heuristic Evaluation Percent"​ parameter is defined, a percent of individuals estimate their corresponding fitness value using the [[wp>​K-nearest_neighbor_algorithm| KNN algorithm]]. To ensure the KNN estimations are accurate, the meta heuristic is used only after a given number of generations (usually after 30% of the total generations).
 +
 +When the convergence is used, it is detected when there is not even a minimum percent (1 - "​Convergence Limit"​) of improvement in the best fitness value in the window formed by the "​Number of Generations"​ last generations.
 +
 +Here is a summary of the algorithm implemented by this functor:
 +
 +1) First, an initial population of "​Population Size" individuals is generated using the initial individual ("​Individual Genotype"​) as a seed and the given bounds as lower and upper limit ("​Upper Bound" and "Lower Bound",​ respectively).
 +
 +2) Basically, there are two different execution modes (controlled by the "Use Convergence Stopping Criteria"​ flag): fixed number of generations ("​Number of Generations"​) or iteration until convergence.
 +
 +3) The fitness value for all individuals is calculated and the individual having the best fitness value is saved internally as the best individual for the current generation.
 +
 +4) A given percent of the individuals is selected based on [[wp>​Tournament_selection|tournament]] results. The selected individuals are reproduced using [[wp>​Crossover_(genetic_algorithm)|crossovers]] and [[wp>​Mutation_(genetic_algorithm)|mutations]] and used to form the next generation.
 +
 +6) If the stopping criteria defined by item 2 was not reached yet, the execution continues at item 3. Otherwise, the individual having the best fitness among all generations is returned. ​
  
 ===== Internal Name =====  ===== Internal Name =====