In this section, we describe how the firm agents in our simulation make decisions and interact with the three markets. In contrast to traditional economic modeling where the objective functions are optimized simultaneously, our agents act in sequence. The simulation runs as follows:
One cycle through this loop is referred to as a period.
The quantity exchanged does not always have to be equal to the quantity demanded. It will be the minimum of the two: quantity produced or quantity demanded. If there is excess demand, it is left unsatisfied.
Firms optimize profit by continuously changing price in small increments (1%) in the direction they think will increase profit. They only know the last change they made in price and the last change they observed in profit. If there was an increase in profits they change the price in the same direction; otherwise, they change the price in the opposite direction. This hill-climbing approach to uncovering the optimal price is successful because the firms' objective function has a single maximum.
The quantity demanded from a single firm at a given price is computed such that the exponential average of quantity exchanged stays on the curve. Specifically, the quantity demanded is given by:
where Pm is the price submitted by the current firm, nis the number of firms and:
where q is the last quantity exchanged, m denotes the
mth exchange, and ,
the exponential constant, is 0.1.
The rent at which a firm can purchase capital is computed as follows:
The exact formulation is:
where n is the number of firms and :
where k is the last capital exchange, m is the mth
exchange, and ,
the exponential constant, is 0.1.
The wage is determined by the same algorithm, using the average labor hired and the last wage in the following relationship:
where n is the number of firms and :
where l is the last labor exchanged, m is the mth
exchange, and ,
the exponential constant, is 0.1.
The SOE behaves like the firms, but with an additional employment
constraint. After it decides how much labor to hire, it checks to see
if its estimate of total employment is at least .
If not, it
hires the difference.