Cos'è la programmazione genetica?
La programmazione genetica è il processo di utilizzo di un programma per computer per scrivere un altro programma per computer utilizzando la metodologia evolutiva basata su algoritmo. Questo processo viene spesso confrontato con la programmazione lineare, in cui il programmatore scrive istruzioni specifiche per il computer. LISP e Schema sono i linguaggi di programmazione più comuni per questo tipo di lavoro a causa della loro funzionalità e flessibilità di alto livello. Come risultato della sua somiglianza concettuale con l'evoluzione biologica, la programmazione genetica è spesso citata come esempio di calcolo ispirato a bio-ispirato. I programmi genetici (GPS) funzionano generando e eseguendo migliaia di programmi e sceglie i più efficaci da usare. Ad esempio, un GP potrebbe essere utilizzato per creare un programma per disegnare uno schizzo di una fotografia. La prima cosa che il GP farebbe è creare una serie di programmi che utilizzano varie funzioni di disegno di computer in combinazioni casuali. Quindi il GP eseguirà ciascuno di questi programmi in ordine, producendo i risultati di ciascuno in immagineFile.
Il prossimo passo per il GP è selezionare il meglio di quei programmi dal set. Questo processo è generalmente la parte più difficile della programmazione genetica. Nel caso del programma di disegno, il GP avrebbe utilizzato il software di confronto delle immagini per determinare quale dei disegni casuali fosse molto simile all'immagine che il software stava tentando di disegnare. Dei programmi generati in modo casuale, il GP selezionerebbe i primi e scartare il resto. Il processo di selezione è noto come valutazione del fitness ed è generalmente considerato la parte più difficile della programmazione genetica.
Una volta selezionati i pochi programmi principali, il GP li utilizzerà come base di un nuovo lotto di programmi. Ogni nuovo batch è chiamato generazione. I due modi per creare la nuova generazione sono la mutazione e il crossover. La mutazione funziona prendendo uno dei programmi esistenti e apportando modifiche casuali, si sperameglio. Il crossover, chiamato anche l'allevamento, funziona prendendo due dei migliori programmi e combinandoli elementi per creare nuovi programmi.
Dopo aver creato un nuovo batch di programmi, il GP ripete il processo di gestione e valutazione, quindi ripete i processi di selezione, eliminazione e generazione. Il GPS eseguirà spesso centinaia di generazioni prima di trovare un singolo programma con un risultato soddisfacente. Nonostante questa limitazione, la programmazione genetica è un modo comune per risolvere alcuni tipi di difficili problemi di elaborazione, tra cui ingegneria robotica e problemi di intelligenza artificiale.