Sistemi Reattivi

Sistemi Reattivi

Parametri di Confronto

Nella presente rassegna vengono introdotte un certo numero di architetture innovative per la realizzazione di agenti artificiali autonomi, definiti anche Sistemi Reattivi per la loro proprietà caratteristica di rispondere in tempo reale agli stimoli provenienti dall'ambiente circostante. Le implementazioni proposte dai vari ricercatori si riferiscono, normalmente, ad ambienti specifici con caratteristiche ben individuate, per cui non esistono criteri omogenei per il confronto tra le diverse architetture.

Per ovviare tale limitazione J. E. Laird ha proposto un certo numero di parametri di valutazione atti a caratterizzare la bontà di un sistema autonomo:

Generalità per quali ambienti e quali compiti l'architettura è più appropriata
Versatilità quali sono i comportamenti a disposizione per risolvere tali compiti
Razionalità le azioni del sistema sono sempre consistenti con i suoi obiettivi
Programmabilità il sistema può essere esteso dotandolo di nuova conoscenza attraverso una programmazione esplicita
Capacità di apprendere il sistema può acquisire nuove conoscenze attraverso procedure di apprendimento, e/o imparare a svolgere nuovi compiti
Flessibilità è possibile comandare il sistema per fargli svolgere uno tra i diversi compiti possibili
Scalabilità l'aumento di conoscenze permette di affrontare problemi di maggiore dimensione senza deterioramento delle prestazioni
Efficienza il sistema è in grado di operare in tempo reale
Aderenza biologica il sistema è un modello di comportamenti umani, ed è basato su conoscenze di carattere neurofisiologico

Sebbene tali proprietà permettano di stabilire una base generale per il confronto fra i risultati ottenuti, si è preferito seguire un criterio di elencazione che mettesse in luce le affinit&agreve biologiche delle varie architetture, percorrendo le fasi evolutive che ciascun metodo ha usato, e sulla rilevanza posta alla rappresentazione simbolica nelle computazioni. Si parte da insetti semplicemente reattivi per avvicinarsi sempre più al livello di intelligenza umano. Non sono stati inclusi i sistemi con capacità di apprendimento, anche se molti passi sono già stati fatti in questa direzione (ad esempio [Dor:91] e [Dor:93], per limitare l'analisi a delle impostazioni più attinenti al tipo di sperimentazione seguita.

Inquadramento

Molte delle architetture proposte sono state realizzate in forma di prototipo o di simulazione. La loro organizzazione può vedersi esemplificata secondo tre linee guida.

Si va, allora, dal minimalismo estremo che nega la necessità di qualunque rappresentazione del mondo ai sistemi quasi classici in cui la rappresentazione gioca un ruolo importante. Si noti, comunque, che tutte le implementazioni proposte impiegano una qualche rappresentazione del mondo. Ciò che ogni soluzione proposta cerca di provare è l'impiego di rappresentazioni non parassitarie.

Minimalisti

Brooks

Nel campo della robotica mobile, le semplificazioni viste prima sono raccolte insieme nella subsumption architecture di Brooks [Bro:86]. La novità di tale metodo consiste nel proporre una suddivisione della catena di informazioni elaborate dal sistema centralizzato, tipicamente sequenziale nell'approccio classico (vedi fig. 3.1),

secondo una decomposizione verticale (vedi fig. 3.2), che produce flussi multipli di informazione, ciascuno relativo ad una particolare funzione assegnata al robot.
In questo modo, ogni sequenza (sensori-evitamento-attuatori, sensori- esplorazione-attuatori, ecc.) si occupa di uno specifico aspetto nel funzionamento globale dell'agente e può svilupparsi parallelamente ad altri processi. Il passaggio dai sensori agli attuatori attraversa sempre le fasi di modellazione e pianificazione, ma le informazioni sensoriali necessarie all'avvio delle singole computazioni non hanno più bisogno di essere integrate tra loro per la costruzione del modello unitario, a cui tutti i processi devono rivolgersi. Il peso dell'elaborazione percettiva è distribuito parallelamente fra i diversi percorsi di controllo: ogni funzione si limiterà all'analisi dei soli caratteri per cui ha definita una risposta, accelerando i tempi di reazione allo stimolo percepito dall'esterno.

Secondo Brooks l'organizzazione interna del robot va progettata tenendo presenti due principi fondamentali: indipendenza e località.

Il principio di indipendenza sostiene che i vari moduli devono essere mutuamente indipendenti tra loro, altrimenti non sarebbe possibile sostituirne uno nell'architettura se questo dipendesse dalla struttura interna di un altro modulo. Conseguenza immediata all'applicazione di questo principio è l'impossibilità di mantenere un modello del mondo completo, condivisibile tra tutti i moduli, per la mancanza di una sua collocazione nell'architettura e perchè vi dovrebbe essere un agente designato esclusivamente al mantenimento delle informazioni da indirizzare agli altri componenti, violando la modularità del sistema.

Lo scopo del modello, in realtà, è di creare internamente all'agente una replica dei dintorni correnti da cui le singole procedure misurano particolari quantità che selezioneranno l'azione da intraprendere. Perché allora non eseguire la stessa analisi trasferendo le misurazioni direttamente sull'originale piuttosto che su un suo qualsiasi rifacimento? L'agente percepisce gli eventi nel mondo e fa ciò che è nella sua natura fare, sfruttando le opportunità che questo gli offre ([Bro:91a]).

Per il principio di località ciascun sottocompito richiede, per completarsi, solo una parte limitata di tutta l'informazione sensoriale disponibile. Il robot risponde solo ad eventi del mondo senza mantenere stati persistenti: la memoria di cui ha bisogno è realizzata leggendo direttamente la situazione ambientale che gli indica il modo operativo corrente. Il mondo esterno diventa il mezzo attraverso il quale i moduli possono comunicare tra loro, mediante le azioni che sono eseguite, e avere feedback sulle proprie. La mancanza di qualsiasi ricordo su azioni precedenti però, può provocare ambiguità nell'interpretazione degli input sensoriali, perciò i moduli sono costruiti come automi a stati finiti (ciascuno stato contiene una piccola quantità di memoria locale) a cui si sono aggiunti dei timers (la memoria è limitata anche temporalmente). Il cambiamento di stato è provocato dall'esaurirsi dell'attesa nel temporizzatore associato o dal superamento di una certa soglia nei valori provenienti dai sensori.

La scomposizione della struttura da centralizzata a parallela, deve essere tale da produrre come risultato un comportamento del robot efficiente nell'ambito in cui viene posto. La scelta delle funzioni da assegnare ai singoli moduli prende spunto dai principi di funzionamento dei sistemi biologici [1], soprattutto da quelli individuati nelle ricerche compiute in etologia.

Per gli etologi, il generico comportamento animale [2] è prodotto da una serie di moduli comportamentali indipendenti, i behavior, attivati dalla presenza di specifiche combinazioni di stimoli che vengono rilevate attraverso i meccanismi percettivi. I comportamenti sono raggruppati a seconda che la loro azione abbia lo scopo di difendere l'animale, di procacciargli del cibo o di procreazione. Il comportamento globale osservato nell'animale è una combinazione delle componenti attivate in quel momento dalla presenza delle motivazioni scatenanti.

Con lo stesso principio, nel robot saranno implementati comportamenti che ne mantengano l'integrità fisica, gli consentano di esplorare l'ambiente in cui si trova o lo dirigano verso una meta precisa. Ciascun comportamento sarà operante in maniera autonoma dagli altri e agirà a seconda delle sollecitazioni raccolte all'esterno. La specificità delle funzioni svolte renderà i moduli semplici da realizzare e sperimentare. Questi ultimi, per l'indipendenza dagli altri moduli, saranno facilmente sostituibili nel caso di modifiche alla loro composizione interna. La robustezza dell'intero sistema rimarrà garantita anche quando, durante il funzionamento, uno dei moduli dovesse interrompere la sua esecuzione, poiché la perdita di alcune capacità del sistema non limita lo svolgersi delle altre.

La formazione etologica di queste nuove idee, trasferisce i conflitti dalla fase di sensor fusion, necessaria per integrare insieme i dati provenienti dai sensori, alla fase che sceglie, tra le azioni suggerite dai moduli, la migliore da inviare agli attuatori, chiamata di behavior fusion. Sempre utilizzando il paradigma di comportamento animale, la prima idea di Brooks realizza l'arbitraggio tra i moduli secondo uno schema fisso di priorità (vedi fig. 3.3): i moduli ai livelli superiori possono, finché sono attivati dalle opportune condizioni sensoriali, sottomettere i moduli al livello sottostante agendo sui loro ingressi o sulle loro uscite.

Il controllo è distribuito, e fissato durante la costruzione del sistema, mediante dei canali di comunicazione tra i livelli. I messaggi che circolano in questi canali sono generati dai moduli e finiscono a due tipi di nodi: inibitore e soppressore (vedi fig. 3.4). Un modulo ad un livello superiore può inibire le uscite di un modulo del livello sottostante così che l'output prodotto venga bloccato e non prosegua la sequenza di elaborazione. La soppressione degli ingressi sostituisce ai dati in arrivo al modulo inferiore l'informazione specificata dal modulo dominante.
Nella prima implementazione della subsumption architecture [Bro:86], ad ogni messaggio era associata una costante temporale che inibiva o sopprimeva i dati durante l'intervallo di tempo prefissato. I comandi che il modulo inferiore intendeva eseguire in quel periodo venivano dimenticati e, invece di produrre una risposta puramente riflessiva, l'applicazione di ogni messaggio conteneva in realtà una piccola parte di piano. In una successiva analisi, Connell [Con:90] ha suggerito l'eliminazione del limite di tempo sostituendolo con una sequenza continua di messaggi che ha effetto finchè questi sono ricevuti dal modulo sottomesso.

I livelli individuano classi di comportamenti specifici per il robot, e in genere ai livelli più alti vi sono i comportamenti con un grado di competenza maggiore rispetto quelli sottostanti. In questo modo, ai motori verranno trasmessi i comandi proposti dall'agente più intelligente attivo in quel momento.

Grazie alla modularità della struttura, per aumentare le capacità del sistema basterà aggiungere le competenze di nuovi agenti sopra quelle già esistenti, eventualmente aggiungendo, dato che non vi sono risorse condivise, altri dispositivi hardware che sveltiscano le operazioni. L'integrazione del nuovo livello con i precedenti forma un arbitro a strati, che però ha bisogno di essere definito in un unico processo iniziale, perché tutti gli aspetti del controllo[3] siano analizzati contemporaneamente.

Nei lavori successivi Brooks [Bro:89] e Connell [Con:90] sostituiscono la stratificazione, che definisce un ordinamento totale nei comportamenti del robot, cambiando la gerarchia evolutiva e permettendo che parti di un livello abbiano differenti priorità in relazione ai livelli attivi con cui interagiscono: un nuovo livello può fornire una soluzione utilizzabile solo quando i livelli inferiori non sono più in grado di agire.

Questa visione incrementale, prodotto di meccanismi specializzati, è condivisa nel lavoro sulla cognizione umana, contemporaneo a quello di Brooks, di M. Minsky [Min:86], secondo il quale, l'attività mentale umana è composta da vari agenti indipendenti, di differente complessità, che esprimono un comportamento intelligente attraverso relazioni di cooperazione e comunicazione reciproche.

Gli esperimenti compiuti hanno prodotto robot abili nella navigazione autonoma in un ambiente reale come Allen, in [Bro:90], capaci di esplorare e riconoscere forme note come Herbert, in [Con:90], o con cooperazione reciproca tra i comportamenti, innata come Attila, in [Bro:89], o appresa come Genghis, in [Maes:90b]. Un robot dalle funzioni superiori è realizzato da Mataric [Mata:90] con uno schema distribuito che utilizza la subsumption architecture: un algoritmo di navigazione di basso livello segue i contorni degli oggetti che incontra durante il moto.

Sfruttando le proprietà qualitative dei dati provenienti dai sensori, riconosce i landmarks [4] e costruisce un grafo come mappa approssimata dell'ambiente. Il grafo sarà utilizzato per determinare il percorso dalla posizione corrente fino al punto di arrivo seguendo i collegamenti tra i landmarks e le reazioni dei comportamenti innescati, ed evitando l'uso di vincoli geometrici che richiederebbero altrimenti un controllo preciso della posizione del robot.

Brooks, nel proporre questa nuova architettura, ne giustifica la correttezza di impostazione seguendo l'affermazione fatta da Simon [Sim:69]:

An ant, viewed as a behaving system, is quite simple. The apparent complexity of its behavior over time is largely a reflection of the complexity of the environment in which it find itself.

per arrivare, sempre dallo stesso libro[5], a:

The proper study of the mankind has been said to be man. But ... man - or at least the intellective component of man - may be relatively simple; ... most of the complexity of his behavior may be drawn from his environment, from his search for good design.
Nonostante le affermazioni così drastiche ed essenziali che caratterizzano il lavoro di Brooks e del MIT AI Lab, ciò che rende straordinari i risultati ottenuti da questo gruppo può definirsi il classico uovo di Colombo. L'efficacia nel raggiungimento dell'obiettivo per il quale i robot sono stati creati, dimostra che la relativa semplicità della loro progettazione e realizzazione consente di superare in maniera brillante alcuni degli ostacoli tipici dell'approccio classico. La soluzione è così semplificata che gli agenti autonomi creati possono a ragione definirsi insetti artificiali[6] dato il grado di intelligenza dimostrato.

Questa metodologia sviluppata da Brooks, è basata sulla physical grounding hypothesis, sul fatto cioè che per costruire un sistema che si comporti in modo intelligente, è necessario che le sue rappresentazioni siano ancorate all'ambiente fisico. Critiche e perplessità sui possibili sviluppi non mancano, i meriti però sono quelli di avere focalizzato l'attenzione sui mezzi che realizzano le operazioni del sistema di elaborazione verso l'esterno. Sensori ed attuatori sono strumenti strettamente fisici e quindi portati proprio per la loro natura ad essere una fonte continua di errori e incertezze, ma sfruttandoli nel modo più opportuno rispetto alle caratteristiche possedute si può migliorare la qualità dell'interazione macchina-ambiente.

Coscienti che il tipo di architettura minimalista non realizza un agente autonomo simile all'uomo o ad altri animali superiori, gli obiettivi di Brooks e dei suoi collaboratori sono di affrontare gli aspetti della competenza umana in un ordine diverso da quello classico, sperimentando fino a dove sia possibile arrivare utilizzando questa nuova impostazione.

Anderson e Donath

Una generalizzazione del lavoro di Brooks può essere considerato l'approccio descritto da Anderson e Donath [Don:90]. Le fondamenta usate sono sempre quelle etologiche riguardanti il comportamento emergente, riflesso del tipo di interazioni tra l'agente autonomo e il mondo circostante. I moduli in questo caso costituiscono una libreria di comportamenti primitivi, paragonabili ai diversi istinti di cui sono dotati gli animali, ciascuno concorrente e separato dagli altri, preparato a rispondere opportunamente ad uno stimolo specifico rilevato dall'ambiente. La risposta di ogni comportamento sarà direzionata solo dalla presenza dello specifico evento ambientale poichè i moduli non possiedono nessuna forma di memoria sulle azioni intraprese precedentemente.

Avendo a disposizione un insieme di agenti differenti, il comportamento emergente può essere stabilito mediante un arbitraggio statico, che abilita concorrentemente un gruppo di comportamenti primitivi, e anche da un arbitraggio dinamico, che produce l'attivazione sequenziale degli insiemi di azioni primitive. Se nella subsumption architecture entrambi questi arbitraggi sono costruiti nel circuito attraverso le comunicazioni tra i livelli di competenza, nell'architettura di Anderson e Donath non vi è nessun meccanismo che decide quale dei moduli avrà una maggiore priorità per il controllo degli attuatori in un dato istante, rispetto ai moduli attivi.

Esiste una separazione tra il meccanismo che combina gli output degli agenti e i dispositivi che ne influenzano il comportamento. In base alla missione che il robot deve realizzare si rendono disponibili all'attivazione solo i comportamenti ritenuti utili allo scopo.

Per il controllo dell'attivazione di un modulo sono aggiunti degli switch (vedi fig. 3.5) a ciascuno dei collegamenti con i sensori: arrestando il flusso dei nuovi dati in ingresso, il comportamento è inibito dal produrre nuove azioni. Le uscite generate dai vari comportamenti attivi sono espresse come campi di potenziale, i quali verranno sommati assieme secondo il principio di sovrapposizione degli effetti, per determinare il comando globale[7] da eseguire.

Un raffinamento ulteriore consiste nell'aggiungere un peso valutato continuamente all'uscita di ogni comportamento, per indicare il grado di partecipazione dell'azione primitiva al comportamento globale del sistema. La dinamica delle interazioni tra l'agente e il mondo esterno verrà modificata attraverso l'aggiunta o la soppressione dei diversi comportamenti riflessivi, provvedendo che il tipo di risposta prodotta sia compatibile con le altre.

I meccanismi che influenzano i comportamenti sono separati dal meccanismo che controlla l'attivazione di un particolare modulo. Il comportamento finale ottenibile dipenderà quindi da due diversi fattori: l'insieme di comportamenti primitivi attivati per la situazione, e l'ambiente che fornisce gli ingressi ai meccanismi di stimolo-risposta. Il controllo così suddiviso consente una maggiore chiarezza e modularità permettendo modifiche alle componenti senza conseguenze sul resto del sistema.

Con la suddivisione proposta è anche possibile studiare le diverse forme di interazione dell'agente con l'esterno, semplicemente aprendo o chiudendo gli appropriati switch di comunicazione. Il comportamento emergente cambierà a seconda degli agenti abilitati per la situazione corrente. Il proposito degli autori è di sviluppare una teoria formale che determini l'insieme di behaviors attivabili in ogni momento in funzione dell'occorrenza di uno specifico evento nell'ambiente.

Kaelbling e Rosenchein

L'approccio seguito da Kaelbling e Rosenchein, pur concordando con i minimalisti sulla consistenza dei tempi di risposta alla dinamica dell'ambiente, costruisce il tipo di reazioni dell'agente, compilando la conoscenza nota a priori in una forma immediatamente accessibile durante il funzionamento.

Secondo Kaelbling [Kae:86], i requisiti fondamentali che un agente intelligente dovrebbe possedere quando opera in un ambiente imprevedibile e complesso sono:

Modularità il sistema deve poter essere costruito incrementalmente a partire dalle componenti di base
Consapevolezza in ogni momento il sistema deve essere consapevole di ciò che sta avvenendo per reagire prontamente alle situazioni inaspettate
Robustezza il sistema deve funzionare degradando minimamente le sue prestazioni nel caso in cui alcuni dei suoi sensori diventassero inutilizzabili

I propositi da realizzare sono i medesimi di Brooks, con cui condivide anche parte della decomposizione orizzontale, propone però un'architettura ibrida: con una suddivisione principale nelle due componenti percezione-azione, e all'interno di ciascuna una decomposizione orizzontale (vedi fig. 3.6). Questo perché la percezione distribuita tra le varie componenti del sistema, come avviene nella subsumption architecture, non consente un'interpretazione completa dei dati sensoriali, utile invece ai comportamenti più sofisticati che dipendono da condizioni globali piuttosto che dalle proprietà dei singoli sensori.

I livelli di astrazione all'interno del modulo di percezione consentiranno, alle elaborazioni in corso nel modulo azione, di disporre della rappresentazione più adatta alle loro funzioni. Il modulo azione, composto da un insieme di comportamenti, potrà decidere la migliore strategia da applicare agli attuatori e ai sensori per ottenere le informazioni necessarie ai passi successivi o per segnalare dove va focalizzata tutta la capacità percettiva del sistema.

I comportamenti nel modulo azione elaborano autonomamente i dati in ingresso e danno in uscita i comandi per gli attuatori, se hanno completato tutte le operazioni, o un segnale di no-output, se devono ancora terminare la computazione. La decisione di quale azione scegliere tra quelle proposte verrà fatta da comportamenti mediatori (vedi fig. 3.7). Tenendo presente che i comportamenti nel livello più basso di competenza non possono mai dare una risposta di no-output[8], in uscita verrà inviato il comando del modulo più competente attivo in quell'istante.

Il lavoro appena visto si inserisce poi in un progetto più ampio per lo studio degli embedded agents [Kae:90], per descrivere i quali è utile un linguaggio che si riferisca a stati dell'ambiente piuttosto che a strutture dati interne all'agente stesso.

Nella progettazione di un tale sistema autonomo, l'architettura di figura 3.6 diventa utile per separare il problema dell'acquisizione degli input dall'esterno da quello riguardante la scelta dell'azione più adeguata sulla base dei dati. Si definisce quindi la semantica delle strutture dati dell'agente in termini di correlazioni con la realtà esterna: una variabile x porta l'informazione p nello stato del mondo s, $s~mapsto~K(x,~p)$, se per tutti gli stati del mondo in cui x ha lo stesso valore che ha in s allora p è vera.

In molte occasioni, però, è preferibile decidere l'azione da eseguire, non solo in funzione delle informazioni ricevute, ma tenendo presenti anche gli obiettivi di quel momento. Avere un obiettivo q, significa avere l'informazione che q implica un goal fissato di alto livello N. Definendo un operatore G in questo modo

G(x,~q)~~\equiv~~K(x,~q~\mapsto~N)
si interpreta la relazione come: x ha per obiettivo q, se contiene l'informazione che q implica N. Poichè gli obiettivi sono definiti in termini di informazione, è possibile usare gli stessi strumenti formali usati per studiare l'informazione anche per i goals. Informazione ed obiettivi diventano così concetti duali.

Se si considera una delle proprietà dell'informazione

K(x,~q~\mapsto~q)~~\mapsto~~(K(x,~p)~\mapsto~K(x,~q))
l'analogo per gli obiettivi diventa:
K(x,~q~\mapsto~q)~~\mapsto~~(G(x,~p)~\mapsto~G(x,~q))
che è proprio un assioma per la definizione dei sottocompiti del sistema: se l'agente ha come obiettivo q e ha l'informazione che q è conseguenza di una condizione più specifica p allora è ammissibile che adotti p come goal.

La scelta dell'azione da eseguire, piuttosto che in funzione dei soli termini d'informazione f(i), è più conveniente da ottenersi come funzione di due argomenti f'(g,i), dove g è interpretato come il goal dinamico dell'agente ed è determinato in base allo stato corrente dell'agente e al suo obiettivo finale, $g_0$. L'analisi potrà suddividersi in due parti: una per determinare il goal temporaneo che porterà alla realizzazione dell'obiettivo finale e una per trovare l'azione che soddisfa il goal locale.

Il linguaggio GAPPS, Goals as Parallel Program Specifications, creato da Kaelbling [Kae:88] utilizza la semantica dei goals, per definire la componente azione descritta nell'architettura precedente. Dando in ingresso al compilatore GAPPS il goal ad alto livello e un insieme di regole per la riduzione in sub-goals, si ottiene la descrizione di un circuito logico che ha come input le uscite del modulo percezione e come output l'uscita globale dell'agente.

La conoscenza statica posseduta dall'automa viene tradotta in un programma di decisione che consiste di coppie condizione-azione. Ad intervalli regolari, tutte le condizioni vengono esaminate in parallelo e vengono eseguite le azioni con la componente condizione verificata, prestando attenzione a quelle che ha senso fondere insieme. Con questo tipo di sintesi degli obiettivi, è possibile anche l'unione o la disgiunzione di goals, cioè di programmi, semplicemente aggiungendo o togliendo elementi alla lista di coppie condizione-azione.

Il sistema autonomo così descritto mantiene la reattività ad eventi improvvisi pur realizzando un obiettivo di alto livello, in quanto un intervallo significativo dei compiti legati ad una risposta adattativa del robot all'ambiente può essere precompilato.

Il progettista può determinare l'insieme appropriato di reazioni da inserire nel sistema, ragionando sulla conoscenza rilevante in tempo di compilazione perché il risultato sia disponibile run-time. Il numero di capacità cognitive automatizzate in questo modo non descrive comunque tutte le situazioni possibili perciò, per affrontare quelle escluse o impreviste, durante il funzionamento si potrà usare un pianificatore incrementale (vedi fig. 3.8) in [Kae:86], che esegue un passo alla volta della pianificazione e controlla ad ogni ciclo le condizioni da cui dipende la correttezza del piano.

Il sistema in uscita produrrà il piano cercato al termine dell'esecuzione, se le condizioni per la sua attuazione sono ancora valide, o darà una risposta di non pronto, se sta ancora elaborando con le vecchie condizioni o se sta aggiornandosi perché il contesto è cambiato.

L'utilizzo dell'informazione simbolica sarà effettuato solo durante la compilazione, e eventualmente nel pianificatore run-time, garantendo la reattività del sistema autonomo alla dinamicità dell'ambiente.

Agre, Chapman

Studiando gli esseri umani ci si chiede com'è organizzata l'attività quotidiana e che implicazioni vi siano nell'organizzazione dei meccanismi cognitivi. Studiando le macchine ci si chiede che forma può assumere il comportamento dell¹agente e che tipo di meccanismo cognitivo è compatibile con tale atteggiamento. La risposta è che nell'attività quotidiana non c'è bisogno di seguire un piano prestabilito, il comportamento espresso deriva da semplici meccanismi di interazione tra il sistema e la situazione corrente. La partecipazione alla dinamica dell'ambiente senza tentare di averne il completo dominio, semplifica l'organizzazione delle strutture per le risposte del sistema.

Le routine sono schemi di interazione tra un agente e il suo mondo: quando un agente segue una routine non è guidato da una conoscenza prestabilita di quello che succederà nel futuro, se le circostanze cambiano anche le sue risposte cambieranno. Non si segue un piano rigido ma si sfruttano delle opportunità che danno risposte semplici e perciò permettono un'attività in tempo reale.

In [Agre:87] viene usata un tipo di rappresentazione chiamata deictic representation, che descrive una relazione causale tra l'agente e le entità individuate nel mondo. L'attività è guidata dalle proprietà rilevanti della situazione corrente dette indexical-functional aspects. Indexical aspects, perché gli aspetti e le entità dipendono dalle circostanze in cui si trova l'agente (individuano caratteristiche dello spazio che gli sta attorno).

Functional aspects, perché dipendono dagli scopi che l'agente si è prefissato[9]. Ogni aspetto cercherà l'entità per lui definita senza il bisogno di dare significato ai simboli della rappresentazione interna, cioè di trovare il legame tra gli oggetti definiti all'esterno e le variabili definite internamente all'agente. Lo stesso oggetto nell'ambiente può rappresentare due entità diverse allo stesso istante, o in istanti diversi, a seconda degli aspetti che hanno significato nell'attività dell'agente. Le entità non sono categorie logiche perché sono indicizzate: la loro estensione dipende dalle circostanze.

Le sperimentazioni di Agre e Chapman sono compiute utilizzando dei videogiochi, Pengi e Sonja, perché questi ambienti contengono, anche se in una forma semplice, le stesse difficoltà per complessità, incertezza e necessità di risposte immediate dei problemi nel mondo reale.

Pengi usa costantemente circostanze e opportunità del suo ambiente improvvisando dei tentativi per soddisfare i suoi progetti, [Agre:87]. L¹improvvisazione differisce dal piano come sequenza di comandi, perché le azioni che risultano ad ogni momento sono ottenute da un processo di ragionamento che si rinnova attraverso la situazione corrente. Eppure l'improvvisazione, come la pianificazione, include previsioni su ciò che potrà accadere nel futuro anche senza un modello dell'ambiente a cui far riferimento.

Non vi sono rappresentazioni e piani che simulano gli effetti delle azioni nell'ambiente, ma sono usate delle routines visive[10] che individuano particolari configurazioni di eventi, che serviranno poi per indicare le azioni da eseguire. In questo senso la visione di piano è intesa come una risorsa di vario tipo usabile dall¹agente quando possiede le capacità atte ad interpretarlo, definito come Plans-as-Communication [Agre:90].

Pengi è composto di due parti: un sistema visivo ed un sistema centrale. La potenza dell'architettura giace interamente nelle interazioni tra queste due componenti non in ciascuna individualmente. Il visual system ha un insieme di marcatori visivi che indicano punti di particolare interesse, i punti non marcati dell'immagine sono effettivamente invisibili. Il sistema visivo può muovere questi marcatori come se fossero diretti dal sistema centrale e riferire le proprietà delle locazioni indicate.

Vi saranno routine mantenute sempre attive ed altre innescate solo in particolari circostanze. Nel caso di azioni conflittuali vi sono dei livelli di arbitraggio che permettono di sostituire un'azione ad un'altra gia suggerita, rivedere quella sostituita, senza che vi sia una rappresentazione dei possibili mondi futuri. Realizzando un buon arbitraggio questo produrrà una sequenza di azioni ottimali.

Come negli approcci visti finora, i problemi connessi all'uso di un piano sono semplificati usando le azioni situate, cioè istruzioni date nel corso di un'attività in svolgimento, perché le istruzioni sono date nei momenti appropriati[11]; sono più semplici; sono date da un agente esterno.

Architetture ibride

Uno schema tipico per avere i vantaggi di una pianificazione strategica e la reattività agli stimoli, è adottare un modello a due livelli: al livello superiore un pianificatore decide una sequenza di obiettivi astratti da seguire, basandosi sulla conoscenza corrente; al livello più basso, un meccanismo di controllo dirige verso questi obiettivi trattando con le contingenze ambientali. Il controllo è complesso perché deve essere in grado di mediare tra le esigenze del pianificatore e quelle delle reazioni innate, coprendo il salto che c'è tra obiettivi astratti e movimenti fisici.

Il pianificatore provvederà alla gestione dei comportamenti primitivi e al raggiungimento dell'obiettivo finale dividendosi in un pianificatore strategico ed un pianificatore tattico. Il primo pianifica a lungo termine, individuando la sequenza di sotto-obiettivi da realizzare per raggiungere il goal e passando i risultati per l'esecuzione al pianificatore tattico. Il secondo inizializza e monitora i comportamenti prendendosi cura degli aspetti temporali per la loro coordinazione.

Alcune di queste architetture ibride sono analizzate qui di seguito, ma altre ancora possono essere viste nei lavori di: Gat [Gat:92] con ATLANTIS; Hartley [Hart:91]; [Bon:91].

Connell

Cercando di superare le limitazioni poste dalla subsumption architecture, Connell ha proseguito il lavoro iniziato al MIT progettando la SSS architecture [Con:92] (vedi fig. 3.10).

In questa organizzazione si tenta di integrare insieme il livello dei servo- meccanismi, quello della subsumption architecture e quello simbolico, in modo da sfruttare tutti i vantaggi che ogni livello può offrire.

Nella posizione più bassa vi è la parte che monitora continuamente lo stato dell'ambiente e lo rappresenta attraverso un insieme di valori scalari. I moduli del livello intermedio sono riconoscitori di particolari tipi di situazioni, che vengono raccolte in categorie a seconda del compito da svolgere. Il sistema simbolico discretizza il tempo sulla base degli eventi significativi, creando una sequenza temporale di azioni basata su cambiamenti nello spazio.

Il livello della subsumption individua le situazioni rilevanti discriminandole dalle altre presenti e agisce modificando i valori di controllo degli attuatori. Interpreta, per un particolare compito, classi di stati sensoriali come fossero equivalenti quando la risposta da indicare ai motori è la stessa.

Il livello simbolico cerca il primo istante in cui un insieme di riconoscitori della situazione è valido e, in conseguenza, attiva o blocca selettivamente alcuni dei moduli comportamentali e ne modifica i parametri.

Tra i due livelli più alti è stata aggiunta una contingency table per disaccoppiare il sistema simbolico da interrogazioni che richiedono una risposta in tempo reale. La contigency table specifica un certo numero di eventi, precompilando l'azione da intraprendere quando le circostanze adatte occorrono. Definisce ciò che il livello simbolico si aspetta che accada e offre il piano, di un solo passo, per affrontare la situazione esterna.

I due livelli inferiori sono usati nella navigazione tattica, per risolvere l'imprevedibilità e la dinamicità dell'ambiente. La navigazione strategica invece è opera del livello simbolico che, utilizzando una mappa approssimata dell'ambiente definita in modo simile a [Mata:90], se ne serve per trovare un percorso efficiente fino al punto di arrivo e abilitare i comportamenti che ritiene adatti per la prima parte del cammino, parametrizzando le loro operazioni in modo appropriato. Non è necessario un controllo costante dei moduli perché il livello subsumption verrà riconfigurato dalla presenza di eventi particolari.

Arkin

La costruzione di robot autonomi con un buon grado di intelligenza [Ark:90c], dovrebbe applicare alcune delle ipotesi sulla navigazione animale proposte dagli studi di etologia, cibernetica e psicologia cognitiva. Nel lavoro descritto gli aspetti utilizzati di queste teorie riguardano il comportamento reattivo, la percezione e il controllo omeostatico.

Il concetto base per Arkin è lo schema[12], come codifica mentale di esperienze che includono un particolare modo di percepire e rispondere a situazioni complesse. Sulla base dell'interazione tra gli esseri umani e il mondo reale, l' action-perception cycle (vedi fig. 3.11) dà un suggerimento su come può essere applicata la nozione di schema alla robotica mobile: i dati sensoriali raccolti modificano la mappa cognitiva dell'ambiente, utilizzata successivamente per produrre le azioni che cambieranno lo stato del mondo esterno e delle nuove informazioni da rilevare.

Applicato ai sistemi autonomi, lo schema diventa un processo indipendente e parallelo agli altri in evoluzione, che possiede la capacità di attivare i compiti percettivi e motorii necessari per reagire all'ambiente. In questo modo i comportamenti di tipo stimolo-risposta sono raccolti in una forma più adattabile e controllabile per migliorare la performance del sistema.

Dal concetto di schema derivano tre principali unità di controllo:

Sul ruolo della conoscenza a priori dell'ambiente, le posizioni dei diversi autori sono contrastanti pure rientrando tutti nella categoria dei sistemi reattivi: da un estremo Brooks esclude completamente l'utilizzo del modello simbolico perché è un'inutile causa di rallentamenti; Kaelbling e Rosenchein ammettono la necessità di una conoscenza a priori, ma poiché\`e il sistema deve mantenersi reattivo agli eventi, traducono parte della rappresentazione simbolica in una forma più semplice e maneggevole per produrre risposte immediate.

Arkin invece, desidera una navigazione efficiente, flessibile e soprattutto generalizzabile, perciò ritiene essenziale l'uso di una conoscenza a priori dell'ambiente. Affiancata a questa vi sarà la conoscenza acquisita dall'agente durante il proseguimento della missione che servirà per controllare le difficoltà che possono emergere dalle interazioni con l'esterno.

Lo sviluppo dell'architettura AuRA (Autonomous Robot Architecture) [Ark:87], è motivato da una serie di obiettivi: rendere la struttura di navigazione applicabile ad un'ampia gamma di dominii; permettere l'aggiunta di nuove strategie motorie e percettive senza dover riprogettare il sistema; utilizzare nella navigazione la conoscenza ad alto livello per una migliore gestione delle risorse; fornire il robot di meccanismi che ne consentano la sopravvivenza in ambienti ostili.

L'intero agente è organizzato in maniera tale che, l'obiettivo finale dato in ingresso al sistema passa ad un pianificatore gerarchico che lo traduce, dal mission planner attraverso navigator e pilot, fino al motor schema manager (vedi fig.3.12).

Il mission planner ed il navigator descrivono la traiettoria da seguire usando le informazioni provenienti dalla Long Term Memory, mentre il pilot rivede il piano sfruttando i dati sensoriali più recenti organizzati nella Short Term Memory.

Nonostante la staticità richiesta, con degli algoritmi di apprendimento è possibile riportare nella LTM alcuni oggetti presenti nella STM di cui è stata notata la persistenza nell'ambiente. Arrivati al motor schema manager, i motor schemas opportuni vengono istanziati con i parametri forniti dal pianificatore ed iniziano la loro attività, indipendentemente l'uno dall'altro.

Ogni schema può avere attivazioni multiple indipendenti a seconda dei diversi oggetti su cui deve focalizzare la sua attenzione. Gli schemi istanziati operano in parallelo, ed esprimono le loro risposte come campi vettoriali (potenziali che attirano o respingono il robot a seconda del grado di desiderabilità dell'azione) che indicano direzione e velocità del movimento corrente. Per ottenere il comando finale per gli attuatori non si usa nessuna forma di arbitraggio, le uscite verranno semplicemente sommate insieme così che ogni motor schema possa fornire il proprio contributo in base alla proprietà per cui è stato istanziato.

Per una reale autonomia, l'agente deve saper rispondere alle sollecitazioni provenienti dall'esterno, ma è anche necessario che riesca a controllare le proprie condizioni interne e modificare il suo comportamento sulla base delle risorse che ha a disposizione. L'importanza di avere un sistema che controlli l'integrità del robot è messa in evidenza se paragonata al sistema endocrino dei mammiferi. Con lo stesso principio di funzionamento, l'architettura proposta da Arkin [Ark:89] implementa un tipo di controllo definito omeostatico[13], ottenuto attraverso una nuova classe di unità di controllo: i signal schemas, divisi in transmitter schemas, associati allo specifico sensore interno; e receptor schemas, legati ai motor schemas. I dati diffusi dal particolare transmitter schema, sono raccolti dai receptor schemas adatti e servono alla modulazione della risposta nei motor schemas corrispondenti. Le informazioni che vengono trasmesse, serviranno anche al pianificatore di alto livello per valutare l'eventuale ripianificazione della missione secondo le nuove disponibilità ed il grado di "pericolo" percepito.

Pianificazione reattiva

Payton

Le architetture multicomportamentali, come quelle proposte da Brooks, Anderson, Kaelbling ..., pagano la semplicità nella struttura degli agenti che le costituiscono con i problemi causati per l'arbitraggio delle uscite prodotte. L'arbitro non possiede una conoscenza globale della situazione e, nell'effettuare la scelta di un'azione tra le disponibili, penalizza l'informazione che ogni modulo propone con la propria risposta. Il comando inviato agli attuatori può essere suggerito da un'agente con alta priorità ma può essere incompatibile con le necessità espresse dagli altri moduli attivi. La difficoltà nell'arbitrare è dovuta al fatto che l'informazione rilevante per la decisione è racchiusa all'interno dei moduli e non può essere diffusa senza violare la modularità dell'architettura.

Selezionare un comando appropriato richiede che le diverse alternative siano pesate, ma com'è possibile che un modulo intuisca il proprio peso nella situazione corrente senza conoscere cosa vogliono gli altri agenti presenti? Payton in [Pay:90b] rimuove il problema riducendo i comportamenti ad unità di decisione, i fine-grained behaviors (vedi fig. 3.13).

Ogni unità rappresenta uno specifico concetto stabilito durante la progettazione: riceve in ingresso dei dati provenienti dalle altre unità e dall'esterno ed elabora il grado di attivazione per il corrispondente comando. In questo modo ogni tipo di comportamento è distribuito tra molte unità e la desiderabilità di ogni scelta è espressa dal valore di ciascuna unità. Gli agenti che verranno aggiunti successivamente nel sistema non dovranno sottomettere le azioni di quelli preesistenti, ma la loro competenza servirà per calibrare le decisioni in favore di alternative differenti.

I fine-grained behaviors devono tener conto anche dell'obiettivo corrente della missione, quindi devono poter utilizzare la sequenza di tappe elaborata dal pianificatore per il raggiungimento del goal finale. L'uso del piano astratto però, non permette di avvantaggiarsi delle opportunità offerte da situazioni inaspettate quando queste non sono considerate nel piano stabilito. Per evitare la perdita di informazione, utile nelle decisioni locali, è necessario che la strategia individuata nel piano, sia definita in modo tale che tutta la conoscenza rilevante serva a produrre risposte immediate alla situazione.

L'idea è che il piano debba servire come ulteriore risorsa ad un sistema già in grado di interagire autonomamente con l'ambiente, che però sfrutta le indicazioni del piano come dati sensoriali supplementari. I piani formulati in questo modo, definiti come internalized plans, saranno presi in considerazione dai processi attivi solo quando lo stato di questi ultimi avrà raggiunto il livello di conoscenza necessario per la loro interpretazione. Lo stesso agente potrà utilizzarne vari tipi, differenti a seconda della proprietà che rappresentano, ed ognuno contribuirà al completamento della missione globale.

Nell'esempio di internalized plan che Payton propone in [Pay:90a], il piano generato da un pianificatore classico del moto è tradotto in una mappa vettoriale attraverso un processo di ricerca che si propaga dal goal e si distribuisce in tutta la rappresentazione. Il campo gradiente è disponibile facilmente dagli algoritmi di pianificazione della traiettoria: si divide la mappa dell'ambiente in una griglia di celle; a ciascuna è associato un costo proporzionale alla desiderabilità della locazione rispetto alla missione da compiere.

L'algoritmo di ricerca stabilisce un punteggio per ogni cella indicante il minimo costo che rimane da quella posizione al goal: a partire da una data cella, il passo ottimo che si può eseguire è verso la cella adiacente che possiede il punteggio più basso. La discesa più ripida dei valori gradiente dà la migliore direzione da ogni cella verso il goal. Nel caso fosse presente un ostacolo inaspettato, si inserisce nella mappa il nuovo oggetto e si procede al replanning del gradiente nel settore interessato.

I campi gradiente sono un esempio dell'utilizzo proposto da Payton dei piani visti come risorsa supplementare oltre ai dati provenienti direttamente dai sensori. Gli internalized plans possono essere ottenuti da un qualsiasi dominio, divisibile in un insieme di stati riconoscibili che possono essere collegati tra loro in base al grado di accessibilità. Come nell'idea di Kaelbling e Rosenschein , si compila la conoscenza a priori in rappresentazioni specializzate da usare durante l'attività motoria, per produrre le azioni in un tempo limitato.

Schoppers

Lo studio di Schoppers, più che un particolare tipo di distribuzione del controllo, riguarda il tipo di pianificazione necessaria per garantire un comportamento efficiente ed intelligente del robot. In alcune occasioni serve poter avere una risposta ad eventi inaspettati, ma per poterli identificare si deve alternare il controllo tra il processo di pianificazione e la sequenza di esecuzione dei comandi. Il piano prodotto in questo modo, però, sarà incompleto e potrà condurre il robot a situazioni critiche.

Per la reattività dell'agente autonomo, Schoppers [Scho:87] descrive un genere di piani, chiamato Universal Plan, capace di rispondere opportunamente a qualsiasi evento verificatosi nell'ambiente. Gli Universal Plans classificano tutte le possibili situazioni, coprendo l'intero dominio, senza restrizioni sulle opportunità che possono verificarsi e sul loro ordine temporale.

Nella sintesi del piano, il pianificatore divide l'insieme delle situazioni possibili in base al tipo di risposta che richiedono e al momento dell'esecuzione classifica lo stato dell'ambiente in una delle partizioni stabilite provocando l'avvio della reazione associata. In questo caso, una volta generato il piano non è più necessario ricorrere al pianificatore se interviene qualche imprevisto, perché l'interprete dell'Universal Plan selezionerà da solo l'azione che lo porterà dalla situazione corrente al goal, (vedi fig. 3.14). Ogni azione selezionata cercherà in un ambiente cooperante di portarsi in una posizione più vicina al goal.

Il pianificatore prevede le possibili situazioni e determina le reazioni a queste situazioni attraverso l'Universal Plan, il modulo di sensing indicizza l'insieme delle azioni disponibili, senza che vi sia la necessità di una ripianificazione qualsiasi cosa accada dopo.

Il piano viene generato automaticamente procedendo a ritroso a partire dalla situazione di successo, negando ad ogni passo, una dopo l'altra, le varie condizioni che rimarranno negate per tutta la parte di piano seguente. In questo modo si crea un albero di decisione che è già stato potato dei rami non utilizzabili. I nodi nell'albero di decisione sono etichettati da particolari condizioni ambientali e la situazione iniziale determina la posizione da cui procedere lungo l'albero.

La logica usata per descrivere le azioni al pianificatore permette di non dovere specificare completamente tutti gli effetti che queste producono, cioè si rappresentano stati del mondo parzialmente determinati che permettono la sintesi automatica degli Universal Plans. La conoscenza parziale delle condizioni di applicabilità consente anche l'astrazione dal particolare ambiente in cui il comando è eseguito.

L'interpretazione degli U.P. consiste nel valutare le precondizioni degli operatori al momento corrente, quindi ad ogni nodo si determina la direzione verso cui scendere nell'albero di decisione. La scelta di un'azione nell'albero specifica le condizioni vere in quel momento e la sua posizione determina il cammino che servirà per portarsi al goal. Non servirà nemmeno indicare la situazione di partenza perché sarà compito del piano di classificarla nell'albero di decisione.

Gli U.P. una volta costruiti, possono servire come base per pianificazioni ad un livello superiore, ma in molti casi la complessità delle condizioni ambientali, anche se semplificate, li rende applicabili solo nel caso di problemi piuttosto semplici. Ed una semplificazione troppo drastica può non classificare opportunamente delle reazioni importanti.

Firby

L'impossibilità per un piano di prevedere tutte le situazioni che il robot dovrebbe affrontare, significa che vi è bisogno di un sistema che riveda le risposte da dare sulla base degli eventi esterni riscontrati. Firby, in [Fir:87], definisce quindi il pianificatore reattivo come un sistema che genera o modifica i propri piani in risposta ai cambiamenti della situazione durante l'esecuzione.

Il pianificatore reattivo che descrive (vedi fig. 3.15), utilizza una libreria di RAPs, Reactive Action Packages: processi autonomi in grado di descrivere una serie di possibili metodi per il raggiungimento di un goal. Quando un RAP termina la sua elaborazione, significa che ha soddisfatto il suo obiettivo, oppure che nessuno dei metodi conosciuti, elencati al suo interno, è stato in grado di ottenerlo.

Il Modello del Mondo contiene ciò che il sistema ritiene vero in quel momento; l'Interfaccia Hardware controlla le comunicazioni con il mondo reale; l'Interprete RAP e l'Execution Queue forniscono il meccanismo per coordinare l'attivazione dei RAPs.

L'Interfaccia Hardware conosce cosa deve aspettarsi dall'esecuzione di un'azione primitiva, perciò ne rivela l'insuccesso quando questo avviene e consulta il modello del mondo per registrare le modifiche o per cercare le incongruenze con i dati reali. Sarà l'interprete RAP a trasformare ciò che viene visto nel mondo esterno in errori o proprietà, e rivedere successivamente gli obiettivi che si era posto. In questo modo una componente lega il mondo reale al modello simbolico attraverso il feedback dell'hardware , e una inferisce sotto il controllo dei RAPs.

Ogni RAP è in competizione, con gli altri nel sistema, per trasformare lo stato corrente dell'ambiente in uno più adeguato alle sue esigenze. L'interprete estrae dalla coda la procedura da elaborare e, sulla base delle informazioni disponibili, verifica se il goal predefinito è già stato raggiunto, altrimenti cerca la sequenza di subgoals migliore da applicare descritta all'interno del RAP esaminato. In attesa che la sequenza scelta sia portata a termine, richiamando eventualmente altri RAPs che saranno inseriti nella coda per il controllo e l'esecuzione, la procedura viene rimessa in attesa fino a quando sarà ripresa per ripetere l'analisi sul goal e sui metodi per raggiungerlo.

Durante l'esecuzione, la scelta delle azioni viene fatta solo sulla situazione corrente senza fare previsioni su possibili istanze future, questo permette alle varie procedure nell'Execution Queue di alternarsi quando l'interprete deve scegliere quella più adeguata al momento corrente.

La difficoltà nel controllare e coordinare i RAPs può portare a situazioni di stallo, in attesa di eventi che non potranno mai verificarsi, o di ciclaggio se si alternano RAPs conflittuali che producono azioni in grado di annullarsi reciprocamente.

Georgeff e Lansky

Un caso generale del sistema di Firby, può essere considerato il Procedural Reasoning System progettato da Georgeff e Lansky, [Geo:87].

Le maggior parte delle architetture descritte dai vari autori nella progettazione di sistemi reattivi, sono dedicate esclusivamente alla soluzione dei problemi di navigazione. I sistemi reattivi sono ben strutturati per gestire attuatori e sensori, ma deve ancora essere chiaro come possano eseguire ragionamenti di alto livello; mentre le tecniche per la costruzione di piani in una ampia varietà di dominii sono usate nei sistemi di pianificazione classici, ma non producono risultati né robusti né reattivi in applicazioni nel mondo reale. Per unificare questi due estremi è necessario sviluppare sistemi di ragionamento e pianificazione reattivi che possano utilizzare nel miglior modo le competenze di ciascuna delle componenti.

Il Procedural Reasoning System (vedi fig. 3.16) consiste di un database contenente la descrizione di stati riguardanti condizioni esterne che si ritengono vere in quell'istante; un insieme di obiettivi da realizzare; un insieme di procedure che descrivono come eseguire le sequenze di azioni per il raggiungimento di un particolare goal o per la reazione ad una situazione; e un interprete che coordina tutte queste componenti. Il database rappresenta le verità correnti del sistema, che possono essere inserite inizialmente dall'utente come proprietà del dominio oppure possono essere osservazioni e conclusioni ricavate sull'ambiente attuale.

La conoscenza di come raggiungere un obiettivo o reagire a situazioni particolari è rappresentata dalle Knowledge Areas, costituite da un corpo che descrive i passi della procedura e una condizione invocante che specifica le situazioni in cui la KA è utile. Il piano specificato dalla procedura non consiste di possibili sequenze di azioni elementari, ma di possibili sub-goals da raggiungere. L'interprete del sistema, in base ai goals attivi ad un certo istante e ai fatti conosciuti, sceglie una KA rilevante per la situazione e la pone nello stack dei processi da completare. Se avvengono cambiamenti allo stato dell'ambiente, questi si riflettono nella riorganizzazione della lista di processi attivi, per adattare l'esecuzione delle azioni alle nuove circostanze.

Il sistema quindi pianifica, e nello stesso tempo controlla l'evolversi dell'ambiente per dare risposte immediate se la situazione lo richiede. È garantito anche un certo grado di robustezza perché nel caso che un'attività venga bloccata vi sono comunque altre alternative che rimangono attive.

Lo schema di principio assomiglia a ciò che farebbe un essere umano dotato di esperienza e capacità in situazioni che richiedono diversi gradi di attenzione. Se si vuole un sistema efficiente si deve dargli molta conoscenza, ma questo può essere controproducente perchè aumentano i tempi per la ricerca dell'azione appropriata. Il controllo dell'intera struttura si appesantisce e viene a mancare la reattività.

Maes

Nei sistemi reattivi, le caratteristiche dell'ambiente sono sfruttate per attivare i diversi comportamenti del sistema. Il comportamento osservato dell'agente emerge dalle proprietà della sua struttura e dalle sue interazioni con il mondo. Queste architetture richiedono che il meccanismo di selezione delle azioni sia precompilato o circuitato, mentre l'arbitraggio tra le azioni deve essere un processo run-time che cambia in funzione degli obiettivi e della situazione in cui il sistema si ritrova. Vi è bisogno di una certa flessibilità perché una parte delle informazioni è disponibile in tempo di compilazione e una parte in tempo di esecuzione, e nella maggior parte dei casi reali è quest'ultima ad essere la più importante.

Le caratteristiche che il processo di arbitraggio delle azioni dovrebbe avere sono: favorire azioni mirate al raggiungimento dell'obiettivo; favorire azioni rilevanti nella situazione corrente; favorire azioni che contribuiscono al continuamento del piano, a meno che non ci siano buone ragioni per impegnarsi in qualcos'altro; prevedere alcuni eventi per evitare in anticipo situazioni pericolose e per risolvere eventuali conflitti tra obiettivi conflittuali; essere robusto; essere reattivo e veloce. La dose con cui ciascuna di queste caratteristiche va integrata insieme alle altre dipende dalla situazione e dal compito previsto.

Visto il sistema autonomo come un insieme di agenti indipendenti, ciascuno dedicato al proprio incarico, la tesi dimostrata da [Maes:89] è che un comportamento razionale può emergere permettendo ai vari agenti di attivarsi o inibirsi reciprocamente senza bisogno di intermediari o di un meccanismo di controllo globale del sistema. Ogni agente può essere descritto con un ennupla composta da: una lista di precondizioni $c_i$, che l'agente deve verificare prima di diventare eseguibile; una add-list $a_i$, ed una delete-list $d_i$, che specificano gli effetti che l'azione dell'agente produrrà su un insieme di proposizioni (verificate in $a_i$ annullate in $d_i$; un livello di attivazione $\alpha_i$ che consente ad un agente eseguibile di produrre realmente azioni.

I diversi moduli di competenza saranno collegati in una rete (vedi fig. 3.17) attraverso tre tipi di legami: successor link, predecessor link e conflicter link [Maes:90a].

L'idea è che i moduli usino questi legami per attivarsi o inibirsi a vicenda secondo il tipo di link che li unisce, mediante la trasmissione di una quantità di attivazione. Il livello di attivazione accumulato dà una misura sull'adeguatezza dell'azione proposta dal modulo per la situazione e il goal corrente.

La distribuzione della quantità di attivazione tra i moduli è determinata esternamente dalla situazione corrente, che aumenta il livello di attivazione di quei moduli le cui condizioni di eseguibilità concordano parzialmente con le condizioni esterne; dagli obiettivi globali del sistema, che aumentano $\alpha_i$ negli agenti che portano a compimento uno di questi obiettivi e lo diminuiscono in quelli che annullano gli effetti cercati.

Il parametro $\alpha_i$ è influenzato anche dalla trasmissione dell'attivazione tra i moduli. Un modulo eseguibile x diffonde un frazione del suo livello di attivazione in avanti ai moduli collegati da un successor link[14] per aumentarne l'attivazione perché quasi eseguibili, visto che la loro lista delle precondizioni sarà più vera dopo che il modulo x è divenuto attivo.

Un modulo non eseguibile propaga una frazione del suo livello di attivazione indietro, verso i moduli collegati da un predecessor link per cui la proposizione condivisa non è vera, in modo che si affrettino a verificarla. Ogni modulo sottrae una frazione del suo livello di attivazione ai moduli con cui è collegato da un conflicter link, attenuando il realizzarsi delle azioni che hanno l'effetto di annullare le precondizioni desiderate.

Riprendendo la similitudine con gli studi etologici, l'uso del livello di attivazione di un agente può paragonarsi all'azione dell'adrenalina nel sistema endocrino degli esseri viventi: eventi specifici accrescono lo stimolo chimico fino ad arrivare ad un limite oltre il quale si attiva il riflesso e, man mano che questo agisce, diminuisce la motivazione.

I passi che l'algoritmo di selezione ripete fino al completamento della missione sono: valutare l'impatto della situazione corrente e degli obiettivi globali sul livello di attivazione di ogni modulo; distribuire l'attivazione tra i moduli secondo il tipo di legami definiti; normalizzare il livello di attivazione totale del sistema perché rimanga costante; scegliere tra i moduli eseguibili che hanno superato la soglia di attivazione stabilita, quello di valore massimo da attivare.

La modifica di questi parametri varia il tipo di risposta o di attenzione all'ambiente. Ad esempio, se si desidera un comportamento più meditativo basterà aumentare la soglia per l'attivazione dei moduli, in modo da allungare il raggio di controllo sugli effetti delle azioni che si intendono eseguire. La rete così costruita mostra capacità di pianificazione poiché analizza i risultati di una sequenza di azioni prima di averla eseguita.

Non si usa una rappresentazione esplicita del piano, ma viene indicata l'urgenza di intraprendere le azioni che porteranno al goal attraverso l'effetto cumulativo del parametro $\alpha_i$. Lo stato dell'attivazione rappresenta la storia del piano seguito fino a quel momento. La valutazione continua delle opportunità esprime un comportamento flessibile del sistema, adattandosi durante il funzionamento, ai cambiamenti imprevisti ambientali, degli obiettivi o dovuti alla perdita di qualche agente, riflettendo le modifiche rilevate attraverso la diffusione dell'attivazione tra i moduli.

A differenza delle tecniche classiche l'algoritmo di selezione non costruisce un albero di ricerca seguendo le varie soluzioni alternative e non mantiene una rappresentazione parziale del piano. Valuta invece differenti strategie in parallelo e nel caso che una di queste fallisse lo scopo, non riparte con un'analisi da zero della situazione ma migra gradualmente verso una soluzione alternativa.

La selezione dinamica delle azioni effettuata con l'algoritmo appena visto, risolve in qualche modo il problema messo in luce da Payton, per il quale in una architettura multicomportamentale un modulo che mantiene la propria indipendenza non può condividere la conoscenza o l'informazione che lo caratterizza con gli altri moduli, ma ha bisogno comunque di comunicare i propri desideri e le proprie intenzioni per la valutazione delle sue uscite.

Rappresentazione analogica

Steels

Una posizione a sé stante è sostenuta da Steels, [Ste:90]. L'autore non è un minimalista in quanto sostiene l'importanza delle rappresentazioni interne, ma la sua soluzione per avere risposte reattive consiste nel velocizzare i tempi di consultazione del modello del mondo.

Per avere sia i vantaggi dei sistemi reattivi, che la capacità di introspezione dei sistemi con rappresentazione interna, Steels propone due idee: avere una rappresentazione interna più simile alle informazioni sensoriali; avere operatori non simbolici direttamente su queste rappresentazioni. La rappresentazione analogica, o subsimbolica, ha il vantaggio rispetto a quella simbolica di non dover elaborare e trasformare i dati sensoriali acquisiti, quindi con degli operatori adatti è possibile usare e rispondere a questa informazione in tempo reale. La scelta delle azioni avverrà rispetto alle percezioni provenienti dalla mappa analogica, così come negli automi situati sono raccolte dai sensori esterni.

La rappresentazione analogica non definisce categorie, come avviene con la rappresentazione simbolica[15] e può essere determinata da qualsiasi tipo di informazione sensoriale. I vantaggi sono: una maggiore precisione di ciò che viene rappresentato; la rappresentazione è mappata in una memoria attiva; è possibile usare differenti tipi di operazioni durante la soluzione di problemi; le decisioni sono basate su rappresentazioni che sono vicine e continuamente collegate ai dati sensoriali.

La computazione con queste rappresentazioni subsimboliche prende ispirazione dai sistemi dinamici della chimica e biologia, i quali utilizzano operazioni di reazione-diffusione. Le regole di diffusione sono raccolte in unità dette schemi[16]. Uno schema consiste in un insieme di regole operanti su un particolare gruppo di caratteristiche, da collegare a specifici aspetti della realtà prima di venire applicato. Il goal invece è tradotto in caratteristiche di diffusione.

La rappresentazione simbolica è inerentemente seriale. I simboli sono allocati e tradotti in particolari celle di memoria: se più di un processo necessita dello stesso simbolo la memoria deve essere condivisa e questo ne riduce il parallelismo. Rispetto alle rappresentazioni simboliche, le mappe analogiche tengono traccia delle proprietà degli oggetti presenti nel dominio. Le diverse caratteristiche ambientali percepite saranno rappresentate da mappe differenti che, per migliorare il parallelismo, possono essere implementate da griglie di celle sovrapponibili, ciascuna con un peso associato alla caratteristica in esame.

L'architettura [Ste:90] è divisa in due livelli: il più basso si basa sull'idea di agenti paralleli; il secondo usa delle operazioni primitive che sono ispirate dalla metafora biochimica di reazione-diffusione. Per ogni agente è definito un comportamento che gli rende possibile cambiare stato, cambiare lo stato di altri agenti, muoversi o istanziare nuovi agenti. In una prima fase gli agenti definiscono quello che sarà il loro comportamento, proponendo dei cambiamenti; nella seconda parte queste azioni verranno eseguite. Le operazioni di diffusione servono a diffondere informazione nella mappa, quelle di reazione servono a combinare informazione per generarne di nuova.

Anche le visual routines di Ullmann o i campi di potenziale di Payton sono strutture analogiche, ma la maggiore differenza consiste nel fatto che questi approcci usano indicatori e strutture che sono depositate da un algoritmo che funziona attraverso l'uso della geometria computazionale, e sono consultate da procedure particolari. Steels invece usa strutture dinamiche che si adattano ai cambiamenti, e la cui attività emerge dalle operazioni, di diffusione o reazione sulla mappa analogica, generate da agenti paralleli.

Conclusioni

Con una rassegna bottom-up dei vari approcci, si è partiti dalla creazione di animali artificiali ed aumentando le motivazioni ci si è avvicinati sempre più a qualcosa che rappresenti le capacità di un essere umano.

I diversi autori sostengono differenti idee sul concetto di reattività alla dinamica dell'ambiente. Brooks lo fa dal punto di visto puramente ingegneristico e strettamente fisico, infatti la sua soluzione riguarda la progettazione di circuiti specifici; altri invece, indicano come causa dei problemi riscontrati nell'approccio classico il piano definito come struttura statica, e pensano che la soluzione sia ricercabile con metodi che traducano il piano per consentire maggiore flessibilità nell'esecuzione.

Ogni proposta, però, porta con sè i limiti delle semplificazioni effettuate che, nella maggior parte dei casi, aumentano l'efficienza a scapito della generalità dei settori in cui poter operare. Aver risolto alcuni delle questioni più critiche dell'approccio classico non significa che adesso si sia trovata la direzione giusta, più probabilmente si è spostato il punto di osservazione dal quale guardare il problema di un sistema autonomo inserito in un ambiente che si evolve in maniera indipendente. Trasferendo l'attenzione dalle prove in laboratorio ad ambienti reali (o realistici) si sono cambiati i parametri per la valutazione dell'autonomia di un sistema, il quale rimane comunque sottoposto a dei vincoli che ne restringono la possibilità di azione.

Tutti i pianificatori reattivi visti in questo capitolo trasformano il piano sequenziale classico in uno di forma differente, che viene interpretato a seconda delle interazioni tra il sistema autonomo e l'ambiente che lo circonda. A mio avviso, l'impostazione migliore dovrebbe essere del tipo descritto in [Maes:90a], individuando la dinamicità del piano non nel riscrivere diversamente le istruzioni ma nel comporle in uno schema diverso: il piano non cambia l'aspetto classico fatto di pre e postcondizioni, ma emerge dalle relazioni tra le capacità dei moduli e l'ambiente, adattandosi alle circostanze presenti.

Particolare è il contributo del lavoro di Steels, che enfatizza l'uso di modelli interni rappresentati analogicamente, in alternativa a sistemi con modelli simbolici complessi e a sistemi sprovvisti completamente di rappresentazione.

La rappresentazione

Volendo classificare gli autori a seconda del ruolo che la mappa simbolica dell'ambiente ha nelle loro architetture, possiamo facilmente collocare nella posizione più bassa della gerarchia i minimalisti (Brooks, Anderson e Donath, Agre e Chapman), i quali negano in maniera assoluta l'uso di un qualsiasi modello, più o meno accurato, a cui far riferimento durante l'elaborazione a meno che questo non sia l'ambiente stesso.

Alcune perplessità possono emergere nel considerare come minimalista il lavoro di Agre e Chapman: l'osservazione degli esperimenti ci porta in un mondo virtuale, quello dei videogiochi, modellizzabile proprio per sua natura. In realtà, nonostante la particolarità dell'ambientazione, nell'elaborazione non viene utilizzato nessun tipo di mappa simbolica poichè i dati sono intesi come provenienti da sensori virtuali ed il tipo di azione è determinato solo dalle circostanze visive che attivano routine predefinite.

All'estremo opposto della classificazione vi saranno tutte le architetture ibride (Arkin, Connell, Gat, ...) che utilizzano la mappa simbolica durante il funzionamento, per pianificare azioni, ma di alto livello, in grado di dirigere i livelli inferiori dedicati alla risoluzione delle contingenze immediate attraverso schemi di tipo stimolo-risposta.

In questo stesso punto della scala si inseriscono i sistemi come il Procedural Reasoning System di Georgeff, costituiti da un reasoner centrale, capace di coordinare obiettivi e piani sulla base di ciò che viene scritto nel DataBase globale dai sensori che osservano l'esterno. Immediatamente al di sotto nella classificazione, è lo studio di Firby, considerabile come caso particolare del PRS, basato su un interprete che si serve di un modello del mondo per la scelta dei Reactive Action Packages adatti alla situazione.

Una posizione intermedia tra coloro che non utilizzano nessun tipo di modello e quelli che lo usano costantemente, è occupata dai sistemi in grado di fornire una risposta reattiva all'ambiente pur avendo istruzioni valutate secondo una conoscenza parziale del mondo circostante. Di questo gruppo fanno parte Payton, con gli Internalized Plans, Schoppers, con gli Universal Plans, e Kaelbling, con il compilatore GAPPS.

Tutti questi autori usano il modello simbolico per la costruzione delle possibili risposte da dare all'ambiente dirette verso l'obiettivo prefissato, ma una volta che il sistema inizia l'esecuzione del suo compito la sola conoscenza utilizzata è quella precompilata nelle diverse forme assunte dalle istruzioni. Se si verificano cambiamenti rilevanti si dovrà fermare il sistema e ricostruire lo schema di azione sulla base delle nuove informazioni.

Anche il lavoro di Maes fa parte di questa posizione: non con una vera e propria architettura, ma piuttosto con un modo di rendere il piano situato scomponendolo in azioni semplici, che intervengono nel mondo fisico se le precondizioni e l'arbitro lo consentono. In questo caso, l'uso della conoscenza serve per stabilire il tipo di relazioni tra le differenti unità di azione, ma nessun ordine temporale per la loro esecuzione.

Con Steels, durante l'elaborazione si fa riferimento continuo a delle rappresentazioni analogiche, cioè mappe che fotografano l'ambiente ma modellate con simboli molto vicini al linguaggio sensoriale. La sua posizione quindi è tra gli operatori che usano rappresentazioni, distinta però da quelli simbolici.

Il piano

A differenza di quello che avviene con un programma elaborato da un computer, programmare un robot significa dare risposte in tempo reale, gestire processi concorrenti e manipolare oggetti che stanno al di fuori del sistema stesso.

Se si intende pianificare una sequenza di azioni legate ad un compito da portare a termine, prima dell'esecuzione bisognerà tener conto dell'influenza che l'ambiente in cui ci si trova può esercitare sul sistema. Per poter giudicare la correttezza della sequenza prestabilita, è necessario osservarne gli effetti in un ambiente simulato che permetta di rivedere ciò che non corrisponde alle aspettative: un modello del mondo interno al sistema diventa la base per effettuare queste simulazioni. Quindi il tipo di rappresentazione usata nel controllo del sistema è strettamente legato al tipo di piano che dirigerà i movimenti del robot.

Nei capitoli precedenti abbiamo già evidenziato come l'utilizzo di un piano da seguire fedelmente, istruzione dopo istruzione, possa portare il robot in situazioni degeneri che compromettono il realizzarsi della missione. Ed è ovvio che la mancanza totale di un piano non consente flessibilità d'impiego e ottimizzazione delle risorse per il robot.

Secondo [Derm:92] pianificare le operazioni di un sistema artificiale riguarda ragionare sugli eventi futuri per generare un programma che non necessita di essere eseguito nella sua interezza. Il completamento del programma serve a dare un senso alle azioni proposte senza che queste diventino un vincolo per gli sviluppi successivi. La situazione migliore che dovrebbe accadere è avere il robot che esegue il piano definito mentre il pianificatore cerca come migliorarlo, mano a mano che nuove informazioni vengono raccolte. Il pianificatore dovrebbe rimanere attivo e pronto ad intervenire quando un comando non è in grado di essere completato o quando è stata trovata una soluzione migliore della precedente.

Una soluzione di questo tipo è affrontata nelle architetture ibride, il pianificatore produce un piano sequenziale costituito da istruzioni che identificano situazioni particolari nell'ambiente, e ciascuna di queste istruzioni è gestita da un livello inferiore predisposto per reagire agli imprevisti. Il modello simbolico è aggiornato dall'arrivo di nuove informazioni e viene interrogato dal pianificatore quando il supervisore nota la presenza di eventi che richiedono l'intervento di una manovra correttiva.

Quando la pianificazione è vista come un processo indipendente rispetto all'evolversi dell'ambiente, per evitare modifiche al piano durante il funzionamento del sistema è necessaria una pianificazione che risponda a tutte le possibili condizioni riscontrabili nell'ambiente.

Nel caso della determinazione di una traiettoria di movimento, Payton valuta anticipatamente quale sarà la direzione appropriata verso il goal da tutti i punti dell'ambiente. Ma anche in una situazione più generale, le informazioni contenute nel piano potranno essere rappresentate da un campo vettoriale che indicherà, mediante il gradiente, il grado di desiderabilità di un'azione al fine di raggiungere l'obiettivo. In genere la struttura di un piano prodotto secondo queste indicazioni è complessa e di dimensioni notevoli, la traduzione vettoriale ne semplifica la consultazione, ma rimane comunque l'onere di analizzare parti di piano con probabilità nulla di essere interrogate.

Sempre nell'ambito di una fase di pianificazione separata dalle contingenze ambientali, vediamo che Schoppers considera il piano come un albero i cui i nodi corrispondono a situazioni che prevedono lo stesso tipo di reazione in funzione dell'obiettivo finale, così facendo si limita l'espansione dell'albero di decisione potandolo in partenza dei rami che non verranno mai utilizzati. Una volta generato il piano, l'azione da eseguire sarà scelta in base alla posizione che le circostanze correnti individuano sull'albero.

Un altro tipo di trasformazione è ideata da Kaelbling con l'uso del linguaggio GAPPS [Kae:88] che permette di tradurre il piano in una forma minimalista, costituita da coppie che vengono testate in parallelo per ottenere la risposta da mandare agli attuatori.

Se il tempo non fosse un vincolo importante da rispettare, o se la computazione di un nuovo piano richiedesse un tempo trascurabile, una posizione estrema nella pianificazione dei movimenti di un robot potrebbe essere quella di riesaminare il piano o produrne una variante dopo ogni azione eseguita, in modo da sfruttare le nuove opportunità presenti nell'ambiente. Questo è ciò che viene fatto dal programma Sonja [Agre:90] di Agre e Chapman: si pianifica un percorso; si esegue il primo passo; si rivede il piano nella nuova situazione. Un comportamento di questo tipo deve prevedere la scrittura di un pianificatore in grado di interpretare le circostanze favorevoli che di volta in volta si verificano ( Plan-as-communication contrapposto a Plan-as-program).

Nel caso delle architetture basate su moduli comportamentali, la decisione di quando far intervenire un modulo attivo ed il tipo di reazione da attuare dipenderà dalle motivazioni scatenanti presenti in quel preciso istante. Un tipo di pianificazione compatibile ad una struttura di questo genere, dovrà determinare quali siano i moduli da rendere disponibili o meno all'attivazione in un particolare momento, come evidenziato da [Don:90], ed implementato da [Maes:90a].