Sto programmando Algoritmo Genetico in C ++ e dopo aver cercato tutti i tipi di modi di fare gli operatori GA'a (selezione, crossover, mutazione) ho trovato un dubbio.
Diciamo che ho una popolazione iniziale di 500. La mia selezione consisterà nell'ottenere il primo 20% di 500 (basato sulla migliore forma fisica). Quindi ottengo 100 individui da accoppiare. Quando faccio il crossover, otterrò 2 bambini in cui entrambi insieme hanno il 50% di sopravvivenza. Fin qui tutto bene. Comincio la mutazione, e tutto va bene .. Ora quando comincio a scegliere la prossima generazione, vedo che ho un gran numero di bambini (in questo caso, 4950 se vuoi saperlo). Ora il fatto è che, ogni volta che eseguo GA, se invio tutti i bambini alla generazione successiva, il numero di individui per generazione aumenterà in modo esponenziale.
Quindi ci deve essere un modo di scegliere i bambini per realizzare una nuova generazione senza uscire da questo intervallo della popolazione iniziale.
Quello che sto chiedendo qui è se c'è comunque la possibilità di scegliere i bambini per riempire le nuove generazioni OPPURE dovrei scegliere in qualche modo (e forse ridurre) i genitori ad accoppiarsi in modo da non ottenere così tanti bambini alla fine.