示例#1
0
        public void Evaluate()
        {
            Griewank function = new Griewank();
            Vector   v1       = new Vector(new double[] { 0, 0, 0 });
            Vector   v2       = new Vector(new double[] { Math.PI / 2, Math.PI / 2 });

            Assert.AreEqual(0, function.Evaluate(v1));
            Assert.AreEqual(1.0012337, function.Evaluate(v2), 1e-7);
        }
示例#2
0
文件: Program.cs 项目: raulGX/IaPso
        public static void Main(string[] args)
        {
            var param = new Parametrii();

            param.W  = 0.729;
            param.C1 = 1.49445;
            param.C2 = 1.49445;

            param.DimensiuneProblema = 3;

            // Rastrigin
            // param.Max = 5.12;
            // param.Min = -5.12;

            // Ackley
            // param.Min = -32.768;
            // param.Max = 32.768;

            // nGriewank
            param.Min = -600;
            param.Max = 600;

            param.NumarIteratii  = 1000;
            param.NumarParticule = 50;
            param.VitezaMaxima   = 1;

            ProblemaDeBaza p   = new Rastrigin();
            var            rez = p.Rezolva(param);

            Console.WriteLine("Cost: " + rez.Cost);
            foreach (var weight in rez.Pozitie)
            {
                Console.Write(weight + " ");
            }

            Console.WriteLine("\nRosenbrock");
            p   = new Rosenbrock();
            rez = p.Rezolva(param);

            Console.WriteLine("Cost: " + rez.Cost);
            foreach (var weight in rez.Pozitie)
            {
                Console.Write(weight + " ");
            }

            Console.WriteLine("\nAckley");
            p   = new Ackley();
            rez = p.Rezolva(param);

            Console.WriteLine("Cost: " + rez.Cost);
            foreach (var weight in rez.Pozitie)
            {
                Console.Write(weight + " ");
            }

            Console.WriteLine("\nGriewank");
            p   = new Griewank();
            rez = p.Rezolva(param);

            Console.WriteLine("Cost: " + rez.Cost);
            foreach (var weight in rez.Pozitie)
            {
                Console.Write(weight + " ");
            }
        }