本文整理汇总了C#中Population.MatePairing方法的典型用法代码示例。如果您正苦于以下问题:C# Population.MatePairing方法的具体用法?C# Population.MatePairing怎么用?C# Population.MatePairing使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Population
的用法示例。
在下文中一共展示了Population.MatePairing方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Run
// MAIN FUNCTION
public static bool Run( RandomGeneSig getRandomGeneFunc, FitnessSig getPopFitnessFunc )
{
// Runs the EA algorythm, returns true if goal is achieved, false if time is exceeded
// local variables
bool goalAchieved;
double bestFitness, avrFitness;
double[] popFitness = new double[G.popSize];
double[][] genes;
// Create a random population of creatures
myPop = new Population( G.popSize, G.geneLen, getRandomGeneFunc );
// MAIN LOOP
while( true ) {
// Evaluate and sort population
genes = myPop.GetGenes();
myPop.GetFitness( ref popFitness );
goalAchieved = getPopFitnessFunc( genes, ref popFitness, out bestFitness, out avrFitness );
myPop.SetFitness( popFitness, bestFitness, avrFitness );
myPop.Sort();
//myPop.Print( "EVALUATED", false );
//Console.ReadKey( true );
// Are we done?
if( goalAchieved ) break;
// Mate Selection
myPop.SelectToMate( showStepsFlag: true );
myPop.MatePairing();
// Create New Creatures
myPop.CreateOffspring();
myPop.Mutate();
// Death Selection
myPop.SelectToDie( showStepsFlag: false );
// Pause or continue
PausePrintContinue();
// Update population (genes)
myPop.InsertNewOffspring();
myPop.IncGeneration();
}
// success
myPop.Print( "(SUCCESS)", false );
FFNN answer = new FFNN( G.netDef, myPop.creatures[0].Gene);
Console.WriteLine( answer.ToString() );
return goalAchieved;
}