Sei sulla pagina 1di 30

Sistemi Intelligenti M

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

4 Pianificazione per la robotica


4.1 Ripianificazione con A* . . .
4.2 Lifelong Planning A* . . . .
4.2.1 Algoritmo . . . . . .
4.3 D* Lite . . . . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

27
27
28
29
30

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

5 Apprendimento automatico (AA)

30

6 Programmazione logica induttiva

30

7 Classificazione Bayesiana

30

8 Reti neurali

30

9 Programmazione logica a vincoli

30

Planning

La pianificazione automatica rappresenta unimportante attivit`a di problem solving che


consiste nel sintetizzare una sequenza di azioni che eseguite da un agente a partire da
uno stato iniziale del mondo, provocano il raggiungimento di uno stato desiderato.
Definizione 1. Dati uno stato iniziale, un insieme di azioni eseguibili, un obiettivo
da raggiungere, un problema di pianificazione consiste nella individuazione di un piano,
ossia un insieme (parzialmente o totalmente) ordinato di azioni necessarie per raggiungere
un goal.
La pianificazione `e un attivit`a comune a molte aree applicative, come ad esempio:
Robotica
Scheduling
Diagnosi
In particolare, un pianificatore automatico `e un agente intelligente che opera in un
certo dominio e che date:
1. una rappresentazione dello stato iniziale
2. una rappresentazione del goal
3. una descrizione formale delle azioni eseguibili
sintetizza dinamicamente il piano di azioni necessario per raggiungere il goal a partire
dallo stato iniziale.
1.0.1

Rappresentazione delle azioni

` 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

Tecniche di pianificazione classica

La pianificazione classica `e un tipo di pianificazione di un agente razionale in cui il


piano di azione `e definito a partire di una situazione iniziale ed `e eseguito dallagente
razionale senza apportare variazioni durante lesecuzione. La pianificazione classica `e
particolarmente idonea per la ricerca delle soluzioni in una situazione in cui le azioni
dellagente non modificano completamente lambiente operativo ma soltanto una piccola
parte. Si tratta di un ambiente operativo molto semplice e deterministico. A partire
da una serie di precondizioni iniziali, lagente razionale imposta una sequenza di azioni (
3

schema di azioni ) e, successivamente, le esegue senza dover valutare le eventuali variazioni


dellambiente operativo che potrebbero verificarsi nel frattempo. Tra le tecniche pi`
u
utilizzate ricordiamo:
Planning deduttivo mediante ricerca lineare
Planning mediante ricerca
Ricerca nello spazio dei piani Planning non lineare
Partial Order Planning (POP)
Planning gerarchico
1.1.1

Altre tecniche di pianificazione

Altre tecniche di pianificazione prevedono:


Pianificazione condizionale
Pianificazione basata sui grafi
Pianificazione percorsi per robotica
Pianificazione come comportamento emergente: swarm intelligence

1.2

Pianificazione non lineare

I pianificatori non lineari sono algoritmi di ricerca che gestiscono la generazione di un


piano come un problema di ricerca nello spazio di piani e non pi`
u degli stati. In questo
modo lalgoritmo non genera pi`
u il piano come una successione lineare (completamente
ordinata) di azioni per raggiungere i vari obiettivi. Nellalbero di ricerca, ogni nodo
rappresenta un piano parziale e ogni arco unoperazione di raffinamento del piano.
Un pianificatore non lineare generativo assume che lo stato iniziale sia completamente
noto (Closed Word Assumption)
Definizione 2. Closed World Assumption: Tutto ci`o che non `e dichiarato nella
rappresentazione dello stato iniziale `e falso.
Viene adottata generalmente la tecnicha del least commitment sugli ordinamenti:
non imporre mai pi`
u vincoli di quelli strettamente necessari. Infatti non fare scelte quando
non sono imposte evita molti backtracking. Un piano non lineare `e rappresentato
come:
un insieme di azioni
un insieme di ordinamenti tra le varie azioni
un insieme di causal link
Il piano iniziale `e definito da due azioni distinte:

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

Algoritmo di Partial Order Planning (POP)

Ognuno dei passi di selezione `e non deterministico, in caso di fallimento si pu`o avere
backtracking su questi passi.
c

Definizione 3. Un causal link Si


Sj `e una terna costituta da due operatori Si , Sj e
un sottogoal c tali che uno degli effetti di Si soddisfa la precondizione c di Sj
Un causal link seve a memorizzare perch`e un certo operatore `e stato introdotto nel piano cos` da affrontare in modo efficiente il problema delle interazioni tra goals (interacting
goals).
1.3.1

Algoritmo

Lalgoritmo intuitivo si pu`o delineare in:


While (piano non terminato)
seleziona unazione SN del piano che ha una precondizione C non soddisfatta
seleziona unazione S (nuova o gi`a nel piano) che abbia C tra i suoi effetti
aggiungi il vincolo di ordine S < SN
se S `e nuova aggiungi il vincolo dordine Start < S < Stop
aggiungi il causal link <S, N, C>
risolvi eventuali violazioni e causal links
End
1.3.2

Violazioni a vincoli causali (minacce)

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

Figura 1: Esempio di pianificazione non lineare

Figura 2: POP: minacce

1.4

Modal Truth Criterion (MTC)

I due metodi promotion e demotion da soli non bastano a garantire la soluzione di un


qualunque problema risolvibile di pianificazione non lineare (completezza del pianificatore). Il Modal Truth Criterion `e un procedimento di costruzione del piano che garantisce
la completezza del pianificatore. Un algoritmo di Partial Order Planning alterna passi di
soddisfacimento di precondizioni con passi di risoluzione di minacce.
In particolare MTC fornisce 5 metodi di correzione del piano (1 per il soddisfacimento delle precondizioni e 4 per la risoluzione delle minacce) sufficienti a garantire la

Figura 3: POP: possibili soluzioni


completezza del pianificatore:
1. Establishment: soddisfacimento di una precondizione per mezzo di:
(a) inserimento di una nuova azione
(b) di un vincolo di ordinamento con unazione gi`a nel piano
(c) di un assegnamento di variabili
2. Promotion: vincolare una mossa a precederne unaltra nel piano finale
3. Demotion: vincolare una mossa a seguirne unaltra nel piano finale
4. Scopertura: inserire un operatore S2 nuovo o gi`a nel piano (detto white knight)
fra due mosse vecchie S1 ed S3 tale che i suoi effetti contengano la precondizione
di S3 minacciata da S1
5. Separazione: inserire vincoli di non codesignazione fra le variabili delleffetto negativo e della precondizione minacciata in modo da evitare la possibile unificazione.
Questo metodo `e possibile quando queste variabili non sono ancora state istanziate.
Ad esempio, dato il causal link:
holding(X)

pickup(X) stack(X, h)
7

la minaccia rappresentata da uneventuale azione di stack(Y, c) pu`o essere eliminata


ponendo il vincolo: X 6= Y

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

I pianificatori gerarchici sono algoritmi di ricerca che gestiscono la creazione di piani


complessi a diversi livelli di astrazione, considerando i dettagli pi`
u semplici solo dopo
aver trovato una soluzione per i pi`
u difficili. Sono tecniche per rendere pi`
u efficiente il
processo di pianificazione perch`e gli algoritmi visti in precedenza presentano problemi di
efficienza in caso di domini con molti operatori. In particolare la pianificazione `e semidecidibile: se esiste un piano che risolve un problema il pianificatore lo trova, ma se non
esiste, il pianificatore pu`o lavorare indefinitivamente.
Tutti gli operatori sono definiti ancora con precondizioni ed effetti. Gli algoritmi
di pianificazione gerarchica pi`
u diffusi sono:
STRIPS-Like
Partial-Order
Dato un goal, il pianificatore gerarchico effettua una ricerca di meta-livello per generare
un piano anchesso detto di meta-livello che porti da uno stato molto vicino allo stato
iniziale ad uno stato molto vicino al goal. Questo piano viene poi rifinito con una ricerca
di pi`
u basso livello che tiene conto dei dettagli fin qui tralasciati. Quindi un algoritmo di
planning gerarchico deve essere in grado di:
Pianificare a livello alto (meta-livello)
Espandere piani astratti in piani concreti
pianificando parti astratte in termini di azioni pi`
u specifiche (pianificazione di
livello base)
espandendo piani gi`a precostituiti

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

Figura 4: Pianificatore gerarchico


costruzione di un palazzo
organizzazione di un viaggio
progetto di un programma top-down
1.7.1

Metodologia di soluzione

Per risolvere un problema di planning vengono eseguiti i seguenti passi:


1. Viene fissato un valore soglia
2. Si considerano vere tutte le precondizioni il cui valore di criticit`a `e minore del valore
di soglia
3. Si procede come STRIPS1 per la ricerca di un piano che soddisfi tutte le precondizioni con valore di criticit`a superiore o uguale al valore di soglia.
4. Si usa poi lo schema di piano completo cos` ottenuto come guida e si abbassa il
valore di soglia di 1.
5. Si estende il piano con gli operatori che soddisfano le precondizioni di livello di
criticit`a maggiore o uguale al nuovo valore di soglia.
6. Si abbassa il valore di soglia fino a che si sono considerate tutte le precondizioni
delle regole originarie.
` importante assegnare bene i valori di criticit`
E
a delle precondizioni!
1

Ad ogni livello possiamo utilizzare un planner diverso, non necessariamente STRIPS

1.8

Operatori Macro

Esistono principalmente due tipi di operatori:


Operatori atomici
Operatori macro
Gli operatori atomici rappresentano azioni elementari tipicamente definite come regole
STRIPS. Gli operatori macro a loro volta rappresentano una sequenza di azioni elementari: sono quindi decomponibili in operatori atomici. La loro decomposizione pu`o
essere precompilata o da pianificare
1. Nel primo caso la descrizione dei macro operatori contiene anche la decomposition
che rappresenta la sequenza di operatori base in cui viene espanso loperatore macro
in questione.
2. Nel caso in cui manchi la decomposition nella definizione delle azioni, occorre che
il pianificatore effettui una ricerca di basso livello per sintetizzare un piano di azioni
elementari che implementino lazione macro.
Una volta definita la decomposizione lalgoritmo pu`o essere sia lineare che non lineare:
Un algoritmo gerarchico non lineare tipico `e lo stesso algoritmo POP gi`a visto, dove, ad
ogni passo si pu`o scegliere tra:
soddisfare un sottogoal con un operatore (compresi operatori macro)
espandere un macro step del piano (il metodo di decomposizione pu`o essere precompilato o da pianificare)

1.9

Condizioni su planning gerarchico

Affinch`e il planning gerarchico funzioni, devono essere garantite alcune propriet`a:


Vincoli sulla decomposizione:
Se lazione macro A ha come effetto X e viene espansa con il piano P
X deve essere effetto di almeno una delle azioni in cui A viene decomposta e
deve essere protetto fino alla fine del piano P
Ogni precondizione delle azioni in P deve essere garantita dai passi di P
precedenti oppure deve essere una precondizione di A.
Le azioni di P non devono vioolare vincoli causali quando P viene sostituito
ad A nel piano che si sta costruendo
Solo a queste condizioni si pu`o sostituire la azione macro A con il piano P. Per sostituire
A con P:
SI devono mettere a posto sia le relazione dordine sia i link causali:
Relazioni dordine s:
10

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

Problemi dei pianificatori condizionali

I planner condizionali possono avere diversi problemi:


Esplosione computazionale dellalbero di ricerca nel caso di problemi con un numero
di contesti alternativi elevato
Un piano completo che tenga conto di ogni possibile contingenza potrebbe richiedere
molta memoria
Non sempre `e possibile conoscere a priori tutti i contesti alternativi
Spesso si combina lapproccio condizionale con lapproccio probabilistico dove si
assegnano dei valori di probabilit`a alle varie alternative e si pianifica solo per quelle
pi`
u probabili

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

Sistemi reattivi puri

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

Pianificazione basata sui grafi

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

Il planning graph `e un grafo diretto a livelli in cui:


i nodi appartengono a livelli diversi
gli archi connettono nodi a livelli adiacenti
Il livello 0 corrisponde allo stato iniziale e alterna livelli proposizione e livelli azione
corrispondenti a time step crescenti. Inoltre nel planning graph possono esistere azioni
e proposizioni in un time step t che interferiscono tra loro. Nel planning-graph ci sono
livelli diversi:
proposition level: contenente proposition nodes
action level: contenente action nodes
Il livello 0 corrisponde allo stato iniziale ed `e un proposition level. Inoltre gli archi si
dividono in:
archi precondizione: (proposition action)
archi add: (action proposition)
archi delete: (action proposition)
Ad un certo time step si pu`o inserire una azione se al time step precedente sono
presenti le sue precondizioni. Inoltre ci sono azioni fittizie che rappresentano inattivit`a
no-op che traslano le proposizioni del time step i al successivo. Ogni action level contiene:
tutte le azioni che sono applicabili in quel time step
i vincoli che specificano quali coppie di azioni nel time step precedente incluse le
no-op
14

Figura 5: Planning graph


2.1.2

Algoritmo

Il planning graph si costruisce nel modo seguente:


Tutte le preposizioni vere nello stato iniziale sono inserite nel primo proposition
level
Creazione dellaction level:
Per ogni operatore e ogni modo di unificare le sue precondizioni a proposizioni
nel proposition level precedente, inserisci un action node se due proposizioni
non sono etichettate come mutualmente esclusive
Inoltre, per ogni proposizione nel proposition level precedente, inserisci un
operatore no-op.
Controlla gli action nodes cos` creati in modo tale che non interferiscano,
altrimenti marcali come esclusivi
Creazione del proposition level:
Per ogni action node nel action level precedente, aggiungi le proposizioni nella
sua add list tramite archi non tratteggiati e inserisci archi tratteggiati per le
proposizioni nella delete list
Si faccia la stessa cosa per i no-op
Marca come esclusive due proposizioni tali per cui tutti i modi per raggiungere
la prima siano incompatibili con tutti i modi per raggiungere la seconda.
15

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

function GRAPH_PLAN ( problema )


{
grafo = GRAFO_INIZIALE ( problema );
obiettivi = GOAL ( problema );
while ( true )
{
if ( obiettivi non mutex nell ultimo step )
{
Sol = ESTRAI_SOLUZIONE ( grafo , obiettivi )
if ( Sol != fail )
return Sol ;
else if ( LEVEL_OFF ( grafo ))
return fail ;
grafo = ESPANDI_GRAFO ( grafo , problema );
}
}
}

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

Durante la costruzione del planning graph vengono individuate eventuali inconsistenze,


in particolare:
16

due azioni possono essere inconsistenti nello stesso time step


due proposizioni possono essere inconsistenti nello stesso time step
In questo caso le azioni/proposizioni sono mutuamente esclusive:
Non possono comparire insieme in un piano
Possono comparire nello stesso livello nel planning graph.
Le inconsistenze tra le azioni si dividono quindi in:
Effetti inconsistenti: una azione nega leffetto di unaltra. Lazione move(part,
dest) ha come effetto at(part) mentre lazione no-op su at(part) ha questo come
effetto
Interferenza: una azione cancella come effetto una precondizione dellaltra. Lazione move(part, dest) ha come effetto at(part) mentre lazione no-op su at(part)
ha questo come precondizione
Competing needs: le azioni a e b hanno precondizioni mutuamente esclusive.
Lazione load(carico, mezzo) ha come precondizione in(carico, mezzo) mentre
lazione unload(carico, mezzo) ha come precondizione in(carico, mezzo)
Due proposizioni sono inconsistenti, invece, se:
Una `e la negazione dellaltra
Tutti i modi per raggiungerle sono mutuamente esclusivi
Violano una delle regole che definiscono inconsistenze sul dominio (esistono regole
quali ad esempio il fatto che un oggetto non pu`o trovarsi in due luoghi contemporaneamente in uno stesso time step)

2.2

Teoremi

Ci sono 3 teoremi fondamentali:


1. Se esiste un piano valido allora questo `e un sottografo del planning graph
2. In un planning graph due azioni sono mutualmente esclusive in un time step se non
esiste un valid plan che le contiene entrambe
3. In un planning graph due proposizioni sono mutualmente esclusive in un time step
se sono inconsistenti, ossia una nega il verificarsi dellaltra.
Come conseguenza importante abbiamo che: Le inconsistenze trovate dallalgoritmo
permettono di eliminare strade nellalbero di ricerca.

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

Dato un problema P , uno stato S ed un goal G, FF considera il problema rilassato P +


che si ottiene da P trascurando i delete effects delle azioni. In seguito poi FF risolve P +
con graphplan. Il numero di azioni nel piano risultante `e utilizzato come euristica.
FF utilizza un cosiddetto enforced hill climbing:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

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

La swarm intelligence (traducibile come: intelligenza dello sciame) `e un termine coniato


per la prima volta nel 1988 da Gerardo Beni, Susan Hackwood e Jing Wang in seguito
a un progetto ispirato ai sistemi robotici. Esso prende in considerazione lo studio dei
sistemi auto-organizzati, nei quali unazione complessa deriva da unintelligenza
collettiva, come accade in natura nel caso di colonie di insetti o stormi di uccelli, oppure
branchi di pesci, o mandrie di mammiferi.
Secondo la definizione di Beni e Watt la swarm intelligence pu`o essere definita come:
Propriet`a di un sistema in cui il comportamento collettivo di agenti (non sofisticati) che
interagiscono localmente con lambiente produce lemergere di pattern funzionali globali
nel sistema. Caratteristiche
Ogni individuo del sistema dispone di capacit`a limitate;
Ogni individuo del sistema non conosce lo stato globale del sistema;

Pattern di comunicazione locali (diretti o indiretti)


Assenza di un ente coordinatore (ad esempio in uno sciame di api, lape regina non
coordina lattivit`a delle altre api).
Robustezza
Adattivit`a
Lintelligenza umana `e il risultato dellinterazione sociale.
Stigmergia: una forma di comunicazione indiretta. Un agente modifica lambiente e
gli altri reagiscono al cambiamento.
3.0.1

Algoritmi SI

Esistono molti algoritmi basati sui concetti di Swarm Intelligence.


Ant Colony Optimization (ACO): Tipo di algoritmo basato sullosservazione
del comportamento delle formiche. Feedback positivo basato sulle tracce di ferormone che rafforzano le componenti che contribuiscono alla soluzione del problema
Artificial Bee Colony Algorythm (ABC): Algoritmo basato sullosservazione
del comportamento delle api da miele. Popolazione di api in cerca di nettare
Particle Swarm Optimization (PSO): Tipo di algoritmo basato sullosservazione del comportamento di branchi di pesci e stormi di uccelli. Stigmergia come
forma di comunicazione e imitazione dei vicini.

19

3.1

Ant colony optimization

Dallosservazione delle formiche si `e scoperto che:


Le formiche depositano ferormone mentre camminano dal formicaio e viceversa.
Le formiche tendono a scegliere i percorsi mercati con concentrazioni di ferormone
maggiori
Interazione cooperativa che conduce al comportamento emergente di trovare il
cammino pi`
u corto

Figura 6: Comportamento formiche


LAnt Colony Optimization `e un modello probabilistico parametrizzato (pherormone model ) usato per modellare le tracce di ferormone lasciate dalle formiche. Le
formiche costruiscono le componenti di una soluzione in modo incrementale. Vengono
quindi effettuati dei passi in modo stocastico su un grafo totalmente connesso chiamato
construction graph:
G = (C, L)
dove
I vertici C sono le componenti di una soluzione
Gli archi L sono le connessioni
Gli stati sono cammini in G
` possibile rappresentare i vincoli in modo da costruire una soluzione ammissibile.
E

20

Figura 7: Double bridge


3.1.1

Fonti di informazione e schema di base

Le connessioni, le componenti o entrambi hanno due informazioni associate:


Ferormone
Valore euristico
Linformazione riguardante il ferormone sostituisce le tracce naturali lasciate dalle formiche e codifica la memoria di lungo termine sul processo di ricerca globale delle formiche.
Leuristica rappresenta linformazione a priori sul problema.
3.1.2

ACO System

Primo esempio di Ant Colony Optimization. Le formiche costruiscono una soluzione


seguendo un cammino sul construction graph. Una regola di transizione viene utilizzata
per scegliere il prossimo nodo da visitare. Sono usate sia leuristica, sia il ferormone. I
valori del ferormone sono aggiornati sulla base della qualit`
a della soluzione trovata
dalle formiche.
3.1.3

Algoritmo

Lalgoritmo dellAnt System p `e il seguente


21

Figura 8: Schema di base


1
2
3
4
5
6
7
8
9

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

(con dij distanza tra i e j).

pij viene calcolata come:

P [ij ] [ij ]

pij =
k feasible [ij ] [ij ]

se ammissibile
altrimenti

Il ferormone viene aggiornato con queste regole:


P
k
ij (1 )ij + m
( : coefficiente di evaporazione)
k=1 ij

1 se la formica k ha usato larco (i, j)


ij = Lk

0
altrimenti
22

Lk : lunghezza costruita dalla formica k


Lalgoritmo pu`o essere codificato come segue:
1
2
3
4
5
6
7
8

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 ();

Descrizione dei metodi:


AntBasedSolutionConstruction()
Le formiche si muovono applicando una politica di decisione locale stocastica
che usa valori di ferormone e valori euristici sulle componenti del grafo.
Mentre si muovono, le formiche tengono traccia delle soluzioni parziali (cammini) che hanno costruito
PherormoneUpdate()
Le formiche aggiornano il ferormone durante la costruzione della soluzione
(online step-by-step pherormone update)
Le formiche possono aggiornare il cammino backward e aggiornare il ferormone
sui componenti usati a seconda della qualit`a della soluzione (online delayed
pherormone update)
Evaporazione sempre applicata
DaemonActions()
Sono azioni centralizzate che non possono essere eseguite da singole formiche
ad esempio:
Procedure di local search applicate alla soluzione costruita dalle formiche
Collezione di informazioni globali usate per decidere se depositare ferormone addizionale per guidare la ricerca da un prospettiva non locale.

3.2

Honey bee colony (ABC)

Artificial Bee Colony Algorythm: ABC Algorythm. Colonia di api artificiali


contiene 3 tipologie di api:
1. Le api operaie: sono associate ad una specifica sorgente di nettare
2. Le api spettatrici: guardano la danza delle operaie nel nido e scelgono la sorgente
di nettare
3. Le api scout: cercano sorgenti di nettare random
23

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

Lalgoritmo `e cos` modellato:


1
2
3
4
5
6
7
8
9

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 )

Descrizione dei metodi:


InitializationPhase()
In questa fase la popolazione di soluzioni (sorgenti di nettare) viene inizializzata dalle api scout
Ogni soluzione Xm (m = 1, . . . m = Np ool) `e composta da n variabili Xmi (i =
1, . . . , n). Ogni variabile `e soggetta ad un lower e un upper bound rispettivamente di lbi e ubi
Xmi = lbi + rand(0, 1)(ubi lbi )
EmployedBeePhase()
Le formiche operaie cercano elle soluzioni migliori nel vicinato delle soluzioni
generate nella fase di inizializzazione
Soluzione Xm i = (Xm1 , . . . , Xmn )
Fitness function di Xm : ho una funzione obiettivo obj del problema sulle
variabili e la uso per calcolare la fitness nel modo seguente:

se obj(Xm ) 0
ftn(Xm ) = (a + obj(Xm ))

1 + |obj(Xm )| se obj(Xm ) < 0


OnlookerBeePhase()
Le api spettatrici acquisiscono dalle operaie linformazione sulla fitness della
soluzione e scelgono in modo probabilistico una soluzione. La probabilit`a pm
di scegliere una soluzione Xm `e
ftn(Xm )
pm = PNpool
i=1 ftn(Xi )
(meccanismo di feedback positivo)
24

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

Particle Swarm Optimization

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

Analogia con problemi di ottimizzazione

Lanalogia con il problema di ottimizzazione pu`o essere definita come:


individui: configurazioni di tentativo che si spostano e campionano la funzione
obiettivo in uno spazio reale a N dimensioni (applicazione floating point)
interazione sociale: un individuo trae vantaggio dalle ricerche degli altri dirigendosi verso la regione del punto migliore globalmente trovato
La strategia di ricerca pu`o essere come bilanciamento tra exploration e exploitation:
exploration: legato allindividualit`a del singolo che ricerca la soluzione
exploitation: legato alla socialit`a, ovvero allo sfruttamento dei successi altri individui
25

3.3.2

Vicinanza

Una caratteristica importante nella ricerca `e legata al concetto di vicinanza:


gli individui sono influenzati dalle azioni degli individui ad essi pi`
u vicini (sottogruppi)
gli individui fanno parte di pi`
u sotto-gruppi e quindi la circolazione dellinformazione
`e globalmente garantita.
Inoltre i sotto-gruppi non sono legati alla vicinanza fisica delle configurazioni nello spazio
dei parametri ma sono definiti a priori e possono tenere in conto di spostamenti anche
notevoli tra gli individui.
3.3.3

Algoritmo

PSO ottimizza un problema impostando una popolazione (swarm) di soluzioni candidate


(particles), muovendo queste particelle nello spazio di ricerca tramite semplici formule
matematiche. Il movimento delle particelle `e guidato dalla migliore posizione trovata
nello spazio di ricerca (dallindividuo e dalla popolazione) che sono aggiornate via via che
si trovano soluzioni migliori. La fitness/cost function da minimizzare `e
f :RR
e prende una soluzione (vettore) e produce la fitness. Il gradiente di f non `e noto. Il
goal consiste nel trovare una soluzione a per cui
f (a) f (b)

per tutti i b nello spazio di ricerca

Dato S numero di particelle nella popolazione, ognuna ha una posizione xi Rn


nello spazio di ricerca e una velocit`a vi Rn . Sia pi la migliore soluzione trovata dalla
particella i e sia g la migliore soluzione dellintero sciame, lalgoritmo si pu`o codificare
come segue:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

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.

Pianificazione per la robotica

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.

Figura 9: Navigazione di robot

4.1

Ripianificazione con A*

Se il dominio `e parzialmente noto, si pianifica tramite A*, e in caso di cambiamenti del


mondo `e necessario ripianificare. Tuttavia tramite A* si deve ripianificare da zero.
Questo `e inefficiente su grandi domini di cui i cambiamenti avvengono di frequente e
molti dei risultati della precedente pianificazione si possono riusare.
27

Figura 10: Navigazione di robot

Figura 11: Navigazione di robot: riapianificazione

4.2

Lifelong Planning A*

Lifelong planning A* ripianifica pi`


u efficientemente di A* perch`e riutilizza parti del piano
precedente. Perch`e quindi riutilizzare parti del piano?
Perch`e i cambiamenti sono, in genere, piccoli
28

Figura 12: Navigazione di robot: ripianificazione


Per migliorare lefficienza
Quali parti del piano posso riutilizzare?
Quelle che non sono state modificate
4.2.1

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 )

se k1 (n) < k1 (n0 ) oppure se k1 (n) = k1 (n0 ) e k2 (n) < k2 (n0 )

(A parit`a di f (n) si scelgono nodi con minore g(n))

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

Apprendimento automatico (AA)

Arrivato fino a qui

Programmazione logica induttiva

Classificazione Bayesiana

Reti neurali

Programmazione logica a vincoli

30