3. All'interno di un agente: architettura e le funzioni agenti
Federico CalòGli agenti sono costituiti da un corpo che può essere costituito da diversi elementi, concreti o meno. Quando un agente ha un corpo fisico, esso prende il nome di agente incarnato, un esempio sono i robot. Gli agenti ricevono informazioni tramite i sensori, le quali verranno elaborate e condizioneranno le azioni che l'agente effettuerà. Vi sono diversi tipi di sensori e producono delle informazioni deboli, del tipo "il sensore S ha prodotto il valore v". In ultima analisi, un agente è costituito da attuatori o effettori, mediante i quali l'agente agisce nell'ambiente. Gli agenti inviano dei comandi agli attuatori ed eseguono azioni per trovare maggiori informazioni sul mondo.
L'insieme di uno o più agenti e l'ambiente in cui operano prende il nome di sistema ad agenti. L'agente riceve degli stimoli dall'ambiente ed esegue delle azioni in esso. Un agente è costituito da un body (corpo) e da un controller. Il controller riceve delle percezioni dal corpo e risponde con dei comandi. Vi sono diversi tipi di stimoli, dalla luce al suono, fino a considerare le informazioni ottenute da un database o da un sito. Queste informazioni vengono elaborate dal controller, il quale decide le azioni che l'agente deve compiere. Possiamo considerare il controller come il cervello dell'agente.
Un'azione di un agente può essere definita come una funzione dei suoi input. Definiamo T come l'insieme dei punti temporali, supponiamo che questo insieme è totalmente ordinato e ha una metrica per misurare la distanza temporale tra due punti. Inoltre l'insieme T è un insieme discreto, composto da un numero finito di punti temporali, in più deve essere denso, ovvero deve essere presente sempre un punto temporale tra due punti temporali qualsiasi. Supponendo un punto di partenza convenzionale pari a 0 e definendo l'insieme P come l'insieme di tutti i possibili precetti, si può definire una funzione denominata percept trace o percept stram, la quale opera da T in P e specifica ciò che viene osservato in ogni momento. Se vogliamo essere precisi, possiamo definire l'insieme C costituito da tutti i comandi e definire una funzione denominata traccia di comando, la quale parte da T e arriva in C. Questa funzione è utile per specificare ogni punto temporale. Una traccia di percezione è quindi una sequenza di tutte le percezioni passate, presenti e future ricevute dal controller. Una traccia di comando è la sequenza di tutti i comandi passati, presenti e futuri emessi dal controller. Per tradurre le tracce percettive in tracce comando viene utilizzata una funzione denominata trasduzione.
Gli agenti agiscono nel tempo, quindi non possono vedere tracce percettive complete. A un tempo t T, un agente può osservare solo il valore della traccia fino al tempo t e i suoi comandi non possono dipendere da percezioni di tempo dopo il tempo t. Definiamo una trasduzione causale quando per tutti i tempi t, il comando alla volta t dipende solo dalle percezioni fino al tempo compreso t. Possiamo affermare che un controller è quindi un'implementazione di una trasduzione causale. Si delinea così la storia di un agente al tempo t tramite la traccia percettiva, storia che viene mappata dalla trasduzione causale. Essendo che un agente non ha accesso alla sua intera storia, la funzione di trasduzione causale non può essere implementata direttamente. Occorre quindi creare una sorta di memoria o stato di credenza, in cui l'agente salva nel momento t tutte le informazioni che l'agente ha ricordato dalle volte precedenti. Lo stato di credenza può contenere qualsiasi tipo di informazione, però è soggettata alla memoria dell'agente e ai limiti di elaborazione.
Uno stato di credenza codifica ciò che l'agente desidera, gli obiettivi che deve ancora raggiungere, le sue convinzioni sullo stato del mondo e le sue intenzioni o passi che intendere compiere. Un controllore mantiene lo stato di convinzione dell'agente e determina quale comando emettere in ogni momento. Le informazioni che ha a disposizione quando deve farlo sono il suo stato di credenze e le sue attuali percezioni. In questi casi si definisce una funzione di transizione dello stato di credenza: , dove S è l'insieme degli stati di credenza e P è gli stati dei possibili percetti. Quindi la funzione indica che è lo stato di credenza che segue quando è osservato.
E' utile definire anche la funzione commando come: , dove S rappresenta l'insieme degli stati di credenza e P è l'insieme dei possibili percetti, mentre l'insieme C rappresenta l'insieme dei possibili comandi. Quindi la funzione indica che il controller invia il comando quando lo stato di credenza è e quando è osservato. La funzione di transizione stato-credenza e la funzione di comando insieme specificano una trasduzione causale per l'agente. Se esiste un numero finito di possibili stati di credenza, il controllore è chiamato controllore a stati finiti o macchina a stati finiti.