AGENTI CHE RISOLVONO PROBLEMI Ottimizzazione euristica - PowerPoint PPT Presentation

About This Presentation
Title:

AGENTI CHE RISOLVONO PROBLEMI Ottimizzazione euristica

Description:

AGENTI CHE RISOLVONO PROBLEMI Ottimizzazione euristica E.Mumolo mumolo_at_units.it Il problema della ottimizzazione Componenti: Un insieme di variabili indipendenti Un ... – PowerPoint PPT presentation

Number of Views:85
Avg rating:3.0/5.0
Slides: 38
Provided by: EM53
Category:

less

Transcript and Presenter's Notes

Title: AGENTI CHE RISOLVONO PROBLEMI Ottimizzazione euristica


1
AGENTI CHE RISOLVONO PROBLEMI Ottimizzazione
euristica
  • E.Mumolo
  • mumolo_at_units.it

2
Il problema della ottimizzazione
  • Componenti
  • Un insieme di variabili indipendenti
  • Un insieme di condizioni sulle variabili
    (vincoli)
  • Una funzione obiettivo
  • Soluzione
  • I valori delle variabili che, rispettando i
    vincoli, portano la funzione obiettivo ad un
    valore ottimo
  • In forma generale

Con i vincoli
3
Lo spazio di ricerca della soluzione
  • Descritto da
  • Numero di dimensioni
  • Dominio di ciascuna dimensione
  • Discreto
  • Limitato
  • Reale
  • Natura della relazione tra vettori di ingresso e
    funzione obiettivo
  • Continua
  • Discontinua
  • Ricerca locale nello spazio di ricrca non tiene
    conto delle soluzioni precedenti
  • Considera solo la soluzione corrente
  • Usa un metodo per generare soluzioni alternative.

4
Una tassonomia approssimata delle tecniche di
ottimizzazione
ottimizzazione
Tecniche enumerative
Tecniche euristiche
BFS
DFS
Programmazione dinamica
Algoritmi evoluzionistici
Tabu Search
Hill Climbing
Simulated Annealing
Programmazione genetica
Algoritmi genetici
5
Tecniche euristiche
  • Tecniche per la soluzione di problemi mediante
    algoritmi iterativi che selezionano via via la
    soluzione più appropriata tra quelle ottenute a
    ciascun passo. Tra queste
  • Tabu search. Definisce come muoversi localmente
    da una soluzione allaltra usando una tabella
    delle soluzioni visitate recentemente
  • Hill Climbing parte da un punto e cerca punti
    con migliore funzione obiettivo
  • Ant colony optimization risolve problemi che
    possono essere ridotti alla ricerca di cammini
    ottimi in un grafo. Idea le formiche in cerca di
    cibo esplorano a caso lambiente e quando lo
    trovano ritornano alla colonia lasciando tracce
    chimiche, eventualmente rinforzate da altre
    formiche
  • Simulated annealing ricerca la soluzione
    generando soluzioni vicine alla corrente.
    Soluzioni che portano a un valore superiore sono
    sempre accettate. Soluzioni che portano a un
    valore inferiore sono accettate
    probabilisticamente
  • Genetic algorithms mantiene un insieme di
    soluzioni che evolvono usando i principi della
    evoluzione Darwiniana

6
Hill Climbing
  • varianti
  • stochastic hill climbing
  • Non sceglie sempre il migliore
  • first-choice hill climbing
  • Prende il primo buon successore (utile se il
    numero di successori è grande)
  • random restart
  • Cerca il punto migliore da diversi punti di
    partenza
  • Ovviamente la probabilità di trovare il massimo
    aumeta con laumentare del numero di tentativi

7
Algoritmi di ottimizzazione mediante Simulated
Annealing
  • Simulated Annealing ( tempera simulata)
  • Idea imitare quello che succede nel processo di
    tempera
  • la tempera è il processo nel quale il metallo
    viene riscaldato e poi raffreddato lentamente
  • Il materiale temperato viene arriva ad uno stato
    a minore energia nel quale le molecle si
    assestano su una posizione più stabile

8
Riassunto dellalgoritmo di minimizzazione
  • selezione dei parametri iniziali
  • perturba i parametri
  • Valutazione
  • Se v lt v accetta la perturbazione
  • Altrimenti accetta la perturbazione con
    Prob(E,T)
  • Test di Metropolis
  • Ripeti con stato e temperatura aggiornati

9
Test di Metropolis
  • Si approssima lallineamento delle molecole in
    natura consentendo le transizioni verso lalto
    con qualche probabilità
  • Prob (nello stato ad energia E)
  • Funzione di distribuzione di probabilità
  • di Boltzmann (Z normalizz., k cost.Boltzmann)
  • Anche quando T è piccola, cè una
  • possibilità di accettazione
  • Prob (accettazione)
  • Metropolis
  • if E2 lt E1, prob () gt 1
  • if E2 gt E1, possiamo trasferirci ad uno stato ad
    energia maggiore
  • La velocità alla quale si decrementa T e la
    quantità di decremento è stabilito da una
    sequenza di tempera prestabilita (annealing
    schedule)

10
Pseudocodice del Simulated annealing
Fissa un valore iniziale del parametro T
sufficientemente alto T0 Fissa la configurazione
iniziale i0 Ripeti Ripeti Perturba la
configurazione attuale i?j Calcola
Dcc(i)-c(j) Se Dc 0 Allora Accetta la
configurazione j Altrimenti Se (exp(-Dc/T)
Random(0,1)) Allora Accetta la
configurazione j FineSe FinoAQuando(lequilib
ro termico è bene approssimato) Decrementa
T FinoAQuando(il criterio di stop è verificato)
11
Proprietà
  • Lalgoritmo può essere considerato come una
    successione di catene di Markov omogenee
  • Si può realizzare delle catene non omogenee
    diminuendo la temperatura ad ogni iterazione
  • Si può dimostrare che se T scende abbastanza
    lentamente, il processo converge allottimo
    globale con probabilità 1
  • presentato in Kirkpatrick, Gelatt and Vecchi,
    Optimization by Simulated Annealing, Science,
    220(4598)498-516, May 1983 per problemi di
    routing VLSI
  • semplice da utilizzare per lottimizzazine
    vincolata

12
Sequenze di raffreddamento
  • La temperatura iniziale, la temperatura finale e
    la sequenza di raffreddamento sono determinate
    sperimentalmente
  • Alcuni schemi
  • t at, dove a è tipicamente intorno a 0.95
  • t e-bt t, dove b è tipicamente intorno a 0.7
  • ......

13
Parametri di SA
  • Valore iniziale di temperatura
  • determina lefficienza dellalgoritmo
  • un valore troppo basso fà convergere lalgoritmo
    ad un minimo locale
  • un valore troppo alto fà si che le prime catene
    siano superflue
  • possibile modo di determinare T0
  • Si fissa un valore arbitrario
  • si esegue un certo numero di iterazioni
  • si calcola il rapporto tra il numero di
    transizioni accettate e il numero di transizioni
    proposte
  • se il rapporto è superiore a un numero prefissato
    (tipicamente 0.8), allora il valore di T0
    proposto viene accettato, altrimenti si raddoppia
    tale valore e si ripete da 2.

14
Algoritmi Genetici (GA)
  • Tecnica di ottimizzazione euristica prende come
    modello il processo di evoluzione biologica
  • NB IL PROCESSO DI EVOLUZIONE BIOLOGICO E
    GROSSOLANAMENTE APPROSSIMATO!!!
  • Proposta da John Holland nel 1975
  • Uno sguardo sul suo modo di operare
  • mantiene una popolazione di possibili soluzioni
    al problema
  • Gestisce la loro evoluzione applicando concetti
    di evoluzione naturale e ereditarietà genetica
  • Questi concetti sono applicati mediante Operatori
    Stocastici
  • Selezione
  • Ricombinazione
  • Mutazione

15
Operatori stocastici
  • Selezione preferisce le soluzioni migliori nella
    popolazione ? definizione della qualità di una
    soluzione
  • Ricombinazione prende due soluzioni distinte e
    genera nuove soluzioni ricombinandole a caso
  • Mutazione perturba a caso una soluzione

16
Il processo preso a modello
Evoluzione naturale
Problema adattarsi allambiente
Attori gli individui viventi in quellambiente
Il metro di giudizio la capacità degli individui di adattarsi allambiente
Algoritmi genetici
Problema trovare lottimo globale di una funzione
Attori le possibili soluzioni
Il metro di giudizio valore della funzione da ottimizzare, chiamata fitness
Modalità di evoluzione applicazione iterativa degli Operatori Stocastici Modalità di evoluzione selezione, ricombinazione e mutazione genetica delle specie viventi
Risultato la popolazione di soluzioni cambia cercando di massimizzare la funzione Risultato le specie viventi si adattano allambiente
17
Ottimizzazione Genetica pseudocodice
Genera la popolazione iniziale di
soluzioni Valuta la fitness di ogni
soluzione while (condizione di termine non
raggiunta) do seleziona le soluzioni per la
riproduzione ricombina le soluzioni
selezionate mutazione delle soluzioni valuta
la fitness delle soluzioni modificate genera
una nuova popolazione rimpiazzando la popolazione
iniziale con le soluzioni modificate done
18
GA
  • for(gen0 genltmaxgen gen)
  • fprintf(outfp,"\nRUN d of d
    GENERATION d-gtd\n",run,maxruns,gen,maxgen)
  • application() /application
    dependent routines/
  • generation() / create a new
    generation /
  • statistics(newpop) / compute
    fitness statistics on new populations /
  • report() / report
    results for new generation /
  • temp oldpop / advance the
    generation /
  • oldpop newpop
  • newpop temp

19
Evoluzione
selezione
riproduzione
valutazione
Genera la popolazione
20
Esempio
  • massimizzare la funzione f(x)x2 con x tra 0 e 31
  • struttura dati

...
cromosoma
individuo i
genitori
eventuali variabili utili
individuo i1
...
21
Esempio
  • inzializzazione a caso di una popolazione di 4
    individui con cromosoma lungo 5
  • --------------------------------------------------
    ------------------------------
  • 1) 11010 v11 121.000000
  • 11101 v23 529.000000
  • 11101 v23 529.000000
  • 00011 v24 576.000000
  • --------------------------------------------------
    ------------------------------

22
Codice inizializzazione
Inizializzazione della popolazione
initpop() int j, j1, k, stop unsigned
mask 1 for(j 0 j lt popsize j)
for(k 0 k lt chromsize k)
oldpopj.chromk 0
if(k (chromsize-1)) stop
lchrom - (kUINTSIZE) else
stop UINTSIZE for(j1 1 j1
lt stop j1)
oldpopj.chromk oldpopj.chromkltlt1
if(flip(0.5))
oldpopj.chromk oldpopj.chromkmask
oldpopj.parent0
0 / Initialize parent info. /
oldpopj.parent1 0 oldpopj.xsite
0 objfunc((oldpopj)) / Evaluate
initial fitness /
23
Selezione
  • Metodo della ruota della roulette
  • Si ripete la selezione tante volte quanti sono
    gli individui che devono avere gli stessi genitori

Lindividuo i ha una probabilità pari a
di essere scelto
questarea è proporzionale al valore della
fitness
24
Codice selezione
Selezione
  • int rws(struct individual pop)
  • float rand, partsum
  • int j,k
  • float randomperc()
  • sumfitness0
  • for(j 0 j lt popsize j)
  • sumfitness sumfitness popj.fitness
    //trova la fitness totale
  • rand randomperc() sumfitness
  • partsum0. j0
  • do
  • partsum popj.fitness
  • j

25
Esempio
Crossover. Prima
s1 1111010101 s2 1110110101
s5 0100010011 s6 1110111101
Dopo
s1 1110110101 s2 1111010101
s5 0100011101 s6 1110110011
26
Codice crossover
  • int crossover (unsigned parent1, parent2,
    child1, child2)
  • int j, jcross, k unsigned mask, temp
  • if(flip(pcross))
  • jcross rnd(1 ,(lchrom - 1))/ Cross
    tra 1 and l-1 / ncross
  • for(k 1 k lt chromsize k)
  • if(jcross gt (kUINTSIZE))
    child1k-1 parent1k-1 child2k-1
    parent2k-1
  • else if((jcross lt (kUINTSIZE))
    (jcross gt ((k-1)UINTSIZE)))
  • mask 1
  • for(j 1 j lt
    (jcross-1-((k-1)UINTSIZE)) j)
  • temp 1 mask maskltlt1
    mask masktemp
  • child1k-1
    (parent1k-1mask)(parent2k-1(mask))
  • child2k-1
    (parent1k-1(mask))(parent2k-1mask)
  • else child1k-1 parent2k-1
    child2k-1 parent1k-1

27
Esempio
Mutazioneogni bit è sottoposto ad una piccola
probabilità derrore (per esempio 0.1) Prima
s1 1110110101 s2 1111010101 s3
1110111101 s4 0111000101 s5
0100011101 s6 1110110011
Dopo s1 1110100101 f (s1 ) 6 s2
1111110100 f (s2 ) 7 s3
1110101111 f (s3 ) 8 s4 0111000101 f
(s4 ) 5 s5 0100011101 f (s5 ) 5
s6 1110110001 f (s6 ) 6
28
Codice mutazione
  • mutation(child)
  • unsigned child
  • / Mutate an allele w/ pmutation, count of
    mutations /
  • int j, k, stop
  • unsigned mask, temp 1
  • for(k 0 k lt chromsize k)
  • mask 0
  • if(k (chromsize-1))
  • stop lchrom - (kUINTSIZE)
  • else
  • stop UINTSIZE
  • for(j 0 j lt stop j)
  • if(flip(pmutation))
  • mask mask(templtltj)

29
  • --------------------------------------------------
    ------------------------------
  • Generation 0
    Generation 1
  • num string value fitness parents xsite
    string value fitness
  • --------------------------------------------------
    ------------------------------
  • 1) 11010 v11 121.000000 ( 4, 3) 0
    00011 v24 576.000000
  • 2) 11101 v23 529.000000 ( 4, 3) 0
    11101 v23 529.000000
  • 3) 11101 v23 529.000000 ( 2, 4) 0
    11101 v23 529.000000
  • 4) 00011 v24 576.000000 ( 2, 4) 0
    00011 v24 576.000000
  • --------------------------------------------------
    ------------------------------
  • Generation 1
    Generation 2
  • num string value fitness parents xsite
    string value fitness
  • --------------------------------------------------
    ------------------------------
  • 1) 00011 v24 576.000000 ( 2, 1) 0
    11101 v23 529.000000
  • 2) 11101 v23 529.000000 ( 2, 1) 0
    00011 v24 576.000000
  • 3) 11101 v23 529.000000 ( 4, 3) 0
    00011 v24 576.000000
  • 4) 00011 v24 576.000000 ( 4, 3) 0
    11101 v23 529.000000
  • --------------------------------------------------
    -----------------------------
  • Generation 2
    Generation 3
  • num string value fitness parents xsite
    string value fitness

30
Operatori Alternativi per il Crossover
  • Crossover a n punti
  • Scegliere a caso n punti per il crossover
  • Dividere i cromosomi in questi punti
  • incrociarli, alternano i genitori
  • Generalizzazione del crossover a 1 punto

31
Crossover Uniforme
  • Assegnare la testa a un genitore, la coda
    allaltro
  • Lanciare una moneta per ogni gene del primo
    figlio
  • Realizza una copia inversa per il gene del
    secondo figlio
  • Lereditarietà è indipendente dalla posizione

32
Crossover o mutazione?
  • Lungo dibattito qualè migliore o necessario
  • Risposta
  • dipende dal problema
  • in generale, è meglio avere entrambi
  • entrambi hanno il loro ruolo
  • generalmente, usare solo mutazione è possibile,
    usare solo crossover non funziona bene

33
Rappresentazioni
  • Possibili codifiche degli individui
  • Bit strings
    (0101 ... 1100)
  • Real numbers (43.2 -33.1 ...
    0.0 89.2)
  • Permutations of element (E11 E3 E7 ... E1
    E15)
  • Lists of rules (R1 R2 R3
    ... R22 R23)
  • Elementi di programmi (genetic programming)
  • ... strutture dati ...

34
Rappresentazioni
  • Alcuni problemi hanno varabili intere, per.
    esempio segnali campionati
  • Altri problemi hanno valori da un insieme
    prefissato
  • Molti problemi sono intrinsicamente reali,
    tipicamente lottimizzazione f ? n ? ?
  • Esempio la funzione di Ackleys

35
Crossover tra valori reali
  • Discrete
  • each allele value in offspring z comes from one
    of its parents (x,y) with equal probability zi
    xi or yi
  • Could use n-point or uniform
  • Intermediate
  • exploits idea of creating children between
    parents (hence a.k.a. arithmetic recombination)
  • zi ? xi (1 - ?) yi where ? 0 ? ? ? 1.
  • The parameter ? can be
  • constant uniform arithmetical crossover
  • variable (e.g. depend on the age of the
    population)
  • picked at random every time

36
Crossover aritmetico singolo
  • Genitori ?x1,,xn ? e ?y1,,yn?
  • Scegliere a caso un gene (k)
  • il figlio è
  • ugualmente per laltro figlio. Esempio (? 0.5)
  • estensione al caso multiplo

37
GA ottimizzazione vincolata
  • I GA sono adatti per lottimizzazione non
    vincolata ? attività in corso
  • i metodi proposti sono
  • basati sulla penalizzazione
  • basati sula ricerca di soluzioni fattibili
  • basati sulla preservazione della fattibilità
  • metodi ibridi
Write a Comment
User Comments (0)
About PowerShow.com