• Non ci sono risultati.

2.2.1

Beliefs, Desires, Intentions

AgentSpeak si basa su un architettura particolare, denominata BDI, ovvero ’beliefs, desires, intentions’. E’ stata pensata per svariati motivi, ma prin- cipalmente aiuta a progettare sistemi multi-agente e quindi a vederli come un insieme di entit`a che ci simulano, e come noi hanno uno stato mentale. Possiamo cos`ı programmarli andando a modificare quello che `e il loro stato mentale, e non fornendo loro un elenco di istruzioni specifiche sui compiti loro assegnati. La realt`a `e pi`u complessa di quello che sembrerebbe, dato che una prima visione prevede che il progettista non conosca nulla di come gli agenti andranno poi a conseguire i propri obiettivi, limitandosi soltan- to a gestire i loro aspetti organizzativi e intenzionali. Come si evince da una prima analisi, ci`o aiuta a vedere appunto gli agenti come esseri umani. Entrando nel dettaglio, i beliefs rappresentano quelle che sono le credenze

22

CAPITOLO 2. JASON COME LINGUAGGIO DI PROGRAMMAZIONE AD AGENTI

Figura 2.3: Architettura BDI

dell’agente sul sistema, le quali possono essere, cos`ı come lo sono le nostre, sulla realt`a che ci circonda, incomplete ed imprecise. Sono quindi una rap- presentazione di quello che un agente ’crede’ dell’ambiente cui `e immerso. I desires sono obiettivi, stati generici, o una qualunque situazione che l’agente vorrebbe eseguire. Ci`o influenza di molto le prossime mosse dell’agente, in maniera diretta, offrendogli effettivamente opzioni selezionabili per le future azioni pratiche. Chiaramente pi`u desires possono essere in conflitto fra loro, cos`ı come negli esseri umani certi obiettivi sono irrealizzabili assieme e/o si escludono a vicenda. Infine le intentions sono desires che l’agente ha deciso di prendere in carico e quindi di portare a termine in qualche modo. Tali opzioni diventano quindi automaticamente intentions.

2.2.2

Practical Reasoning

Ci`o ci offre quindi una maniera di progettare tali sistemi complessi astraendo da un certo livello di implementazione, di modo che sia possibile pi`u facil- mente (anche per non esperti di aspetti algoritmici) progettarli dato l’alto livello che ci offre un sistema BDI. La visione `e quindi quella di program- mare i nostri agenti gestendo i loro stati mentali, lasciandoli pi`u o meno liberi di scegliere le azioni effettive migliori per arrivare ai loro obiettivi, e quindi basandoci su un particolare meccanismo di ragionamento interno

CAPITOLO 2. JASON COME LINGUAGGIO DI

PROGRAMMAZIONE AD AGENTI 23 degli stessi. Tale meccanismo non `e nient’altro che il Practical Reasoning, gi`a accennato nel primo capitolo di questa tesi nell’approfondimento sui di- versi tipi di agenti in circolazione. Come gi`a accennato, si divide in una fase di deliberation e means-end reasoning. Con la deliberation sostanzial- mente gli agenti scelgono le intentions, spesso nella maniera ovvia in cui le vediamo come pro-attitude per certe azioni. Ovvero, se l’agente (o come astrazione, un qualunque ragazzo) ha intenzione di giocare a calcio, ci`o lo porter`a all’azione effettiva di giocare; non `e un desiderio, ma un’intenzione, che comporta il fatto che un eventuale imprevisto lo porti a riprovare a portare a termine l’obiettivo, magari in un’altro spazio o tempo successivo. Ci`o tral’altro comporta che adottare un’intenzione modifica inevitabilmente il nostro comportamento futuro, finch´e tale obiettivo non `e stato raggiunto oppure siamo stati impossibilitati nell’opera. Il means-end reasoning non `

e altro che il processo con cui usando i means (ovvero le azioni possibili) decidiamo di conseguire un obiettivo, un’opzione tra i vari desires quindi. Non si tratta altro di planning, ovvero un algoritmo che in base al nostro goal (obiettivo), ai beliefs dell’agente sull’ambiente e alle azioni possibili, produce un plan, un corso d’azione che andr`a eseguito nell’immediato fu- turo. In AgentSpeak introduciamo ora un interessante modello per questo tipo di meccanismo di reasoning.

2.2.3

Practical Reasoning in BDI

L’approccio adottato in AgentSpeak `e quello di lasciare allo sviluppatore il fornire all’agente, in design-time (prima dell’esecuzione), delle collezioni di plans parziali, lasciando poi all’agente il compito a run-time di unire pi`u plan sulla base di beliefs, per raggiungere i propri goals. E’ un approccio di- verso dal fornire piani d’azione parziali, ma si `e rivelato nella pratica e nelle performance decisamente potente e migliore di altri, ed `e quindi stato adot- tato in AgentSpeak, riflettendosi in Jason, nostro vero campo d’interesse in questa tesi. Il Procedural Reasoning System (PRS) `e un approccio simile a quello appena esposto, ma prevede un loop in cui durante l’esecuzione di plan o il conseguire un intention, si possa controllare che le condizioni per cui tale esecuzione (pendente) sia ancora la miglior ’cosa da fare’. Ovvero, si `e capaci di fermarsi o cambiare corso d’azione e/o obiettivo anche durante l’esecuzione dello stesso. Se ad esempio durante l’esecuzione di un intention acquisiamo un belief che mette in discussione i belief (e l’intention) prece-

24

CAPITOLO 2. JASON COME LINGUAGGIO DI PROGRAMMAZIONE AD AGENTI denti, possiamo interrompere il tutto; oppure se acquisiamo un goal che va in contrasto con il plan in esecuzione, oppure non sussistono pi`u le condi- zioni per eseguirlo, ecc. Ci`o rende il flusso incredibilmente flessibile e pi`u simile al comportamento di un essere umano, dato che noi stessi tutti i gior- ni abbandoniamo corsi d’azione o idee per i pi`u svariati motivi, per cedere il nostro interesse ad altro. AgentSpeak `e quindi un linguaggio che cerca in qualche modo di fornire tali aspetti del PRS non previsti inizialmente nel Reasoning; quando verr`a analizzato il ciclo d’esecuzione dell’interprete Jason si avr`a chiaro il loop adottato dal nostro linguaggio.

2.2.4

Comunicazione: KQML e FIPA

Il modello BDI prevede la gestione dello stato mentale di un singolo agente, tra ci`o che crede, ci`o che vorrebbe fare, e ci`o che sta effettivamente per attuare. Non prevede quindi meccanismi n´e teorie per la comunicazione e coordinazione inter-agente. La teoria adottata come visione in AgentSpeak `

e quella gi`a citata nel primo capitolo, la Speech Act Theory, ovvero una visione in cui la comunicazione `e vista come un particolare tipo di azione. I vari messaggi contengono una performative, tra le altre propriet`a, che identi- fica il messaggio sulla base del suo ’significato’. Adottando quindi linguaggi come KQML e FIPA (gi`a discussi in precedenza), abbiamo quindi messaggi che viaggiano in rete completi di tutte le informazioni, tra cui appunto una performative; un messaggio del tipo ’tell’ modificher`a i beliefs dell’agente ricevente, un messaggio con performative ’achieve’ ne modificher`a invece i goals. Non verr`a di nuovo approfondita tale questione che verr`a invece affrontata nelle prossime sottosezioni. Entriamo ora nel dettaglio e nello specifico di Jason, dopo aver esordito in maniera esauriente con tutto ci`o che fa da compendio per comprendere a fondo tale linguaggio.

Documenti correlati