예제 #1
0
파일: ZDT1.cs 프로젝트: CRIAAC/CSharpMetal
        /**
          * Creates a new instance of problem ZDT1.
          * @param numberOfVariables Number of variables.
          * @param solutionType The solution type must "Real", "BinaryReal, and "ArrayReal".
          */
        public ZDT1(String solutionType, int numberOfVariables)
        {
            NumberOfVariables = numberOfVariables;
            NumberOfObjectives = 2;
            NumberOfConstraints = 0;
            ProblemName = "ZDT1";

            UpperLimit = new double[NumberOfVariables];
            LowerLimit = new double[NumberOfVariables];

            // Establishes upper and lower limits for the variables
            for (int var = 0; var < NumberOfVariables; var++)
            {
                UpperLimit[var] = 0.0;
                UpperLimit[var] = 1.0;
            } // for

            if (string.Equals(solutionType, "BinaryReal", StringComparison.InvariantCultureIgnoreCase))
            {
                TypeOfSolution = new BinaryRealSolutionType(this);
            }
            else if (string.Equals(solutionType, "Real", StringComparison.InvariantCultureIgnoreCase))
            {
                TypeOfSolution = new RealSolutionType(this);
            }
            else if (string.Equals(solutionType, "ArrayReal", StringComparison.InvariantCultureIgnoreCase))
            {
                TypeOfSolution = new ArrayRealSolutionType(this);
            }
            else
            {
                throw new Exception("Error: solution type " + solutionType + " invalid");
            }
        }
예제 #2
0
파일: DTLZ1.cs 프로젝트: CRIAAC/CSharpMetal
        public DTLZ1(String solutionType,
                     int numberOfVariables,
                     int numberOfObjectives)
        {
            NumberOfVariables = numberOfVariables;
            NumberOfObjectives = numberOfObjectives;
            NumberOfConstraints = 0;
            ProblemName = "DTLZ1";

            LowerLimit = new double[NumberOfVariables];
            UpperLimit = new double[NumberOfVariables];
            for (int var = 0; var < numberOfVariables; var++)
            {
                LowerLimit[var] = 0.0;
                UpperLimit[var] = 1.0;
            }

            if (string.Equals(solutionType, "BinaryReal", StringComparison.InvariantCultureIgnoreCase))
            {
                TypeOfSolution = new BinaryRealSolutionType(this);
            }
            else if (string.Equals(solutionType, "Real", StringComparison.InvariantCultureIgnoreCase))
            {
                TypeOfSolution = new RealSolutionType(this);
            }
            else
            {
                throw new Exception("Error: solution type " + solutionType + " invalid");
            }
        }