Beispiel #1
0
    void Start()
    {
        if (runMode == Mode.train)
        {
            GeneticAlgorithm.populationSize = PopulationSize;
            GeneticAlgorithm.tournamentSize = TournamentSize;
            GeneticAlgorithm.childrenNum    = ChildrenSize;

            if (GeneticAlgorithm.population.Count == 0)
            {
                if (loadNodes)
                {
                    List <Node> loadedNodes = saveLoadManager.LoadGeneration();
                    GeneticAlgorithm.population = loadedNodes;
                }
                else
                {
                    GeneticAlgorithm.Init();
                }
            }

            if (GeneticAlgorithm.tuplePopulation.Count == 0)
            {
                if (loadTuples)
                {
                    List <Tuple> loadedTuples = saveLoadManager.LoadTupleGeneration();
                    GeneticAlgorithm.tuplePopulation = loadedTuples;
                }
                else
                {
                    GeneticAlgorithm.InitTuple();
                }
            }

            if (trainTuples)
            {
                slingshot.UseAllBirds();
                ProcessTupleChromosome();
            }
            else
            {
                slingshot.UseOneBird();
                ProcessChromosome();
            }
        }
        else
        {
            if (solutions.Count == 0)
            {
                solutions = saveLoadManager.LoadSolution();
                PlaySolution();
            }
        }
    }