Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        if (phase == GenetixPhase.EvaluateFitness)
        {
            bool phaseOver = true;

            for (int i = 0; i < population.Length; i++)
            {
                if (population[i].Evaluating)
                {
                    phaseOver = false;
                }
            }

            if (phaseOver)
            {
                phase = GenetixPhase.SCM;
            }
        }

        if (phase == GenetixPhase.SCM)
        {
            Selection();
            Crossover();
            Mutation();
            Evaluate();
        }
    }
Esempio n. 2
0
 void InitializePopulation()
 {
     phase = GenetixPhase.InitializePopulation;
     for (int i = 0; i < population.Length; i++)
     {
         population[i] = new Individual();
     }
 }
Esempio n. 3
0
    void Evaluate()
    {
        phase = GenetixPhase.EvaluateFitness;

        for (int i = 0; i < population.Length; i++)
        {
            var agent = Instantiate(agentPrefab, spawnPoint.position, agentPrefab.transform.rotation).GetComponent <Agent>();
            agent.Individual            = population[i];
            agent.Individual.Evaluating = true;
        }
    }