Exemplo n.º 1
0
        public double MeasureDiversity(Utility.SortList <AIPlayer> individuals)
        {
            int    maxDist = individuals.Get(0).Chromosome.Length;
            int    count   = individuals.Count;
            double sum     = 0;

            for (int i = 0; i < count; i++)
            {
                for (int p = i + 1; p < count; p++)
                {
                    sum += LevenshteinDistance(individuals.Get(i).Chromosome.Bitstring, individuals.Get(p).Chromosome.Bitstring);
                }
            }
            //calculate average distance between any two strings, and normalize to lie in range 0.0-1.0
            return((sum / (count * (count - 1) / 2)) / maxDist);
        }
Exemplo n.º 2
0
        public double MeasureDiversity(Utility.SortList <AIPlayer> individuals)
        {
            //calculate average hamming distance between any two strings
            int size         = individuals.Count;
            int hammingTotal = 0;

            for (int i = 0; i < size; i++)
            {
                for (int p = i + 1; p < size; p++)
                {
                    hammingTotal += SingleHammingDistance(individuals.Get(i).Chromosome.Bitstring, individuals.Get(p).Chromosome.Bitstring);
                }
            }
            //calculate average between any two strings, and normalize to lie in range 0.0-1.0
            int maxVal = individuals.Get(0).Chromosome.Bitstring.Length;

            return((hammingTotal / (double)(size * (size - 1) / 2)) / maxVal);
        }