Computer   code   for





Stuart A. Kauffman (1993), The Origins of Order: Self-Organization and Selection in Evolution. Oxford, Oxford University Press.

The NK model provides a framework for evaluating the effects of interdependencies within an evolutive system. The NK model has been used to study the features of the relationships between species in an ecosystem, between technologies in an economy and between solution schemes in problem-solving.

This page collects any computer code that implements, re-interprets and applies the NK model. Please feel free to contribute by sending your code to:

guido.fioretti AT


  1. Bennett Levitan and Bill Macready: The original NK/NKC code.
    This is the original code. It has been most recently used in Bennett Levitan, José e Lobo, Richard Schuler and Stuart Kauffman: Evolution of Organizational Performance and Stability in a Stochastic Environment. Computational and Mathematical Organization Theory, 8 (4) 2002: 281-313.

  2. Wim Hordijk: NK-NKC.
    This is a C++ code that implements NK and NKC landscapes.
    Wim Hordijk and Stuart A. Kauffman: Correlation Analysis of Coupled Fitness Landscapes. Complexity, 10 (6) 2005: 41-49.

  3. Terry Jones: Fitness Landscapes.
    This is a C code that implements NK landscapes using a "jump table" to allow the K parameter to be very large without consuming much memory.

  4. Daniel Levinthal: NK.
    The code of the first application of the NK model to Organization Science.
    Daniel A. Levinthal: Adaptation on Rugged Landscapes. Management Science, 43 (7) 1997: 934-950.

  5. Marco Valente: Laboratory for Simulation Development.
    LSD (Laboratory for Simulation Development) is a language for simulation models. LSD emerged as the generalization of all the program functions used in several simulation models, mostly in agent-based simulation models.

  6. Stefano Balietti: Futur-NK.
    The Futur-NK Simulator is an agent-based implementation where each agent owns and explores multiple NK worlds, computing fitness landscapes and mutating parameters. Agents are grouped into Populations which collect and store Agents data.

  7. Richard E. Mellor: Investigating Kauffman's NK Model for Agent-Based Modelling
    Richard Mellor reproduced the NK Model on MASON. The code is in the appendix of his dissertation.

  8. Richard Vidgen and Julian Padgett: Sendero
    Sendero reproduces the basic NK model and provides extensions to the basic model including population dynamics and communication networks.
    Richard Vidgen and Julian Padgett: Sendero: An Extended, Agent-Based Implementation of Kauffman's NKCS Model. Journal of Artificial Societies and Social Simulation, 12 (4) 2009.

  9. Giacomo Minello: Extending Sendero
    On this Git, Giacomo Minello is working at improvements and extensions of the basic Sendero. Contributions are welcome!

  10. Michael Christensen: The NK Model on MatLab.

  11. Maciej Workiewicz: The NK_Model in Python.
    A Python version of the NK Model.

  12. Francesco Pollicino and Gianluca D'Addese: The NKC Model and punctuated equilibria.
    This Python version of the NKC Model has been constructed with the aim of reproducing punctuated equilibria. Authors found that punctuated equilibria do not arise unless sort of compulsory mutations occur at regular intervals.




Back to Guido Fioretti's Homepage