Scarica Algoritmi genetici e più Prove d'esame in PDF di Dispositivi elettronici solo su Docsity!
Introduzione agli
Algoritmi Genetici
Maurizio Palesi
Introduzione
n L’obiettivo di creare l’ intelligenza artificiale
risale alle origini dell’era informatica
n Già i primi informatici inseguivano il sogno
di instillare nei programmi l’intelligenza
èLa capacità di duplicarsi e di imparare , nonché
quella di controllare l’ambiente circostante
Ispirarsi all ’ Evoluzione
n Perché ispirarsi all’evoluzione per risolvere
problemi computazionali?
èE’ necessario ricercare la soluzione tra un
numero enorme di possibili alternative
üEs., Individuare una proteina con determinate
proprietà tra un numero enorme di possibili
sequenze di amminoacidi
èE’ necessario che un programma funzioni
anche quando l’ambiente cambia
üEs., Problemi di controllo dei robot
Evoluzione
n L’evoluzione è un processo continuo
distribuito su una scala temporale ampia
che cambia una popolazione di organismi
generando prole via via migliore attraverso
la riproduzione
Applicazioni
n Ottimizzazione (es., addestramento di reti neurali,
minimizzazione di funzioni costo, layout di circuiti,
scheduling, …)
n Predizione (es., previsioni meteorologiche,
disposizione spaziale di proteine, …)
n Classificazione (es., verifica di qualità, …)
n Economia (es., strategie d’offerta, valutazione del
mercato, …)
n Ecologia (es., competizione biologica,
coevoluzione ospite-parassita, …)
Indicati per...
n Ricerca in spazi di dimensionalità elevata
èMultimodali
èNon “smooth”
n Funzioni con rapporto S/N elevato
èDi cui non si conosce la formulazione analitica
èO tale formulazione è estremamente
complessa
n Convergenza sub-ottima ma in un tempo
ragionevole
Simulare l ’ Evoluzione
n Ricombinazione
èGenerare nuove soluzioni “mescolando” due o
più soluzioni esistenti
n Mutazione
èCambiamenti casuali nella soluzione
Problemi di Ottimizzazione
n Lo spazio delle soluzioni possibili contiene
una o più soluzioni accettabili
èEventualmente alcune ottime e altre sub-ottime
n Gli algoritmi di ricerca servono a localizzare
tali soluzioni evitando di esplorare tutte le
soluzioni possibili
Algoritmo Genetico
Genera una popolazione iniziale Valuta la funzione obiettivo Individuo migliore Criterio ottimizzazione Selezione Ricombinazione Mutazione Si No Ingresso Uscita
Algoritmo Genetico
n 1. [Inizia] Genera una popolazione casuale di n cromosomi (soluzioni plausibili
- genitori) n 2. [Fitness] Valuta la fitness f ( x ) di ciascun cromosoma x nella popolazione corrente n 3. [Nuova popolazione] Crea una nuova popolazione (prole) attraverso è [Selezione] Seleziona i cromosomi genitori in base alla loro fitness è [Ricombinazione] Con una certa probabilità di ricombinazione incrocia due genitori per generare un nuovo figlio. Se la ricombinazione ha probabilità nulla, il figlio è una copia esatta dei genitori è [Mutazione] Con una certa probabilità di mutazione cambia gli elementi che costituiscono il figlio è [Accettazione] Introduce il nuovo figlio nella popolazione n 4. [Verifica] Se la condizione di uscita è soddisfatta, la soluzione del problema è rappresentata dall’elemento nella popolazione che presenta la migliore fitness n 5. [Ciclo] Vai al passo 2.
Codifica del Cromosoma
n Il primo passo per sviluppare un GA
consiste nel definire la codifica della
soluzione
èUn cromosoma deve contenere l’informazione
sulla soluzione che rappresenta
èLa codifica dipende dal problema da risolvere
üNumeri interi, numeri reali, permutazione, alberi di
parsing, …
Codifica del Cromosoma
n La modalità usuale di codifica consiste
nell’utilizzare una stringa binaria
èCiascun bit nella stringa rappresenta una
qualche caratteristica della soluzione
n Esempio di cromosoma
èRappresentazione binaria di un numero intero
Cromosoma 1: 1 1 0 1 1 0 0 1 0 0 1 1 0 1 1 0 Cromosoma 2: 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 0
Codifica Implicita
- Capacità dello zaino
- Anello Oggetto Valore Dimensione
- Anello
- Anello
- Orologio
- Collana
- Candelabro
- Candelabro
- Quadro
- Quadro
- Quadro
- Quadro
- Pelliccia
- Anello … … …
- Anello
- Anello
- Orologio
- Collana
- Candelabro
- Candelabro
- Quadro
- Quadro
- Quadro
- Quadro
- Pelliccia
Codifica Binaria (8 bit)
n Numero intero compreso tra 0 e 255
n Numero reale compreso tra 0 e 10
Genotipo 163 Fenotipo 128 + 32 + 2 + 1 = 163 1 0 1 0 0 0 1 1 = Genotipo
Fenotipo (163/255)*