[Quantproject-developers] QuantProject/b7_Scripts/TickerSelectionTesting GenomeManagerForWeightedE
Brought to you by:
glauco_1
|
From: Marco M. <mi...@us...> - 2007-08-29 09:54:57
|
Update of /cvsroot/quantproject/QuantProject/b7_Scripts/TickerSelectionTesting In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv15708/b7_Scripts/TickerSelectionTesting Modified Files: GenomeManagerForWeightedEfficientPortfolio.cs Log Message: Fixed bug in mutation method Index: GenomeManagerForWeightedEfficientPortfolio.cs =================================================================== RCS file: /cvsroot/quantproject/QuantProject/b7_Scripts/TickerSelectionTesting/GenomeManagerForWeightedEfficientPortfolio.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** GenomeManagerForWeightedEfficientPortfolio.cs 3 Jan 2007 23:20:13 -0000 1.6 --- GenomeManagerForWeightedEfficientPortfolio.cs 29 Aug 2007 09:54:51 -0000 1.7 *************** *** 171,183 **** { int returnValue; ! double partOfGeneToSubtractOrAdd = 0.25; ! int geneValue = Math.Abs(genome.GetGeneValue(genePositionToBeMutated)); int subtractOrAdd = GenomeManagement.RandomGenerator.Next(2); if(subtractOrAdd == 1)//subtract a part of the gene value from the gene value itself ! returnValue = geneValue - Convert.ToInt32(partOfGeneToSubtractOrAdd*geneValue); ! else ! returnValue = Math.Min(genome.GetMaxValueForGenes(genePositionToBeMutated), ! geneValue + Convert.ToInt32(partOfGeneToSubtractOrAdd*geneValue)); return returnValue; } --- 171,196 ---- { int returnValue; ! double partOfGeneToSubtractOrAdd = 0.03; ! int geneValue = genome.GetGeneValue(genePositionToBeMutated); int subtractOrAdd = GenomeManagement.RandomGenerator.Next(2); if(subtractOrAdd == 1)//subtract a part of the gene value from the gene value itself ! { ! if( geneValue < 0 ) ! returnValue = Math.Max( geneValue - Convert.ToInt32(partOfGeneToSubtractOrAdd*Math.Abs(geneValue)), ! genome.GetMinValueForGenes(genePositionToBeMutated) ); ! else // geneValue >= 0 ! returnValue = geneValue - Convert.ToInt32(partOfGeneToSubtractOrAdd*Math.Abs(geneValue)); ! } ! else//add a part of the gene value to the gene value itself ! { ! if( geneValue < 0 ) ! returnValue = geneValue + Convert.ToInt32(partOfGeneToSubtractOrAdd*Math.Abs(geneValue)); ! else // geneValue >= 0 ! returnValue = Math.Min(genome.GetMaxValueForGenes(genePositionToBeMutated), ! geneValue + Convert.ToInt32(partOfGeneToSubtractOrAdd*geneValue)); ! } ! return returnValue; + } *************** *** 211,215 **** // a new newalueForGene has to be generated newValueForGene = GenomeManagement.RandomGenerator.Next(genome.GetMinValueForGenes(genePositionToBeMutated), ! genome.GetMaxValueForGenes(genePositionToBeMutated) + 1); genome.SetGeneValue(newValueForGene, genePositionToBeMutated); --- 224,228 ---- // a new newalueForGene has to be generated newValueForGene = GenomeManagement.RandomGenerator.Next(genome.GetMinValueForGenes(genePositionToBeMutated), ! genome.GetMaxValueForGenes(genePositionToBeMutated) + 1); genome.SetGeneValue(newValueForGene, genePositionToBeMutated); |