Professional Documents
Culture Documents
JEAN-MICHELLE DALLE
MODEL
Barış Ekdi
[Type the company name]
5/16/2007
Barış EKDi STPS 514 – Assignment III
on
by
BARIŞ EKDĐ
1
Barış EKDi STPS 514 – Assignment III
This program is based on the paper by Jean-Michelle DALLE1 regarding heterogeneity vs.
externalities in technological competition.
The model shows the interactions among finite number of agents positioned on a toric
network. Therefore, each agent interacts with its neighbors on the north, east, south and west;
and since it is a toric network the agent on the top
north interacts with the agent on the south-west North (N)
corner of the agent as its north neighbor, top-east
agent as its west neighbor and so on… In other West (W) AGENT (n) East (E)
There are two competing technologies, namely (1) and (-1); and represented with the colors of
yellow and green respectively. Agents choose one of them randomly at first, while being
placed onto the matrix; then based on calculation at each step. Those calculations also take
parameter (b) – representing homogeneity – into account; and calculate the probabilities for S
of choosing technology (1) or (-1).
1
Dalle, JM., “Heterogeneity vs. externalities in technological competition: A tale of possible technological
landscapes”, J EvolEcon (1997) 7: 395-413
2
Barış EKDi STPS 514 – Assignment III
In this model α represents the technology (1) or (-1) and probabilities are calculated according
to this formula; whereas (b)2 represents the heterogeneity/homogeneity of the technologies.
The results gives the probability for agent (S) of choosing technology α.
Dalle states that in that kind of a model, depending on the value of the parameter (b) there
could be some technologies surviving at the niches; up to a critical value of (b). However,
there exists a critical value bc, such that if b<bc, both technologies coexist in on average equal
proportions, and if b>bc, there are two possible states where only one technology dominates,
i.e. where standardization obtains. (Theorem 3; p.404).
• Thus, the program runs ‘n’ times (the default is 5) for parameter (b) for the value of b1
(the default is 0.001) and then the initial setting on the matrix is arranged once more,
the parameter b increased (to 0.002 by default) and program is re-run for another value
of b until b reaches to 0.9.
Thus, the program gets the values for the neighbors at North (N), East (E), South (S) and
West (W). Sums the values for the technologies adopted. In cases where Global Interaction is
chosen, the program sets a fifth ‘neighbor’ which has chosen technology (1) and adds this into
calculation as the fifth member as described in Dalle (p.410).
In order to do this simulation a program is written using MS Visual Basic 6.0. In this
program a graphical user interface (GUI) is provided in order to get the parameters, such as;
- number of the times that the simulation will run for each value of (b);
2
Please note that 0<b<1.
3
Barış EKDi STPS 514 – Assignment III
i. can monitor the agents on the matrix in colors of yellow and green at each turn,
(matrix is called ‘evren’ in the program code)
ii. can monitor the values of parameters, neighbors, output of the calculation and the
technology that the agent will adopt at next turn, (Process Window = ListInfo in
the program code)
iii. can monitor the output patterns in back & white; ready to be save to the text file.
(Output Window = ListOutput in the program code)
The GUI also contains 8 buttons with different functions to perform the simulation. Those
functions of the buttons will be explained in detail further in this text.
4
Barış EKDi STPS 514 – Assignment III
1. The size of the matrix (thus the number of agents) from combo-box on top left corner on
the window.
1.1. At each selection, from 1 to (n) number of agents that can be placed on the matrix:
the program tosses a coin; if result is [PorbInit] ≤ .5 then agent (n) adopts
technology (1) else adopts technology (-1); and the cell is colored with yellow or
green respectively. For simplicity, the initial number of agents chosen each
technology is also shown on the left side of the window. (Next to those numbers,
there are also text boxes which is used to set the pattern to be used to fill the matrix
while saving the simulation output).
1.2. The program sets PARAMETER (b) to 0.001; however the user can change this
parameter.
1.3. The program sets the Number Of Turns that the agents will interact for each value
of parameter (b) to 5. That means, the matrix will change 5 times for each (b) based
on the calculations according to the formula.
1.4. The program sets simulation type to local interaction. (The user may prefer
Global Interaction and observe the differences at a later time with the same values
and settings).
1.5.1. [Start Simulation] Run the simulation for each (b) step by step. (Below the
processes are explained in detail).
1.5.2. [Do All At Once] Run the simulation for each (b) at once. That means:
5
Barış EKDi STPS 514 – Assignment III
For each value of (b) [stated in the list below]; [ a PHASE is started]
[Sub MakeCalculation]
Next agent;
Next turn;
6
Barış EKDi STPS 514 – Assignment III
1.6. If the user wants to run simulation phase by phase with each different value of (b);
there will be two additional options.
But before that the user must get to the initial placement of the agents on the matrix
using [Reset For New Phase] button. (This is done in order to reach the initial state
to be able to compare the different values of the (b)).
1.6.1. [Cont. With New Phase] : The parameter (b) increases according to the table
above. [sub IncreaseParaB] and the simulation is run with this new value.
1.6.2. [Cont. With New # Turns] : During the test process it is observed that the
number of turns the simulation run (and thus the agents react) - apart
from parameter (b)- affects the results significantly. - i.e we can have
technologies surviving at the niches after the 5th turn; however complete
standardization will occur after the 10th turn. In order to demonstrate this,
a tool provided for the user (to re-run the simulation with initial
parameters and positioning but with different number of turns).
1.7. [Save] button saves the simulation based on the format and principles explained
below:
[sub SimKaydet]
7
Barış EKDi STPS 514 – Assignment III
The ‘output’ –i.e. the pattern with symbols (^ and #) representing technologies (1)
and (-1) – resulted at nth turn with each value of (b) (= at each ‘phase’) and printed to
the lower window is saved to drive C:\ as a text file. (The output is named as
“SimOutput_Date & Time”).
A simple output for initial settings and results after 5th turn with values of b=0.001 ;
0.002, 0.003, 0.05 and 0.5 are as follows:
8
Barış EKDi STPS 514 – Assignment III
9
Barış EKDi STPS 514 – Assignment III
In addition all the calculation and positioning processes are saved to the end of this text file. A
sample of this is provided as follows:
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(1;1); NESW(1,1,-1,1); ProbsA,B (0,5005;0,4995)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(2;1); NESW(1,1,-1,1); ProbsA,B (0,5005;0,4995)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(3;1); NESW(1,-1,1,1); ProbsA,B (0,5005;0,4995)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(4;-1); NESW(-1,1,1,1); ProbsA,B (0,5005;0,4995)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(5;1); NESW(-1,-1,-1,-1); ProbsA,B (0,499;0,501)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(6;-1); NESW(1,-1,1,1); ProbsA,B (0,5005;0,4995)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(7;-1); NESW(-1,-1,1,-1); ProbsA,B (0,4995;0,5005)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(8;-1); NESW(-1,-1,-1,-1); ProbsA,B (0,499;0,501)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(9;-1); NESW(-1,1,1,-1); ProbsA,B (0,5;0,5)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(10;1); NESW(1,-1,-1,-1); ProbsA,B (0,4995;0,5005)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(11;-1); NESW(1,1,1,1); ProbsA,B (0,501;0,499)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(12;1); NESW(1,-1,1,-1); ProbsA,B (0,5;0,5)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(13;-1); NESW(1,-1,-1,1); ProbsA,B (0,5;0,5)->1"
10
Barış EKDi STPS 514 – Assignment III
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(14;-1); NESW(-1,-1,-1,-1); ProbsA,B (0,499;0,501)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(15;-1); NESW(-1,-1,-1,-1); ProbsA,B (0,499;0,501)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(16;-1); NESW(-1,-1,-1,-1); ProbsA,B (0,499;0,501)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(17;-1); NESW(-1,-1,-1,-1); ProbsA,B (0,499;0,501)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(18;-1); NESW(1,-1,-1,-1); ProbsA,B (0,4995;0,5005)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(19;-1); NESW(1,1,1,-1); ProbsA,B (0,5005;0,4995)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(20;1); NESW(-1,1,-1,-1); ProbsA,B (0,4995;0,5005)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(21;-1); NESW(1,-1,1,-1); ProbsA,B (0,5;0,5)->0"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"1 ; 0,001;1; Agent(22;-1); NESW(1,1,1,-1); ProbsA,B (0,5005;0,4995)->1"
(…)
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"5 ; 0,005;2; Agent(34;-1); NESW(-1,-1,1,1); ProbsA,B (0,5;0,5)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"5 ; 0,005;2; Agent(35;-1); NESW(-1,-1,-1,-1); ProbsA,B (0,4950002;0,5049998)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"5 ; 0,005;2; Agent(36;-1); NESW(-1,-1,-1,-1); ProbsA,B (0,4950002;0,5049998)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"5 ; 0,005;2; Agent(37;-1); NESW(-1,-1,1,-1); ProbsA,B (0,4975;0,5025)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"5 ; 0,005;2; Agent(38;-1); NESW(-1,-1,-1,-1); ProbsA,B (0,4950002;0,5049998)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"5 ; 0,005;2; Agent(39;-1); NESW(1,1,1,-1); ProbsA,B (0,5025;0,4975)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"5 ; 0,005;2; Agent(40;1); NESW(-1,1,0,-1); ProbsA,B (0,49875;0,50125)->-1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"5 ; 0,005;2; Agent(41;-1); NESW(1,1,-1,0); ProbsA,B (0,50125;0,49875)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"5 ; 0,005;2; Agent(42;1); NESW(1,1,1,-1); ProbsA,B (0,5025;0,4975)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"5 ; 0,005;2; Agent(43;1); NESW(1,1,0,1); ProbsA,B (0,5037499;0,4962501)->1"
" "
"Phase No; valB; Turn; Agent(AgtNo; Tech); Neighbor Techs(N,E,S,W); Tech toBe Adopted"
"5 ; 0,005;2; Agent(44;1); NESW(1,-1,1,1); ProbsA,B (0,5025;0,4975)->1"
" "
(…)
11
Barış EKDi STPS 514 – Assignment III
In order to observe the results of the theorem at Dalle’s Model, the simulation is run for
several times for;
The results and comments are as follows (Those results are also recorded as JPG files to the
output folder).
12
Barış EKDi STPS 514 – Assignment III
13
Barış EKDi STPS 514 – Assignment III
14
Barış EKDi STPS 514 – Assignment III
The results of the simulation is parallel with the those of Dalle’s since with different
values of “b” number of agents adopted technologies (1) and (-1) differs at certain
percentages; but both survive – see. 3.2 and 3.3 above.
However, at critical values of b it is true that there could be some agents adopted
technology (-1) surviving at the niches. (See.3.5 and 3.6) and even at some cases complete
standardization occurs (See. 3.6).
Another result is that in cases where global interaction allowed, it is easier to obtain
complete standardization at earlier stages. See. 3.4. almost standardized at 5th turn with
b=0.001 (only two agents left) and see 3.8 for complete standardization at 15th turn with
b=0.001 for the same setting. Therefore, the number of turns that the simulation runs for is
also important for assessing standardization, as well as the value of b.
-o0o-
15