gameame / genoken

3 stars 0 forks source link

Tirando le somme del pranzo a base di nduja che non c'era... #2

Open sterte opened 15 years ago

sterte commented 15 years ago

I punti foindamentali elencati oggi, provo a ricordarmeli tutti, sono:

1)popolazione iniziale che sia diversificato e con stringhe di varie lunghezze

2)operatore di ricombinazione che modifichi (non monotonicamente) la lunghezza delle stringhe

3)operatori di mutazione che siano caotici

4)definire reproduction rate

5)definire fitness function

6)dimensione della popolazione costante (o con leggere oscillazioni)

provo a pseudocodificare comprendendo tutti i punti:

-inizializza popolazione [1]

-while(true)

--esegui confronto tra coppia casuale

--aggiorna fitness (ad esempio num. "vittorie"/ num. "partite")[5]

--for each N fitness (oppure for each fitness with some probability)[4]

----pesca con probabilità proporzionale alla loro fitnessM coppie di stringhe

----ricombina stringhe (es prendi due punti di cutoff indipendenti, uno per stringa e ricombina (da 2 genitori si ottengono due figli))[2]

----con prob. bassa muta i figli (definire mutazione) [5]

----elimina i 2M individui con fitness minore (salvaguardando i neonati)[6]

gameame commented 15 years ago

Ho letto il tutorial che hai messo nei link. Ancora non sono convinto che dobbiamo tenere una popolazione costante. Da quello che ho capito la grandezza della popolazione dovrebbe dipendere dalla lunghezza del cromosoma, che nel nostro caso è la stringa. Ma noi non abbiamo una lunghezza fissa, abbiamo una lunghezza che potenzialmente è in continuo aumento. Inoltre noi non stiamo cercando una soluzione, ma diverse "soluzioni" che non dovrebbero essere necessariamente soppiantare da quelle nuove.