NetLogo banner

 Contact Us

 Modeling Commons

 User Manuals:


NetLogo User Community Models

(back to the NetLogo User Community Models)


by Rishabh Kumar (Submitted: 03/03/2014)

[screen shot]

Download adverselockinmodel2
If clicking does not initiate a download, try right clicking or control clicking and choosing "Save" or "Download".

(You can also run this model in your browser, but we don't recommend it; details here.)

A model of innovation and its subsequent diffusion, in a rigid-network population of user/adopters. The idea is to show the evolution of variants of an innovation, while also addressing how users time their adoption decisions. The end-result is an analysis of market structures such as "dynamic" lock ins or best practice diffusions, as well as network deadweight losses.


Two firms are given the same initial set of solution bit-strings. This represents a technological bottleneck and each firm runs a genetic algorithm on this string to get 'fitter' technologies.

In this case the 'all ones' solution is the fittest solution. ie the fitness of any string is measured by the total number of ones in the string.

Potential Adopters (the red dots in the display) evaluate the technology based:
1) Industrial Maturity: The mean fitness during a time period, of competing firms' product fitness. This shows the adopter how well the 'problem solvers' are doing in solving the bottleneck. Consider for eg how functionally mature new variants of personal computers are, to a potential adopter.
2) Volatility in Technological maturity: In the face of a high rate of technological change, adopters want to time their decisions appropriately. Thus they give a negative weight to the coefficient of variation in the industrial maturity.
3) Network Effects: Adopters are involved in a rigid local network. Consider for example different parts of a supply chain. Therefore at the microfoundational level, each adopter evaluates their local network to see if the new technology is being adopted. The weight on this factor increases as the overall rate of diffusion increases.

The decision to adopt is set as a probability, positively dependent on the product score as per the evaluation criteria described above. Once a user decides to adopt (transformation into a white dot on the display), they decide which variant or standard to go with. In this case there's a tradeoff between the most commonly occurring product in their local network versus the properties of the product itself. For any adopter, if the percentage variation between the alternatives is higher than the level of adoption in their network (in percentage terms) they go for the 'fitter' product. Else they go for the most commonly occurring standard in their network.

Finally, at the point of adoption a welfare measure is introduced to measure a 'network deadweight loss.' The welfare gain/loss is given by the difference between the competing products' fitness. If the user made a choice based on the actual product, they have chosen the better product thus their welfare gain is positive. If the user made a choice based on their network imperative but the network was locked into the worse product, the user has a negative welfare gain (ie a welfare loss).


Press the SETUP button to create an initial random population of solutions as well as initialize a population of potential adopters.

Press the GO button to start the innovation-diffusion process. The process runs for 100 steps.

The best solution found in each generation is displayed in the VIEW. Each white column represents a "1"-bit and each black column represents a "0"-bit.

=== Parameters ===

The POPULATION-SIZE slider controls the number of solutions that are present in each generation.

The CROSSOVER-RATE slider controls what percent of each new generation is created through reproduction (recombination or crossover between two parents' genetic material), and what percent (100 - CROSSOVER-RATE) is created through cloning of one parent's genetic material.

The MUTATION-RATE slider controls the percent chance of mutation. This chance applies to each position in the string of bits of a new individual. For instance, if the string is 100 bits long, and the mutation-rate is set at 1%, then on average one bit will be changed during the creation of each new individual.

The DESIGNLENGTH slider controls the size of the bit strings used in the genetic algorithm

The CONSUMER-POPULATION slider controls the number of potential adopters.

The NETWORK-SIZE slider sets a geographic network for each potential adopter. ie for a value of X, the potential adopter is networked with every agent within a radius of X (each distance measure is from the center of each patch), of themselves.

The "Fitness Plot" is used to show the best fitness values of the solutions at each generation, for each firm.


Notice that initial dynamics tend to have a long lasting memory in terms of market outcomes. The adverse selection plot shows how many consumers chose the less efficient option, due to their network based selection.

The welfare plot is also interesting in giving a picture of the social outcomes due to efficient/inefficient selection.


* Stonedahl, F. and Wilensky, U. (2008). NetLogo Simple Genetic Algorithm model. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
* Wilensky, U. (1999). NetLogo. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

(back to the NetLogo User Community Models)