The source code of the simulation program is available
for download. Click on the link to download the required files: simulation.zip
The program is a simulation of the Ultimatum Game. In
short the scenario is that some agent, that we will refer to from now on as ‘bidder’, receives a conditional amount
of money (in our case 10 $). He must make an offer to a second agent, which we
will refer to as ‘recipient’. The
offer to this recipient must be some part of the 10$ and this part is what will
be given to the second agent.
If the offer is accepted the bidder will get 10 minus his offer to the
recipient and the recipient will get the offer that was offered to him.
But if the
offer is rejected, both the bidder
and the recipient will get nothing!
In the simulation there are a
fixed number of bidders and sellers, which have been given a maximum and minimum
threshold respectively. This means that a bidder gets a maximum offer they can make, and recipients have a fixed minimum offer they need before they can
accept. In one bidding round each
bidder will make an offer to each recipient. Each bidder can have either one of
two bidding strategies:
Fixed bid:
The bidder will always offer their maximum bid (limited by the threshold)
Optimum
bid: The bidder will bid that offer which has the highest expected value for the next round, based on the assumption that thresholds
of the recipients are uniformly distributed (see the
paper for a detailed explanation).
Bidding
round
Each bidder can accumulate money by making a single
offer to each recipient in every round. After a bidder has offered some amount
to the recipient, the money is divided between the two
if the offer was accepted. In case the offer was refused,
both the agents will get nothing. The bidder will remember each offer he has
made to each recipient, and this information is what he will use to make a more
profitable offer to the same recipient in the next round.
Auction
round
In an auction round every piece of knowledge about the
recipients that has been acquired by bidding agents is
put on auction. All bidding agents will bid for a certain piece of information,
based on how much extra profit they expect this new piece of information will
give them. The auction is a Vickrey type auction, where the highest bidder pays
the second highest bid.
The program is written in
Java, and can be started if a Java environment is configured. The program can be run by starting ‘run.java’. When started, a window
appears with a menu bar at the top. The menu is displayed
in figure 1.
Fig. 1: Menu bar
The first tab is experiment,
where the type of experiment can be selected. Mostly
the options are combinations of a bidding strategy for the
bidders, the number of rounds and whether or not there is an auction.
The second tab is start/stop. After all the other
parameters are chosen, the experiment can be started
using ‘run’. The experiment can be run only once, and if the user wants to run
another experiment the program has to be restarted.
Stop will pause the program after the next step.
The third tab is speed, where the delay between
transactions can be set to some specified time. In this way
the user can determine how much specific information can be observed.
The fourth and fifth tab
respectively determine the amount of bidders and recipients.
The sixth and final option is a parameter that can be
set to give bidders and recipients random thresholds.
Fig. 2: Bidding round display
In the first and last column the name, the threshold
and the current money of each bidder or recipient is
displayed. In the center at the top, the current round and the type of
strategy for each bidder is displayed. Below that are
the thresholds for the current bidder and current recipient of this offering.
Two bars are displayed on the screen which show the
prior information the bidder has about the recipient and the posterior
information (after the offer was made).
Fig. 3: Auction round display
Again
the sides display the usual information about the agents. In the center the current information about some recipient that is
being auctioned is displayed in a bar. Below that is a list of each bidder and
the amount that each bidder is wiling to pay for this information. In this case the winner is bidder 7, who is willing to pay 0.5 for
this information. But since he only has to pay the
second highest bid, he has to pay 0.4.