Computer exercises



Course 2008-2009, second semester.

All programs on this page are freeware and can be used and distributed without limitations.


0. Technicalities


The files that we use are available at the Internet. The QBASIC.EXE and the QBASIC.HLP files can be downloaded here. One can run the program from within a so-called MS-DOS box or directly from the Internet. I suggest that you make a folder on your hard disk C (e.g., C:\temp) and store the programs and the files (to be indicated below) there. This makes it easiest to work with.


After opening QBASIC, you are asked to press ESC to clear the dialog box. Under the file-menu, you find the option OPEN, to open models (which we will discuss below. You can make the programs full screen by pressing both Alt and Return at the same time.



1. Background


The models you will use are similar to the models described in the article by Loet Leydesdorff and Peter van den Besselaar Competing technologies, lock-ins and lock-outs, which is part of the course materials.


The models help us to understand an evolutionary approach of competing technologies. For every function, several technological and design options may be available and competing on the market. Whereas in “normal” markets, the mechanism of diminishing returns results in the division of the markets among competitors, this can be expected to work differently in knowledge intensive markets. As Brian Arthur has argued, we may observe a mechanism of increasing returns operating, through which “the winner takes it all.”


The best known historical example of “lock-in” has been the QWERTY keyboard of the typewriter. This design became dominant at a certain moment, and then dominated the market: all typewriters use this keyboard. Interestingly, we know that other designs are better, but these do not have a chance to diffuse. Moreover, the mechanical reasons for designing the keyboard as it is, are no longer valid given the prevailing (computer) technology. Why is this the case? In addition to the inherent quality we also have to account for the external (network) quality: if everybody has learned and used the QWERTY keyboard, the “externalities” can make a specific design attractive, and every other design unattractive.


These “lock-in” processes can occur when one of the following issues has been important:


Another well-known example of “lock-in” has been the competition between VHS and Betamax in the VCR market. The story is that the VHS won, because of the initial larger market share of VHS made it increasingly attractive for video stores to have VHS tapes for rent, and not Betamax tapes. As a consequence, customers started to buy more VHS, and this reinforced the video shops to offer even more VHS tapes. Eventually, Betamax and V-2000, although technologically superior, were completely removed from the market. In other words, technological competition can lead to a monopoly, and a technology may take the whole market despite its possible inferior characteristics compared to other (including later) competitors.


The models are designed to investigate under which conditions these phenomena occur. When are they unavoidable, and under which conditions can they perhaps be reversed.


2. The basic mode: two technologies, two types of adopters, and lock in


In the basic model, we have a situation with two technologies, and two types of adopters. As we explained in our mentioned article, the basic model is as follows: 


Technology A

Technology B


aR + rnA

bR + rnB


aS + snA

bS + snB


Table 1. Return values for R- and S-type agents to adopting technology A or B, given nA and nB previous adopters of A and B. (The model assumes that aR > bR and that bS > aS. Both r and s are positive.)


We study this model using the simulation arthur1.bas.


(A compiled version of this model is available as arthur1.exe . This version does not allow you to change the parameters, but you can see the effects directly on the screen when you run it.)

Please open arthur1.bas

In arthur1.bas, you find the following lines of code:


1  REM  The basic Arthur model

10 INPUT N                                  ' number of adopters

20 SCREEN 11: WINDOW (-2, 0)-(N, 100): CLS  ' draw screen

30 LINE (-2, 50)-(N, 50)



50 FOR J = 1 TO 10                          ' number of runs

60     AR = .8: BR = .2                     ' initialise parameters

70     SA = .2: BS = .8

80     NA = 1: NB = 1

90     S = .01: R = .01

100    FOR I = 1 TO N                   ' N adopters arrive on the market

110        CHOICE = RND                 ' they can be R-type or S-type

120        IF CHOICE > .5 GOTO 160      ' choice of adopter

130        RETURNA = AR + R * NA        ' R-type adopter

140        RETURNB = BR + R * NB

150        GOTO 180

160        RETURNA = SA + S * NA        ' S-type adopter

170        RETURNB = BS + S * NB

180        IF RETURNA > RETURNB THEN NA = NA + 1 ELSE NB = NB + 1

190        X = NA + NB: Y = 100 * NA / X    ' compute percentages

200        PSET (X, Y)                      ' set point on screen

210     NEXT I

220 NEXT J


230 END


Line 10 asks for input in order to specify the total number of adopters

Line 50 specifies the number of runs.

The random process is introduced in line 40.


The lines 60-90 specifies values for the parameters of the model specified in Table 1: aR, bR, aS, bS, r, s. (Note that we will use SA instead of aS because “AS” happens to be a reserved word in computer languages.)


We also assume that there is one adopter of Technology A (nA) and one of Technology B (nB) already present. (We often do that in computer programs because leaving parameters zero can easily lead to errors like divisions by zero.)


As we have made this model “symmetrical”, and the sequence of S-type and R-type adopters arriving is random, we expect that if we run the model very often, the lock-in will be in 50% of the runs in technology A, and in 50% of the runs in technology B.


Lines 120-180 model the choice process. Line 190 computes the value of the market percentages of Technology A and line 200 displays the result as a point on the screen.


Now run the program. First the program gives a “?”, and you have to type the number of adopters in the market. Use the first time 10000 (ten thousand).


The horizontal axis of the picture (specified in line 30) represents the 50% market share, and the top of the screen shows the 100% for Technology A, whereas the bottom of the screen is the situation with 0% of the market for Technology A and consequently 100% market share for Technology B.


In the Arthur-model the adopters enter the market sequentially. They are represented as a graph that is drawn on the screen in pixels. Every graph shows a run of the diffusion path in terms of the market share of the two technologies. Thus, we run the program ten times. You can change the number of runs in line 50. Try it!


Experiment a bit with changing the parameters.



Make notes of the relations you find between the parameter values and the lock-in patterns.


3.Two technologies, two types of adopters, and uncertainty


Open arthur2.bas. In the previous model, adopters of the technologies are expected to have full information about the market shares of the two technologies, and to behave accordingly. In this model (corresponding to Table 3 in the article) we suppose that adopters do not have full knowledge about market shares. As a consequence, they only change when the market share of other technology is considerably larger than the threshold for switching (5% uncertainty in perception is introduced). Only in that case, the adopters can perceive the differences between the two technologies. Let us study the result of this assumption.


1  REM uncertainty: if difference * 20 < sum,

2  REM then stay with the natural inclination;

3  REM otherwise, use Arthur routine


10 INPUT N                                       ' number of adopters

20 SCREEN 11: WINDOW (-2, 0)-(N, 100): CLS       ' set up screen

22 LINE (-2, 50)-(N, 50)



25 FOR J = 1 TO 15                               ' number of runs

40    AR = .8: BR = .2                           ' initialise parameters

42    SA = .2: BS = .8

43    NA = 1: NB = 1

44    S = .01: R = .01

50    FOR I = 1 TO N

70        CHOICE = RND

80        IF (NA - NB) > 0 THEN M = (NA - NB) ELSE M = (NB - NA)

90        IF CHOICE > .5 GOTO 125

100       IF M * 20 > (NA + NB) GOTO 109†††††††† ' 5% criterion R-side

101       NA = NA + 1

102       GOTO 140

109       RETURNA = AR + R * NA: RETURNB = BR + R * NB

120       GOTO 130

125       IF M * 20 > (NA + NB) GOTO 129†††††††† ' 5% criterion S-side

126       NB = NB + 1

127       GOTO 140

129       RETURNA = SA + S * NA: RETURNB = BS + S * NB

130       IF RETURNA > RETURNB THEN NA = NA + 1 ELSE NB = NB + 1

140       X = NA + NB: Y = 100 * NA / X

150       PSET (X, Y)                         ' set point on screen

160     NEXT I

165 NEXT J

170 END


Make notes. 

4. The reflexivity model


Open arthur3.bas.


Here we suppose that adopters only change when the benefits of the other technology are substantially (5% at least) higher than of purchasing the other. In other words, they do not react immediately. (The model corresponds to Figure 3 in the article and the text above this figure on p. 314.) What is the result? Change the parameters slightly, like in the previous sections. What is the effect? Make notes again.


1  REM  Arthur3: consumer preference of 5%

10 INPUT N: REM number of adopters

20 SCREEN 11: WINDOW (-2, 0)-(N, 100): CLS

22 LINE (-2, 50)-(N, 50)



25 FOR J = 1 TO 10

40      AR = .8: BS = .8

41      BR = .2: SA = .2

42      r = .01: s = .01

43      NA = 1: NB = 1

50      FOR I = 1 TO N

70              CHOICE = RND

90              IF CHOICE < .5 GOTO 100 ELSE GOTO 125

100             RETURNA = AR + r * NA: RETURNB = BR + r * NB

110             IF RETURNA > .95 * RETURNB THEN NA = NA + 1 ELSE NB = NB + 1

120             GOTO 140

125             RETURNA = SA + s * NA: RETURNB = BS + s * NB

130             IF RETURNB > .95 * RETURNA THEN NB = NB + 1 ELSE NA = NA + 1

140             X = NA + NB: Y = 100 * NA / X

150             PSET (X, Y)

160     NEXT I

165 NEXT J

170 END




5. Breaking out of the lock-in (“lock-out”)


Let us return to the Arthur1.bas model and introduce the condition for breaking out of a lock-in.

As you will remember from the paper, lock-in occurs if, for example, an S-type agent has an advantage with buying Technology A (aS = 0.2) despite his/her larger inclination to buy Technology B (bS = 0.2). This is the case only if it is true that


†††††††††† aS + snA †> bS + snB††††††††† ††††††††††††††††††††††††††††††††††††††† (See Table 1)


We can rewrite:


†††††††††† aS - bS > snB† - snA ††††


or equivalently:


†††††††††† nB - nA †< (aS - bS)/s


This condition is not true if s = 0 because the right-hand side of the equation then becomes infinite and therefore larger than the left-hand side. The ‘lock-iní can then be reversed.


Use the model arthur1.bas and add a line 115 with the following condition:


115            IF (NA + NB) > 2000 and NA/NB > 2 THEN S = 0


†The if-statement specifies the condition that the market is sufficiently large (NA + NB > 2000) and that Technology A is locked in (NA/NB > 2). Under this condition s is set back to zero. Describe what you observe.



6. Changing the lock-in model: diffusion of competing technologies


Open now arthur1a.bas.


Take a precise look at the table 1 above. In Arthur’s model, the network effects are attributed to the types of adopter, and not to the technology. For R-agents, the effect of the number of users of technology A and technology B depends on the same parameter ‘r’. For S-agents, the effect of the number of users of technology A and technology B depends on the same parameter s. However, would it not be better to attribute this effect to the diffusion parameters of the respective technologies rather than to the network externalities among the different type of adopters? This would result in a different model, as represented in table 2 (that is, Table 4 in the article). In this case ‘r’ and ‘s’ are diffusion parameters of the respective technologies A and B.



Technology A

Technology B


aR + rnA

bR + snB


aS + rnA

bS + snB


Table 2. Return values for Technologies A and B being adopted, given nA and nB previous adopters of A and B. (The model assumes that aR > bR and that bS > aS. Both r and s are positive.)


This now is modeled in Arthur1a.bas. Using the standard parameter settings, the model of course behaves identically as Arthur1.bas, the standard model. However, this may change if we do not use parameter values in which we assume that r = s.

Do some simulations for various parameter values. Does the change of the model make any difference if you compare it with the first model? In what sense? Make notes.


1  REM the standard model, but r and s linked to the respective
2  REM technologies and not to the adopter types
10 INPUT N                               
20 SCREEN 11: WINDOW (-2, 0)-(N, 100): CLS
22 LINE (-2, 50)-(N, 50)
25 FOR J = 1 TO 25
40     AR = .8: BR = .2
41     SA = .2: BS = .8
42     NA = 1: NB = 1
43     s = .02: r = .02
50     FOR I = 1 TO N
70     CHOICE = RND
90     IF CHOICE > .5 GOTO 125
100    RETURNA = AR + r * NA: RETURNB = BR + s * NB
120    GOTO 130
125    RETURNA = SA + r * NA: RETURNB = BS + s * NB
140    X = NA + NB: Y = 100 * NA / X
150    PSET (X, Y)
160 NEXT I
170 NEXT J
180 END


 You can apply the reasoning about diffusion also to the models arthur2 and arthur3.bas, respectively.



7. The original Arthur model with a spatial representation on the screen

The results of the Arthur model can be displayed in different ways. Try this version of the original Arthur model, available as arthur1g.bas. Explain what you see.

Exercise: Try to adjust the program in such a way that the behaviour of the actors becomes purely random.

1   REM Arthur model with spatial representation on the screen

10  SCREEN 1: WINDOW (0, 0)-(320, 240): CLS


50  AR = .8: BR = .2

60  SA = .2: BS = .8

70  NA = 1: NB = 1

80  S = .01: R = .01



100  FOR I = 0 to 1000000

110    y = INT(RND * 240)               ' draw random point on screen

120    x = INT(RND * 320)


180     IF RND > .5 GOTO 200


190        RETURNA = AR + R * NA: RETURNB = BR + R * NB: GOTO 210

200        RETURNA = SA + S * NA: RETURNB = BS + S * NB

210          IF RETURNA > RETURNB THEN NA = NA + 1 ELSE NB = NB + 1

220          IF RETURNA > RETURNB GOTO 250 ELSE GOTO 260


250       PSET (x, y), 1: GOTO 300

260       PSET (x, y), 2


300 NEXT I

310 END


A further extension of this model is given in my paper entitled ‘Technology and Culture: The Dissemination and the Potential 'Lock-in' of New Technologies,’ Journal of Artificial Societies and Social Simulation, Vol. 4, Issue 3, (2001) Paper 5, at < >.

 8. Conclusions

Arthur’s (1988) model (arthur1.bas) aimed at illustrating the ‘lock-in effects’ that had been noted in evolutionary economics. Evolutionary economists have criticized neo-classical economists for not taking into account the uncertainty of the actors generated (1) by the lack of incomplete information about the market and (2) because of their partial rationality. We have modeled these two effects above in arthur2.bas and arthur3.bas, respectively, and we have observed that under these conditions the ‘lock-in’ effect tends to disappear.

In the paper we derived a condition that would dissolve the ‘lock-in’. This is modeled above by inserting a line in arthur1.bas—under the condition of prevailing ‘lock-in’—which brings the network-parameter s to zero. We can then observe the return to equilibrium. Note that a focus on reducing the network externality of a technology is different from a focus on improving the technology intrinsically. As was shown in the paper, this would in general not lead to an inversion of the ‘lock-in’. (Did you try it?)

Then we noted also that the assumption that the purchasing behaviour of adopters (with increasing return) would generate the ‘lock-in’ can be debated from the perspective of technology dynamics. Isn’t it the dynamics of the diffusion of the technology? We experimented with this assumption using model arthur1b.bas. Which differences did you note using this somewhat different model?

Finally, model artur1g.bas provided us with a spatial representation of the ‘lock-in’ effect. Further reading exploring this model was suggested.