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.
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.
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 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.
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.
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.
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.
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.
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 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
Se si considera una delle proprietà dell'informazione
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.
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.
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].
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.
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].
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 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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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à.
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.
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.
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.
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.
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.
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.
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
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].
Pianificazione reattiva
Conclusioni
La rappresentazione
Il piano