In a typical perfect-information strategy game like Chess, an agent can calculate its best move by searching the state tree for the best possible move, while assuming that the opponent will also make the best possible move (i.e. Mini-max).
I would like to use this approach in a “game” modeling economic activity, where the possible “moves” would be to buy or sell for a given price, and the goal, rather than a specific class of states (e.g. Checkmate), would be to maximize some function F of the agent’s state (e.g. F(money, widget) = 10*money + widget).
How to handle buy/sell actions that require coordination between both parties, at the very least agreement upon a price?
The cheap way out would be to set the price beforehand, maybe based upon the current supply — but the idea of this simulation is to examine how prices emerge when freely determined by “perfectly rational” agents.
A great example of what I do not want is the trading algorithm in SugarScape — paraphrasing from Growing Artificial Societies p101-102:
when a pair of agents interact to trade, they each compute their internal valuations of the goods, then a bargaining process is conducted and a price is agreed to. If this price makes both agents better off, they complete the transaction
The protocol itself is beautiful, but what it cannot capture (as far as I can tell) is the ability for an agent to pay more than it might otherwise for a good, because it knows that it can sell it for even more at a later date — what appears to be called “strategic thinking” in this pape at Google Books Multi-Agent-Based Simulation III: 4th International Workshop, MABS 2003… to get realistic behavior like that, it seems one would either (1) have to build an outrageously-complex internal valuation system which could at best only cover situations that were planned for at compile-time, or otherwise (2) have some mechanism to search the state tree… which would require some way of planning future trades.
Note: The chess analogy only works as far as the state-space search goes; the simulation isn’t intended to be “zero sum”, so a literal mini-max search wouldn’t be appropriate — and ideally, it should work with more than two agents.
7
Have you considered using an agent or market maker to facilitate the transaction? This is how it works in real stock exchanges. Shares are rarely traded person to person but through a middle man. You mention examining the ability of the system to make one party pay more than absolutely necessary, if they had had access to all the information in the system, which is exactly what happen with the ‘spread’, the price difference between the offer and bid prices.
3
Naive answer:
You can’t really simulate agents in same way you would play chess. Simply because the “game” depends heavily on external influence than on players themselves. This all comes down to knowledge. If agent knows from some source the price will go up in the future, it might do something in the present to help itself. Actually, in multi-agent simulations theory, the notion of agent’s knowledge is extremely important part. Especially if agent doesn’t have full knowledge about whole environment and this knowledge cannot be perfectly trusted. So the agent’s goal would be to gather and confirm this knowledge and calculate good’s future value based on this knowledge. And getting this knowledge is the hard part, because predicting future isn’t really what neither humans nor computers are good at.
7
I just came across this in Game Theory Evolving, H. Gintis, p45:
“In [the neoclassical model], prices move to eliminate excess demand in all markets before any trade actually takes place. Thus, market clearing is not brought about by markets at all, but rather by what later writers have called an “auctioneer” who calls out prices, measures the degree of excess supply and demand in all markets, adjusts prices accordingly, and repeats the process until equilibrium prices are determined. The auctioneer then freezes these equilibrium prices, and agents are allowed to trade freely at these prices. How ironic! Not the buzzing confusion of market competition, but the cool hand of the centralized state apparatus brings about market equilibrium.
“Well, you might reply, we’ve come a long way since Walrus wrote down his set of equations…Surely someone has provided a plausible decentralized, market-oriented equilibriation mechanism to replace the auctioneer. But in fact, no one has succeeded in producing a plausible dynamic model of market interaction in which prices move toward their market-clearing levels.”
Of course, the “auctioneer” model is precisely what is done in SugarScape, and is precisely what I was hoping to avoid.
If true, this is discouraging…but it at least answers why, even ignoring the probably-intractable problem of planning with coordination between agents, I haven’t been able to solve this.