Fondamenti di Informatica

Relazione su Genetic Programming

La programmazione genetica è un metodo automatizzato per creare un programma software funzionante a partire dall'enunciazione di alto livello di un problema. O meglio essa è un metodo per rendere un computer in grado di risolvere automaticamente un problema dicendogli 'cosa deve essere fatto' invece di 'come farlo'. Con la programmazione genetica: il computer impara a programmarsi. A partire dal 'brodo primordiale' (fase di generazione) costituito da migliaia di programmi software creati casualmente, una popolazione di programmi si è progressivamente evoluta in una serie di generazioni (fase di selezione). La ricerca evolutiva usa il principio darwiniano della sopravvivenza del più adatto ed è riprodotto secondo il naturale succedersi delle funzioni, incluso l'incrocio o scambio (ricombinazione sessuale, crossover), mutazioni, duplicazione genetica, degenerazione dei geni e certi aspetti del processo di sviluppo secondo cui gli embrioni diventano degli organismi sviluppati ( valutazione, reiterazione ). La programmazione genetica si sta impegnando nella ricerca e nello sviluppo, attività queste finalizzate a produrre risultati competitivi con quelli umani. Come esempi di settori nei quali si sta applicando la programmazione genetica citiamo:
la sintesi automatizzata di circuiti elettrici;
la sintesi automatizzata di controlli; i problemi nella biologia molecolare, includendo i processi metabolici e il codice genetico;
altri problemi di vario tipo che riguardano gli automatismi cellulari ed altre altre aree di progettazione.
S i utilizza la programmazione genetica come una 'macchina inventrice' automatizzata per creare nuove invenzioni brevettabili. I metodi evolutivi, come la programmazione genetica, hanno il vantaggio di non essere gravati da preconcetti che limitano la risoluzione dei problemi umani con metodologie già usate. Un risvolto interessante della ricerca logica e psicologica sulla natura dei processi conoscitivi risiede nella possibilità di individuare degli elementi utili alla realizzazione di procedure informatiche "intelligenti", in grado cioè di apprendere direttamente dall'esperienza le categorie e le regole necessarie alla rappresentazione della conoscenza. Di seguito un riassunto del ciclo esecutivo:





















































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.