Skip to content

Multi-agent English auction system built with JADE. Simulates autonomous seller and buyer agents negotiating and bidding for products in a distributed environment.

Notifications You must be signed in to change notification settings

b-fatma/multi-agent-auction-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multi-Agent Negotiation (1 seller - several buyers)

This project implements a multi-agent system (MAS) in JADE to simulate an English auction scenario involving a single seller and multiple buyers. The aim is to model autonomous agents that negotiate through message exchange and dynamic decision-making to bid for a product.

1.1 Introduction

The English auction, also known as an open ascending-price auction, is a widely used mechanism where the price increases progressively as buyers submit higher bids. Our implementation captures the essential dynamics of this process, including:

  • Seller initialization of the auction by announcing an item for sale with a starting price.
  • Buyers evaluate whether they are willing to bid higher based on their private valuations (maximum price thresholds).
  • The auction progresses in iterative rounds where the seller shares the current best offer, and buyers respond accordingly.
  • The process continues until no better offer is received within a fixed number of idle rounds or the auction duration elapses.
  • Finally, the product is sold if the best offer meets or exceeds the seller’s hidden reserve price.

1.2 System Architecture

The system consists of two primary agent types: Seller and Buyer agents. Each agent performs specific behaviors and communicates using ACL (Agent Communication Language) messages.

Multi-Agent System Architecture

Figure 1.1: Multi-Agent System Architecture

1.2.1 Auction Lifecycle

The auction process follows a structured lifecycle managed by the Seller Agent:

  1. Initiation: The Seller Agent starts the auction by broadcasting a Call for Proposal (CFP) to all registered Buyer Agents, including item description and starting price.
  2. Bidding Rounds: The auction proceeds in discrete rounds. Buyers evaluate the CFP and respond with Propose messages containing bid offers. This ensures structured competition.
  3. Termination: The auction ends if:
    • A predefined number of consecutive idle rounds occur (no new proposals).
    • The total auction time exceeds a specified limit.
    • All agents are notified of the outcome. If the best offer meets the reserve price, the item is sold; otherwise, the auction fails.

1.2.2 Seller Agent Responsibilities

The Seller Agent orchestrates the auction through coordinated behaviors:

General outline of the Seller Agent’s behaviours

Figure 1.2: General outline of the Seller Agent’s behaviours
  • ManageSubscriptions: A CyclicBehaviour executed before the auction begins. Registers Buyer Agents that subscribe to the auction. If at least two buyers register, the auction is initiated.
  • ManageAuction: A ParallelBehaviour composed of four sub-behaviours:
    • InitiateAuction: Launches the auction and broadcasts the initial CFP.
    • ReceiveOffers: Collects replies to the CFP during the current round, stores valid offers, and discards stale offers.
    • ProcessOffers: Periodically evaluates received offers, updates the highest bid, issues new CFPs, and monitors idle rounds.
    • CloseAuction: Terminates the auction after the duration is exceeded.

1.2.3 Buyer Agent Responsibilities

Buyer Agents evaluate auction proposals and place bids according to their strategy:

  • Upon initialization, each Buyer Agent registers for the auction by sending a SUBSCRIBE message to the Seller Agent.
  • NegotiationBehaviour: Handles all auction-related messages. When a CFP is received, the buyer evaluates the price against its maximum. If acceptable, it replies with a PROPOSE message; otherwise, it refuses to bid. It also handles outcomes such as ACCEPT PROPOSAL, REJECT PROPOSAL, and FAILURE, terminating when appropriate.

Project Structure

src/
  part1/
    Main.java
    agents/
      BuyerAgent.java
      SellerAgent.java
    behaviours/
      buyer/
      seller/
        ManageAuction.java
        ManageSubscriptions.java
    utils/
      Auction.java
  • Main.java: Entry point for launching the agents and initializing the JADE platform.
  • agents/: Contains agent implementations for buyers and the seller.
  • behaviours/: Defines agent behaviours for managing auctions and subscriptions.
  • utils/Auction.java: Utility class for auction logic and data.

Requirements

  • Java 8+
  • JADE agent framework

How to Run

  1. Clone the repository.
  2. Make sure JADE libraries are included in your classpath.
  3. Compile the project:
    javac -cp "path/to/jade.jar" src/part1/**/*.java
  4. Run the main class:
    java -cp "path/to/jade.jar:src" part1.Main

About

Multi-agent English auction system built with JADE. Simulates autonomous seller and buyer agents negotiating and bidding for products in a distributed environment.

Topics

Resources

Stars

Watchers

Forks

Languages