示例#1
0
        public SortedSubset(IRandom random, IParameterSet parameterSet, IList <INeighborhoodConflictDetector> conflictDetectors = null)
        {
            var size = parameterSet.GetInt("ProblemSize");

            parameterSet.SetValueRange(GetParameters());

            ConflictDetectors = conflictDetectors;

            _creators = new List <IChromosomeCreator>()
            {
                new SortedSubsetLeftToRightCreator(size, random, conflictDetectors)
            };

            _crossovers = new List <ICrossover>()
            {
                new TwoPointCrossover(random, parameterSet, conflictDetectors),
                new OnePointCrossover(random, parameterSet, conflictDetectors)
            };

            _mutations = new List <IMutation>()
            {
                //new CreateNewSectionMutation(random, parameterSet, conflictDetector),
                new EliminateSectionMutation(random, parameterSet, conflictDetectors),
                new ReplaceOneGeneMutation(random, parameterSet, conflictDetectors),
                new SwapThreeRangeMutation(random, parameterSet, conflictDetectors),
                new SwapTwoRangeMutation(random, parameterSet, conflictDetectors)
            };
        }
示例#2
0
        public Permutation(IRandom random, IParameterSet parameterSet, IList <IConflictDetector> conflictDetectors)
        {
            var size = parameterSet.GetInt("ProblemSize");

            _creators = new List <IChromosomeCreator>()
            {
                new PermutationRandomCreator(size, random, conflictDetectors)
            };

            _crossovers = new List <ICrossover>()
            {
                new DoNothingCrossover(random, parameterSet, conflictDetectors),
                new Order1Crossover(random, parameterSet, conflictDetectors),
                new PMXCrossover(random, parameterSet, conflictDetectors)
            };

            _mutations = new List <IMutation>()
            {
                new RelocateRangeMutation(random, parameterSet, conflictDetectors),
                new InverseRangeMutation(random, parameterSet, conflictDetectors),
                new SwapTwoRangeMutation(random, parameterSet, conflictDetectors),
                new ShuffleRangeMutation(random, parameterSet, conflictDetectors),
                new RelocateOneMutation(random, parameterSet, conflictDetectors)
            };
        }
示例#3
0
        public BitVector(IRandom random, IParameterSet parameterSet, IList <IConflictDetector> conflictDetectors)
        {
            var size = parameterSet.GetInt(ParameterNames.ProblemSize);

            _creators = new List <IChromosomeCreator>()
            {
                new BitVectorZeroCreator(size, random, conflictDetectors),
                new BitVectorRandomCreator(size, random, conflictDetectors)
            };

            parameterSet.SetValueRange(GetParameters());

            _crossovers = new List <ICrossover>()
            {
                new DoNothingCrossover(random, parameterSet, conflictDetectors),
                new TwoPointCrossover(random, parameterSet, conflictDetectors)
            };

            _mutations = new List <IMutation>()
            {
                new DoNothingMutation(random, parameterSet, conflictDetectors),
                new OneGeneMutation(random, parameterSet, conflictDetectors)
            };
        }