modelBookTrading

Extends from Modelica.Icons.Example (Icon for runnable examples).

Information

Overview

  • This model is a an example to show the function of the BookBuyerAgent and BookSellerAgent in accordance to the BookTrading example provided in Caire, 2009, JADE PROGRAMMING FOR BEGINNERS.
  • It acts as a prove that implementing functioning multi-agent systems on the basis of the Modelica language environment is possible.

Concept

The model consists of three BookBuyerAgents and three BookSeller agents. Two of the agents try to buy the book Harry Potter 1 (ISBN=3551555559) and one tries to buy Lord of the Rings (ISBN=0618640150). Two of the seller agents have Harry Potter in Stock, none has Lord of the Rings in stock. The log (which can be found in the simulation tab of the Dymola message window), shows how the different requests are served (see Example Results). For further details, please refer to the first reference.

The logic is implemented with the help of the StateGraph library. Communication is realized with the help of the DeviceDriver library and follows the language standards for multi-agent-systems set by the FIPA to the highest possible extend for Modelica models.

References

  • Felix Bünning. Development of a Modelica-library for agent-based control of HVAC systems. Bachelor thesis, 2016, RWTH Aachen University, Aachen, Germany.
  • FIPA ACL Message Structure Specification
  • FIPA Communicative Act Library Specification
  • Caire, 2009, JADE PROGRAMMING FOR BEGINNERS

Example Results

  • BookBuyerAgent 10001 calls for proposals for book 6.1864e+008 from BookSellerAgent 30001.
  • BookSellerAgent 30001 has not found the book 6.1864e+008 and refuses the proposal.
  • BookBuyerAgent 10001 calls for proposals for book 6.1864e+008 from BookSellerAgent 30002.
  • BookSellerAgent 30002 has not found the book 6.1864e+008 and refuses the proposal.
  • BookBuyerAgent 10001 calls for proposals for book 6.1864e+008 from BookSellerAgent 30003.
  • BookSellerAgent 30003 has not found the book 6.1864e+008 and refuses the proposal.
  • BookBuyerAgent 10001 was not offered the book 6.1864e+008. It goes back to idle.
  • BookBuyerAgent 10001 calls for proposals for book 6.1864e+008 from BookSellerAgent 30001.
  • BookBuyerAgent 10002 calls for proposals for book 3.55156e+009 from BookSellerAgent 30001.
  • BookSellerAgent 30001 has found the book 3.55156e+009 and offers it for 30 €.
  • BookBuyerAgent 10002 collects proposal for book 3.55156e+009.
  • BookBuyerAgent 10002 calls for proposals for book 3.55156e+009 from BookSellerAgent 30002.
  • BookSellerAgent 30002 has found the book 3.55156e+009 and offers it for 40 €.
  • BookBuyerAgent 10002 collects proposal for book 3.55156e+009.
  • BookBuyerAgent 10002 calls for proposals for book 3.55156e+009 from BookSellerAgent 30003.
  • BookSellerAgent 30003 has not found the book 3.55156e+009 and refuses the proposal.
  • BookBuyerAgent 10002 buys book 3.55156e+009 from BookSellerAgent 30001.
  • BookSellerAgent 30001 has found the book 3.55156e+009 and and sells it for 30 € to 10002.
  • BookBuyerAgent 10002 has succesfully bought the book 3.55156e+009 for 30 €.
  • BookBuyerAgent 10003 calls for proposals for book 3.55156e+009 from BookSellerAgent 30001.
  • BookBuyerAgent 10001 was not served and goes back to idle.
  • BookSellerAgent 30001 has not found the book 3.55156e+009 and refuses the proposal.
  • BookBuyerAgent 10003 calls for proposals for book 3.55156e+009 from BookSellerAgent 30002.
  • BookSellerAgent 30002 has found the book 3.55156e+009 and offers it for 40 €.
  • BookBuyerAgent 10003 collects proposal for book 3.55156e+009.
  • BookBuyerAgent 10003 calls for proposals for book 3.55156e+009 from BookSellerAgent 30003.
  • BookSellerAgent 30003 has not found the book 3.55156e+009 and refuses the proposal.
  • BookBuyerAgent 10003 buys book 3.55156e+009 from BookSellerAgent 30002.
  • BookSellerAgent 30002 has found the book 3.55156e+009 and and sells it for 40 € to 10003.
  • BookBuyerAgent 10003 has succesfully bought the book 3.55156e+009 for 40 €.

Components

TypeNameDefaultDescription
BookBuyerAgentbookBuyerAgent
BookSellerAgentbookSellerAgent
BookSellerAgentbookSellerAgent1
BookSellerAgentbookSellerAgent2
BookBuyerAgentbookBuyerAgent1
BookBuyerAgentbookBuyerAgent2
Agents.MessageNotificationmessageNotification

Revisions

  • October 2015, by Felix Bünning: Developed and implemented