Daniele Destefanis, Alessandro Manello, Edoardo Campanella

Computer Science and Simulation for Economics

Project work on

"Collusion in an oligopolistic market."


The applet requires Java 1.4.1 or higher. It will not run on Windows 95 or Mac OS 8 or 9. Mac users must have OS X 10.2.6 or higher and use a browser that supports Java 1.4. (Safari works, IE does not. Mac OS X comes with Safari. Open Safari and set it as your default web browser under Safari/Preferences/General.) On other operating systems, you may obtain the latest Java plugin from Sun's Java site.

created with NetLogo

view/download model file: oligopolio_ingl.nlogo

This program is a simulation of a little market, where operate only two classes of agents: firms, represented by patches, and consumers, represented by turtles. In this market only one product is available. Consumers can be satisfated or not according to their willingness to pay and to the price at which the firm where they are is selling its product. If they are satisfied, they buy and stop walking. If they aren't, they don't buy and walk around looking for a lower price.
The simulation stop when all persons are happy.

The rules are simple. Every consumer has a willigness to pay: if product price is lower than it, he is happy and he buys (his colour become blue); but if product price is higher tahn his willingness to pay, he is unhappy and he starts walking looking for a cheaper firm (his colour became red).
Every firm has a marginal cost and fixs a product price, which is function of its own demand. Firms cut prices if many of their customers are unhappy.

Start the simulation by clicking setup.
Then, after clicking go, persons start moving and searching lower prices. Not always every consumer becomes happy: in this case, the market is not in equilibrium.
By clicking collude, persons start moving, but all the firms fix an hight homogeneous price, that is 50% higher than the maximum price which would be fixed in a competitive context.
Buttons: Setup resets everything and creates a variable number of turtles that are randomly located
Buttons: Go if clicked, the simulation begins and the turtles start moving.
Buttons: Collude if clicked, the turtles start moving, but firm behaviour is not the same. They make a trust and fix an higher price.
Sliders: On the left of the screen, below setup, go and collude buttons, there are four sliders. They allow the user to manipulate certain parameters.
Switches: On the left of the screen, below buttons and sliders, there are four switches. taht allow the user to choose four conditions that modify the simulation.
Monitors: On the left of the screen there are three monitors. They monitor and shw certain counters and variables.
Plots: On the left of the screen there are two graphs that show the trend of two variables (three in the case of collusion)

Slider num-consumers: you can choose how many turtles populate the market.
Slider num-firms: this program simulate an oligopoly, the number of firms (pathes) on the marker is not large, and varies from 2 to 15.
Slider marginal-cost: we assume that fixed cost are inesistent. You can modify the value and establish it below, above or equal to consumers' willigness to pay.
Slider minimum-willigness-to-pay: you can choose this value. If it is under the marginal cost there is no equilibrium, because there are always unhappy consumers.
Switch different-marginal-cost: if this switch is on the "on", there are firms with different marginal costs which are obtained by multiplying the value of the marginal cost choosed by the user by a random float number from 0 to 2
Swich limit-speed: if it is on, the speed of the agents's interaction is slowed down to make it easier for the user to observe the simulation.
Swich consumer-differentation: if on the "on", consumers are shared in two types, one with a high willigness to pay (double of the value choosed by the homonymous slider), the other with a low willigness to pay (the same value choosed by the slider).
Switch collusion-breaking: if on the "on", after 5 rounds each firm can break the collusion trust. A firm breaks collusion if its market price is smaller than 60% of colluded market price price.

You can run the model with the following settings:

a) Bertrand duopoly:
different-marginal-cost OFF
different-willigness-to-pay OFF
Clicking on GO after only one round the sistem go to equilibrium.

b) Oligopoly:
different-marginal-cost OFF
different-willigness-to-pay OFF
Clicking on GO after a little number of round the sistem goes to equilibrium; if the number of firms rises, the simulation goes to equilibrium more quickly. If the number of consumers rises, the equilibrium is more difficult to be reached.
If the switches are on "On", all is more dependent on the casual distribution of consumers.

c) Collusion:
different-marginal-cost OFF
different-willigness-to-pay OFF
collusion-breaking OFF
Clicking on COLLUDE firms choose an high price, and often all the consumers became unhappy. If the collusion-breaking is on "ON", after 5 rounds prices decrease and the number of happy consumers increases.

It's possible to make the collusion rules more complicated. In this program every firm chooses a collusion price that is the 150% of the highest price on the market. If the collusion rules become more complicated, also results could become more real.

Wilensky, U. (1997). NetLogo Party model. http://ccl.northwestern.edu/netlogo/models/Party. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.