modelBookBuyerAgent
Extends from BaseClasses.PartialAgent.
Information
Overview
- This model is a an agent that tries to buy a pre-set book from one or more BookSellerAgents.
- It is based on communication via UDP and logic implemented with the help of the StateGraph Modelica library.
- It is used together with at least one BookSellerAgent.
Concept
The BookBuyerAgent calls for proposals from all known BookSellerAgents to buy a book, which is set before simulation. The agent then compares all offers from the seller agent and choses the book with the lowest price. Afterwards the book is bought from the seller agent. 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. The presented agent has the purpose of demonstrating the possibility of agent implementation in Modelica by implementing the behaviour of the BookBuyer agent presented in Caire, 2009, JADE PROGRAMMING FOR BEGINNERS.
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
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Integer | name (from PartialAgent) | Name of the agent (five-digit number, eg. 10001) | |
| Boolean | usePoke (from PartialAgent) | false | Use Modelica internal communication for inbox update |
| Real | sampleRate (from PartialAgent) | 5 | Sample time for inbox update (used if usePoke=false) |
| Real | knownSellers | [30001; 30002; 30003] | List of known BookSellerAgents (their adresses) |
| Real | ISBN | 3551551677.0 | ISBN number of the book that the agent tries to buy |
| Integer | sampleTime | 20 | Period of time between two tries of the agent to buy the book |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Interfaces.BooleanOutput | sendOut (from PartialAgent) | Turns true when the sending unit of the agent is active | |
| Modelica.Blocks.Interfaces.BooleanOutput | bookBought | Indicator that turns true if a book was succesfully bought |
Components
Revisions
- October 2015, by Felix Bünning: Developed and implemented