Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Marco Moschettini
4 giugno 2016
Indice
1 Planning
1.0.1 Rappresentazione delle azioni . . . . .
1.1 Tecniche di pianificazione classica . . . . . . .
1.1.1 Altre tecniche di pianificazione . . . .
1.2 Pianificazione non lineare . . . . . . . . . . .
1.3 Algoritmo di Partial Order Planning (POP) .
1.3.1 Algoritmo . . . . . . . . . . . . . . . .
1.3.2 Violazioni a vincoli causali (minacce) .
1.4 Modal Truth Criterion (MTC) . . . . . . . . .
1.5 Anomalia di Sussman . . . . . . . . . . . . . .
1.6 Pianificazione gerarchica . . . . . . . . . . . .
1.7 ABSTRIPS . . . . . . . . . . . . . . . . . . .
1.7.1 Metodologia di soluzione . . . . . . . .
1.8 Operatori Macro . . . . . . . . . . . . . . . .
1.9 Condizioni su planning gerarchico . . . . . . .
1.10 Esecuzione . . . . . . . . . . . . . . . . . . . .
1.11 Planning condizionale . . . . . . . . . . . . . .
1.11.1 Problemi dei pianificatori condizionali .
1.12 Planning reattivo . . . . . . . . . . . . . . . .
1.12.1 Sistemi reattivi puri . . . . . . . . . .
1.13 Pianificatori ibridi . . . . . . . . . . . . . . . .
2 Pianificazione basata sui grafi
2.1 Graph plan . . . . . . . . . .
2.1.1 Planning Graph . . . .
2.1.2 Algoritmo . . . . . . .
2.1.3 Estrazione di un piano
2.1.4 Inconsistenze . . . . .
2.2 Teoremi . . . . . . . . . . . .
2.3 Fast forward . . . . . . . . . .
2.3.1 Funzione euristica . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
3
4
4
5
5
5
6
8
8
8
9
10
10
11
12
12
12
13
13
.
.
.
.
.
.
.
.
13
14
14
15
16
16
17
18
18
3 Swarm intelligence
3.0.1 Algoritmi SI . . . . . . . . . . . . . . . .
3.1 Ant colony optimization . . . . . . . . . . . . .
3.1.1 Fonti di informazione e schema di base .
3.1.2 ACO System . . . . . . . . . . . . . . .
3.1.3 Algoritmo . . . . . . . . . . . . . . . . .
3.2 Honey bee colony (ABC) . . . . . . . . . . . . .
3.2.1 Algoritmo . . . . . . . . . . . . . . . . .
3.3 Particle Swarm Optimization . . . . . . . . . .
3.3.1 Analogia con problemi di ottimizzazione
3.3.2 Vicinanza . . . . . . . . . . . . . . . . .
3.3.3 Algoritmo . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
19
19
20
21
21
21
23
24
25
25
26
26
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
27
28
29
30
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
30
30
7 Classificazione Bayesiana
30
8 Reti neurali
30
30
Planning
` necessario fornire al pianificatore una descrizione formale delle azioni eseguibili detta
E
teoria del dominio. Ciascuna azione `e identificata da un nome e modellata in forma
dichiarativa per mezzo di precondizioni e postcondizioni. Le precondizioni rappresentano le condizioni che devono essere verificate affinch`e lazione possa essere eseguita;
le postcondizioni rappresentano gli effetti dellazione stessa sul mondo.
Spesso la teoria del dominio `e costituita da operatori con variabili che definiscono
classi di azioni. A diverse istanziazioni delle variabili corrispondono diverse azioni.
1.1
1.2
1. start: senza precondizioni, con effetto una descrizione completa dello stato iniziale
2. stop: con precondizione il goal del planner
Ad ogni passo si incrementano linsieme degli operatori, degli ordinamenti parziali (non
vengono imposti ordinamenti non richiesti) e dei causal link fino a che tutti i goal sono
risolti. Una soluzione `e un insieme di operatori parzialmente specificato e parzialmente
ordinato. Per ottenere un piano effettivo si converte lordine parziale in uno tra i diversi
ordini totali possibili (linearizzazione).
1.3
Ognuno dei passi di selezione `e non deterministico, in caso di fallimento si pu`o avere
backtracking su questi passi.
c
Algoritmo
Si dice che unazione S3 rappresenta una minaccia per un causal link <S1, S2, c> quando contiene un effetto che nega c e non c`e nessun vincolo di ordinamento che impedisce
a S3 di essere eseguita dopo di S1 e prima di S2 Possibili soluzioni sono
Demotion: si impone il vincolo di ordine S3 < S1
Promotion: si impone il vincolo di ordine S2 < S3
1.4
pickup(X) stack(X, h)
7
1.5
Anomalia di Sussman
Particolare anomalia che trova la sua esplicazione nel mondo dei blocchi. Vedi esempio
pag 26 delle slides.
1.6
Pianificazione gerarchica
1.7
ABSTRIPS
Pianificatore gerarchico che usa la definizione delle azioni di Strips e associa un valore di
criticit`
a a ciascuna precondizione che consiste nella difficolt`
a del suo raggiungimento.
La pianificazione procede a livelli in una gerarchia di spazi di astrazione in ciascuno
dei quali vengono ignorate le precondizioni di livelli di difficolt`a inferiore. ABSTRIPS
esplora interamente lo spazio di un determinato livello di astrazione prima di passare
ad un livello pi`
u dettagliato: ricerca in lunghezza. In questo modo ad ogni livello di
astrazione viene generato un piano completo. Esempi applicativi di questo sistema
sono:
8
Metodologia di soluzione
1.8
Operatori Macro
1.9
per ogni B tale per cui B < A si impone B < first(P)(prima azione di P)
per ogni B tale per cui A < B si impone last(P) < B (ultima azione di P)
Link causali:
Se <S, A, C> era un causal link nel piano, allora si deve sostituire con
una serie di link <S, Si , C> dove Si sono le azioni di P che hanno C
come precondizione e nessun altro passo di A prima di Si ha C come
precondizione
Se <A, S, C> era un causal link nel piano, allora si deve sostituire con
una serie di link <Si , S, C> dove Si sono le azioni di P che hanno C come
effetto e nessun altro passo di P dopo Si ha C come effetto.
1.10
Esecuzione
I pianificatori visti finora permettono di costruire piani che vengono poi eseguiti da un
agente esecutore. I possibili problemi di esecuzione sono:
Esecuzione di unazione in condizioni diverse da quelle previste dalle sue precondizioni
conoscenza incompleta o non corretta
condizioni inaspettate
trasformazioni del mondo per cause esterne al piano
Effetti delle azioni diversi da quelli previsti:
errori dellesecutore
effetti non deterministici
Occorre quindi che lesecutore sia in grado di percepire i cambiamenti e agire di conseguenza.
Alcuni pianificatori fanno lipotesi del mondo aperto (Open World Assumption)
ossia considerano linformazione non presente nella rappresentazione dello stato come non
nota e non falsa diversamente dai pianificatori che lavorano con CWA.
Alcune informazioni non note possono essere cercate tramite azioni di raccolta di
informazioni (azioni di sensing) aggiunte al piano. Le azioni di sensing sono modellate
come le azioni causali. Le precondizioni rappresentano le condizioni che devono essere vere
affinch`e una certa osservazione possa essere effettuata, le postcondizioni rappresentano il
risultato dellosservazione.
Due possibili approcci:
Planning condizionale
Integrazione tra pianificazione ed esecuzione
11
1.11
Planning condizionale
Un pianificatore condizionale `e un algoritmo di ricerca che genera diversi piani alternativi per ciascuna fonte di incertezza del piano. Un piano condizionale `e quindi
costituito da:
Azioni causali
Azioni di sensing per le verifiche
Diversi piani parziali alternativi di cui uno solo verr`a eseguito a seconda dei risultati
delle verifiche
1.11.1
1.12
Planning reattivo
Abbiamo descritto fino qui un processo di pianificazione deliberativo nel quale prima di
eseguire una qualunque azione viene costruito lintero piano. I pianificatori reattivi
sono algoritmi di pianificazione on-line, capaci di interagire con il sistema in modo da
affrontare il problema della dinamicit`a e del non determinismo dellambiente:
osservano il mondo in fase di pianificazione per lacquisizione di informazione non
nota
monitorano lesecuzione delle azioni e ne verificano gli effetti
spesso alternano il processo di pianificazione a quello di esecuzione reagendo ai
cambiamenti di stato
Discendono dai sistemi reattivi puri che evitano del tutto la pianificazione ed utilizzano
semplicemente la situazione osservabile come uno stimolo per reagire.
12
1.12.1
Hanno accesso ad una base di conoscenza che descrive quali azioni devono essere eseguite
ed in quali circostanze. Scelgono le azioni una alla volta, senza anticipare e selezionare
unintera sequenza di azioni prima di cominciare.
Esempio: Termostato
1. Se la temperatura T della stanza `e K gradi sopra la soglia T0, accendi il condizionatore;
2. Se la temperatura della stanza T `e K gradi sotto T0, spegni il condizionatore.
Vantaggi:
Sono capaci di interagire con il sistema reale. Essi operano in modo robusto in
domini per i quali `e difficile fornire modelli completi ed accurati.
Non usano modelli, ma solo limmediata percezione del mondo e per questo sono
anche estremamente veloci nella risposta.
Svantaggio:
Il loro comportamento in domini che richiedono di ragionare e deliberare in modo significativo `e deludente (es. scacchi) in quanto non sono in grado di generare automaticamente
piani.
1.13
Pianificatori ibridi
I moderni pianificatori reattivi detti ibridi integrano approccio generativo e approccio reattivo al fine di sfruttare le capacit`a computazionali del primo e la capacit`a di
interagire con il sistema del secondo, affrontando cos` il problema dellesecuzione.
Un pianificatore ibrido:
genera un piano per raggiungere il goal
verifica le precondizioni dellazione che sta per eseguire e gli effetti dellazione
appena eseguita
smonta gli effetti di unazione (importante che le azioni sia reversibili) e ripianifica
in caso di fallimenti
corregge i piani se avvengono azioni esterne impreviste
Nel 1995 viene proposto da Blum e Furst CMU un nuovo pianificatore: Graph Plan
basato su grafi. Si tratta di un pianificatore corretto e completo tra i pi`
u efficienti che
siano stati costruiti.
13
2.1
Graph plan
Usa le Closed World Assumption, quindi rientra nella categoria dei pianificatori offline. Inoltre restituisce il piano pi`
u corto possibile oppure restituisce una inconsistenza.
Eredita dai pianificatori lineari il fatto di fare early commitment: esempio: lazione
A si svolge al time step 2. Eredita dai pianificatori non lineari, partial order il fatto
che i piani sono insieme parzialmente ordinati di azioni: esempio: nel time step 3 ci sono
due azioni. Vengono quindi generati dei piani paralleli.
In particolare le azioni si rappresentano come quelle di Strips:
Precondizioni
Add list
Delete list
inoltre
Gli oggetti hanno un tipo
Esiste una azione no-op che non modifica lo stato
Gli stati sono costituiti da predicati veri in quello stato
2.1.1
Planning Graph
Algoritmo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Il primo non contiene solo un time step (proposition level) con le proposizione vere nello
stato iniziale. Il grafo iniziale `e quindi estratto da grafo iniziale(problema).
Il goal da raggiungere `e estratto dalla funzione GOAL(problema). Se gli obiettivi
sono non mutuamente esclusivi nellultimo livello il planning graph potrebbe contenere
un piano, ossia un valid plan. Il valid plan `e estratto tramite ricerca backward da
estrai soluzione(grafo, obiettivi) che fornisce una soluzione o un fallimento. Si procede quindi livello dopo livello per meglio sfruttare i vincoli di mutua esclusione tramite
una ricerca ad albero, ibrida breadth/depth first e completa.
Memoization: Se ad un certo step della ricerca si determina che un sottoinsieme di
goals non `e soddisfacibile, graphplan salva questo risultato in una hash table. Ogni volta
che lo stesso sottoinsieme di goals verr`a selezionato in futuro, quel ramo di ricerca fallir`a
automaticamente.
2.1.3
Estrazione di un piano
Una volta costruito il planning graph `e possibile estrarre un piano detto valid-plan, un
sottografo connesso e consistente del planning graph. Tra le caratteristiche del vali-plan
ricordiamo:
Azioni allo stesso time step del valid plan possono essere eseguite in qualunque
ordine (non interferiscono)
Proposizioni allo stesso time step del valid plan sono non mutuamente esclusive
Lultim time step contiene tutti i letterali del goal e questi non sono marcati come
mutuamente esclusivi.
2.1.4
Inconsistenze
2.2
Teoremi
17
2.3
Fast forward
FF `e un pianificatore euristico (ad ogni stato, S `e una valutazione della distanza dal
goal mediante una funzione euristica) estremamente efficiente introdotto da Hoffman nel
2000.
Funzionamento base (hill climbing + A*)
1. A partire da uno stato S, si esaminano tutti i successori S 0
2. Se si individua uno stato successore S migliore di S, ci si sposta su di esso e torna
al punto 1
3. Se non si trova alcuno stato con valutazione migliore, viene eseguita una ricerca
completa A*, usando la stessa euristica.
2.3.1
Funzione euristica
function FF ( problema )
{
S = STATO_INIZIALE ( problema );
k = 1;
while ( true )
{
explore all states S at k steps ;
if ( a better state S * is found )
S = S *;
else if ( k can be increased )
k = k + 1
else
A *( problem );
}
}
In pratica `e una ricerca completa breadth first. Una soluzione viene sempre trovata, a
meno che lo stato corrente non sia un vicolo cieco.
Per muoversi da uno stato S ad uno adiacente non si considerano tutte le azioni, ma
solo le cosiddette azioni utili (helpful actions)
Sia G1 linsieme delle proposizioni al time step 1 della soluzione del problema
rilassato
P + : H(S) = pre(o) S, add(o) G1 6=
Ossia H(S) contiene le azioni applicabili nello stato corrente (S), che aggiungono
almeno una delle proposizioni G1.
18
Swarm intelligence
Algoritmi SI
19
3.1
20
ACO System
Algoritmo
I n i t i a l i z e P h e r o m o n e V a l u e s ();
while ( termination conditions not met )
{
foreach ( ant in A )
{
Sa = Co nstruc tSolut ion ( tau , eta );
}
A p p l y O n l i n e D e l a y e d P h e r o m o n e U p d a t e ();
}
La memoria `e utilizzata per ricordare i tour parziali. La scelta probabilistica dipende da:
pherormon trail tij
euristica ij =
1
dij
P [ij ] [ij ]
pij =
k feasible [ij ] [ij ]
se ammissibile
altrimenti
0
altrimenti
22
function S ch edu le Ac ti vi ti es ()
{
A n t B a s e d S o l u t i o C o n s t r u c t i o n ();
PherormoneUpdate ();
DaemonActions (); // optional
}
while ( termination conditions not met )
Sc he du le Ac ti vi ti es ();
3.2
Le spettatrici e gli scout sono api non operaie. Inizialmente le sorgenti di nettare sono
scoperte dalle api scout. Poi il nettare viene consumato e la sorgente esaurita. Le api
che cercano cibo in una sorgente esaurita diventano scout. La soluzione viene modellata
come la posizione del cibo e sono tante quante le api operaie. La quantit`a di nettare
`e invece il fitness.
3.2.1
Algoritmo
I ni t i al i z at i o nP h a s e ();
do
{
EmployedBeePhase ();
OnlookerBeePhase ();
ScoutBeePhase ();
Sol = B estSol utionS oFar
}
while ( Cycle != MaxCycleNum || MaxCPUTime )
se obj(Xm ) 0
ftn(Xm ) = (a + obj(Xm ))
ScoutPhase()
Le api scout scelgono le sorgenti di nettare random. Le api operaie che non possono migliorare la soluzione attraverso un numero prefissato di tentativi (parametro algoritmo chiamato abandonment criteria) abbandonano la soluzione
e diventano scout (meccanismo di feedback negativo).
3.3
Particolare ricerca che si sviluppa sullanalisi dei meccanismi di interazione tra gli individui che fanno parte di un gregge/stormo/branco. Risulta particolarmente interessante
quando il gruppo ha un obiettivo comune come la ricerca di cibo. Lo studio delle regole
del volo in stormo mettono in evidenza come un individuo leghi il suo comportamento a
quello degli altri membri del gruppo:
deve seguire i suoi vicini
deve rimanere nel gruppo
deve evitare di urtarli
Con queste regole `e possibile descrivere il moto collettivo di uno stormo senza obiettivo
comune. Lalgoritmo PSO aggiunge un obiettivo condiviso da tutti i membri: la ricerca
di cibo. In particolare, un individuo che nel suo movimento scorge una fonte di cibo si
trova di fronte a due scelte:
1. allontanarsi dal gruppo per raggiungerlo (individualismo)
2. rimanere nel gruppo (socialit`a )
Se pi`
u individui si dirigono verso il cibo, anche altri membri possono cambiare la loro
direzione per sfruttare la stessa fonte di nutrimento. Il gruppo cambia gradualmente
direzione verso le zone pi`
u promettenti, ovvero linformazione gradualmente si
propaga a tutti
3.3.1
3.3.2
Vicinanza
Algoritmo
function Initialize ()
{
for ( particle = 1; i < S ; i ++)
{
x [ i ] = I n i t i a l i z e P a r t i c l e P o s i t i o n (); // lb < x [ i ] < ub
p [ i ] = I n i t i a l i z e P a r t i c l e B e s t K n o w P o s i t i o n (); // p [ i ] = x_i
if ( f ( p ) < f ( g ))
U p d a t e S w a r m B e s t K n o w P o s i t i o n (); g = p [ i ]
I n i t i a l i z e P a r t i c l e V e l o c i t y (); // -( ub - lb ) < v [ i ] < ( up - lb )
}
}
while ( termination criterion not met )
{
for ( particle = 1; i < S ; i ++)
{
r = rand ();
v [ i ] = u p d a t e P a r t i c l e V e l o c i t y ( r );
x [ i ] = u p d a t e P a r t i c l e P o s i t i o n (v , r ); // x = x [ i ] + v [ i ]
26
20
21
22
23
24
if ( f ( p [ i ] < f ( g ))
u p d a t e S w a r m B e s t K n o w P o s i t i o n (); // g = p [ i ]
}
return g ; // best solution found
}
I parametri (, p , g )per aggiornare la velocit`a della particella sono selezionati accuratamente per controllare lefficacia e lefficienza del metodo PSO. In particolare
vi = vi + p rp (pi xi ) + g rg (g xi )
Questi algoritmi sono molto semplici ma richiedono un accurato tuning dei parametri
che influiscono pesantemente sullefficienza ed efficacia degli algoritmi. Questa operazione
`e molto lenta e noiosa ed `e difficile arrivare ad un tuning ottimo.
La navigazione dei robot implica la pianificazione del movimento (trovare il cammino pi`
u
corto dal posizione iniziale alla finale). Per semplificare consideriamo un mondo diviso in
celle.
4.1
Ripianificazione con A*
4.2
Lifelong Planning A*
Algoritmo
Variabili: LPA* mantiene una distanza dallo start g (n) come shortest path dallo start
al nodo n:
(
0
se n = start
g (n) =
0
0
minn0 pred(n) (g (n ) + c(n , n)) altrimenti
Inoltre, LPA* mantiene una stima g(n) della distanza dallo start che viene mantenuta
in fase di replanning dalla search precedente.
LPA* mantiene anche una seconda distanza dallo start rhs(n) con un passo di look
ahead:
(
0
se n = start
rhs(n) =
0
0
minn0 pred(n) (g (n ) + c(n , n)) altrimenti
Un vertice n `e detto locally consistent se
g(n) = rhs(n)
LPA* non rende tutti i vertici locally consistent. Usa una euristica per aggiornare solo
i g-values che sono rilevanti per calcolare un cammino minimo. Inoltre LPA* mantiene
una lista di open nodes su cui calcolare la f (n) e selezionare sempre il nodo con minore
29
f (n) Gli f (n) in LPA* vengono detti key. Ogni nodo ha una key k(n) in forma di vettore
[k1 (n), k2 (n)] dove:
k1 (n) = min[g(n), rhs(n)] + h(n)
k2 (n) = min[g(n), rhs(n)]
comparazione lessicografica tra keys
k(n) k(n0 )
4.3
D* Lite
I robot si muovono su una mappa (grafo) parzialmente nota. Quando viene rilevato un
nuovo ostacolo i pesi sugli archi del grafo cambiano. D* lite `e una versione di LPA*
che aggiorna il valore del cammino pi`
u corto a partire dalla posizione del robot. Non fa
ipotesi restrittive su come cambiano i pesi degli archi:
crescente-decrescente
vicino o lontano al robot
cambiamento del mondo o rivisitazione della conoscenza del robot
Classificazione Bayesiana
Reti neurali
30