Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Anuska Benacchio Giuseppe Cassano Mirco Furlan Francesco Locascio Nicolò Paganin
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
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
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).
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
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