[Quantproject-developers] QuantProject/b1_ADT/Optimizing/Genetic GeneticOptimizer.cs,1.2,1.3
Brought to you by:
glauco_1
|
From: Marco M. <mi...@us...> - 2005-05-17 23:01:07
|
Update of /cvsroot/quantproject/QuantProject/b1_ADT/Optimizing/Genetic In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16343/b1_ADT/Optimizing/Genetic Modified Files: GeneticOptimizer.cs Log Message: Fixed bug: population size and generation number are now properly initialized by a new constructor Index: GeneticOptimizer.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b1_ADT/Optimizing/Genetic/GeneticOptimizer.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** GeneticOptimizer.cs 14 Dec 2004 21:26:54 -0000 1.2 --- GeneticOptimizer.cs 17 May 2005 23:00:57 -0000 1.3 *************** *** 129,138 **** /// IGenomeManager interface /// Default GO parameters: crossoverRate = 0.85, mutationRate = 0.02, elitismRate = 0.01, - /// populationSize = 1000, generationNumber = 100 /// keepOnRunningUntilConvergenceIsReached = false, minConvergenceRate = 0.80 /// </summary> ! public GeneticOptimizer(IGenomeManager genomeManager) { this.genomeManager = genomeManager; this.commonInitialization(); --- 129,140 ---- /// IGenomeManager interface /// Default GO parameters: crossoverRate = 0.85, mutationRate = 0.02, elitismRate = 0.01, /// keepOnRunningUntilConvergenceIsReached = false, minConvergenceRate = 0.80 /// </summary> ! public GeneticOptimizer(IGenomeManager genomeManager, int populationSize, ! int generationNumber) { this.genomeManager = genomeManager; + this.populationSize = populationSize; + this.generationNumber = generationNumber; this.commonInitialization(); *************** *** 325,329 **** i--) { ! this.currentEliteToTransmitToNextGeneration.Add((Genome)this.currentGeneration[i]); } } --- 327,332 ---- i--) { ! if(this.currentGeneration[i] is Genome) ! this.currentEliteToTransmitToNextGeneration.Add((Genome)this.currentGeneration[i]); } } *************** *** 332,340 **** { for(int i = 0; ! i < this.currentEliteToTransmitToNextGeneration.Count-1; i++) { ! this.nextGeneration.Add(this.currentEliteToTransmitToNextGeneration[i]); } } --- 335,343 ---- { for(int i = 0; ! i < this.currentEliteToTransmitToNextGeneration.Count; i++) { ! this.nextGeneration.Add((Genome)this.currentEliteToTransmitToNextGeneration[i]); } } *************** *** 408,415 **** { this.currentGeneration.Clear(); ! // Note that next generation is greater than current: // due to the population size, genomes with lowest fitness are abandoned for (int i = 1 ; i <= this.populationSize; i++) ! this.currentGeneration.Add(this.nextGeneration[this.nextGeneration.Count - i]); } --- 411,419 ---- { this.currentGeneration.Clear(); ! int numOfNextGeneration = this.nextGeneration.Count; ! // Note that next generation is greater than current: // due to the population size, genomes with lowest fitness are abandoned for (int i = 1 ; i <= this.populationSize; i++) ! this.currentGeneration.Add(this.nextGeneration[numOfNextGeneration - i]); } |