# NK model

The NK model is a mathematical model described by its primary inventor Stuart Kauffman as a "tunably rugged" fitness landscape. "Tunable ruggedness" captures the intuition that both the overall size of the landscape and the number of its local "hills and valleys" can be adjusted via changes to its two parameters, $N$ and $K$, with $N$ being the length of a string of evolution and $K$ determining the level of landscape ruggedness.
The NK model has found application in a wide variety of fields, including the theoretical study of evolutionary biology, immunology, optimisation, technological evolution, team science, and complex systems. The model was also adopted in organizational theory, where it is used to describe the way an agent may search a landscape by manipulating various characteristics of itself. For example, an agent can be an organization, the hills and valleys represent profit (or changes thereof), and movement on the landscape necessitates organizational decisions (such as adding product lines or altering the organizational structure), which tend to interact with each other and affect profit in a complex fashion.
An early version of the model, which considered only the smoothest ($K=0$) and most rugged ($K=N-1$) landscapes, was presented in Kauffman and Levin (1987). The model as it is currently known first appeared in Kauffman and Weinberger (1989).
One of the reasons why the model has attracted wide attention in optimisation is that it is a particularly simple instance of a so-called NP-complete problem which means it is difficult to find global optima. Recently, it was shown that the NK model for K > 1 is also PLS-complete which means than, in general, it is difficult to find even local fitness optima. This has consequences for the study of open-ended evolution.

## Prototypical example: plasmid fitness

A plasmid is a small circle of DNA inside certain cells that can replicate independently of their host cells. Suppose we wish to study the fitness of plasmids.
For simplicity, we model a plasmid as a ring of N possible genes, always in the same order, and each can have two possible states (active or inactive, type X or type Y, etc...). Then the plasmid is modelled by a binary string with length N, and so the fitness function is $F:\{0,1\}^{N}\to \mathbb {R}$.
The simplest model would have the genes not interacting with each other, and so we obtain$F(S_{1}S_{2}\cdots S_{N})=f_{1}(S_{1})+f_{2}(S_{2})+\cdots +f_{N}(S_{N})$where each $f_{i}(S_{i})$ denotes the contribution to fitness of gene $S_{i}$ at location $i$.
To model epistasis, we introduce another factor K, the number of other genes that a gene interacts with. It is reasonable to assume that on a plasmid, two genes interact if they are adjacent, thus giving$F(S_{1}S_{2}\cdots S_{N})=f_{1}(S_{1},S_{2})+f_{2}(S_{2},S_{3})+\cdots +f_{N-1}(S_{N-1},S_{N})+f_{N}(S_{N},S_{1})$For example, when K = 1, and N = 5,
    $F(00101)=f_{1}(0,0)+f_{2}(0,1)+f_{3}(1,0)+f_{4}(0,1)+f_{5}(1,0)$
The NK model generalizes this by allowing arbitrary finite K, N, as well as allowing arbitrary definition of adjacency of genes (the genes do not necessarily lie on a circle or a line segment).

## Mathematical definition

The NK model defines a combinatorial phase space, consisting of every string (chosen from a given alphabet) of length $N$. For each string in this search space, a scalar value (called the fitness) is defined. If a distance metric is defined between strings, the resulting structure is a landscape.
Fitness values are defined according to the specific incarnation of the model, but the key feature of the NK model is that the fitness of a given string $S$ is the sum of contributions from each locus $f_{i}(S)$ in the string:
    $F(S)=\sum _{i}{\tilde {f}}_{i}(S),$
and the contribution from each locus in general depends on its state and the state of $K$ other loci,:
    ${\tilde {f}}_{i}(S)=f_{i}(S_{i},S_{k_{i1}},\dots ,S_{k_{iK}}),$
where $k_{ij}$ is the index of the $j$th neighbor of locus $i$.
Hence, the fitness function $f_{i}$ is a mapping between strings of length K + 1 and scalars, which Weinberger's later work calls "fitness contributions". Such fitness contributions are often chosen randomly from some specified probability distribution.

### Example: the spin glass models

The 1D Ising model of spin glass is usually written as$H=-\sum _{i=1}^{N}J_{i,i+1}S_{i}S_{i+1}-\mu \sum _{i=1}^{N}h_{i}S_{i}$where $H$ is the Hamiltonian, which can be thought as energy.
We can reformulate it as a special case of the NK model with K=1:$H=F(S)=\sum _{i,j}f_{i,j}(S_{i},S_{j})$by defining$f_{i}(S_{i},S_{i+1})=-J_{i,i+1}S_{i}S_{i+1}-\mu h_{i}S_{i}$In general, the m-dimensional Ising model on a square grid $\{1,2,...,n\}^{m}$ is an NK model with $N=n^{m},K=m$.
Since K roughly measures "ruggedness" of the fitness landscape (see below), we see that as the dimension of Ising model increases, its ruggedness also increases.
When $\mu =0$, this is the Edwards–Anderson model, which is exactly solvable.
The Sherrington–Kirkpatrick model generalizes the Ising model by allowing all possible pairs of spins to interact (instead of a grid graph, use the complete graph), thus it is also an NK model with $K=N-1$.
Allowing all possible subsequences of spins to interact, instead of merely pairs, we obtain the infinite-range model, which is also an NK model with $K=N-1$.

## Tunable topology

The value of K controls the degree of epistasis in the NK model, or how much other loci affect the fitness contribution of a given locus. With K = 0, the fitness of a given string is a simple sum of individual contributions of loci: for nontrivial fitness functions, a global optimum is present and easy to locate (the genome of all 0s if f(0) > f(1), or all 1s if f(1) > f(0)). For nonzero K, the fitness of a string is a sum of fitnesses of substrings, which may interact to frustrate the system (consider how to achieve optimal fitness in the example above). Increasing K thus increases the ruggedness of the fitness landscape.

### Variations with neutral spaces

The bare NK model does not support the phenomenon of neutral space -- that is, sets of genomes connected by single mutations that have the same fitness value. Two adaptations have been proposed to include this biologically important structure. The NKP model introduces a parameter $P$: a proportion $P$ of the $2^{K}$ fitness contributions is set to zero, so that the contributions of several genetic motifs are degenerate. The NKQ model introduces a parameter $Q$ and enforces a discretisation on the possible fitness contribution values so that each contribution takes one of $Q$ possible values, again introducing degeneracy in the contributions from some genetic motifs. The bare NK model corresponds to the $P=0$ and $Q=\infty$ cases under these parameterisations.

## Known results

In 1991, Weinberger published a detailed analysis of the case in which $1<<k\leq N$ and the fitness contributions are chosen randomly. His analytical estimate of the number of local optima was later shown to be flawed. However, numerical experiments included in Weinberger's analysis support his analytical result that the expected fitness of a string is normally distributed with a mean of approximately
$\mu +\sigma {\sqrt {{2\ln(k+1)} \over {k+1}}}$
and a variance of approximately
${{(k+1)\sigma ^{2}} \over {N[k+1+2(k+2)\ln(k+1)]}}$.

## Applications

The NK model has found use in many fields, including in the study of spin glasses, collective problem solving, epistasis and pleiotropy in evolutionary biology, and combinatorial optimisation.