Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
Artificiale
Ricerca Locale
Local search
Alfredo Milani thanks to Tom Lenaerts
Ricerca Locale e Ottimizzazione
Approcci visti finora: explorazione
sistematica dello spazio di ricerca
– il percorso (path) che porta al goal è la soluzione del
problema
MA, per alcuni problemi il path è irrilevante
– Es. Il Problema delle 8-regine(8-queens)
AI 1
Milani Pag.2
FondAI 09
Ricerca Locale e Ottimizzazione
AI 1
Milani Pag.4
FondAI 09
Ricerca Hill-climbing
Hill Climbing= Risalire la china
“è un ciclo che si muove verso la direzione
dei valori crescenti”
– Termina quando raggiunge una “cima” o massimo locale.
La ricerca hill climbing non guarda oltre I
vicini immediati dello stato corrente.
La ricerca hill-climbing sceglie in mdo
random tra l’insieme dei “migliori”
successori, se c’e’ piu’ di un “best”.
La r. hill-climbing è una sorta di greedy local
search
AI 1
Milani Pag.5
FondAI 09
Hill-climbing search
current ← MAKE-NODE(INITIAL-STATE[problem])
loop do
neighbor ← uni dei successori di current con il valore più alto
if VALUE [neighbor] ≤ VALUE[current] then return STATE[current]
current ← neighbor
AI 1
Milani Pag.6
FondAI 09
Hill-climbing Esempio
Problema 8-queens (formulazione a stato
completo: tutte le regine piazzate in ciascuna
colonna con eventuali conflitti).
Funzione successore : muovi una singola
regina in un altro quadrato della stessa
colonna.
Funzione euristica h(n): il numero di
coppie di regine che si attaccano l’un l’altra
(direttamente o indirettamente).
Nessun conflitto≡goal ≡ h(n)=0
AI 1
Milani Pag.7
FondAI 09
Hill-climbing Esempio
a) b)
AI 1
Milani Pag.9
FondAI 09
Variazianti dell’Hill-climbing
Hill-climbing Stocastico
– Selezione random tra le mosse in salita.
– La probabilità di selezione può variare con la
“ripidità” (gradiente) della mossa che migliora.
First-choice hill-climbing
– Sorta di hill climbing stocastico in cui i successori
vengono generati in modo random finchè ne viene
trovata una migliore della corrente.
Random-restart hill-climbing
– La ripartenza ha lo scopo di evitare di restare
intrappolata nel massimi locali
AI 1
Milani Pag.10
FondAI 09
Simulated annealing
current ← MAKE-NODE(INITIAL-STATE[problem])
for t ← 1 to ∞ do
T ← schedule[t]
if T = 0 then return current
next ← un successore di current selezionato in modo random
∆E ← VALUE[next] - VALUE[current]
if ∆E > 0 then current ← next
E /T
e
else current ← next scelta effettuata con probabilità:
AI 1
Milani Pag.12
FondAI 09
Ricerca Local beam
Ricerca Local Beam: fascio di luce
Tiene traccia di k stati anzichè di uno soltanto
– Inizialmente: k stati random
– Next: determina tutti i successori dei k stati
– if uno qualsiasi dei successori è uno stato goal then finito
– else prendi i k migliori dai successori e ripeti.
Differenze principale con la random-restart search
– Informazione è condivisa tra k processi di ricerca.
Può soffrire del problema della mancanza di
diversità: variante stocastica: scegli k successori
proporzionalmente al successo dello stato
AI 1
Milani Pag.13
FondAI 09
Algoritmi Genetici
I GA possono essere visti come una variante
della local beam search con ricombinazione
sessuata
AI 1
Milani Pag.14
FondAI 09
Algoritmi Genetici
La rappresentazione di una soluzione, di un
individuo è un cromosoma, le sue
componenti sono dette geni, un insieme di
individui è una popolazione
32762411
cromosoma
individuo
AI 1
Milani Pag.15
FondAI 09
Algoritmi Genetici
variante della local beam search con ricombinazione
sessuata
AI 1
Milani Pag.16
FondAI 09
Algoritmi Genetici
AI 1
Milani Pag.17
FondAI 09
Problemi di Esplorazione
Gli algoritmi visti sinora erano offline.
– Offline= la soluzione è determinata prima dell’esecuzione.
– Online = intercalare calcolo/ragionamento e azione
La ricerca online è
• necessaria in ambienti dinamici e
semidinamici
– È impossibible tenere in considerazione tutte le
contingenze possibili.
• Usata per problemi di esplorazione:
– Stati e azioni sconosciuti
– Ad es. Un robot in un ambiente nuovo
AI 1
Milani Pag.18
FondAI 09
Problemi di ricerca online
Conoscenza dell’Agente:
– ACTION(s): lista di azioni permesse nello stato s
– C(s,a,s’): funzione di costo della azione da s a s’ (dopo che s’ è determinato)
– GOAL-TEST(s)
Si assume che:
• un agente possa riconoscere gli stati precedenti
• le azioni sono deterministiche
• L’agente può valutare una euristica h(s)
ammissibile. Ad es. La distanza di Manhattan
AI 1
Milani Pag.19
FondAI 09
Problemi di ricerca online
AI 1
Milani Pag.20
FondAI 09
Il paradosso dell’avversario
AI 1
Milani Pag.23
FondAI 09
Online DF-search, esempio
AI 1
Milani Pag.24
FondAI 09
Online DF-search, example
GOAL-TEST((,1,1))?
S’=(1,1) – Lo stato S è uno stato goal? falso
(1,1) è un nuovo stato?
– Vero
– ACTION((1,1)) -> UX[(1,1)]
– {RIGHT,UP}
s è null?
– Vero (inizialmente)
UX[(1,1)] è vuoto?
– Falso
POP(UX[(1,1)])->a
– A=UP
s = (1,1)
Return a
AI 1
Milani Pag.25
FondAI 09
Online DF-search, example
GOAL-TEST((2,1))?
S’=(2,1) – Lo stato S è uno stato goal? falso
(2,1) è un nuovo stato?
– Vero
– ACTION((2,1)) -> UX[(2,1)]
– {DOWN}
S s è null?
– falso (s=(1,1))
– result[UP,(1,1)] <- (2,1)
– UB[(2,1)]={(1,1)}
UX[(2,1)] è vuoto?
– Falso
A=DOWN, s=(2,1) return A
AI 1
Milani Pag.26
FondAI 09
Online DF-search, example
GOAL-TEST((1,1))?
S’=(1,1) – Lo stato S è uno stato goal? falso
(1,1) è un nuovo stato?
– falso
s è null?
– false (s=(2,1))
– result[DOWN,(2,1)] <- (1,1)
– UB[(1,1)]={(2,1)}
UX[(1,1)] empty?
S – False
A=RIGHT, s=(1,1) return A
AI 1
Milani Pag.27
FondAI 09
Online DF-search, example
GOAL-TEST((1,2))?
S’=(1,2) – Lo stato S è uno stato goal? falso
(1,2) a new state?
– Vero, UX[(1,2)]={RIGHT,UP,LEFT}
s è null?
– falso (s=(1,1))
– result[RIGHT,(1,1)] <- (1,2)
– UB[(1,2)]={(1,1)}
S UX[(1,2)] è vuoto?
– Falso
A=LEFT, s=(1,2) return A
AI 1
Milani Pag.28
FondAI 09
Online DF-search, example
GOAL-TEST((1,1))?
S’=(1,1) – Lo stato S è uno stato goal? falso
(1,1) è un nuovo stato?
– falso
s è null?
– falso (s=(1,2))
– result[LEFT,(1,2)] <- (1,1)
– UB[(1,1)]={(1,2),(2,1)}
UX[(1,1)] è vuoto?
– Vero
– UB[(1,1)] è vuoto? Falso
S
A= b per b in
result[b,(1,1)]=(1,2)
– B=RIGHT
A=RIGHT, s=(1,1) …
AI 1
Milani Pag.29
FondAI 09
Online DF-search
AI 1
Milani Pag.30
FondAI 09
Online local search
AI 1
Milani Pag.31
FondAI 09
Online local search
AI 1
Milani Pag.32
FondAI 09
Learning real-time A*
function LRTA*-COST(s,a,s’,H) return una stima di costo
if s’ è indefinito retutn h(s)
else return c(s,a,s’) + H[s’]
AI 1
Milani Pag.33
FondAI 09
Algoritmi ispirati dalla natura
Nature inspired Algorithms
Paradigmi di calcolo e di ottimizzazione ispirati
a sistemi biologici
Caratteristiche
• Computazioni indipendenti e parallele
• Controllo distribuito e comunicazione locale
• Comportamente comune emergente=ottimo
o ricerca soluzione
Milani Pag.
FondAI 09
Algoritmi Genetici e
Programmazione Genetica
Rientra nei GA
Evoluzione di popolazioni di programmi
Ad es. crossover tra alberi sintattici.
Ad es.Approssimazione di calcolo espressioni
While While :=
If()
D D X X-1
If()
C :=
:= :=
C
:= :=
X X+1 X X+c X X-1
X X+1 X X+c
Milani Pag.
FondAI 09
ACO Ant Colony Optimization
(Dorigo)
• Insieme di k formiche che si muovono in un grafo da
sorgente a destinazione
• Le formiche depositano feromone sul cammino (es.
archi)
• Il feromone evapora a tasso costante nel tempo
• Nei punti di scelta la decisione è randomizzata
proporzionalmente al feromone depositato negli
archi 33.33% 22%
33.33 % 3%
33.33 % 75%
Milani Pag.
FondAI 09
ACO Ant Colony Optimization
Quando le formiche arrivano a destinazione tornano indietro (nella versione
canonica non hanno memoria del cammino)
d
s
Milani Pag.
FondAI 09
ACO Ant Colony Optimization
s d
.
s d
Milani Pag.
FondAI 09
ACO Ant Colony Optimization
Itera.
Milani Pag.
FondAI 09
ACO Ant Colony Optimization
Milani Pag.
FondAI 09
PSO Particle Swarm
Optimization
Analogia: sciami di insetti, stormi, pesci
Ottimizzazione di f in uno spazio di ricerca metrico n-dimensionale (è
possibile calcolare la distanza tra due punti) Es.
Milani Pag.
FondAI 09
PSO Particle Swarm
Optimization
(personal best),ogni particella “ricorda” la sua migliore
posizione e
attrito/inerzia
componente cognitiva componente sociale
Milani Pag.
FondAI 09
PSO Particle Swarm
Optimization
Lo sciame tende a dirigersi verso l’ottimo
La ampiezza dello sciame e la randomizzazione tendono ad evitare i minimi
locali
v v v
v
Milani Pag.
FondAI 09
Online Genetic Algorithms
Milani Pag.
FondAI 09
Online Genetic Algorithm
Milani Pag.
FondAI 09
Online GA Scheme
Approccio ingenuo:
Mostrare le notizie più cliccate
Es. best clicked video su YouTube
Es.Online newspaper
Milani Pag.
FondAI 09
Online Genetic Fitness
u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u u
Milani Pag.
FondAI 09
Online GA
Altre applicazioni:
Multimedia Retrieval (Chan, Leung, Milani 2008)
Ranking online di oggetti associati a termini di ricerca.
Approccio randomizzato puro, GA
Milani Pag.
FondAI 09
Online Swarm Particle
Optimization
Applicazioni:
– Contenuti adattivi (es.)
Banner optimization (Leung & Milani 2009)
Milani Pag.
FondAI 09
Online Swarm Particle
Optimization Scheme
Un banner è identificato da un insieme di
feature/caratteristiche discrete/continue
Spazio di ricerca: spazio delle caratteristiche
un punto nello spazio di ricerca: un banner
Es. D1×D2×D3×D4×D5×D6 Es.
D1:32 foto
D2:10-20pt
D3:14 tipi
D4:400-600pt
D5:300-500pt
D6:32000 colori
Milani Pag.
FondAI 09
Online
Swarm Particle Optimization Scheme
Milani&Leung 2009
Dimensioni ibride
Discrete/continue
Milani Pag.
FondAI 09
Online Swarm Particle Optimization Scheme
Questioni principali:
– Traiettoria e movimenti in dimensioni
discrete
– Minimizzare il numero di contatti utenti
necessari ad ottimizzare
– Funzione di fitness simulata: additiva,
lineare etc.
– Dinamica evolutiva utenti
Milani Pag.
FondAI 09
Online ACO
Milani Pag.
FondAI 09
Gecco Competition 2009 (1/3)
http://www.sigevo.org/GECCO-2009
2009 GENETIC AND EVOLUTIONARY COMPUTATION CONFERENCE
(GECCO-2009) Entro il 1 Luglio 2009
TRACK1 (e.g., gear ratio, wing area and angle, spring setup)
The competition software, including the servers for Linux & Windows, the
C++ and Java clients, can be downloaded from the competition webpage:
http://cig.dei.polimi.it/?page_id=79
Milani Pag.
FondAI 09
Gecco Competition 2009(2/3)
Milani Pag.
FondAI 09
Gecco Competition 2009 (3/3)
Milani Pag.
FondAI 09