示例#1
0
        private Behaviour <TGenome> EvaluateGenome(TGenome genome)
        {
            TPhenome phenome = (TPhenome)genome.CachedPhenome;

            if (null == phenome)
            {   // Decode the phenome and store a ref against the genome.
                phenome = _genomeDecoder.Decode(genome);
                genome.CachedPhenome = phenome;
            }

            if (null == phenome)
            {   // Non-viable genome.
                return(new Behaviour <TGenome>(genome, ObjectiveCount)
                {
                    NonViable = true
                });
            }

            // Evaluate the genome!
            Behaviour <TGenome> behaviour = new Behaviour <TGenome>(genome, ObjectiveCount);

            behaviour.Evaluation = _phenomeEvaluator.Evaluate(phenome);

            return(behaviour);
        }