2. Spazio di progettazione di un agente
Federico CalòGli agenti che agiscono in ambienti variano in complessità, ognuno dei quali richiederà un certo livello di complessità nella sua progettazione. Occorre definire uno spazio di progettazione in cui operare per lo sviluppo di un agente, ogni spazio avrà diverse dimensioni in cui operare. La prima dimensione è la modularità, ovvero la misura in cui un sistema può essere scomposto in moduli che possono essere studiati e sviluppati separatamente, ma che collaborano tra di loro per garantire il perfetto funzionamento dell'agente. Tramite la modularità si riduce la complessità, scomponendo in maniera gerarchica i vari moduli. In questa dimensione, la struttura di un agente può essere piatta, se non vi è alcuna organizzazione, modulare, il sistema è decomposto in moduli che interagiscono tra di loro, oppure gerarchica, nella quale i moduli sono scomposti in moduli più semplici.
In una struttura piatta o modulare l'agente tipicamente ragione a un singolo livello di astrazione, mentre in una struttura gerarchica l'agente ragiona a più livelli di astrazione in cui i livelli inferiori ragionano a un livello di astrazione più basso. Una scomposizione gerarchica è importante per ridurre la complessità della costruzione di un agente intelligente che agisce in un ambiente complesso. L'organizzazione gerarchica fa si che i moduli a livello più alto non debbano curarsi di dettagli e operazioni che vengono delegate ai livelli inferiori. Quando si progetta per attività di piccole o medie dimensioni, si potrebbe anche ignorare la scomposizione gerarchica, anche se è una buona pratica attuarla in ogni caso.
Un'altra dimensione fondamentale nella progettazione di un agente è l'orizzonte di pianificazione, nella quale si considera se l'agente può pianificare le proprie azioni nel tempo, ovvero la sua capacità di "guardare al futuro". Le fasce temporali in cui l'agente andrà a programmare le proprie attività e azioni prendono il nome di fasi. Secondo questa dimensione un agente si può distinguere in:
- agente non pianificatore, quando non considera il futuro e valuta cosa fare al momento del suo coinvolgimento
- un pianificatore a orizzonte finito, quando l'agente possiede un numero finito di stadi, o solo uno (in questo caso prende il nome di greedy o myopic);
- un pianificatore a orizzonte indefinito, ovvero quando l'agente dovrà prevedere un numero di stadi finito ma non predeterminato;
- un pianificatore a orizzonte infinito, costituito da un agente che pianifica le azioni future in maniera continua. Questo tipo di agente viene chiamato processo.
Analizziamo adesso la dimensione della rappresentazione riguardante il modo in cui viene descritto il mondo all'interno dell'agente. Le diverse rappresentazioni del mondo prendono il nome di stati, ognuno del quale specifica lo stato del mondo all'interno dell'agente e lo stato dell'ambiente. Questo è necessario in quanto è dettato dal fatto che ogni agente può ragionare esplicitamente in termini di stati individuali. Uno stato è identificato in termini di caratteristiche o proposizioni che possono prendere il valore di vero o falso. Risulterebbe di difficile comprensione rappresentare gli stati mediante un'enumerazione, quindi si fa uso di caratteristiche, ciascuna delle quali ha un valore in ogni stato. E' importante definire anche il concetto di proposizione, ovvero una caratteristica booleana il cui valore può essere true o false. In un mondo complesso vi sono vari individui, come le cose, gli oggetti e le entità, e le relazioni tra di essi.
Quando si progetta un agente, bisogna sempre tener conto dei limiti delle risorse computazionali che impediscono di eseguire le azioni migliori. La dimensione riguardante i limiti computazionali determina se un agente ha una perfetta razionalità, attraverso la quale l'agente migliora senza tener conto delle sue limitate risorse computazionali, oppure se possiede una razionalità limitata, mediante la quale riesce a decidere l'azione migliore che può trovare date le sue limitazioni computazionali. I limiti computazionali includono il tempo di calcolo, la memoria e l'accuratezza numerica. Un'altra dimensione da tenere in considerazione all'interno della progettazione di un agente è la dimensione della conoscenza, distinta in conoscenza data e conoscenza appresa. Apprendere significa trovare il miglior modello che si adatti ai dati. In alcuni casi, questo processo è semplice, altre volte no. Ci si potrebbe trovare in alcuni casi in cui non vi sia incertezza oppure bisogna presumere che essa ci sia all'interno dell'apprendimento.
In alcuni casi un agente può osservare direttamente lo stato del mondo, in altri casi invece si deve basare sulla distribuzione di probabilità sull'insieme dei possibili stati basata su ciò che percepisce. In questo caso si agisce nella dimensione dell'incertezza di rilevamento, nella quale si determina se l'agente può determinare lo stato degli stimoli. Si definisce quindi un'agente completamente osservabile, se esso è in grado di conoscere lo stato del mondo dagli stimoli, mentre viene definito parzialmente osservabile un agente che non osserva direttamente lo stato del mondo. Nell'ambito di incertezza si definisce un modello dinamico quel modello che cambia al cambiare del mondo oppure che cambia anche se il mondo rimane fermo. Una dimensione collegata a quella dell'incertezza di rilevamento è la dimensione dell'incertezza dell'effetto, nella quale un agente è deterministico quando lo stato risultante da un'azione è determinato da un'azione e dallo stato precedente, oppure può essere stocastico quando esiste solo una distribuzione di probabilità sugli stati risultanti. Questi tipi di agenti possono essere utilizzati solo se il mondo è completamente osservabile. Mentre se il mondo è parzialmente osservabile, un sistema stocastico può essere modellato come un sistema deterministico in cui l'effetto di un'azione dipende da qualche caratteristica non osservata.
Come detto nel precedente articolo, vi sono diversi tipi di soluzioni che si possono ottenere. In generale un agente agisce per ottenere i risultati migliori, però l'unico motivo per scegliere un'azione piuttosto che un'altra è dettato dal fatto che l'azione preferita conduca a risultati più desiderabili. In questo caso si agisce nella dimensione delle preferenze, la quale è costituita da obiettivi e preferenze. Gli obiettivi si dividono in genere in obiettivi di mantenimento, in base ai quali una proposizione deve essere vera in tutti gli stati visitati, o in obiettivi di realizzazione, nei quali una proposizione deve essere vera in uno stato finale. Per quanto riguarda le preferenze, queste si dividono in preferenze ordinali, nelle quali è importante l'ordine, e in preferenze cardinali nelle quali conta invece la grandezza dei valori.
Esiste una dimensione che prende il nome di dimensione del numero di agenti, nella quale si studia se l'agente prende in considerazione in maniera esplicita gli altri agenti. Si definiscono quindi ragionamenti per singolo agente, nei quali l'agente presuppone che non ci siano altri agenti nell'ambiente o che tutti gli altri agenti facciano parte della natura e quindi non siano intenzionali, oppure si definiscono ragionamenti di multi agenti, mediante i quali l'agente prende in considerazione il ragionamento di altri agenti. Il primo tipo di ragionamento si può utilizzare quando non ci sono altri agenti all'interno dell'ambiente oppure vi sono agenti che non cambiano le proprie azioni in relazione all'operato dell'agente. Mentre il secondo tipo di ragionamento si attua quando diversi agenti intelligenti condividono diversi obiettivi o preferenze che dipendono quindi dalle azioni di altri agenti.
L'ultima dimensione che ci resta da analizzare è la dimensione dell'interazione, nella quale si considera se l'agente ragiona online o offline. La differenza consiste nel fatto che se l'agente agisce secondo un ragionamento offline, esso determina cosa fare prima di interagire con l'ambiente, mentre nel ragionamento online, l'agente determina cosa fare mentre interagisce con l'ambiente, prendendo delle decisioni tempestive.
Queste dimensioni finora analizzate non possono essere studiate in maniera indipendente, per il semplice motivo che interagiscono tra di loro in modi complessi. Alcuni esempi possono essere che la dimensione della rappresentazione interagisce con la dimensione della modularità, in quanto alcuni moduli possono essere abbastanza elementari da ragionare mediante un insiemi finito di stati, mentre altri livelli di astrazione possono richiedere ragionamenti su individui e relazioni. La dimensione della modularità può relazionarsi con la dimensione dell'orizzonte progettuale.