Programming Multi-Agent Systems in AgentSpeak using Jason (Hardcover)

Rafael H. Bordini, Jomi Fred Hübner, Michael Wooldridge

  • 出版商: Wiley
  • 出版日期: 2007-11-01
  • 售價: $3,350
  • 貴賓價: 9.5$3,183
  • 語言: 英文
  • 頁數: 292
  • 裝訂: Hardcover
  • ISBN: 0470029005
  • ISBN-13: 9780470029008
  • 下單後立即進貨 (約1~3週)





Jason is an Open Source interpreter for an extended version of AgentSpeak – a logic-based agent-oriented programming language – written in Java™. It enables users to build complex multi-agent systems that are capable of operating in environments previously considered too unpredictable for computers to handle. Jason is easily customisable and is suitable for the implementation of reactive planning systems according to the Belief-Desire-Intention (BDI) architecture.

Programming Multi-Agent Systems in AgentSpeak using Jason provides a brief introduction to multi-agent systems and the BDI agent architecture on which AgentSpeak is based. The authors explain Jason’s AgentSpeak variant and provide a comprehensive, practical guide to using Jason to program multi-agent systems. Some of the examples include diagrams generated using an agent-oriented software engineering methodology particularly suited for implementation using BDI-based programming languages. The authors also give guidance on good programming style with AgentSpeak.

Programming Multi-Agent Systems in AgentSpeak using Jason

  • Describes and explains in detail the AgentSpeak extension interpreted by Jason and shows how to create multi-agent systems using the Jason platform.
  • Reinforces learning with examples, problems, and illustrations.
  • Includes two case studies which demonstrate the use of Jason in practice.
  • Features an accompanying website that provides further learning resources including sample code, exercises, and slides

This essential guide to AgentSpeak and Jason will be invaluable to senior undergraduate and postgraduate students studying multi-agent systems. The book will also be of interest to software engineers, designers, developers, and programmers interested in multi-agent systems.

Table of Contents


1 Introduction

1.1 Autonomous Agents

1.2 Characteristics of Agents

1.3 Multi-Agent Systems

1.4 Hello World!

2 The BDI Agent Model

2.1 Agent-Oriented Programming

2.2 Practical Reasoning

2.3 A Computational Model of BDI Practical Reasoning

2.4 The Procedural Reasoning System

2.5 Agent Communication

3 The Jason Agent Programming Language

3.1 Beliefs

3.2 Goals

3.3 Plans

3.4 Example: A Complete Agent Program

3.5 Exercises

4 Jason Interpreter

4.1 The Reasoning Cycle

4.2 Plan Failure

4.3 Interpreter Configuration and Execution Modes

4.4 Pre-Defined Plan Annotations

4.5 Exercises

5 Environments

5.1 Support for Defining Simulated Environments

5.2 Example: Running a System of Multiple Situated Agents

5.3 Exercises

6 Communication and Interaction

6.1 Available Performatives

6.2 Informal Semantics of Receiving Messages

6.3 Example: Contract Net Protocol

6.4 Exercises

7 User-Defined Components

7.1 Defining New Internal Actions

7.2 Customising the Agent Class

7.3 Customising the Overall Architecture

7.4 Customising the Belief Base

7.5 Pre-Processing Directives

7.6 Exercises

8 Advanced Goal-Based Programming

8.1 BDI Programming

8.2 Declarative (Achievement) Goal Patterns

8.3 Commitment Strategy Patterns

8.4 Other Useful Patterns

8.5 Pre-Processing Directives for Plan Patterns

9 Case Studies

9.1 Case Study I: Gold Miners

9.2 Case Study II: Electronic Bookstore

10 Formal Semantics

10.1 Semantic Rules

10.2 Semantics of Message Exchange in a Multi-Agent System 

10.3 Semantic Rules for Receiving Messages

10.4 Semantics of the BDI Modalities for AgentSpeak

11 Conclusions

11.1 Jason and Agent-Oriented Programming

11.2 Ongoing Work and Related Research

11.3 General Advice on Programming Style and Practice

A Reference Guide

A.1 EBNF for the Agent Language

A.2 EBNF for the Multi-Agent Systems Language

A.3 Standard Internal Actions

A.4 Pre-Defined Annotations

A.5 Pre-Processing Directives

A.6 Interpreter Configuration