Sei sulla pagina 1di 10

The RoboCare Project: Intelligent Systems for Elder Care

Anuska Benacchio Giuseppe Cassano Mirco Furlan Francesco Locascio Nicolò Paganin

Tesina per il corso di Intelligenza Artificiale, Prof.ssa Silvana Badaloni


Università degli Studi di Padova, Facoltà di Ingegneria
12 Gennaio 2010

1 Introduzione ˆ P ⊆ P RECS rappresenta un insieme di vincoli


temporali che i task devono rispettare;
Planning e scheduling [1] è l’area dell’intelligenza arti-
ficiale che riguarda lo studio di modelli e tecniche per ˆ R ⊆ RES è un insieme di risorse rinnovabili;
la sintesi ed il mantenimento di piani di azione, strate- ˆ C : R → <+ (insieme dei reali positivi) è una fun-
gie di esecuzione e politiche di allocazione delle risorse zione che determina la disponibilità di ciascuna
che permettono la realizzazione di compiti (task) com- risorsa;
plessi. Oltre all’intelligenza artificiale, P&S è anche
oggetto di studio di altre materie quali la ricerca op- ˆ U : T × R → <+ ∪ {0} è una funzione che indica
erativa ed il management ed è impiegato in tantissime la quantità di una determinata risorsa R di cui
realtà diverse (pubblica amministrazione, industria, necessita un determinato task T .
assistenza agli anziani, missioni spaziali, ect).
Il planning è il processo di sintesi di sequenze di Sebbene il planning e lo scheduling all’inizio fos-
azioni o attività che permettono di raggiungere un sero due discipline diverse, oggi la ricerca in questi
desiderato stato obiettivo (goal ) a partire da uno stato settori si è fusa in un unico campo di studi. Ciò è
iniziale. Sin dalle origini, al planning automatizzato avvenuto perché è diventata sempre meno consistente
è stata data una caratterizzazione logica consistente la soglia di differenza tra sintetizzazione di un piano
nel punto di vista di un agente centrale che esegue per raggiungere un obiettivo (planning) e il modo in
azioni che modificano il mondo circostante, permet- cui allocare le risorse per questo piano (scheduling).
tendo di giungere ad una desiderata situazione (goal ). La ricerca descritta qui di seguito deriva da un pro-
In maniera formale, un problema di planning consiste getto di tre anni chiamato ROBOCARE: “Un sistema
nel cercare una sequenza di azioni o istanze di op- multiagente dotato di componenti robotiche mobili,
eratori che trasformano uno stato iniziale nello stato intelligente ed in grado di interagire con l’uomo”. La
obiettivo. Esso è definito da una quaterna del tipo motivazione per la quale questo ed altri lavori simili
(A, I, O, G) dove: sono stati sviluppati in tutto il mondo è il fenomeno
dell’invecchiamento demografico, una tendenza che si
ˆ A è l’insieme delle proposizioni usate per carat- integra bene con il desiderio delle persone di essere in-
terizzare gli stati e a ciascuno di essi è assegnato dipendenti il più a lungo possibile. Questi fattori moti-
un valore di verità (true o f alse); vano la ricerca tecnologica a creare strumenti per l’as-
sistenza dell’uomo. Le sfide derivanti da questo cam-
ˆ I e G rappresentano rispettivamente lo stato
po hanno portato allo sviluppo di un’emergente area
iniziale e quello finale;
dell’intelligenza artificiale chiamata Eldercare, che ha
ˆ O è un insieme di funzioni che permettono di come obiettivo lo sviluppo di attività e l’erogazione di
ottenere uno stato a partire da un altro. servizi che rispondono alle esigenze e necessità tipiche
delle persone anziane, dei malati cronici e dei disabili.
Lo scheduling, invece, si focalizza sul processo di
ROBOCARE si è specificatamente focalizzato sullo
allocazione di risorse ed attività nel tempo, nel rispet-
sviluppo di una tecnologia basata sull’AI, per fornire
to di vari tipi di vincoli, quali ad esempio capacità,
i servizi di assistenza domestica. Il risultato della
precedenza e durata. L’attività dello scheduling con-
ricerca è un prototipo di casa intelligente (the ROBO-
siste nel determinare quando un insieme di task deve
CARE domestic environment, RDE), nel quale robot,
essere eseguito in modo che la soluzione finale garan-
sensori ed altri agenti intelligenti operano coordinata-
tisca buone prestazioni relazionate all’ottimizzazione
mente per fornire supporto alle attività quotidiane di
di una funzione obiettivo. Formalmente, un problema
una persona anziana. Più precisamente, il prototipo di
di scheduling è un elemento rappresentato attraverso
casa intelligente ROBOCARE comprende un singolo
una tupla del tipo < T, P, R, C, U > [8] dove:
robot ed una stereo-camera. Queste componenti sono
ˆ T ⊆ T ASKS è un insieme di task e ogni task è integrate con un sistema di monitoraggio delle attiv-
caratterizzato da un tempo di inizio e di fine; ità, il cui obiettivo è quello di reagire a comportamenti

1
The RDE Project

inaspettati delle persone assistite. Lo scopo generale promemoria rilasciati per la giornata, di controllare gli
dell’ambiente è di osservare le azioni della persona orari e lo stato dei farmaci (preso/non preso), lo stato
assistita e mantenere un’aggiornata rappresentazione di mobilità degli utenti ed eventuali allarmi. Un altro
dello stato dell’ambiente e della persona. Basandosi interessante uso delle tecniche dell’AI per assistere le
su queste osservazioni, occorre valutare se le attività persone nella vita quotidiana è COACH, un’ortosi cog-
della persona rientrano all’interno di un insieme pre- nitiva progettata per assistere le persone con un grado
definito di modelli comportamentali. Questi modelli di demenza tra grave e moderata, mentre si lavano le
sono rappresentati nella forma di piani flessibili (flex- mani. Il sistema è composto da una videocamera e da
ibile schedules) definiti da un caregiver e sono schedu- un software che segue la posizione delle mani dell’u-
lati/eseguiti per mezzo delle tecnologie di scheduling tente, determinando la sequenza di passi che l’utente
allo stato dell’arte. Esempi di tali piani sono gli at- sta completando e generando un richiamo verbale in
ti linguistici attraverso i quali il sistema avverte una caso di necessità. Esperimenti con potenziali soggetti
persona delle incongruenze che possono sorgere come mostrano un significante aumento del numero di passi
conseguenza delle sue azioni. L’obiettivo principale nel lavaggio delle mani che un soggetto è in grado di
di tutto l’ambiente è quello di assicurare, attraver- completare senza l’assistenza di un caregiver.
so attività di monitoraggio quotidiano, l’aderenza dei
comportamenti della persona assistita a dei modelli
comportamentali prestabiliti per vivere bene. 2 Schema generale RDE (Robo-
Il risultato di tutto il lavoro è un prototipo di am- care Domestic Enviroment)
biente intelligente che integra robotica e componenti
software per ottenere un monitoraggio proattivo. Rias-
sumendo il tutto, si può dire che gli obiettivi di fondo
sono:
1. mantenere un comportamento continuo, in modo
tale da garantire un monitoraggio continuo di ciò
che avviene (lo stato degli anziani assistiti ed il
loro contesto domestico);
In figura è rappresentato uno schema degli elementi
2. creare delle conoscenze circa le azioni che di RDE [2][3]. Il contesto principale è un apparta-
l’anziano assistito esegue (routine, eccezional- mento di tre stanze di una persona anziana. Il RDE
mente, ecc); è equipaggiato con i seguenti agenti, che forniscono
3. fornire servizi di interazione contestualizzata servizi di varia natura:
con l’obiettivo di garantire assistenza proattiva ˆ Un robot di servizio domestico, dotato di
all’anziano. laser basato su algoritmi di scansione per l’auto-
Come già detto precedentemente, il progetto Robo- localizzazione robusta, per la pianificazione dei
Care mira ad usare le tecniche dell’AI per migliorare la percorsi e gli algoritmi per evitare gli ostacoli;
qualità della vita di tutti i giorni delle persone anziane. ˆ Un Interaction Manager, che coordina la sin-
Un uso similare di tecnologie intelligenti è descritto in tesi degli atti linguistici e fornisce la capacità di
una catena di indagini indirizzate in altri campi di rispondere a semplici domande fatte dall’utente,
ricerca. Tra quelle che anticipano e influenzano Robo- quindi fornire un’ interfaccia utente intuitiva
Care, vale la pena ricordarne alcune. PEAT è uno da/per il robot;
strumento basato sulle tecnologie AI che vuole miglio-
rare l’indipendenza delle persone affette da lesioni in- ˆ Due telecamere stereo fisse che forniscono
tracraniche. Esso è un calendario elettronico ed anche un servizio di People Localization and Tracking
rubrica che usa il planning automatizzato per generare (PLT) [9], e un servizio di Posture Recognition
i piani per le attività della vita quotidiana. PEARL è (PR) [10];
un assistente mobile robotico, sviluppato per assistere ˆ Un ADL (Activities of Daily Living) monitor,
gli individui anziani con lievi deficit fisici e cognitivi, un sistema di monitoraggio delle schedulazioni
nonché per supportare gli infermieri nelle loro attiv- che è responsabile per il monitoraggio delle attiv-
ità quotidiane. Tre moduli principali costituiscono le ità giornaliere della persona assistita e di valutare
componenti base per fornire l’interazione uomo-robot: l’aderenza ai vincoli comportamentali definiti dal
un sistema di memoria automatizzato; un sistema di caregiver;
monitoraggio e rilevazione delle persone; e un robot
controller di alto livello. I.L.S.A è un sistema di sup- ˆ Un personal data assistant (PDA) in cui è pre-
porto che incorpora modulo di rilevamento, capacità sente una interfaccia molto semplice, formata da
di rilevamento della situazione e pianificazione della quattro bottoni, che permette di (1) convocare il
risposta per aiutare le persone anziane a vivere au- robot, (2) inviare il robot a una posizione speci-
tonomamente nella propria casa. Esso fornisce un’in- fica, (3) trasmettere streaming video dal robot al
terfaccia web che permette agli utenti di visualizzare i PDA, e (4) fermare il robot.

2
3 MONITORAGGIO ATTIVITÀ E GENERAZIONE DELLE INTERAZIONI The RDE Project

2.1 Interaction Manager 3 Monitoraggio Attività e Gen-


È stata accoppiata con la piattaforma robotica una erazione delle Interazioni
sottocomponente separata con la capacità di inter-
azione verbale, che si occupa di controllare e integrare Le informazioni provenienti dai sensori ambientali
i servizi esportati dai seguenti sottosistemi: sono date come input per l’Activity Monitor, che è
incaricato di seguire l’andamento reale del compor-
tamento della persona assistita e di confrontarlo con
ˆ una “testa parlante” , Speech Synthesis Mod-
le raccomandazioni del caregiver. Due tipi di infor-
ule, chiamata Lucia, sviluppata presso l’istituto
mazione sono fondamentali per orientare l’interazione
di tecnologie e scienze cognitive di Padova. E’
mixed-initiative (Allen et al., 1999): (a) qualsiasi vi-
una piattaforma software, dotata di funzionalità
olazione di vincoli rappresenta un’occasione per il sis-
di parola basate sull’elaborazione di specifici file
tema di intervenire; (b) l’interpretazione semantica dei
in formato testo.
vincoli violati determina il contenuto della verbaliz-
zazione. A tal fine l’Interaction Manager esegue un
ˆ un sistema di riconoscimento vocale, Speech processo di ragionamento sui vincoli violati e sintetiz-
Recognition Module, chiamato Sonic, svilup- za una verbalizzazione contestualizzata che è presen-
pato presso l’Università del Colorado. Le pa- tata all’utente sotto forma di avvertimenti, consigli o
role e/o frasi riconosciute sono successivamente allarmi.
restituite in formato testo, l’IM è incaricato
di interpretare le stringhe restituite e aggiustare
le variabili ambientali coinvolte in conformità ai
messaggi ricevuti.

2.2 Daily Activity Monitor


L’interazione è stabilita in due differenti direzioni, in
Tornando alla spiegazione della fig. precedente, un base a chi prende l’iniziativa di iniziare un dialogo:
ruolo importante è giocato dal modulo per il monitor-
aggio dell’attività quotidiane. In linea generale, l’idea ˆ Iniziativa dell’utente. Classifichiamo come in-
è quella di tenere traccia di una serie di raccoman- iziativa dell’utente la categoria di dialoghi “do-
dazioni prescritte dal caregiver per una “vita sana” manda/risposta”. Questa attività ha inizio da
sotto forma di comportamenti che l’anziano dovrebbe un input vocale da parte della persona assisti-
seguire in un periodo di tempo. Tali vincoli compor- ta. La produzione della risposta è gestita inter-
tamentali vengono specificati attraverso un linguag- namente prevalentemente dal gestore che ha in-
gio a vincoli temporali, messo a disposizione dall’ ar- formazioni sulla cronologia delle attività e/o sul-
chitettura di scheduling O-Oscar [6], inteso a facilitare lo stato attuale dell’ambiente, per rispondere a
gli utilizzatori in generale. I comportamenti di “vita domande del tipo “ho pranzato?” , “Che ora
sana” sono ricette come “prendere la medicina solo è?”. In questo modo l’assistito riceve un sostegno
dopo mangiato” o “L’ora per il pranzo è tra 12:00- per la propria pianificazione delle attività gior-
2:00”, ecc. L’insieme delle “specifiche di comporta- naliere o per questioni specifiche connesse allo
mento sicuro” è rappresentato, in O-Oscar, come un stato dell’ambiente.
programma parzialmente ordinato di attività, costru-
ito come un problema temporale semplice (STP - Sim- ˆ Iniziativa del sistema. In questo caso è l’am-
ple Temporal Problem - Dechter et al. (1991)). biente intelligente che inizia l’interazione guida-
L’ultimo collegamento tra l’ambiente fisico e le rac- to dal suo ragionamento interno. Istanze delle
comandazioni è il modulo finale della figura, chiama- iniziative del sistema sono scenari “Danger” e
to schedule execution. Questo è un modulo software “Warning”. L’attivazione del pericolo è affronta-
che simula principalmente l’esecuzione del programma to da uno specifico comportamento del sistema
raccomandato e combina tale esecuzione con l’osser- multi-agente che interrompe il flusso abituale di
vazione dei sensori nell’ambiente reale. Dall’analisi attività e si impegna in un’azione: il robot viene
dei dati dei sensori è possibile discriminare tra i com- inviato alla persona assistita, inizia un dialogo
portamenti degli utenti nominali e quelli anomali. Le specifico, e in assenza di risposta dell’assistito,
anomalie possono essere disfunzioni gravi (per es. l’u- darà immediatamente un allarme verso il mondo
tente non risponde all’ interazione per troppo tempo) esterno (chiamata ad un parente,ecc.). Uno sce-
che portano direttamente ad allarmi verso il mondo es- nario di avvertimento è quello in cui le violazioni
terno,oppure meno critiche (per es. prendere medicine dei vincoli vengono rilevate dall’Activity Moni-
in ritardo) che porta ad un’interazione verbale robot- tor che decide i valori per i parametri utilizzati
utente che intende sottolineare la violazione della re- dall’ Interaction Manager al fine di attivare un
gola e il suggerimento di una linea di comportamenti dialogo, sintetizzato sulla base della conoscenza
corretta. interna del monitor, con la persona assistita.

3
The RDE Project

3.1 Generazione di interazioni a par- segnalato come in ritardo, la durata di alcune attività
tire dalla conoscenza dello schedul- può superare il valore nominale, e cosı̀ via; ogni
ing deviazione dal piano nominale è un evento che può
comportare un conflitto che deve essere soddisfatto.
Al fine di fornire servizi affidabili, il RDE deve
mantenere un modello interno dell’ambiente che La capacità di aggiungere e ritrattare vincoli tem-
viene monitorato (world database), i cui aspetti porali da/per il piano in corso permette di mantenere
più significativi devono essere tenuti costantemente costantemente solo le informazioni originali che sono
aggiornati e coerenti con i dati ambientali ricevuti coerenti con lo stato del mondo attuale, senza tener
dai sensori. La precisione di allineamento tra il conto delle informazioni temporali che confliggono con
mondo reale e il modello è essenziale per garantire la la situazione ambientale rilevata (che viene sfruttata
precisione necessaria del compito di controllo. per far scattare gli avvisi e gli allarmi). Il fatto che
Modellazione dei tipi di comportamento desiderato. I il contenuto informativo inizialmente fornito dal care-
vincoli comportamentali da monitorare, imposti dal giver è mantenuto al massimo nel piano con il passare
caregiver, sono facilmente espressi come attività in del tempo, viene utilizzato per fornire alla persona as-
un calendario che sono legate l’una all’altra attraverso sistita un servizio affidabile e un servizio di monitor-
una serie di relazioni temporali. Qualora il piano aggio di alta qualità, anche in termini di spiegazioni
iniziale preparato dal caregiver contenga incongruenze date.
temporali, il sistema è progettato per evidenziarle in
modo da essere corrette; nessun piano inconsistente è
mai avviato per il controllo dell’esecuzione. 4 DCOP per Smart Homes
In questo paragrafo discuteremo di una soluzione al
problema del coordinamento fra servizi, definito in
termini di distributed constraint reasoning.
Per il caso in esame, il coordination framework è
Un esempio di programma è rappresentato nella basato sull’algoritmo Adopt-N (descritto successiva-
figura soprastante. La figura mostra tre attività che mente) utilizzato per risolvere Distributed Constraint
sono temporalmente legate l’una all’altra attraverso Optimization Problems (DCOP ) [4].
una serie di vincoli (le frecce nere), i cui valori sono
espressi per mezzo di intervalli [dmin, dmax] che
determinano la distanza minima e massima tra le 4.1 Multi-Agent Coordination nella
attività coinvolte in ogni vincolo. Questo paradigma Smart Home
di rappresentazione permette di gestire facilmente
il modello e la flessibilità temporale attraverso la Come già descritto precedentemente, le componenti
gestione di vincoli in termini di finestra temporale principali di un “sistema intelligente” sono: sensori,
piuttosto che imporre valori rigidi per gli istanti di conversational assistants, dispositivi per il monitorag-
tempo. Un requisito importante per la rappresen- gio della salute, eccetera. L’insieme di queste compo-
tazione dello scheduling nominale è quello di evitare nenti fornisce non solo i servizi necessari per l’osser-
di vincolare la persona assistita (e il caregiver!) vazione dell’ambiente e dell’assistito, ma anche tutte
con eccessiva rigidità. La capacità di esprimere tali le funzionalità necessarie per la partecipazione proatti-
concetti è essenziale quando si tratta di modelli di va nella vita quotidiana. In generale, e per i propositi
comportamento umano, in quanto consente di definire di questa trattazione, definiremo queste componenti
i limiti per la durata di attività e di collocamento come applicazioni che offrono servizi.
nel tempo che siano sufficientemente flessibili per Una delle difficoltà maggiori, che si incontrano
accogliere una forte variabilità. quando diversi servizi vengono integrati, riguarda il
problema del coordinamento. In un sistema come
Una volta che i vincoli comportamentali sono spec- quello in esame, servizi multipli possono essere at-
ificati dal caregiver in termini di un insieme coerente tivati concorrentemente e la combinazione di questi
di azioni,viene avviato il monitoraggio del comporta- può risultare piuttosto complessa e apparentemente
mento della persona assistita nell’ ambiente. Quando ingestibile.
il monitoraggio delle attività inizia, i sensori vengono Ogni servizio corrisponde ad un embebbed agent, i
periodicamente interrogati e il programma nominale è cui task sono dinamicamente allocati in funzione dello
regolato in conformità con il comportamento rilevato stato corrente dell’ambiente e della persona assistita;
del paziente. Ad ogni ciclo di rilevamento, viene a questo punto, il servizio di coordinamento può essere
verificato lo stato di esecuzione di ogni attività: tra i ridotto ad un Multi-Agent Coordination (MAC).
casi possibili, alcune attività possono essere segnalate Lo schema generale dell’approccio MAC-based è
come in esecuzione prima del loro orario di inizio rappresentato in figura:
nominale, l’esecuzione di altre attività può essere

4
4 DCOP PER SMART HOMES The RDE Project

algoritmi di risoluzione DCSP/DCOP (vedasi Adopt


nel paragrafo successivo) devono occuparsi anche del-
la minimizzazione degli scambi di messaggi fra agenti
(che è esponenziale nel caso peggiore).
L’approccio adottato nel nostro caso, per la
risoluzione del coordinamento multi-agente è basato
sull’algoritmo (ottimo e asincrono) Adopt-N per l’ot-
timizzazione di problemi distribuiti. La parte (b) del-
la figura precedente mostra una descrizione ad alto
livello della problematica DCOP: ogni applicazione è
controllata da un agente sw che partecipa al decision
making distribuito attraverso una serie di variabili vin-
colate (caratterizzanti, appunto, un DCOP). Chiami-
amo Api il generico sottosistema intelligente integrato
nella smart home. Ogni applicazione Api fornisce un
servizio Si . Entrando nei dettagli del sistema, ogni
applicazione gestisce una o più variabili attraverso un
agente che ne costituisce l’interfaccia con il meccanis-
dove le applicazioni nell’ambiente fisico (parte [a]
mo di coordinamento sottostante. Per esempio, l’ap-
della figura) sono avvolte dagli agenti software, la
plicazione che provvede al servizio di localizzazione
cui partecipazione nell’infrastruttura di coordinamen-
può scrivere attraverso il suo agente la variabile che
to distribuita (parte [b]) definisce il modo in cui
rappresenta la posizione corrente dell’assistito e questa
vengono invocati i servizi.
potrà essere letta da tutte le applicazioni che provve-
Nel caso in esame, come già accennato, il coordina- dono a servizi richiedenti la posizione corrente del
mento dei servizi è compiuto mediante la riduzione del soggetto assistito. In generale, alcune variabili che
problema MAC ad un DCOP, estensione del classico rappresentano l’input di una data applicazione pos-
constraint reasoning problem. Quest’ultimo, come no- sono essere l’output di altre. Le relazioni funzionali
to, è definito da una tupla < V, D, C > dove vi ∈ V è tra i servizi sono modellate come vincoli tra variabili.
una variabile che può essere scelta nel dominio Di ∈ D Nel complesso, la rappresentazione constraint-based
e C è un insieme di vincoli. fra variabili codifica il comportamento desiderato del
Nei CSP (Constraint Satisfaction Problem), un vin- sistema. Quando Adopt-N è in funzione, gli agenti
colo su un sottoinsieme di variabili {vi ...vj } ⊆ V è una cooperativamente convergono sull’assegnamento delle
funzione fvi ...vj : Di × ... × Dj → {true, f alse} espri- variabili che rappresenta un possibile comportamen-
mendo il concetto che certi assegnamenti di variabili to del sistema in una certa situazione. Le variabili
possano essere ammissibili o meno. Per quanto riguar- che costituiscono DCOP possono essere raggruppate
da invece COP (Constraint Optimization Problem), i in due tipologie: variabili input (Vin ) che modellano
vincoli sono espressi mediante una funzione la conoscenza esterna acquisita dai sensori ambientali,
fvi ...vj : Di × ... × Dj → N esprimendo il fat- e variabili output (Vout ) che rappresentano il risulta-
to che un determinato assegnamento di valori per to del processo di coordinamento distribuito: il loro
le variabili produce un intero (il costo dell’assegna- valore è determinato mediante l’algoritmo Adopt-N e
mento); la problematica dei COP riguarda quindi la può costituire l’input di altre applicazioni (attuatori).
ricerca della soluzione ottima (che minimizza il costo
dell’assegnamento).
Ricerche sui sistemi distribuiti hanno portato alla 4.2 Risoluzione Cooperativa del Coor-
definizione di una nuova branca di constraint reason- dination Problem
ing conosciuta come Distributed Constraint Reason-
ing (DCR); quest’ultima focalizza la propria atten- Indichiamo con S la situazione corrente (stato dei
zione su algoritmi per la risoluzione di Distributed servizi e della persona assistita), e sia St la situ-
CSP e COP (DCSP/DCOP). Per queste categorie di azione al tempo t. Se St 6= St−1 gli agenti devono
problemi definiamo le caratteristiche generali: le vari- inoltrare una “istanza di coordinamento” con cui de-
abili sono controllate fisicamente da agenti e i vincoli cidono l’assegnamento A che rappresenta l’attivazione
sulle variabili diventano vincoli sugli agenti; inoltre, dei servizi desiderati.
la conoscenza è distribuita, ma gli agenti conoscono La componente del sistema che si occupa di man-
solo i vincoli sulle variabili associate. La presenza di tenere una schedulazione compatibile con le esigen-
vincoli inter-agenti comporta la necessità di comuni- ze della persona assistita è l’Activity Monitor e la
cazione per l’inoltro delle loro decisioni ad altri agen- sua attività può richiedere la combinazione di sem-
ti con cui condividono un vincolo, e per l’accordo su plice propagazione temporale, ri-scheduling ed altre
assegnamenti che soddisfano (in DCSP) o minimiz- procedure complesse.
zano il costo (in DCOP) dei vincoli di cui non sono a In generale, è impossibile avere garanzie sulla stret-
conoscenza. Per la natura distribuita del sistema, gli ta reattività degli agenti; infatti, anche se l’algorit-

5
4.3 Adopt-N Algorithm The RDE Project

mo Adopt-N è asincrono, la procedura risolutiva deve mo per RDE, senza modificarlo internamente. Inoltre,
essere iterata in maniera sincrona. mentre gli algoritmi più diffusi per il distributed rea-
Più specificatamente, Adopt-N viene utilizzato nel soning sono impiegati nella pratica come thread con-
RDE come descritto in Algorithm 1, ed invocato solo correnti su una singola macchina, la caratteristica di
asincronia di Adopt-N facilita fortemente il passaggio
Algorithm 1 Sincronizzazione di ogni agente a di a una distribuzione reale, dove i ritardi per il message
Adopt-N in RDE passing sono maggiori per ampiezza e casualità.
iter ← 0
Siter ← getSensoryInput(Vin a
) 4.3 Adopt-N Algorithm
while true do
In queste pagine verrà descritto Adopt (Asynchronous
Siter−1 ← Siter
Distributed OPTimization)[6] un algoritmo per l’ot-
{Wait until (current input has changed) OR
timizzazione di vincoli binari distribuiti. L’algoritmo
(someone else has started)}
utilizzato in RDE è Adopot-N (Asynchronous Dis-
while (Siter = Siter−1 ) ∧ (iter ≥ a0 .iter, ∀a0 6= a)
tributed OPTimization fon n-ary constraints), un es-
do
a tensione di Adopt. La limitazione di Adopt è infat-
Siter ← getSensoryInput(Vin )
ti la sola possibilità di utilizzare vincoli binari fra le
end while
variabili che è stata rimossa in Adopt-N permettendo
iter ← iter + 1
l’utilizzo di vincoli n-ari. In questo paragrafo verrà
for all di ∈ Dv∈Vina ∪V a do
out proposto Adopt, dato che la conversione di vincoli n-
lb(di ) ← 0 {Reset lower and}
ari in vincoli binari può essere fatta senza modifiche
ub(di ) ← ∞ {upper bounds}
sostanziali dell’algoritmo.
end for
Prima di vedere le caratteristiche vincenti sulle quali
A|Vout
a ← runAdopt()
a si basa Adopt analizziamo lavori precedenti e i prob-
triggerBehavior(Vout )
lemi che si incontravano nell’implementarli. I lavori
end while
presenti in letteratura prima di Adopt sono i seguenti:
ˆ Asynchronous Backtracking (ABT) (Yokoo92)[7]:
quando St 6= St−1 . Il metodo getSensoryInput() dello
limitato solamente a problemi di soddisfacibilità
pseudocodice cattura lo stato dell’ambiente tramite le
booleana;
variabili di input dell’agente a. Tutti gli agenti, con-
correntemente, invocano Adopt-N quando rilevano un ˆ Synchronous Branch and Bound (SynchBB) (Hi-
cambiamento di stato o un altro agente ha iniziato rayama97)[7]: che era proibitivamente lento e
l’iterazione di solving. Quando un agente rileva una richiedeva una comunicazione sincrona tra gli
differenza fra le sue variabili di input, la sua decisione agenti oltre che una conoscenza totale del sitema;
di eseguire l’algoritmo di coordinamento viene propa-
gata in cascata ad altri agenti secondo un priority tree ˆ Iterative Improvement (Yokoo96)[7]: Non garan-
(si veda la condizione del ciclo while interno). tiva la terminazione.
Il valore delle variabili di input è vincolato a ri- Ciò che si è imparato dal passato è che l’ostacolo
manere fisso durante l’esecuzione del processo deci- principale per la risoluzione di un DCOP è combinare
sionale dell’algoritmo. Questo avviene per mezzo di l’ottimalità della soluzione con la comunicazione as-
una procedura di controllo dei vincoli unari, per la cincrona e con una conosconza locale (che permette
quale ogni attribuzione di valore diverso dal valore di abbassare lo spazio richiesto). I precedenti approci
percepito deve essere fissato a ∞, cosicché non venga hanno fallito perchè è difficile assicurare un backtrack-
mai esplorata dall’agente di controllo della variabile. ing di ricerca sistematico quando gli agenti modificano
Si noti che è anche possibile modificare il valore di le loro variabili in modo asincrono, inoltre, tutti gli
queste variabili, modificando il problema prima di ogni algoritmi proposti in letteratura utilizzavano il back-
iterazione. La strategia di constraint checking è impie- tracking solamente quando erano sicuri di essere ar-
gata per facilitare rappresentazione e riuso del codice. rivati ad una soluzione che non conduceva a quella
Infatti, per DCOP non è mai necessario cambiare il ottima.
valore delle variabili tra le iterazioni e questo permette Date le caratteristiche generali del sistema già spie-
di minimizzare la fase di ri-inizializzazione fra le iter- gate, Adopt deve basarsi sulle seguenti metodologie:
azioni. Entrando maggiormente nei dettagli, la fase di
ˆ Ogni agente deve poter ottimizzare una funzione
ri-inizializzazione si verifica in Adopt-N “resettando”
globale comunicando solo localmente con i propri
il costo globale determinato da ogni agente, e inducen-
vicini. Non sarebbe accettabile che ogni agente
do nuovamente la procedura di ricerca distribuita per
parlasse con un unico agente centrale pre-eletto;
l’assegnamento di costo minimo. Dato che Adopt-N
non si basa sulla comunicazione sincrona tra agenti, il ˆ Deve trovare la soluzione velocemente permet-
trasferimento di messaggi avviene con una certa du- tendo ad ogni agente di lavorare in modo asin-
rata temporale casuale, ma comunque finita. Questa corno. Non sarebbe infatti accettabile una co-
caratteristica ha reso possibile l’adozione dell’algorit- municazione sincrona in cui ogni agente resta in

6
4 DCOP PER SMART HOMES The RDE Project

uno stato di attesa ad aspettare un particolare ˆ Iterativamente vengono scambiati, tra i nodi vici-
messaggio da un vicino, dato che, questo tempo ni nell’albero, informazioni sull’attuale lower-
perso, potrebbe essere utilizzato per fare ciò di bound, upper bound, threshold e sul valore del-
cui l’agente si occupa. la propria soluzione tramite messaggi: Threshold
messagge, Value message, Cost message (come
Adopt ha cercato di risolvere questi problemi rappresentato nella figura precedente parte (b));
basandosi su 3 idee chiave:
ˆ Ogni volta che un nodo ha delle nuove infor-
1. Ogni agente ha la possibilità di cambiare l’asseg- mazioni ricalcola il costo dei vincoli in cui è impli-
nazione della sua variabile non appena ha trovato cato fino a quando trova un valore della propria
una soluzione migliore di quella corrente. Questa variabile che porta il valore del vincolo sotto il
strategia richiede che il sistema sia asincrono dato lower bound precedentemente calcolato. A questo
che ogni agente non richiede informazioni globali punto si è trovata una soluzione subottima, il
per fare le proprie decisioni. lower bound viene sovrascritto e la precedente
soluzione scartata;
2. Il punto 1 permette di abbandonare soluzioni
parziali per altre subottime, quindi deve es- ˆ Ogni nodo oltre al lower bound (lb) calcola anche
sere data la possibilità all’agente di riverificare l’upper bound (ub). Nel momento il nodo root
soluzioni scartate tenendo una complessità di ha le informazioni di tutti i nodi e il backtracking
spazio lineare. Questo è stato fatto tramite le non migliora la soluzione (threshold = 0) i nodi
backtrack threshold. possono terminare l’esecuzione.
3. Provvedere a un meccanismo di terminazione in-
terna all’algoritmo. Prima di adesso infatti ogni
algoritmo richiedeva un algoritmo esterno di ter-
minazione da chiamare indipendentemente e che
richiedeva un’inutile scambio di messaggi. Og-
ni agente termina quando threshold = 0 (la
procedura verrà spiegata meglio nel seguito).

Si rende noto il fatto che DCOP è un noto proble-


ma NP-Hard. La soluzione ad ogni istanza del proble-
ma in tempo polinomiale non è quindi possibile, dato
che esisteranno sempre istanze che metteranno in crisi
qualsiasi algoritmo. Adopt, nel caso di una soluzione
ottima non calcolabile in tempi limitati, da la possi-
bilità del calcolo di una soluzione approssimata. La
complessità di spazio richiesto per ogni singolo agente
4.4 Agenti, Variabili e Vincoli in RDE
è lineare come è lineare il numero di messaggi inviati. La modelizzazione dei componenti presenti in RDE
L’idea di funzionamento dell’algoritmo è la seguente: DCOP è stata fatta suddividendo il sistema in agenti,
variabili e vincoli secondo l’immagine di seguito.
ˆ la rete viene modellata in un albero, in base al
grafo dei vincoli, in cui ogni nodo contiene una
singola variabile e può avere più figli ma un solo
genitore;

ˆ Ogni nodo assegna alla propria variabile un valore Le variabili sono suddivise in variabili di input (fornite
tra quelli del dominio. dai sensori) e variabili di output (scritte da Adopt-N).

7
The RDE Project

Per esempio il vincolo cerchiato in rosso nell’immagine Object Activity fV 3


ha 2 variabili di input (PLTState che da informazioni
riguardo alla stanza in cui si trova la persona assisitita Remote Television 20
e PRState che da informazioni sulla posizione attuale Stove Dinner 10
della persona assistita) e una variabile di Output (Ac- Cofee Breakfast 12
tivity in cui viene memorizzata l’attività che la per- BreadKnife Launch 30
sona assistita sta facendo in quell’istante). Ad ogni
coppia PLTState e PRState è associato un costo fV 2 . Oltre a questa soluzione si possono adottare alle
Adopt-N ha il compito, ogni qualvolta cambia il valore strategie quali: (1) discriminazione dell’attivita’ in
associato alle variabili di input, di andare a modificare base all’orario, (2) studio di algoritmi di Posture
la variabile di output in base al costo. Nell’esempio Recognition piu’ efficaci.
seguente tutti i costi sono tenuti a zero dato che non Oltre a questo vincolo ci sono anche altri vincoli
esistono coppie di valori di variabili di ingresso uguali che Adopt-N andrà a valutare ogni qualvolta si verifi-
e quindi la discriminazione dell’attività corrente può cano dei cambiamenti nella variabili di input, andan-
essere fatta senza modificare i costi. do a modificare le variabili di output e, nel caso, lo
scheduling delle attività di O-Oscar.

5 L’architettura di scheduling
PRState PLSTate Activity fV 2
O-OSCAR
Sitting Kitchen Eating 0
Standing Kitchen Cooking 0 Il problema che tratteremo ora riguarda la gestione e
Laying Kitchen Emergency 0 la modifica di uno schedule in esecuzione in un am-
Standing Bathroom hand washing 0 biente reale o simulato, nel quale è presente un certo
grado di imprevedibilità e incertezza. Dato un insieme
di attività/task, l’obiettivo iniziale è di trovare uno
schedule, ossia una collocazione temporale che soddisfi
Dato che la rilevazione dell’attività eseguita non è due aspetti fondamentali della consistenza:
di facile determinazione (ci possono essere più azioni
che l’assistito può eseguire nella stessa stanza e nella ˆ Resourse Consistency: non è possibile eseguire
stessa posizione) si è pensato di aggiungere agli ogget- operazioni quando le risorse non sono disponibili;
ti utilizzati dalle persona anziana un chip RFID. Og-
ni qualvolta la persona sta maneggiando l’oggetto, il ˆ Temporal Consistency: rispettare tutti i vin-
chip RFID comunica con il RFID reader al braccio coli temporali dei vari task, come release time,
dell’assistito. L’attività eseguita sarà associata univo- deadline ecc..
camente alla funzione dell’oggetto utilizzato. A livello
di modello viene aggiunto il seguente blocco Durante l’esecuzione di uno schedule, il verificarsi di
un evento esogeno potrebbe minacciare la consistenza
e quindi portare alcune attività a violare vincoli tem-
porali o a richiedere risorse già allocate. Per questo
motivo è necessario revisionare la soluzione temporale
in esecuzione ogni volta che si verifica un evento es-
terno al fine di mantenerne la consistenza. Uno dei
problemi chiave da risolvere è la qualità delle soluzioni
trovate. La nuova soluzione, a fronte di una manca-
ta consistenza, deve essere il più vicino possibile al-
la precedente in modo da mantenere una certa conti-
nuità temporale. Tradizionalmente esistono due ap-
procci a questo problema, il Predittivo, in cui lo
in cui compADL associa ad ogni oggetto un costo fv3 schedule è robusto e capace di assorbire i “distur-
che sarà inversamente proporzionale al livello di “con- bi” causati dall’evento esogeno, e il Reattivo, che
fidenza” delle informazioni, cioè alla bontà delle infor- modifica la soluzione ogni volta che è necessario man-
mazioni ricevute. Ciò che Adopt-N esegue ogni volta tenere la consistenza dello schedule. Quest’ultimo ap-
per determinare l’azione eseguita è la minimizzazione proccio è implementato dall’O-OSCAR [6] grazie al-
della funzione: fV 2 (P RState, P LT State, Activity) + l’Execution Monitor. L’EM è capace di realizzare
fV 3 (Object, Activity) con fV 2 ∈ {0, ∞} e fV 3 ∈ N. una sorta di comportamento reattivo e conveniente-
L’attività eseguita è quindi determinata da Adopt-n mente riaggiustare lo schedule mediante la procedu-
in base all’azione che minimizza la funzione cioè quel- ra ISES (Iterative Sampling Earliest Solutions), un
la in cui le informazioni trasferite hanno confidenza metodo costraint-based sviluppato per risolvere prob-
massima . In questo esempio: lemi RCPSP/Max (Resource Constrained Project

8
5 L’ARCHITETTURA DI SCHEDULING O-OSCAR The RDE Project

Scheduling Problem with Time Windows). Lo sched- I Costraint Reasoners sono richiamati ogni volta
ule Execution Monitor è stato sviluppato come un’in- che qualche cambiamento influenza la descrizione
tegrazione di O-OSCAR, una architettura software attuale legata alla soluzione corrente.
costraint-based utile per la soluzione di problemi di
scheduling complessi. Inoltre, è stato sviluppato an- I due Constraint Reasoners sono: il Temporal
che il Contingency Simulator, un modulo esterno Constraint Management, che memorizza e analizza
che simula eventi inaspettati e mette cosı̀ alla prova le informazioni temporali usando una Temporal Net-
l’intero O-OSCAR. Il CS, in particolare, tenta di ri- work risolvendo il problema come un Simple Temporal
tardare attività, variarne la durata o rendere le risorse Problem, e il Resource Consistency, che mantenen-
non disponibili. Ciò simula situazioni che potrebbero do per ogni risorsa un Resource Profiles, mantiene in-
succedere realmente e quindi utili per testare l’oper- formazioni sul livello di consumazione della risorsa e
atività dell’ Execution Monitor. Il cuore di tutto il sulla sua consistenza. Un certo numero di servizi attivi
sistema è il Representation Module, i cui compiti possono essere implementati sfruttando prontamente
sono: il Representation Module, come l’Automated Problem
Solving Module detto anche SOLVER. Quest’ultimo
ˆ Domain Representation: descrizione di tutte le
guida la ricerca della soluzione basandosi sull’ISES al-
caratteristiche rilevanti del mondo e i vincoli che
gorithm [11]. Tale procedura greedy opera al fine di
regolano la sua evoluzione dinamica tramite un
trovare una soluzione consistente e rispettosa di tutti
symbolic language;
i vincoli esistenti, evitando che si creino dei conflit-
ˆ Problem Representation: descrizione dei goal in ti tra risorse e che le attività non rispettino i vin-
termini di stati desiderati da raggiungere a partire coli temporali. Una volta che una soluzione iniziale
da uno stato iniziale. per un dato problema è ottenuta, l’Execution Con-
trol module è responsabile di distribuire le attività
O-OSCAR utilizza un approccio CSP (Con-
pianificate per l’esecuzione e di monitorare lo stato
straint Satisfaction Problem) come tool di
di esecuzione dei task e degli aspetti rilevanti dell’
modellazione base per la risoluzione dei prob-
ambiente. Le informazioni contenute nel CDB ven-
lemi di scheduling. Per questo, tutte le infor-
gono cosı̀ continuamente aggiornate, mentre l’ Exe-
mazioni mantenute nel Representation Module
cution Monitor rileva le eventuali inconsistenze che
devono essere organizzate in termini di vincoli.
si possono creare. Quest’ultimo reagisce riportando lo
schedule indietro in uno stato consistente. L’azione di
riparazione viene eseguita sfruttando le capacità del-
l’algoritmo ISES, che è utilizzato come “black box ”; in
altre parole, le revisioni dello schedule vengono trat-
tate come un ri-scheduling globale, senza concentrarsi
solo su una piccola finestra temporale della soluzione.
Lo pseudo-codice che vediamo di seguito descrive l’al-
goritmo seguito dall’Execution Control. All’inizio, la
variabile temporale T è inizializzata a zero e la vari-
abile execSchedule riferisce allo schedule in esecuzione.
Ad ogni ciclo, l’ambiente è osservato per identificare
una differenza tra la situazione che ci si aspetta e l’at-
Tutti i dati necessari per la risoluzione dei problemi tuale. Se un evento inaspettato viene rilevato, la rapp-
di schedule sono memorizzati e mantenuti in costante resentazione della situazione contenuta nel CDB viene
aggiornamento nel CDB (Costraint Data Base). Esso aggiornata e si procede con il controllo della consisten-
offre un servizio attivo che mira a far rispettare, quan- za temporale e di risorsa. Se non sorgerà nessun tipo
do è possibile, i vincoli che rappresentano il proble- di conflitto allora l’esecuzione dello schedule può con-
ma. In particolare, il CDB è responsabile dei seguenti tinuare, altrimenti uno schedule revision deve essere
aspetti: eseguito per eliminare le varie inconsistenze, sia di tipo
temporale che di contesa di risorse.
ˆ Domain and Problem Representation: il domain
Come menzionato precedentemente, l’approccio us-
Representation Language permette la rappresen-
ato nell’Execution Monitor può essere considerato
tazione di classi di problemi nonché dei vincoli
globale, nel quale la procedura di revisione accetta
relativi ad ogni classe.
lo schedule nel suo complesso, tenta di risolvere tutti
ˆ Solution Representation and Management: la i conflitti presenti e ritorna la soluzione. Come con-
rappresentazione di una soluzione in O-Oscar è seguenza di ciò l’unico modo a nostra disposizione di
costruita in cima a due specializzati Costraint esercitare controllo sulle attività è di farlo in maniera
Reasoners, ognuno responsabile di un partico- preventiva, prima della ISES procedure e quindi pri-
lare aspetto del dominio. I due filoni di infor- ma che quest’ultima manipoli lo schedule. Tale con-
mazione più importanti da mantenere sono tem- trollo è necessario per almeno due motivi: il primo è
poral features del dominio e resource availability. che vogliamo mantenere la soluzione fisicamente con-

9
RIFERIMENTI BIBLIOGRAFICI The RDE Project

Algorithm 2 L’Algoritmo di scheduling [3] Amedeo Cesta, Luca Iocchi, Riccardo Leone,
T ←0 Daniele Nardi, Federico Pecora, Riccardo Ras-
execSched ← Schedule0 coni Robotic, Sensory and Problem-Solving In-
while (Schedule NOT executed) do gredients for the Future Home. ISTC-CNR, In
ENVIRONMENT SENSING D. Monekosso, P. Remagnino, and Y. Kuno
if Unforeseen Events then (Eds.), “Intelligent Environments: Methods, Al-
UPDATE REPRESENTATION gorithms and Applications”, pp.67-87, Springer,
if (NOT Temporal Consistency) then DOI 10.1007/978−1−84800−346−05 (published
EXIT WITH FAILURE on-line September 2008). Comunicazione Privata
else con Amedeo Cesta (amedeo.cesta@istc.cnr.it).
if (NOT Resource Consistency) then
[4] Federico Pecora, Amedeo Cesta DCOP for Smart
SCHEDULE REVISION
Homes: a case study. ISTC-CNR, In Compu-
end if
tational Intelligence, An International Journal,
if (Conflicts NOT eliminated) then
23(4):395-419, 2007. Comunicazione Privata con
EXIT WITH FAILURE
Amedeo Cesta (amedeo.cesta@istc.cnr.it) .
end if
end if [5] Riccardo Rasconi, Amedeo Cesta Execution Mon-
else itoring and Schedule Revision for O-OSCAR:
T =T +1 a Preliminary Report. ISTC-CNR, In Pro-
end if ceedings of Online-2003 (Online Constraint
end while Solving: Handling Change and Uncertain-
ty), A CP-03 Workshop, Kinsale, Ireland,
September 29, pp. 9-23, C. Beck, K. Brown
sistente in ogni istante, il secondo è che vogliamo con- and G. Verfaillie (Eds.), 2003. Reperibile in
servare la possibilità di soddisfare un set di preferenze http://pst.istc.cnr.it/∼amedeo/papers.php
date dall’utente. E’ desiderabile che, a fronte di pos-
sibili eventi esogeni durante l’esecuzione dello sched- [6] Pragnesh Jay Modi, Wei-Min Shen, Milind
ule, la nuova soluzione rimanga il più vicino possibile Tambe ADOPT: Asynchronous Distributed Con-
alla soluzione iniziale. La continuità dello schedule straint Optimization with Quality Guarantees.
può essere controllata inserendo o togliendo vincoli di University of Southern California, In Artificial
precedenza inseriti nell’ultima esecuzione della ISES. Intelligence Journal, (AIJ) 2005. Reperibile in
In conclusione, l’attuale sistema è stato implementato http://www.cs.cmu.edu/∼pmodi/
e testato con un set preliminare di 15-30 job. I risul- [7] Amedeo Cesta, Gabriella Cortellessa, Riccardo
tati ottenuti sono molto incoraggianti: nonostante le Rasconi, Federico Pecora User-oriented problem
inconsistenze di diversa natura che sono state iniettate abstractions in scheduling. ISTC-CNR, In In-
nell’ambiente il sistema è riuscito a lavorare veloce- novations in Systems and Software Engineer-
mente creando nuove soluzioni consistenti. Per esem- ing, 2(1):1-16, 2006. Comunicazione Privata con
pio, è stata testata l’abilità del sistema nel recuperare Amedeo Cesta (amedeo.cesta@istc.cnr.it).
da improvvisi ritardi di una o più attività di differente
gravità o da indisposizioni di risorse in vari momen- [8] S. Bahadori, L. Iocchi, G. R. Leone, D.
ti dell’esecuzione. Per dare un’idea delle performance Nardi, L. Scozzafava Real-Time People Lo-
raggiunte, il sistema riesce a rischedulare un proble- calization and Tracking through Fixed Stereo
ma RCPSP/Max di 20 attività e 3 risorse in un tempo Vision. In Industrial and Engineering Appli-
medio di 190 millisecondi, durante l’esecuzione. cations of Artificial Intelligence and Expert
Systems (IEA/AIE), Bari, Italy, 2005. Reperi-
bile in http://www.dis.uniroma1.it/∼iocchi-
Riferimenti bibliografici /publications/iocchi-ieaaie05.pdf
[9] S. Pellegrini and L. Iocchi. Human Posture
[1] Amedeo Cesta, Alfredo Milani Planning and
Tracking and Classification through Stereo Vi-
Scheduling. In Intelligenza Artificiale (Ital-
sion and 3D Model Matching. PEURASIP Jour-
ian Journal on Artificial Intelligence), Spe-
nal on Image and Video Processing. vol. 2008 pp.
cial Issue for the 50th AI Anniversary, 3(1-
1-12.ISSN:1687-5176 doi:10.1155/2008/476151.
2):35-41, Marzo-Giugno 2006. Reperibile in
http://pst.istc.cnr.it/∼amedeo/papers.php [10] Amedeo Cesta, Angelo Oddi, Stephen F. Smith
An Iterative Sampling Procedure for Resource
[2] Amedeo Cesta, Gabriella Cortellessa, Riccardo Constrained Project Scheduling with Time Win-
Rasconi Monitoring Ederly People with the Robo- dows. IP-CNR, In Computational Intelligence,
Care Domestic Environment Synthesis and User An International Journal, 2006. Reperibile in
Evaluation. ISTC-CNR, Comunicazione Privata http://pst.istc.cnr.it/∼amedeo/papers.php
con Amedeo Cesta (amedeo.cesta@istc.cnr.it).

10

Potrebbero piacerti anche