1. Organization

Important Dates
  • Project Release : 10/11/2023

  • Practical Sessions : 23/11/2023, 07/12/2023, 19/12/2023, 19/01/2024

  • Submission deadline : 25/01/2024

Deliverables
  • Source code

  • Report describing the proposal and implementation

Groups of 3 students maximum.

The use of EMSE GitLab is mandatory with regular commits. It should be clear in the commits the contribution of each participant to the project implementation.

Reusing some code of the Building House example is permitted as long as you make it clear in the code (e.g., comment informing which parts come from the Building House example).

2. Overview

The project domain concerns a multi-agent based support system for organizing holidays for different tour operators, services companies and consumers.

Three types of agents are considered:

  • Tour Operator agent (toa) acts on behalf of a tour operator agency. toa has a portfolio of several predefined holiday packages (itinerary and content) that it sells to consumers. A toa contracts with services companies to deliver the services offered in the holiday packages.

  • Consumer agent (ca) acts on behalf of a consumer according to the consumers' preferences for booking a holiday package with a tour operator.

  • Services company agent (sca) acts on behalf of a services company. Each company is specialized in offering different services for holidays (e.g., accommodation, transport, guides, tours, etc.) in different places (e.g., Istanbul, Athens, Rome, Paris, London, Malta, Buenos Aires, Rio de Janeiro, Maldives, etc.).

A holiday package (hp) consists of a plan of services that provides an activity (accommodation, transport, guide, tour, etc.) in a given place. A service is operated by a services company. Holiday packages are described so that consumers may select the tour operator from whom to buy the holiday package. Once bought by a consumer from a tour operator, a holiday package is executed by the contracted services companies in the order defined in the holiday package.

3. Holiday Season Preparation

To prepare for the holiday season, three phases are executed:

  1. Contracting phase : toas contract services needed for their holiday packages (to simplify we can consider one holiday package per toa, but in principle a toa could handle several holiday packages). For that purpose toas negotiate with scas that offer the services at places that are part of their offered holiday packages.

    • Since there could be several scas offering the same service for the same place, a toa may choose the best offer according to its budget, preferences or any other criteria (e.g., sca's reputation).

    • Since there could be several toas looking for the same service, scas may choose the best offer according to their profit.

    • To reduce the number of exchanged messages, a toa only negotiates with the scas that offer the right service at the right place.

  2. Purchasing phase : Each ca buys one holiday package offered by the toas.

    • Since there could be several toas selling the same holiday package, the ca chooses the best offer according to its budget, preferences or any other criteria (e.g., toa's reputation).

  3. Delivering phase : scas deliver the contracted services.

    • The contracted scas are coordinated according to the contracted services and places as they appear in the holiday package.

    • The execution of a holiday package is supervised by the toa and involves the ca (i.e., when service starts (resp. ends) at a place, the ca receives an event or a message).

4. Design specifications

To implement this project, you will have to implement the MAS solution according to the following design specification:

  • Agent

    • See above the different types of agents to consider with the different representations they will need for handling the different tasks.

    • Reasoning on the external description of the other agents (e.g., which services are offered, which holiday packages are offered).

    • Reasoning on the reputation of the other agents. Agent reputation can be predefined and there is no need to compute it.

  • Organization

    • The holiday package is expressed as an organization that is used to coordinate the contracted scas in the delivering phase execution of services participating to the holiday package.

    • Since there could be several holiday packages, you will develop a library of organizations. You will define some abstract description of each holiday package so that the ca may select the suited toa.

  • Interaction

    • The contracting phase and purchasing phase may be realized using auction artifacts that implement auction protocols in artifacts.

    • You can use one of the protocols introduced in FIPA (http://www.fipa.org/repository/ips.php3). To manage the concurrency of the bidding (one to m participants) it may be easier to use artifacts to implement such protocols.

    • Negotiation protocols may be used to manage the interaction between a ca and a toa about the cost for booking a holiday package.

  • Environment

    • Each pair (service, place) - accommodation, transport, guide, tours, etc. at one place - is implemented by an artifact that can be used exclusively by one consumer (exclusive access to the service, place).

    • The (service, place) artifacts share information about their availability. A ca may access to a service only if it is known as accessible.

    • For that purpose, the (service, place) artifact has only one action (execute) that is deactivated for a period (to be fixed).