Skip to main content

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 elaborazione bio-ispirata. 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 dei file di immagine.

Il passaggio successivo 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 che i primi programmi sono stati selezionati, 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 ad esso, si spera in meglio.Crossover, chiamato anche riproduzione, funziona prendendo due dei migliori programmi e combinandoli elementi per creare nuovi programmi.

Dopo aver creato un nuovo lotto di programmi, il GP ripete il processo di gestione e valutarli, quindi ripete la selezione, eliminazione e processi di 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 calcolo, tra cui ingegneria robotica e problemi di intelligenza artificiale.