+ All Categories
Home > Documents > Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of...

Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of...

Date post: 29-Jun-2020
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
112
Linguaggi logici per modellare ed implementare agenti intelligenti Viviana Mascardi Anno accademico 2005/2006
Transcript
Page 1: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Linguaggi logiciper modellare ed

implementare agentiintelligenti

Viviana Mascardi

Anno accademico 2005/2006

Page 2: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Materiale di riferimento

Logic-Based Specification Languages for Intelligent Software Agentsdi V. Mascardi, M. Martelli e L. SterlingAccettato per pubblicazione su Theory and Practice of Logic ProgrammingJournal

L’articolo completo e scaricabile da ftp://ftp.disi.unige.it/pub/

person/MascardiV/Papers/TPLP03.ps.gz

Page 3: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Estensioni della logica delprim’ordine ed agenti intelligenti

• Abbiamo gia visto che nella logica del prim’ordine (FOL) non si ri-escono a rappresentare tutte le caratteristiche proprie di un agenteintelligente.

• La rappresentazione di “nozioni intenzionali”, infatti, comporta una se-rie di problemi risolvibili utilizzando estensioni della FOL.

• Anche la rappresentazione dello scorrere del tempo e dell’evoluzioneda uno stato all’altro richiedono l’utilizzo di operatori logici non presentinella FOL.

Page 4: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Estensioni della logica delprim’ordine ed agenti intelligenti

• Vedremo alcune logiche che estendono FOL e che sono particolar-mente adatte a rappresentare caratteristiche proprie degli agenti intel-ligenti.

Page 5: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logiche analizzate

• Situation calculus [J. McCarthy. Situations, actions and causal laws. Technicalreport, Stanford University, 1963. Reprinted in Semantic Information Processing,M. Minsky ed., The MIT Press, 1968, 110–117]

• Logica modale [S. Kripke. Semantical analysis of modal logic I. Normal proposi-tional calculi. Zeitschrift fur math. Logik und Grundlagen der Mathematik, 9:67–96,1963]

• Logica temporale FML [M. Fisher. A normal form for first-order temporal for-mulae. In D. Kapur, editor, Proceedings of the 11th International Conference onAutomated Deduction (CADE’92), pages 370–384. Springer-Verlag, 1992. LNCS607]

Page 6: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logiche analizzate (cont.)

• Logica deontica [G. H. von Wright. Deontic logic. Mind, 60:1–15, 1951. Reprinted

in G. H. von Wright, Logical Studies, pp. 58–74. Routledge and Kegan Paul, 1957]

• Logica dinamica [D. Kozen and J. Tiuryn. Logics of programs. In J. van Leeuwen,

editor, Handbook of Theoretical Computer Science. Volume B, pages 789–840,

1990]

• Logica lineare [J. Y. Girard. Linear logic. Theoretical Computer Science, 50(1):1–

102, 1987]

Page 7: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Situation calculus

J. McCarthy. Situations, actions and causal laws. Technical report, Stan-ford University, 1963. Reprinted in Semantic Information Processing, M. Min-sky ed., The MIT Press, 1968, 110–117.

• Caratterizzato da situazioni e azioni.

• S0 e la costante che denota la situazione iniziale; do : azione ×situazione→ situazione e la funzione che consente di creare nuovesituazioni a partire da situazioni esistenti ed azioni effettuate.

Page 8: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Situation calculus (cont.)

• Predicato @: situazione × situazione. s @ s′ significa che s′ puoessere raggiunta a partire da s tramite un numero finito di azioni.

• Predicato Poss : action × situation. L’interpretazione di Poss(a, s)e che e possibile eseguire l’azione a nella situazione s.

• Simboli di predicati e simboli di funzione che denotano proprieta efunzioni indipendenti dalla situazione.

• Simboli che denotano azioni.

Page 9: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Situation calculus (cont.)

• Simboli di predicati e simboli di funzione che denotano proprieta efunzioni dipendenti dalla situazione (si chiamano fluenti).

Page 10: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica modale

S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen der Mathematik, 9:67–96,1963.S. Kripke. Semantical considerations on modal logic. Acta PhilosophicaFennica, 16:83–94, 1963.S. Kripke. Semantical analysis of modal logic II. Non-normal modal propo-sitional calculi. In Addison, Henkin, and Tarski, editors, The theory of mod-els, pages 206–220, Amsterdam, North-Holland, 1965.

• E una estensione della logica classica con un connettivo 2 e la suacontroparte ♦, noti come necessita e possibilita rispettivamente.

Page 11: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica modale (cont.)

• Se una formula 2p e vera, allora p e necessariamente vera, cioe, evera in ogni possibile scenario.

• Se una formula ♦p e vera, allora p e possibilmente vera, cioe, e verain almeno un possibile scenario.

• E possibile definire ♦ in funzione di 2:

♦p⇔ ¬2¬p

Page 12: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica modale (cont.)

• Per dare un significato agli operatori 2 e ♦, i modelli della logicamodale sono solitamente basati sui mondi possibili, che sono unacollezione di modelli della logica classica collegati da relazioni di ac-cessibilita.

Page 13: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica temporale

Vediamo un esempio di logica temporale chiamata FML [M. Fisher. A nor-mal form for first-order temporal formulae. In D. Kapur, editor, Proceedingsof the 11th International Conference on Automated Deduction (CADE’92),pages 370–384. Springer-Verlag, 1992. LNCS 607].

• FML e una logica temporale del prim’ordine basata su una nozione ditempo discreto e lineare, con passato finito e futuro infinito.

• FML introduce due nuovi connettivi alla logica classica, until (U ) esince (S), e diversi operatori che si possono definire in termini di Ue S.

Page 14: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica temporale (cont.)

• Il significato intuitivo di una formula logica temporale ϕ Uψ e che ψdiventera vera in qualche istante di tempo futuro t e che in tutti gliistanti tra l’istante corrente e t (differenti dall’istante corrente e t) ϕsara vera. S e l’analogo di U nel passato.

• La semantica di FML si basa sull’idea “sulla base del passato, eseguile azioni future”.

Page 15: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica temporale (cont.)

• Operatori derivati da S e U :

©ϕ ϕ sara‘ vera nel prossimo istante [false Uϕ] ϕ l’istante corrente non e‘ l’istante iniziale e ϕ era vera

nell’istante precedente [false Sϕ]©• ϕ se l’istante corrente non e‘ l’istante iniziale allora ϕ era vera

nell’istante precedente [¬ ¬ϕ]♦ϕ ϕ sara‘ vera in qualche istante futuro [true Uϕ]♦• ϕ ϕ era vera in qualche istante passato [true Sϕ]2ϕ ϕ sara‘ vera in tutti gli istanti futuri [¬ ♦¬ϕ]ϕ ϕ era vera in tutti gli istanti passati [¬♦• ¬ϕ]

Page 16: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica deontica

G. H. von Wright. Deontic logic. Mind, 60:1–15, 1951. Reprinted inG. H. von Wright, Logical Studies, pp. 58–74. Routledge and Kegan Paul,1957.C. E. Alchourron and E. Bulygin. Normative Systems. Springer-Verlag,1971.H-N. Castaneda. Thinking and Doing. The Philosophical Foundations ofInstitutions. Reidel Publishing Company, Dordrecht, 1975.

• La logica deontica e la logica per ragionare sul comportamente idealee reale.

Page 17: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica deontica (cont.)

• Include operatori per rappresentare permessi, obblighi, e proibizioni,doveri, diritti, potere.

• Tradizionalmente, la logica deontica e stata usata per analizzare lastruttura della legge normativa e per effettura ragionamento in quelcontesto.

• Recentemente si e invece realizzato che le logica deontica puo essereusata al di fuori della analisi in campo legale: infatti, puo essere usataanche per ragionare sul comportamento ideale e reale.

Page 18: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica deontica (cont.)

• Esempio: Il sistema OS di von Wright (Old system)

– Il sistema OS e basato su due operatori deontici: O, che significaobbligo, e P che significa permesso. Sia p una proposizione nelcalcolo proposizionale, allora Op e Pp sono formule nel linguaggiodeontico OS.

Page 19: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica deontica (cont.)

– Il sistema OS consiste dei seguenti assiomi e regole di inferenza

(OS0) tutte le tautologie del calcolo proposizionale

(OS1) Op ≡ ¬P¬p

(OS2) Pp ∨P¬p

(OS3) P(p ∨ q) ≡ Pp ∨Pq

(OS4) p≡qPp≡Pq

Page 20: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica deontica (cont.)

– Si e realizzato che is sistema OS e molto simile alla logica modaleusando O come 2 (operatore di necessita). La logica deontica ela logica modale possono essere viste come la stessa logica se siaggiunge alla logica deontica l’assioma

(O>) O(p ∨ ¬p)

Page 21: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica dinamica

D. Kozen and J. Tiuryn. Logics of programs. In J. van Leeuwen, editor,Handbook of Theoretical Computer Science. Volume B, pages 789–840,1990.

• A differenza della logica modale tradizionale, nella logica dinamica glioperatori di necessita e possibilita dipendono dalle azioni disponibili.

• La logica dinamica e stata usata in molte aree della intelligenza artifi-ciale distribuita.

• Consideriamo programmi regolari e formule del linguaggio della logicadinamica definiti per mutua induzione come segue.

Page 22: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica dinamica (cont.)

Sia PA un insieme di simboli di azioni atomiche. I programmi regolarisono definiti nel modo seguente:

– tutti i simboli di azione atomica in PA sono programmi regolari;

– se p e q sono programmi regolari, allora p ; q e un programmaregolare che indica l’esecuzione di p e q in successione;

– se p e q sono programmi regolari, allora (p+ q) e un programmaregolare che indica l’esecuzione di p oppure di q;

– se p e un programma regolare, allora p∗ e un programma regolareche indica l’esecuzione di un numero finito di iterazioni di p;

Page 23: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica dinamica (cont.)

– se ϕ e una formula del linguaggio della logica dinamica, allora ϕ?e un programma regolare che rappresenta l’azione di verificare ilvalore di verita di ϕ;

Le formule del linguaggio della logica dinamica sono definite nel seguentemodo:

– tutte le formule proposizionali sono formule del linguaggio della log-ica dinamica;

Page 24: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica dinamica (cont.)

– se p e un programma regolare e ϕ e una formula della logica di-namica allora [p]ϕ e una formula della logica dinamica che indicache se p termina, allora deve terminare in uno stato che soddisfaϕ;

– se p e un programma regolare e ϕ e una formula della logica di-namica, allora 〈p〉ϕ e una formula della logica dinamica che indicache e possibile eseguire p e terminare in uno stato che soddisfa ϕ;

– se ϕ e ψ sono formule della logica dinamica allora ϕ ∨ ψ, ϕ ∧ ψ,ϕ =⇒ ψ and ¬ϕ sono formule della logica dinamica.

Page 25: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica lineare

J. Y. Girard. Linear logic. Theoretical Computer Science, 50(1):1–102,1987.

La logica lineare e un raffinamento “resource-oriented” della logica clas-sica. L’idea alla base della logica dinamica e che le assunzioni (risorse)possono essere usate solo un numero finito di volte.

• Esponenziali: “!” (of course) and “?” (why not?) esprimono la capacitadi iterare una certa azione. !A indica disponibilita infinita di A.

• Implicazione lineare: − (lollo) e usata per la implicazione lineare. Larelazione tra implicazione lineare e implicazione intuizionista e A ⇒B ≡ (!A) −B.

Page 26: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica lineare (cont.)

• Congiunzioni: ⊗ (times) e & (with) corrispondono a usi differenti dellaparola “e”. Entrambe le congiunzioni esprimono la disponibilita di dueazioni. In caso di ⊗, entrambe le azioni verranno eseguite, mentre incaso di & solo una di esse verra eseguita (possiamo decidere quale).Date A − B e A − C, non c’e modo di derivare A − B ⊗ C, ma epossibile derivare A −B&C.

• Disgiunzioni: ⊕ (plus), duale di &, e ............................................................................................... (par),duale di ⊗. ⊕ esprime lascelta di una azione tra due possibili. ............................................................................................... esprime la dipendenza tra duetipi di azioni e puo essere usata per modellare la concorrenza.

Page 27: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Logica lineare (cont.)

• Negazione lineare: (·)⊥ (nil) esprime la negazione lineare. L’implicazionelineare si riscrive in A⊥ ............................................................................................... B ed esprime la dualita

azione di tipo A = reazione di tipo A⊥

• Elementi neutri: 1 (rispetto a ⊗), ⊥ (rispetto a ...............................................................................................), > (rispetto a &) and0 (rispetto a ⊕).

Page 28: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Programmazione logica ed agenti intelligenti

Esistono diversi vantaggi nell’adottare un linguaggio di programmazionelogica per specificare un sistema ad agenti:

• Prototipazione rapida: un programma logico e una specifica eseguibile,ovvero un prototipo. Puo essere realizzato rapidamente e a bassocosto.

• Esecuzione del MAS: l’evoluzione di un MAS consiste in una succes-sione nondeterministica di eventi. Da un punto di vista astratto, unlinguaggio di programmazione basato sulla logica e un linguaggio non-deterministico nel quale la computazione avviene tramite un processodi ricerca.

Page 29: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Programmazione logica ed agenti intelligenti (cont.)

• Capacita di ragionamento al meta-livello: gli agenti possono averebisogno di ragionare sul proprio comportamento e modificare dinami-camente le regole che lo guidano. La possibilita offerta dalla program-mazione logica di vedere programmi come dati risulta quindi utile aquesto scopo.

Page 30: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Programmazione logica ed agenti intelligenti (cont.)

• Razionalita e reattivita degli agenti: la interpretazione dichiarativa equella operazionale dei programmi logici hanno relazioni strette con larazionalita e la reattivita degli agenti. Possiamo pensare ad un pro-gramma logico puro come alla specifica della componente razionaledegli agenti. Il comportamento reattivo degli agenti puo invece esseremodellato dalla interpretazione operazionale dei programmi logici (uti-lizzo di predicati di sistema, esecuzione dei goal da sinistra a destra).Vedere [R. Kowalski and F. Sadri. Towards a unified agent architecture that com-

bines rationality with reactivity. In D. Pedreschi and C. Zaniolo, editors, In Proc. of

the LID International Workshop, pages 137–149. Springer Verlag, 1996].

Page 31: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Linguaggi analizzati

Analizzeremo i seguenti linguaggi per la programmazione di agenti basatisulla logica. Per ciascuno di essi esiste un interprete, spesso implementatoin Prolog.

• ConGolog [G. De Giacomo, Y. Lesperance and H. J. Levesque, ConGolog, a con-current programming language based on the situation calculus, Artificial Intelligence,121, pp 109–169, 2000];

• AGENT-0 [Y. Shoham, Agent-oriented programming, Artificial Intelligence, 60, pp51–92, 1993];

• il linguaggio IMPACT [K. Arisha, T. Eiter, S. Kraus, F. Ozcan, R. Ross, andV. S. Subrahmanian. IMPACT: A platform for collaborating agents. IEEE IntelligentSystems, 14(2):64–72, 1999.];

Page 32: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Linguaggi analizzati (cont.)

• Dylog [M. Baldoni, L. Giordano, A. Martelli and V. Patti, Modeling Agents in a Logic

Action Language in Proc. of Workshop on Practical Reasoning Agents, FAPR2000,

London, UK, 2000];

• Concurrent METATEM [M. Fisher and H. Barringer, Concurrent METATEM Pro-

cesses – A Language for Distributed AI in Proc. of the European Simulation Multi-

conference, Copenhagen, Denmark, 1991];

• Ehhf [G. Delzanno and M. Martelli, Proofs as Computations in Linear Logic, Theo-

retical Computer Science, 258(1–2), pp 269–297, 2001].

Page 33: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Esempio: la proposta di un contratto

buyerRole sellerRole

contractProposal

refuse

accept

contractProposal

refuse

accept

contractProposal

acknowledge

acknowledge

Page 34: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Esempio: la proposta di un contratto (cont.)

Quando l’agente venditore (seller) riceve un messaggio “contractProposal(stuff,amount, price)”,

– se c’e abbastanza merce nel magazzino e il prezzo proposto e ≥ max,il seller invia un messaggio “accept” all’agente compratore (buyer) e, con-correntemente, spedisce la merce richiesta∗;– se non c’e abbastanza merce in magazzino oppure il prezzo propostoe ≤ min, il seller invia un messaggio “refuse” al buyer;– se c’e abbastanza merce in magazzino e min≤ prezzo proposto≤max,il seller invia un messaggio “contractProposal” al buyer per negoziare sulprezzo.

∗Se non e possibile definire azioni concorrenti nel linguaggio, l’invio del messaggio e laspedizione della merce verranno eseguite sequenzialmente.

Page 35: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

ConGolog

G. De Giacomo, Y. Lesperance and H. J. Levesque, ConGolog, a con-current programming language based on the situation calculus, ArtificialIntelligence, 121, pp 109–169, 2000

ConGolog si basa sul situation calculus.

Page 36: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

ConGolog: sintassi

a Azione primitiva.Φ? Attesa di una condizione.(δ1; δ2) Sequenza.(δ1 | δ2) Scelta nondeterministica di azioni.πv.δ Scelta nondeterministica di argomenti.δ∗ Iterazione nondeterministica.proc P1(

→v1)δ1 end; . . . proc Pn(

→vn)δn end; δ

Procedure.if Φ then δ1 else δ2 Condizionale sincronizzato.while Φ? do δ Ciclo sincronizzato.(δ1 ‖ δ2) Esecuzione concorrente.(δ1〉〉δ2) Concorrenza con prorita‘.

Page 37: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

ConGolog: sintassi (cont.)

δ‖ Iterazione concorrente.< Φ→ δ > Interrupt.

Page 38: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

ConGolog: come definire un agente

Occorre specificare:

• le azioni primitive;

• le funzioni ed i predicati indipendenti dalla situazione;

• le funzioni ed i predicati fluenti;

• lo stato iniziale;

Page 39: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

ConGolog: come definire un agente

• gli assiomi che determinano le precondizioni delle azioni ed i loro ef-fetti;

• il programma vero e proprio, usando la sintassi descritta.

Page 40: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

ConGolog: esempio – l’agente seller

Azioni primitive:

ship(Buyer, Product, Required-amount)send(Sender, Receiver, Message)

Funzioni indipendenti dalla situazione:

min-price(Product) = Minmax-price(Product) = Max

Fluenti primitivi:

receiving(Sender, Receiver, Message, S)storing(Product, Amount, S)

Page 41: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

ConGolog: esempio (cont.)

Stato iniziale:

min-price(orange) = 1max-price(orange) = 2∀ S, R, M, ¬ receiving(S, R, M, s0)storing(orange, 1000, s0)

Assiomi sulle precondizioni:

poss(ship(Buyer, Prod, Req-amnt), S) ≡storing(Prod, Amnt, S) ∧ Amnt ≥ Req-amnt

poss(send(Sender, Receiver, Message), s) ≡ true

Page 42: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

ConGolog: esempio (cont.)

Assiomi sugli stati successivi:

poss(A, S) =⇒(receiving(Send, Rec, Msg, do(A, S)) ≡(A = send(Send, Rec, Msg) ∨ (A 6= send(Send, Rec, Msg) ∧ Msg = empty-msg))

poss(A, S) =⇒(storing(Prod, Amnt, do(A, S)) ≡(A = ship(Buy, Prod, Req-amnt) ∧ storing(Prod, Req-amnt + Amnt, S)) ∨(A 6= ship(Buy, Prod, Req-amnt) ∧ storing(Prod, Amnt, S)))

Page 43: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

ConGolog: esempio (cont.)

L’agente seller esegue la procedura seller-life-cycle:

proc seller-life-cyclewhile true do

if receiving(Buy, sell,contractProposal(Prod, Req-amnt, Price), now)

thenif storing(Prod, Amnt, now)∧ Amnt ≥ Req-amnt∧ Price ≥ max-price(Prod)

thenship(Buy, Prod, Req-amnt) ‖send(sell, Buy, accept(Prod, Req-amnt, Price))

else .........

else nil

Page 44: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

ConGolog: semantica

• La semantica di ConGolog e data come una sematica di transizionemediante due predicati, Final(δ, s) e Trans(δ, s, δ′, s′).

• Il primo predicato definisce quando un programma δ puo legalmenteterminare in una situazione s.

• Il secondo predicato definisce quando un programma δ nella situ-azione s puo legalmente eseguire un passo, arrivando alla situaziones′ e con il programma δ′ ancora da eseguire.

Page 45: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

ConGolog: implementazione

• Una implementazione di ConGolog e stata realizzata in Prolog.

• La definizione dell’interprete per ConGolog e basata sui predicati Final,Trans e Do.

• L’interprete e scaricabile dalla Home page del Cognitive Robotics Group,http://www.cs.toronto.edu/cogrobo/.

Page 46: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

ConGolog: estensioni

• Legolog (LEGO MINDSTORM in (Con)Golog) usa un pianificatore re-alizzato estendendo ConGolog per controllare un robot LEGO MIND-STORM. Il linguaggio usato estende ConGolog con capacita di gestireazioni primitive, azioni esterne e percezione dell’ambiente. Vedere laHome page di Legolog, http://www.cs.toronto.edu/cogrobo/Legolog/index.html.

• IndiGolog (Incremental Deterministic (Con)Golog) e un linguaggio diprogrammazione ad alto livello in cui i programmi sono eseguiti in-crementalmente e consentono l’interleaving di azioni, pianificazione,percezione e gestione di eventi esterni.

Page 47: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

ConGolog: estensioni (cont.)

• CASL (Cognitive Agent Specification Language e un ambiente per laspecifica e verifica di MASs basato su ConGolog.

Page 48: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0

Y. Shoham, Agent-oriented programming, Artificial Intelligence, 60, pp 51–92, 1993

AGENT-0 integra aspetti della logica modale, temporale e deontica.

Page 49: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: sintassi

<program> ::= <timegrain> <fact>* <capability>* <commitrule>*<timegrain> ::= m | h | d | y<capability> ::= (<action> <mntlcond>)<commitrule> ::= (COMMIT <msgcond> <mntlcond>

(<agent> <action>)*)<msgcond> ::= <msgconj> | (<msgcond> OR <msgcond>)<msgconj> ::= <msgpattern> | (<msconj> AND <msconj>)<msgpattern> ::= (<agent> INFORM <fact>) |

(<agent> REQUEST <action>) |(NOT <msgpattern>)

<mntlcond> ::= <mntlconj> | (<mntlcond> OR <mntlcond>)<mntlconj> ::= <mntlpattern> | (<mntlconj> AND <mntlconj>)<mntlpattern>::= (B <fact>) | ((CMT <agent>) <action>) |

(NOT <mntlpattern>)

Page 50: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: sintassi (cont.)

<action> ::= (DO <time> <privateaction>) |(INFORM <time> <agent> <fact>) |(REQUEST <time> <agent> <action>)|(UNREQUEST <time> <agent> <action>)|(REFRAIN <action>) |(IF <mntlcond> <action>)

<fact> ::= (<time> <atom>) | (NOT (<time> <atom>))<atom> ::= atomi Prolog (predicati con argomenti)<time> ::= integer |now | <time> + <time><agent> ::= <string> | <variable><variable> ::= ?<string> | ?!<string>

Page 51: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: sintassi (cont.)

Fatti. I fatti sono atomi collocati temporalmente del tipo(t atom)

e(NOT (t atom))

Per esempio, (0 (stored orange 1000)) e un fatto in AGENT-0 che sta-bilisce che al tempo 0 c’erano 1000 arance nel magazzino.

Azioni private. La sintassi per le azioni private e(DO t p-action)

dove t e un istante di tempo e p-action e il nome di una azione privata.Gli effetti delle azioni private possono essere visibili oppure no agli altriagenti.

Page 52: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: sintassi (cont.)

Azioni comunicative. La sintassi e:(INFORM t a fact)

dove t e l’istante di tempo in cui avviene l’azione di informare, a e ilnome del destinatario e fact e un fatto.

(REQUEST t a action)dove t e un istante di tempo, a e il nome del destinatario e action e unaazione.

(UNREQUEST t a action)dove t e un istante di tempo, a e il nome del destinatario e action e unaazione.

Page 53: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: sintassi (cont.)

Non-azione. Una non-azione evita che un agente debba vincolarsi allaesecuzione di una azione.

(REFRAIN action)

Condizioni mentali. Una condizione mentale e una combinazione logicadi pattern mentali che possono assumere due forme:

(B fact)che significa che l’agente crede che fact sia vero, oppure

((CMT a) action)dove CMT indica “commitment”.

Page 54: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: sintassi (cont.)

Capacita. La sintassi e(action mentalcondition)

l’agente e capace di effettuare action se la condizione mentale men-talcondition e vera.

Azioni condizionali. La sintassi e(IF mentalcondition action)

l’azione action puo essere eseguita solo se la condizione mentalementalcondition vale.

Page 55: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: sintassi (cont.)

Condizioni sui messaggi. Una “message condition” (condizione sui mes-saggi) e una combinazione logica di message patterns, che sono triple

(From Type Content)dove From e il nome del sender, Type e INFORM, REQUEST o UN-REQUEST e Content e un fatto o una azione.

“Commitment rule”. Una “commitment rule” (regola di impegno) ha laforma:

(COMMIT messagecondition mentalcondition (agent action)*)dove messagecondition e mentalcondition sono condizioni sui mes-saggi e condizioni mentali, agent e un nome di agente, action e unaazione e * denota la ripetizione di zero o piu volte.

Page 56: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: come definire un agente

Il programma che definisce un agente e caratterizzato dal “timegrain”, se-guito dalle capacita, dalle credenze iniziali dell’agente e dalle sue commit-ment rules.

Page 57: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: esempio – l’agente seller

Le variabili sono precedute da “?”. Le variabili quantificate universalmente sono prece-dute da “?!”.

timegrain := m

CAPABILITIES :=((DO ?time (ship ?!buyer ?stuff ?required-amount?!price))(AND (B (?time (stored ?stuff ?stored-amount)))

(>= ?stored-amount ?required-amount))

INITIAL BELIEFS :=(0 (stored orange 1000))(?!time (min-price orange 1))(?!time (max-price orange 2))

Page 58: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: esempio – l’agente seller (cont.)

COMMITMENT RULES :=

(COMMIT(?buyer REQUEST

(DO now+1 (ship ?buyer ?stuff ?req-amnt ?price)))

(AND (B (now (stored ?stuff ?stored-amount))) (>= ?stored-amount ?req-amnt)(B (?!time (max-price ?stuff ?max))) (>= ?price ?max))

(?buyer (DO now+1(ship ?buyer ?stuff ?req-amnt ?price)))

(myself (INFORM now+1 ?buyer(accepted ?stuff ?req-amnt ?price)))

(myself (DO now+1 (update-stuff ?stuff ?req-amnt))))

Page 59: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: esempio – l’agente seller (cont.)

(COMMIT

(?buyer REQUEST

(DO now+1 (ship ?buyer ?stuff ?req-amnt ?price)))

(OR (AND (B (now (stored ?stuff ?stored-amount)))

(< ?stored-amount ?req-amnt))

(AND (B (?!time (min-price ?stuff ?min)))

(<= ?price ?min)))

(myself (INFORM now+1 ?buyer

(refused ?stuff ?req-amnt ?price)))

)

Page 60: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: esempio – l’agente seller (cont.)

(COMMIT

(?buyer REQUEST

(DO now+1 (ship ?buyer ?stuff ?req-amnt ?price)))

(AND (B (now (stored ?stuff ?stored-amount))) (>= ?stored-amount ?req-amnt)

(B (?!time (max-price ?stuff ?max))) (< ?price ?max)

(B (?!time (min-price ?stuff ?min))) (> ?price ?min))

(myself (DO now+1 (eval-mean ?max ?price

?mean-price)))

(myself (REQUEST now+1 ?buyer

(eval-counter-proposal ?stuff ?req-amnt

?mean-price)))

)

Page 61: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: semantica

Non definita

Page 62: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: implementazione

Un prototipo dell’interprete di AGENT-0 e stato implementato in CommonLisp ed e stato installato su computer Sun/Unix, DecStation/Ultrix e Mac-intosh.

Una seconda implementazione e stata sviluppata dalla Hewlett Packard.

L’interprete AGENT-0 e caratterizzato dal seguente ciclo:

1. Leggi i messaggi correnti ed aggiorna le credenze ed i “commitment”;

2. Esegui i commitment previsti per l’istante di tempo corrente, eventual-mente modificando nuovamente le credenze.

Page 63: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: estensioni

• PLACA arricchisce AGENT-0 con un meccanismo per la gestione flessibiledi piani. Aggiunge due strutture dati allo stato dell’agente: una listadi intenzioni ed una lista di piani. Sono inoltre disponibili all’agentealtri costrutti quali (ADOPT (INTEND x)), che significa che l’agenteaggiunge l’intenzione di eseguire x alla sua intention list.

Page 64: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

AGENT-0: estensioni (cont.)

• Agent-K rappresenta un tentativo di standardizzare lo scambio di mes-saggi, adottando la sintassi di KQML. Agent-K introduce due modifichealla struttura di AGENT-0:

1. rimpiazza i messaggi di tipo INFORM, REQUEST, and UNRE-QUEST in uscita con un comando, KQML, che prende il messag-gio, il tempo e la performative KQML come parametri;

2. Consente di generare piu di un commitment che soddisfa un sin-golo messaggio.

Page 65: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT

K. Arisha, T. Eiter, S. Kraus, F. Ozcan, R. Ross, and V. S. Subrahmanian.IMPACT: A platform for collaborating agents. IEEE Intelligent Systems,14(2):64–72, 1999.V.S. Subrahmanian, P. Bonatti, J. Dix, T. Eiter, S. Kraus, F. Ozcan, andR. Ross. Heterogenous Active Agents. The MIT Press, 2000. 580 pages.

Include operatori propri della logica deontica.

Page 66: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT: sintassi

• code calls: S : f(t1, . . . , tn).

• code call atom: in(t, cc) or notin(t, cc)

• code call condition: congiunzione di code call atoms.

• action: α(X1, . . . , Xn) + liste che definiscono le precondizioni, gli ef-fetti e i fatti da cancellare + script di esecuzione.

• integrity constraints: ψ ⇒ χa, dove ψ e una code call condition e χae un code call atom o un constraint atom.

Page 67: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT: sintassi (cont.)

• programma di un agente: insieme di regole della forma:Modα← χ&L1 & · · · &Ln

dove Mod puo essere O (obliged), F (forbidden), P (permitted), W

(waived) oppure Do (esecuzione di una azione); χ e una code callcondition, L1, . . . , Ln sono espressioni della forma Oα(~t), Pα(~t),Fα(~t), Doα(~t), and Wα(~t) (o loro negazioni).

Page 68: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT: come definire un agente

• Stabilire quali pacchetti verranno acceduti dall’agente, e mediante qualeAPI.

• Definire lo stato iniziale dell’agente.

• Definire le azioni a disposizione dell’agente.

• Definire gli integrity constraints.

• Definire il programma.

Page 69: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT: esempio – l’agente seller

Assumiamo che l’agente acceda:

• un database oracle che mantiene l’informazione sulla quantita di mercedisponibile ed il suo prezzo minimo e massimo. Le informazioni sonomantenute in una relazione stored stuff;

• un pacchetto msgbox che consente all’agente di scambiare messaggi;

• un pacchetto math che esporta funzioni matematiche.

La relazione stored stuff inizialmente contiene la tupla <orange, 1000, 1,2>.

Page 70: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT: esempio – l’agente seller (cont.)

Le azioni che l’agente puo effettuare sono sendMessage(Sender, Receiver,Message) (vedi [T. Eiter, V. S. Subrahmanian, and G. Pick. Heterogeneous active

agents, I: Semantics. Artificial Intelligence, 108(1-2):179–255, 1999] per descrizionecompleta) e ship(Buyer, Stuff, Req amount).

ship(Buyer, Stuff, Req amount)

Pre(ship(Buyer, Stuff, Req amnt)) =in(Old amnt, oracle:select(stored stuff.amount, name, =, Stuff)) ∧in(Diff, math:subtract(Old amnt, Req amnt)) ∧ Diff ≥ 0

Add(ship(Buyer, Stuff, Req amnt)) =in(Diff, oracle:select(stored stuff.amount, name, =, Stuff))

Del(ship(Buyer, Stuff, Req amnt)) =in(Old amnt, oracle:select(stored stuff.amount, name, =, Stuff))

Page 71: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT: esempio – l’agente seller (cont.)

Integrity constraints:

in(Min, oracle:select(stored stuff.min, name, =, Stuff)) ∧in(Max, oracle:select(stored stuff.max, name, =, Stuff)) =⇒

0 < Min < Max

in(Amount, oracle:select(stored stuff.amount, name, =, Stuff)) =⇒Amount > 0

Page 72: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT: esempio – l’agente seller (cont.)

Programma dell’agente:

Do sendMessage(Seller, Buyer,accept(Stuff, Req amount, Price))←

in(〈 i, Buyer, Seller, contractProposal(Stuff, Req amount, Price), T〉,msgbox:getMessage(Sender)),in(Max, oracle:select(stored stuff.max, name,=, Stuff)),in(Amount, oracle:select(stored stuff.amount,name, =, Stuff)),Price >= Max, Amount >= Req amount

O ship(Buyer, Stuff, Req amount)←Do sendMessage(Seller, Buyer,accept(Stuff, Req amount, Price))

Page 73: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT: esempio – l’agente seller (cont.)

Do sendMessage(Seller, Buyer,refuse(Stuff, Req amount, Price))←

in(〈 i, Buyer, Seller, contractProposal(Stuff, Req amount, Price), T〉,msgbox:getMessage(Sender)),in(Min, oracle:select(stored stuff.max, name,=, Stuff)),Price <= Min

Do sendMessage(Seller, Buyer,refuse(Stuff, Req amount, Price))←

in(〈 i, Buyer, Seller, contractProposal(Stuff, Req amount, Price), T〉,msgbox:getMessage(Sender)),in(Amount, oracle:select(stored stuff.amount,name, =, Stuff)),Amount < Req amount

Page 74: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT: esempio – l’agente seller (cont.)

Do sendMessage(Seller, Buyer,contractProposal(Stuff, Req amount, Means))←

in(〈 i, Buyer, Seller, contractProposal(Stuff, Req amount, Price), T〉,msgbox:getMessage(Sender)),in(Max, oracle:select(stored stuff.max,name, =, Stuff)),in(Min, oracle:select(stored stuff.min,name, =, Stuff)),in(Amount, oracle:select(stored stuff.amount,

name, =, Stuff)),Price > Min, Price < Max,Amount >= Req amountin(Means, math:evalMeans(Max, Price))

Page 75: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT: sematica

Se il comportamento di un agente e definito da un programma P, la do-manda che l’agente si pone continuamente e:

Qual e l’insieme di tutti gli action status atoms della forma Doα(~t)

che sono veri rispetto ad P, lo stato corrente O e l’insieme ICdegli integrity constraint?

L’insieme in questione definisce le azioni che un agente deve eseguire;esistono diverse semantiche di IMPACT che descrivono come individuarequesto insieme seguendo modalita sempre piu raffinate.

Page 76: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT: implementazione

L’implementazione dell’ambiente IMPACT consiste in due parti, entrambeimplementate in Java:

1. L’ “IMPACT Agent Development Environment” (IADE) che e usato dallosviluppatore per costruire e compilare gli agenti, e

2. la parte che gestisce l’esecuzione a run-time, che consente agli agentidi identificare l’insieme di azioni da eseguire e le conseguenti modi-fiche allo stato.

Page 77: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT: estensioni

• Estensioni “meta” per ragionare sugli altri agenti a partire dalle cre-denze che essi hanno.

• Estensioni temporali per specificare aspetti temporali dell’esecuzione.

• Estensioni probabilistiche per gestire l’incertezza.

• Estensioni per la tolleranza agli errori per consentire agli agenti di con-tinuare la loro esecuzione anche in caso di errori/guasti.

Page 78: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

IMPACT: estensioni (cont.)

• Estensioni per la sicurezza per fornire agli agenti meccanismi di si-curezza.

Page 79: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Dylog

M. Baldoni, L. Giordano, A. Martelli and V. Patti, Modeling Agents in a LogicAction Language in Proc. of Workshop on Practical Reasoning Agents,FAPR2000, London, UK, 2000

Gli approcci su cui si basa sono quelli della logica dinamica e della log-ica modale.

Page 80: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Dylog: sintassi

• [a]α: α vale dopo ogni esecuzione di a.

• 〈a〉α: c’e una possibile esecuzione di a dopo la quale α vale.

• 2 α: α vale in tutti gli stati.

• Leggi delle azioni: a causes F if Fs.

• Leggi delle precondizioni: a possible if Fs.

• Leggi causali: F if Fs.

• Procedure: definite come una collezione di procedure clauses della formap0 is p1, . . . , pn (n ≥ 0).

• Pianificazione: plan(p, Fs, as).

• Percezione: s senses f.

Page 81: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Dylog: come definire un agente

• Si definiscono i fluenti.

• Si definiscono i fatti che non sono fluenti.

• Si definiscono le osservazioni iniziali.

• Si definiscono le azioni primitive, in termini delle leggi di precondizione,azione e causali.

• Si definiscono le procedure.

Page 82: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Dylog: esempio – l’agente seller

Fluenti:

functionalFluent(storing/2).

functionalFluent(new message/2).

Fatti non fluenti:

min-price(orange, 1).

max-price(orange, 2).

Osservazioni iniziali:

obs(storing(orange, 1000)).

Page 83: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Dylog: esempio – l’agente seller (cont.)

Azioni primitive:

receive

Leggi di precondizione:receive possible if true.

Percezione:receive sensesnew message(Sender, Message).

Routine che implementa la percezione:senses routine( , new message,Sender, Message) :- ....

send(Sender, Receiver, Message)

Page 84: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Dylog: example (cont.)

ship(Buyer,Stuff, Req Amnt, Price)

Leggi di azione:ship(Buyer, Stuff, Req Amnt, Price)

causes storing(Stuff, Amount)if ?storing(Stuff, Old Amount) &

(Amount is Old Amount - Req Amnt).

Leggi di precondizione:ship(Buyer, Stuff, Req Amnt)

possible if ?storing(Stuff, Old Amount) &(Old Amount >= Req Amnt).

ship(Buyer, Stuff, Req Amnt)possible if max-price(Stuff, Max) &

(Price >= Max).

Page 85: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Dylog: esempio – l’agente seller (cont.)

Procedure:

seller agent cycle ispreceive &manage message &seller agent cycle.

manage message isp?new message(Buyer,

contractProposal(Stuff, Req Amnt, Price)) &?storing(Stuff, Old Amount) &(Old Amount >= Req Amnt) &max-price(Stuff, Max) & (Price >= Max) &ship(Buyer, Stuff, Req Amnt, Price) &send(seller, Buyer,accept(Stuff, Req Amnt, Price))

Page 86: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Dylog: esempio – l’agente seller (cont.)

manage message isp?new message(Buyer,contractProposal(Stuff, Req Amnt, Price)) &?storing(Stuff, Old Amount) &(Old Amount < Req Amnt) &send(seller, Buyer,

refuse(Stuff, Req Amnt, Price))

manage message isp?new message(Buyer,contractProposal(Stuff, Req Amnt, Price)) &min-price(Stuff, Min) & (Price <= Min)send(seller, Buyer,refuse(Stuff, Req Amnt, Price))

Page 87: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Dylog: esempio – l’agente seller (cont.)

manage message isp?new message(Buyer,contractProposal(Stuff, Req Amnt, Price)) &?storing(Stuff, Old Amount) &(Old Amount >= Req Amnt) &max-price(Stuff, Max) & (Price < Max) &min-price(Stuff, Min) & (Price > Min) &(New Price is (Price + Max) / 2) &send(seller, Buyer,contractProposal(Stuff, Req Amnt, New Price))

Page 88: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Dylog: sematica

La caratterizzazione logica di Dylog puo essere fornita in due passi:

• Prima viene introdotta l’interpretazione logica multimodale della de-scrizione dinamica del dominio che descrive la parte monotona dellinguaggio.

• Poi, viene fornita una semantica adduttiva che spiega il comporta-mento della parte non monotona del linguaggio.

Page 89: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Dylog: implementazione

• Dylog e definito da una procedura di prova che costruisce un piano lin-eare facendo assunzioni sui possibili risultati delle azioni di percezione.

• Un interprete basato su questa procedura di prova e stato implemen-tato in SICStus Prolog.

• Questa implementazione consente di usare Dylog come un linguaggiodi programmazione per eseguire procedure, ma anche per ragionaresulle procedure, estraendo dalle procedure piani condizionali o pianilineari.

Page 90: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Dylog: implementazione (cont.)

• Dettagli ulteriori presso la ALICE Home Page, http://www.di.unito.it/˜alice/

Page 91: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Dylog: estensioni

• Gli agenti Dylog sono stati estesi per rappresentare correttamente cre-denze di altri agenti. Lo scopo era quello di ragionare sulle conver-sazioni.

• Gli agenti sono anche stati arricchiti con un “communication kit” cheinclude un insieme di speech acts, azioni per la gestione di messaggie protocolli di comunicazione.

Page 92: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Concurrent METATEM

M. Fisher and H. Barringer, Concurrent METATEM Processes – A Lan-guage for Distributed AI in Proc. of the European Simulation Multiconfer-ence, Copenhagen, Denmark, 1991

Coincide con il linguaggio logico temporale FML: ha la stessa sintassi esemantica.

Page 93: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Concurrent METATEM: come definire un agente

• Definire l’interfaccia dell’agente (che messaggi esporta ed importa).

• Definire i predicati dell’agente (indipendenti dal tempo – rigid– e fluenti– flexible).

• Definire le regole del programma.

Page 94: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Concurrent METATEM: esempio – l’agente seller

Interfaccia dell’agente seller:

seller(contractProposal)[accept, refuse, contractProposal, ship]

Rigid predicates:

min-price(orange, 1).

max-price(orange, 2).

Flexible predicates:

storing(orange, 1000).

Page 95: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Concurrent METATEM: esempio – l’agente seller (cont.)

Regole del programma:

∀ Buyer. ∀ Stuff. ∀ Req Amnt. ∀ Price.[contractProposal(Buyer, seller, Stuff,Req Amnt, Price) ∧storing(Stuff, Old Amount) ∧Old Amount >= Req Amnt ∧max-price(Stuff, Max) ∧ Price >= Max] =⇒

[ship(Buyer, Stuff, Req Amnt, Price) ∧accept(seller, Buyer, Stuff, Req Amnt, Price)]

∀ Buyer. ∀ Stuff. ∀ Req Amnt. ∀ Price.[contractProposal(Buyer, seller,Stuff, Req Amnt, Price) ∧storing(Stuff, Old Amount) ∧min-price(Stuff, Min) ∧Old Amount < Req Amnt ∨ Price <= Min] =⇒

[refuse(seller, Buyer, Stuff, Req Amnt, Price)]

Page 96: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Concurrent METATEM: esempio – l’agente seller (cont.)

∀ Buyer. ∀ Stuff. ∀ Req Amnt. ∀ Price.[contractProposal(Buyer, seller,Stuff, Req Amnt, Price) ∧storing(Stuff, Old Amount) ∧min-price(Stuff, Min) ∧max-price(Stuff, Max) ∧Old Amount >= Req Amnt ∧Price > Min ∧ Price < Max ∧New Price = (Max + Price) / 2] =⇒

[contractProposal(seller, Buyer,Stuff, Req Amnt, New Price)]

Page 97: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Concurrent METATEM: sematica

La semantica di FML e data tramite una relazione |= cha stabilisce il valoredi verita di una formula in un modelloM in un particolare istante di tempoi e rispetto ad una assegnazione di valori alle variabili.

〈M, i, hv〉 |= true〈M, i, hv〉 6|= false〈M, i, hv〉 |= p(x1, ..., xn) iff hp(i, p)(τvh(x1), ..., τvh(xn)) = true〈M, i, hv〉 |= ¬ϕ iff 〈M, i, hv〉 6|= ϕ〈M, i, hv〉 |= ϕ ∨ ψ iff 〈M, i, hv〉 |= ϕ oppure 〈M, i, hv〉 |= ψ〈M, i, hv〉 |= ϕ Uψ iff per qualche k tale che i < k, 〈M, k, hv〉 |= ψ

e per ogni j, se i < j < k allora 〈M, j, hv〉 |= ϕ〈M, i, hv〉 |= ϕ Sψ iff per qualche k tale che 0 ≤ k < i, 〈M, k, hv〉 |= ψ

e per tutti i j, se k < j < i allora 〈M, j, hv〉 |= ϕ〈M, i, hv〉 |= ∀x.ϕ iff per ogni d ∈ D, 〈M, i, hv[d/x]〉 |= ϕ〈M, i, hv〉 |= ∃x.ϕ iff esiste d ∈ D tale che 〈M, i, hv[d/x]〉 |= ϕ

Page 98: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Concurrent METATEM: implementazione

• Sono state prodotto due implementazioni del paradigma descritto inquesta sezione.

• La prima e un interprete prototipale per METATEM implementato inScheme.

• Un secondo interprete per una versione ristretta di METATEM (casoFOL) e stato implementato in Prolog ed e stato usato come un lin-guaggio per programmare transazioni in basi di dati temporali.

Page 99: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Concurrent METATEM: estensioni

• Gli agenti Concurrent METATEM sono stati estesi con capacita delib-erative e credenze e con ragionamento in presenza di risorse limitate.

• Sono state proposte estensioni nella direzione “multi-agente”: Concur-rent METATEM e stato proposto come un linguaggio di coordinazione.Sono stati proposti meccanismi per definire gruppi di agenti.

• La nozione di “confidenza” e stata aggiunta sia a singoli agenti Con-current METATEM sia a MAS. Lo sviluppo di teams di agenti e statorecentemente affrontato.

Page 100: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Ehhf

G. Delzanno and M. Martelli, Proofs as Computations in Linear Logic, The-oretical Computer Science, 258(1–2), pp 269–297, 2001

L’approccio formale su cui si basa e quello della logica lineare.

Page 101: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Ehhf : sintassi

Un programma Ehhf e una collezione di clausole multi-conclusione dellaforma

A1............................................................................................... . . . ............................................................................................... An −Goal,

dove Ai sono formule atomiche e la disgiunzione lineare A1............................................................................................... . . . ............................................................................................... An

corrisponde alla testa della clausola, mentre Goal e il body.

A − B e una implicazione lineare. Clausole di questo tipo consumano lerisorse (formule) di cui hanno bisogno per essere applicate in un passo dirisoluzione.

Page 102: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Ehhf : sintassi (cont.)

Ehhf fornisce gli strumenti per limitare la applicazione di una clausola data.Le clausole di tipo esteso hanno la forma

G1 & . . .& Gm ⇒ (A1............................................................................................... . . . ............................................................................................... An −Goal),

dove le formule Gi sono condizioni che devono essere verificate per poterutilizzare la clausola.

Page 103: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Ehhf : come definire un agente

In maniera analoga al Prolog, e necessario definire i fatti e le regole (ovvi-amente utilizzando la sintassi Ehhf ).

Page 104: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Ehhf : esempio – l’agente sellerFatti iniziali:

min-price(orange, 1).max-price(orange, 2).storing(orange, 1000).seller-mail-box([]).

Regola che governa il ciclo di vita dell’agente:

∀ Message. ∀ OtherMessages.seller-mail-box([Message|OtherMessages]) ...............................................................................................

seller-cycle −manage(Message) ...............................................................................................

seller-mail-box(OtherMessages) ...............................................................................................

seller-cycle.

Page 105: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Ehhf : esempio – l’agente seller (cont.)

Regole per gestire i messaggi:

∀ Buyer. ∀ Stuff. ∀ Req Amnt. ∀ Price.Old Amount >= Req Amnt &difference(Old Amount, Req Amnt,Remaining Amnt) &max-price(Stuff, Max) & Price >= Max =⇒

manage(contractProposal(Buyer, Stuff,Req Amnt, Price)) ...............................................................................................

storing(Stuff, Old Amount) −storing(Stuff, Remaining Amount) ...............................................................................................

ship(Buyer, Stuff, Req Amnt, Price) ...............................................................................................

send(Buyer, accept(seller, Stuff,Req Amnt, Price).

Page 106: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Ehhf : esempio – l’agente seller (cont.)

∀ Buyer. ∀ Stuff. ∀ Req Amnt. ∀ Price.min-price(Stuff, Min) & Price <= Min =⇒

manage(contractProposal(Buyer, Stuff,Req Amnt, Price)) −

send(Buyer, refuse(seller, Stuff,Req Amnt, Price).

∀ Buyer. ∀ Stuff. ∀ Req Amnt. ∀ Price.storing(Stuff, Old Amount) &Old Amount < Req Amnt =⇒

manage(contractProposal(Buyer, Stuff,Req Amnt, Price)) −

send(Buyer, refuse(seller, Stuff,Req Amnt, Price).

Page 107: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Ehhf : esempio – l’agente seller (cont.)

∀ Buyer. ∀ Stuff. ∀ Req Amnt. ∀ Price.Old Amount >= Req Amnt &min-price(Stuff, Min) & Price > Min &max-price(Stuff, Max) & Price < Max &eval-means(Max, Price, Means) =⇒

manage(contractProposal(Buyer, Stuff,Req Amnt, Price)) −

send(Buyer, contractProposal(seller, Stuff,Req Amnt, Means).

Page 108: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Ehhf : sematica

Si puo fornire una semantica operazionale che determina come riscriverele formule presenti nello stato dell’agente

• Dato un multinsieme di formule atomiche Ω0, che rappresentano lostato della computazione, si puo effettuare un passo di risoluzioneΩ0 → Ω1 applicando un’istanza A1

............................................................................................... . . . ............................................................................................... An − G di una clausolanel programma P , se il multinsieme Θ composto da A1, . . . , An econtenuto in Ω0.

• Ω1 si ottiene rimuovendo Θ da Ω0 ed aggiungendo G al multinsiemerisultante.

Page 109: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Ehhf : sematica (cont.)

• Nel caso un cui le clausole abbiano una “guardia”, bisogna verificareche la guardia sia soddisfatta nello stato corrente prima di poter appli-care un passo di risoluzione. La verifica della guardia non consumane aggiunge risorse allo stato dell’agente.

Page 110: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Ehhf : implementazione

• Esiste un interprete sviluppato da M. Bozzano in Lambda Prolog, unlinguaggio che supporta sintassi astratta higher-order.

• Il codice puo essere scaricato dalla Ehhf FTP Area, ftp://ftp.disi.unige.it/person/BozzanoM/Terzo/

Page 111: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Ehhf : estensioni

• Nel contesto dei MAS, Ehhf e stato usato per specificare una architet-tura basata sulla BDI e per verificare la correttezza di un MAS dove gliagenti sono specificati tramite regole event–condition–action.

• Ehhf e anche stato usato per modellare basi di dati orientate aglioggetti e deduttive.

Page 112: Linguaggi logici per modellare ed implementare agenti ... · S. Kripke. Semantical analysis of modal logic I. Normal propositional cal-culi. Zeitschrift fur math. Logik und Grundlagen

Confronto finale

T Sns Cm Cc N M SmConGolog × AGENT-0 IMPACT × Dylog × Conc. METATEM Ehhf

T: Tempo.Sns: Sensing (percezione).Cm: Comunicazione.Cc: Concorrenza.

N: Nondeterminismo.M: Modularita‘.

Sm: Semantica formale.: Supportato appieno.×: Parzialmente supportato.: Non supportato.


Recommended