Пример #1
0
        private static double tethaFunctionValue(Individual tetha2, List<Individual> population)
        {
            double result = 0;
            result += Math.Pow(tetha2.EuclideanNorm(),2) / 2 * Math.Pow(sigma, 2);

            for (int row = 0; row < population.Count; row++)
            {
                for (int col = row; col < population.Count; col++)
                {
                    if (row == col) continue;
                    Individual newIndiv = new Individual(population[row] - population[col]);
                    double localValue = newIndiv.DotProduct(tetha2.Weights);
                    double gOfXY = Math.Log(Math.Exp(localValue) + Math.Exp(-localValue));
                    localValue = localValue * (double)(numberOfGames - 2 * population[row].Labels[col]) + (double)numberOfGames * gOfXY;
                    result += localValue;

                }
            }
            return result;
        }