1. Instructions

  • Groups of maximum 2 students

  • Deliverables

    • Source code on EMSE GitLab repository

    • Project report (Submission via eCampus)

  • Each group will be assigned an EMSE GitLab repository. The use of the repository is mandatory with regular commits. It should be clear in the commits the contribution to the project implementation of each participant.

  • No commits to the repository is allowed after the Submission deadline.

  • 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).

Table 1. Important Dates

Project Release

07/11/2025

Practical Sessions

14/11/2025, 21/11/2025, 28/11/2025, 09/12/2025

Submission deadline

07/01/2026

2. Project Description

2.1. Overview

The project domain concerns a multi-agent based support system for a lean automated skateboard assembly plant. Customers order custom skateboards to the assembly plant. The assembly plant purchase the parts from suppliers to assemble the skateboard. The plant is composed of different workstations to assemble the parts into a skateboard and a final workstation responsible for checking the quality of the product.

A skateboard have 1 board, 2 trunks, and 4 wheels. Optionally, customers can also order to include 2 rails for protecting the board and/or 1 connectivity box to collect information about the skateboard usage and transmits this data to another device.

skateboard
Figure 1. Assembled Skateboard

The assembly plant has X different types of workstations. Trunk workstation where the trunks are fixed, the Wheels workstation where the wheels are placed and fixed on the trunks, the Rails workstation where the rails are fixed on the board, the Connectivity Box workstation where the connectivity box is installed, and finally a Quality control workstation where the specification and the quality of the product are assessed.

Four types of agents are considered:

  • Customer agent (ca) acts on behalf of a custumer by ordering skateboards to the skateboard assembly plant according to the customer’s product specification and preferences.

  • Assembly agent (aa) acts on behalf of the skateboard assembly plant to fulfill cas orders. An aa purchases the parts to assemble the skateboard from part supply companies according to the customers' product specification and preferences.

  • Supply agent (sa) acts on behalf of a part supply company. Each sa supplies one or more skateboard parts.

  • Workstation agent (wa) acts on behalf of a workstation. Each wa is specialized in assembling one part of the skateboard (i.e., trunk, wheels, rail, connectivity box) or performing the quality control. There may be multiple workstations of the same type in the skateboard assembly plant.

A skateboard assembly plan is a plan composed of suppliers that provide the necessary parts to assemble the skateboard (i.e., board, trunk, wheels, rail, connectivity box) and workstations required to assemble the parts together into a skateboard. The suppliers provide the parts in parallel, i.e., no interdependence between suppliers; workstations operate in a specified order to assemble the product, i.e., there is an interdependence between workstations. Once the parts are delivered by the suppliers into the assembly plant, the workstations start executing their operations in the specified order to assemble the skateboard.

sk assembly plant
Figure 2. Skateboard Assembly Plant

2.2. Phases

The skateboard assembly consists of the following phases:

  1. Ordering phase : cas send their skateboard orders composed of the skateboard specification and assembly preferences to aa. The specification is the required parts in the skateboard. The preferences refer to the maximum cost, time of delivery, and energy consumption accepted by the customer.

  2. Contracting phase : The aa contracts the parts needed for assembling the skateboard from the sas. The aa negotiates with the sas that provide the parts that are needed to assemble the skateboard.

    • Since there could be several sas providing the same part, the aa may choose the best supplier according to the cost and time of delivery. Additionally, other criteria can be used, such as, sa's reputation.

    • Since there could be several aas looking for the same part, sas may choose the best option according to their profit.

  3. Allocating phase : The aa allocates the workstations needed for assembling the skateboard. The aa negotiates with was that perform the operations needed to assemble the skateboard.

    • Since there could be several was providing the same operation, the aa may choose the best workstation according to the energy consumption.

  4. Assembling phase : sas deliver the purchased parts and then the was perform the operations to assemble the skateboard.

    • The allocated was are coordinated according to the skateboard assembly plan.

    • The execution of skateboard assembly plan is supervised by the aa and involves the wa (i.e., when operation starts (resp. ends), the ca receives an event or a message).

2.3. Specification

You have to implement the multi-agent based support system solution using JaCaMo platform and according to the following specification:

  • Agent

    • Identify above the different types of agents considering the different representations needed for handling the different tasks.

    • Reasoning on the external description of the other agents (e.g., which parts are supplied).

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

  • Organization

    • The skateboard assembly plan is expressed as an organization that is used to coordinate the contracted sas and was participating in the execution of the assembling phase.

    • There can be several skateboard assembly plan. You can develop a library of organizations representing them.

  • Interaction

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

    • You can use one of the protocols introduced in FIPA. To manage the concurrency of the bidding (one to m participants) it may be easier to use artifacts to implement such protocols.

  • Environment

    • The communication between the cas and the aas can be done through TupleSpace.

    • Each workstation is implemented by an artifact that can be used exclusively by one assembly (exclusive access to the workstation).

    • The workstation artifacts share information about their availability.

    • The workstation artifact has only one action (execute) that is deactivated for the period it takes to assemble the part in the skateboard.

3. Project Report Guidelines

Each group must prepare a short report describing the solution and the implementation of the project.

3.1. Requirements

  • Length: 3 to 10 pages long

  • Page: A4

  • Margins: 2cm (top, bottom, left, right)

  • Line spacing: 1.5

  • Title

    • Font style: Times New Roman

    • Font size: 16pt

  • Body Text

    • Font style: Times New Roman

    • Font size: 11pt

3.2. Suggested Structure

Note
The report MUST NOT include a cover page.
  • Title

  • Authors

  • Abstract: 200 to 300 words summarizing your final project.

  • Overview: Conceptual design including the design choices for developing the project. Provide an overall description of the structure of the multi-agent system and its key components. Explain how the various coordination aspects are addressed (i.e., agent-, environment-, interaction-, organization-centred coordination).

  • Implementation: Describe the implementation of the conceptual model justifying the decisions that lead to the implemented solution. Do not document every line of code, focus on the key implementation choices (e.g., decision mechanisms, interaction protocols, coordination artifacts, organization description).

  • Execution Instruction: Provide the necessary steps to run the project (include any configurations required).

  • Discussion: Discuss the strengths and limitations with possible improvements of the implemented solution. If there are unimplemented features, discuss the problems faced and how you would have implemented.