Daniele Confalonieri Yannick Kako Sara Sorial

Computer Science and Simulation for Economics

Project work on

"Pareto efficiency."


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.

powered by NetLogo

view/download model file: pareto_efficiency.nlogo


This model tries to simulate the Pareto efficiency in a system in which two types of agents (buyers and sellers) interact among them with the purpose of reach an equilibrium. Allocating all resources to one person and none to anyone else is Pareto efficient. The two types of breeds can both buy and sell according to their different evaluation of the goods. The equilibrium is reached when the buyer with the higher evaluation takes all the goods. We also tried to interpret the meaning of the world using the distance between people like a metaphor of the social capital (in this case we have a high social capital because the world is not too wide) and the possibility of agents to be short-sighted using the concept of bounded rationality.


This model present 2 types of breeds: Buyers and Sellers. Buyers have the shape of “person service”, an increasing purchasing_price (every buyers gives a different evaluation of the present goods in the market) and their evaluation is fixed for the whole duration of the simulation.
While the sellers are servants with the aspect of “person business”, each one have 1 good and they own a selling_price set as the least one among the purchasing_price of the buyers.

At the beginning both buyers and sellers move randomly, but when a seller is in the proximities (it depends on the radius) of a buyer it moves toward him and they compare they own evaluation of good . If selling_price <= purchasing_price the exchange takes place. As the sellers are sort of middlemen they will try to repurchase the good with the purpose to resell it to a superior value. To do this sellers also own a buyback price that change according to the reserve_price of the buyers (that it's always equal to the purchasing_price). Buyback change by 1 every times a sellers meet a buyers and the transaction takes place when buyback >= reserve_price.

There are monitors that show us the number of transaction done, how many buyers don't make any transaction and where the goods are.
Plots show us the transaction trend, the inactive buyers and the how many buyers and sellers own the goods (remember that a buyer can have more than one good).

This whole trial continues up to when all goods are in possession of the buyer that gives the greatest evaluation of them.


The user, by clicking the SETUP button, set the simulation (buyers and sellers are created and randomly put in the world). Clicking the GO button simulation starts (we made step by step botton and a forever botton).
Before he can choose:
- the number of sellers (between 1 to 100), buyers (between 2 and 200) and the radius (that represent the variance in the bounded rationality of the sellers);
- if the price of sellers have to be fix or variable.
The simulation stop when the buyer become green and own all the goods.


If sellers are more than buyers very often happens that there are an amount of buyers that never operate.

When the simulation is going to end, and the population is numerous enough, you can see that around the buyer with the higher evaluation of the goods there are a lot of sellers around him.

Soon or later the equilibrium is reached. Doesn't matter if the model is densely or sparsely populated.

Using the slider "ray_of_action" we have introduced the concept of bounded rationality, higher is this value higher is the possibility that sellers can choose a buyers and the selection is more careful.


Try to see how many times and how much fast the equilibrium is reached changing the density of population.

Try to change the initial selling_price (using the switch).


It would be interesting see how the optimum change if the Pareto optimum is break. To be more precise: in a weak Pareto optimum other allocations where one or more (but not all) individuals would gain (and none lose) would still be possible.
Another things to try is to show the marginal income of buyers that buy at a price that is lower than their reserve price.
Also interesting is to give to the buyers random evaluation of goods.