modelBookSellerAgent
Extends from BaseClasses.PartialAgent.
Information
Overview
- This model is a an agent that offers and sells books to calling BookBuyerAgents.
- 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 BookSellerAgent responds to calls from a BookBuyerAgent. This can be a call for proposals or a request to buy a book. When a call for proposals comes in, the BookSellerAgent checks whether the required book is in stock or not. If yes, it reponds with the corresponding price, if no, it refuses the call. When a request to buy a book comes in, the agent looks for the book in stock, sells it and afterwards removes it from the stock list. 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 BookSeller 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) |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Interfaces.BooleanOutput | sendOut (from PartialAgent) | Turns true when the sending unit of the agent is active |
Components
Revisions
- October 2015, by Felix Bünning: Developed and implemented