Esempio n. 1
0
        private EnvironmentOf <Cycle> GetEnvironment()
        {
            Cycle foreFather = new Cycle(fitnessFunction.VerticiesCount);

            for (int i = 0; i < foreFather.Verticies.Length; i++)
            {
                foreFather.Verticies[i] = i;
            }

            StartingInfo <Cycle> startingInfo = new StartingInfo <Cycle>(fitnessFunction.Evaluate, foreFather);

            startingInfo.NumberOfRunningThreads = Environment.ProcessorCount;
            startingInfo.MutationRate           = 0.10;
            startingInfo.NewBestCreture         = NewBestFound;

            startingInfo.SizeOfPopulation  = 10_000;
            startingInfo.NumberOfSurvivals = 1_000;

            Random rnd = new Random(42); //todo remove seed

            EnvironmentOf <Cycle> environment = new EnvironmentOf <Cycle>(startingInfo);

            environment.AddMutationProvider(() => new SwichingMutation(environment, rnd.Next()));
            environment.AddMutationProvider(() => new SwichStrings(environment, rnd.Next()));

            environment.DisposedCreatures.SetStoreCreatures();

            return(environment);
        }
Esempio n. 2
0
        public void RunEvolution()
        {
            EnvironmentOf <Cycle> environment = GetEnvironment();

            while (true)
            {
                environment.RunEvolution(1000);
            }
        }
Esempio n. 3
0
 public SwichStrings(EnvironmentOf <Cycle> environment, int rndSeed)
 {
     myEnvironment = environment;
     rnd           = new Random(rndSeed);
 }
Esempio n. 4
0
 public SwichingMutation(EnvironmentOf <Cycle> environment, int seed)
 {
     myEnvironment = environment;
     rnd           = new Random(seed);
 }