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);
        }