public:i-700-abms-07-1:economics_mini-project
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
public:i-700-abms-07-1:economics_mini-project [2007/01/23 16:18] – thorisson | public:i-700-abms-07-1:economics_mini-project [2024/04/29 13:33] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 10: | Line 10: | ||
===== Description ===== | ===== Description ===== | ||
+ | In this project you **must**: | ||
+ | * Use the Constructionist Design Methodology to achieve a good system architecture design | ||
+ | * Run the system on Gola and be ready to demonstrate it on Gola in class | ||
+ | * Use whiteboards and message types sensibly to achieve an efficient yet flexible architecture | ||
+ | * Use Psyclone 1.1 (not 1.0.6) | ||
+ | |||
Consider the trading of a single commodity through a double auction market process. A double auction is a process in which buyers and sellers can freely enter limit orders (bids or asks) and accept bids or asks entered by others. It is the organization used in major exchange markets around the world trading stocks, commodities or currencies. | Consider the trading of a single commodity through a double auction market process. A double auction is a process in which buyers and sellers can freely enter limit orders (bids or asks) and accept bids or asks entered by others. It is the organization used in major exchange markets around the world trading stocks, commodities or currencies. | ||
Create an agent-based model of a double auction market for a single commodity in Psyclone. Use the following basic specification, | Create an agent-based model of a double auction market for a single commodity in Psyclone. Use the following basic specification, | ||
* There are **N** buyers and **M** sellers in the market. Each seller supplies one unit of the commodity and each buyer demands one unit of the commodity during each run. | * There are **N** buyers and **M** sellers in the market. Each seller supplies one unit of the commodity and each buyer demands one unit of the commodity during each run. | ||
- | * For each run each buyer **(i)** is assigned a random value, 0 ≤ **vi** ≤ maxBuyerValue, | + | * For each run each buyer **(i)** is assigned a random value, 0 ≤ **vi** ≤ **maxBuyerValue**, which represents how the buyer values the commodity. Similarly, each seller **(j)** is assigned a random value, 0 ≤ **cj** ≤ **maxSellerCost** which represents the cost incurred by the seller for providing the commodity. |
- | * During the run let each buyer **(i)** regularly place a random bid 0 ≤ bi ≤ vi until a trade is made. New bid will cancel older bid. Similarly, let each seller **(j)** regularly place a random ask **cj** ≤ **aj** ≤ **maxBuyerValue** until a trade is made. New ask will cancel older asks. | + | * During the run let each buyer **(i)** regularly place a random bid 0 ≤ **bi** ≤ **vi** until a trade is made. New bid will cancel older bid. Similarly, let each seller **(j)** regularly place a random ask **cj** ≤ **aj** ≤ **maxBuyerValue** until a trade is made. New ask will cancel older asks. |
* A trade will be made when a seller asks for a price which is equal to or lower than the price bid by the buyer. When the ask price is lower than the bid the transaction price is set equal to the earlier of the two. | * A trade will be made when a seller asks for a price which is equal to or lower than the price bid by the buyer. When the ask price is lower than the bid the transaction price is set equal to the earlier of the two. | ||
* The auctioneer will seek to maximize the number of trades for the bids and asks available at any time. | * The auctioneer will seek to maximize the number of trades for the bids and asks available at any time. | ||
- | * Each run is terminated when all units have been traded, specific amount of time has elapsed since the last trade (MaxTimeSinceLastTrade), | + | * Each run is terminated when all units have been traded, specific amount of time has elapsed since the last trade (**MaxTimeSinceLastTrade**), or the maximum run time has elapsed (**MaxRunTime**). |
Use the following information to monitor the results of each run: | Use the following information to monitor the results of each run: |
/var/www/cadia.ru.is/wiki/data/attic/public/i-700-abms-07-1/economics_mini-project.1169569121.txt.gz · Last modified: 2024/04/29 13:32 (external edit)