This model using following papers as references (too old paper has no link, and the very new one not yet open for download)
N. Kiyotaki, R. Wright, "On Money as a Medium of Exchange",The Journal of Political Economy, Vol. 97, No. 4, pp.927-954, 1989
P. Howiit, R. Clower, "The emergence of economic organization", Journal of Economic Behavior & Organization, Vol. 41, pp. 55–84, 2000.
R. M. Starr, "The Existence and uniqueness of money in general equilibrium natural monopoly in the most liquid asset", 2004
L.Tesfatsion, "Agent-based computational economics: a constructive approach to economic theory", 2006
Herbert Newhouse, "The Emergence of Commodity Money as a Medium of Exchange", 2007
Ross M. Starr, "Commodity Money Equilibrium in a Convex Trading Post Economy with Transaction Costs", 2007
Ross M. Starr, "Mengerian saleableness and commodity money in a Walrasian trading post example", Economics Letters 100, pp. 35–38, 2008
X. Hu, Y-J. Whang, Q-X. Zhang, "Convergence to monetary equilibrium: computational simulation of a trading post economy with transaction costs", 2010
I'll introduce a 3-level hierarchy ACE system model to bring out the topics - Money, Price, and Market, then we'll see if this simplified model can be put to use and apply its principles in a more complex world like DF. (real world as well). The 3-level are : transactor->firm->market. It will be a system with many transactors, limited firms, and single market. It has many transaction cycles. Each cycle the transactor bartering its commodity via specialized trading firm. Over time transactors and firms will adapt new behaviors. Hence it will evolve, and our work will be to observe if there is anything interesting emerges. Each level will be defined as follows :
1.
Transactor level :
- Each transactor produce certain commodity, and consume another kind of commodity. Such as a transactor R produce commodity A and consume commodity B can be represented as R[A->B]. The more commodity B the transactor R has, the "happier" it will be (utility function is linear with a top limit). And the amount of commodity A it produces is also fixed with a limit in each cycle as well. R will always trades out the commodity it produce to the limit in order to gain maximum return, if trading is possible. We will discuss this more in market level.
2.
Firm level :
- A trading post or a shop. Every shop exchange only one commodity A for one another commodity B. As a pair of exchange, transactors can exchange A for B, or B for A. Notice that this is a barter exchange, so the ratio between transaction quantity can be A:B when exchange A->B, or B:A when exchange B->A. And most often that the inverse of B/A doesn't equal to A/B. If this concept is hard to grasp, then you can think of B as money. So A->B is like selling product A (for money), and B->A is like buying product A (with money). Hence you will expect a shop needs to make a profit, thus making buying price cheaper than selling price. Also from here, you can understand that the price is merely a concept of exchanging ratio determined by shop managers. This shop S will be represented as S{A<->B}.
- A firm is not opening without a cost. And transaction always has costs, whether in the form of risks or lost during transportation, and also commodities have depreciation (food gone bad, tools worn out or broken). And different commodities have different costs. Hence the amount of cost(lost) of a certain commodity during trading is depended on the commodity itself by its property, such as a function of the cost of commodity A is f(A). For example, gold is compact, easy to carry with less volumes than others, and also it's rarely depreciated, so the cost(lost) of gold during trading is small. But things like food are heavy, hard to transport, and will be depreciated quickly, hence their costs are large. Or something like furniture although is heavy, hard to move, but little depreciation, and the over all cost will be between as average.
3.
Market level :
- When many shops opening or becoming bankrupt due to lack of profit, we should observe the changes and phenomenas emerge/evolve from this level. There are regulations about how often new shops appears, and how many shops can exist. Also the transactors and firms will each find their shopping stores and customers in the market, but the amount of information is limited. Each transactor can know a finite amount of shops and only buying or selling its commodity to specific store all at once a time. And although a shop can have many customers, it does not actively advertising or search new customers, but as a passive role waiting to be found and chosen by customers.
- When a customer finds a new shop, it will first check if the shop sells or buys the commodity it produces or consumes. If it has, than it will than check if the type of commodities the shop exchanged is suitable. If the shop's transaction commodities exactly matches the customer's need and sell, this will be a direct trade(bartering). Otherwise, if the shop only satisfied the need or the sell, than the customer will search again for another shop, and check if it matches the missing half. And this time when the customer finds the complete need/sell pair shops, it will then check if a common intermediate commodity existed. Such as a customer R[A->B] and there are shops S1{A<->C} and S2{C<->B}. In this situation the customer will trade indirectly, and the commodity C will function as media of exchange. (Like a commodity money with its property)
Until now its only the first transaction cycle and the system is static, and we want it to be adapted. So here we borrow some basic concepts from General Equilibrium Theory, that each transactor/customer will want to
maximize its consumption (transactor goal), and each firm/shop will want to
maximize its profit (firm goal). And we want to observe if an
economic equilibrium (in price and its structure) will emerge from this simulation (market goal). And the adapted rules for transactors and firms are :
*
Transactor rule :
- Each cycle the customer will search a limited amount of randomly selected shops. And check if there is any direct or indirect trade opportunity. If there is, then the customer checks to see if the new shop(s) provide better deal than the old one. If there is a better deal, the transactor does NOT always choose the new one (or best one), but adopted it with a certain probability, hence the adoption rate is more gradual and imperfect. There are several possible actions a transactor can take, or very complex ones. But for the transactor goal of maximizing the consumption level this simple rule will do (over time).
*
Firm rule :
- Each cycle there will be certain small amount of entrepreneurs emerge. And at the beginning, if a entrepreneur tries to open a shop, it will move its place from a transactor into a firm. Hence a transactor R[A->B] will open a firm S{A<->B}. And it will has at least 1 customer as itself. Then it needs to decide the initial exchange ratios of both transaction A->B as $(A/B) and B->A as $(B/A), and the way of choosing initial value will be based on its expected transaction volumes of commodity A and B as eQA and eQB. By using these and the cost function to calculate the expected lost of f(A) and f(B), we can now decided the initial ratios :
$(A/B) = (eQA - f(A)) / eQB
$(B/A) = (eQB - f(B)) / eQA
- During the transaction cycle with the business open, a shop will start to receive customers using the price it offers, and it's unlikely the exact transaction quantity of commodity A as aQA will meet the expected one as eQA. But as a firm goal is to maximized profit, it need to calculate them using :
profitA = aQA - $(A/B) * aQB - f(A)
profitB = aQB - $(B/A) * aQA - f(B)
- From the above profit calculations, it's easy to see that the profit will be 0 if the actual quantity of transaction equal to expected quantity (aQA = eQA), so we need to define an expected profit margin as ePA. Thus we need to redefined the exchange ratios (pricing equations) into :
$(A/B) = (eQA - f(A) - ePA) / eQB
$(B/A) = (eQB - f(B) - ePB) / eQA
- And the final rule is for the shop to adapt and changing price when it's in negative profit, and maintain profit when its positive. So the shop will change its expectation using the actual exchange quantity of the commodity, but its the same as transactor adaption that the shop will not jump from eQA directly to aQA, using an adaption speed of aDS with the equation
New_eQX = eQX + aDS * (aQX - eQX)
Where X commodity has eQX = expected trading quantity, and aQX = actual, 0 < aDS < 1.
- An additional rule is about when there are new businesses open, there are also old shops perish. A way to kick out old shops is using the survival of the fittest. Any shop that has negative profit will have a chance to go out of business. For simplicity, we can choose a fixed drop out rate with small enough value, so it won't happen to often and too soon. However it can be modified later with a more complicated model.
Here is a list of other variables used in this ACE model :
n : number of transaters
m : kinds of commodities
k : number of shops
kMAX : maximum shop locations
eQMAX : maximum expected trading quantity
sRate : customers search percetage rate
cycleMAX : maximum amount of cycles
As descibed in previous post, that there will be a total of m(m-1)/2 kinds of combinations bartering shops possible, and m(m-1) exchanging ratios. (each pair with different selling and buying "price"). We can try to simulate this model and changing these variables and functions to see what will affect the outcomes. Also we can observe if there will be a single or multiple commodity money emerge, and if there is/are money emerged then what's the avarage (sell/buy) price during and at the end of the simultion. Or we can observe if bartering can presist the emerge of monetary structure.
The system follow of this model will look like this :
Step 0: Initial variables, functions and name space
Step 1: While not reach cycleMAX, and not find a monetary structure go to step 2, else go to step 7
Step 2: Open new shops using eQX, eQY to setup $(X/Y), $(Y/X) if not reach kMAX shops
Step 3: Customers searching new shops, and update its trading plan
Step 4: Shopping and exchange commodity, calculating aQX, aQY
Step 5: Calculate shop profits, and close down obsolete shops
Step 6: Shops adapting using aDS, tuning ePX, ePY, and update price, go back to Step 1
Step 7: Calculate statistical data about commodities price and market structure
Next time, we will try to expend this model, and see if it's possible to combine this into DF trading/market/caravan system. Maybe in a way of adding the 4th level of long range global exchange. And we will see if I can convert the touch reading into the next stage of the unfinished story in Dwarconomy : "Goddess, drunk, kids, and old fisherman", and "The Island - Beach and Forest, Beauty and the Beast".