A genome as a switching circuit
In 1969, biologist Stuart Kauffman proposed a wildly simplified model of gene regulation: treat each gene as a binary switch, on or off, updated at each tick based on the state of a small, fixed number of other genes that regulate it. He called it the NK model — N nodes, each listening to K randomly chosen inputs, each governed by a randomly assigned Boolean rule. It throws away every biochemical detail on purpose, to ask a purely structural question: given only how many things influence each gene, what kinds of long-run behaviour are even possible?
The model, precisely
N nodes, each in state 0 or 1 (off / on) for each node i: choose K OTHER nodes at random → node i's "inputs" assign a RANDOM Boolean truth table with K inputs and 1 output (2^(2^K) possible tables to choose from — e.g. 16 possible tables when K=2) UPDATE RULE (synchronous, every node at once): new_state[i] = truthTable[i]( state[input_1], state[input_2], ..., state[input_K] ) Every node updates simultaneously from the same snapshot, exactly like the Game of Life on this site — this synchrony matters, because it makes the whole network a deterministic function from one of 2^N possible states to another. Deterministic dynamics on a finite state space has an inescapable consequence: starting anywhere, the trajectory must eventually revisit a state it has already seen, at which point it locks into a periodic attractor cycle and repeats it forever.
N nodes, each in state 0 or 1 (off / on) for each node i: choose K OTHER nodes at random → node i's "inputs" assign a RANDOM Boolean truth table with K inputs and 1 output (2^(2^K) possible tables to choose from — e.g. 16 possible tables when K=2) UPDATE RULE (synchronous, every node at once): new_state[i] = truthTable[i]( state[input_1], state[input_2], ..., state[input_K] )
Dlaczego K decyduje o wszystkim
Pojedynczy parametr połączenia K — liczba wejść podłączonych do każdego węzła — okazuje się kontrolować, czy małe zakłócenie ulegnie zanikowi, czy też wybuchnie:
K = 1 ZALEŻNY małe zakłócenia szybko wygaspują; sieć zamraża się w krótkie cykle przyciągania; większość węzłów zablokowuje się na stałą wartość
K = 2 KRITICALNY "brzeg chaosu" — zakłócenia ani nie giną niezawodnie, ani nie rosną niezawodnie; długości przyciągania skalują się w przybliżeniu z √N
K ≥ 3 CHAOTYCZNY jedno odwrócone bity zazwyczaj rozprzestrzenia się przez dużą część sieci w ciągu kilku kroków; długości przyciągania mogą wykładniczo rosnąć wraz z N
Intencją jest, jak daleko rozchodzi się wpływ na każdym kroku. Przy K = 1 każdy węzeł reaguje tylko z jednym innym węzłem, więc wpływ zakłócenia rozprzestrzenia się wzdłuż cienkiej, łatwo przerwanego łańcucha i zazwyczaj wygaspuje. Z większym K każdy węzeł jest centrum dla więcej wejść, więc zmiana gdziekolwiek może mieć więcej szans na propagację do większej liczby węzłów w następnym kroku — a przy K ≥ 3 z genericznie losowych funkcji logicznych wartość bezwzględna ta rozgałęziająca się poza wszystko, nie jest tłumiona, co prowadzi do chaotycznej aktywności.
K = 1 ORDERED small perturbations die out quickly; the network freezes
into short attractor cycles; most nodes lock to a fixed value
K = 2 CRITICAL "the edge of chaos" — perturbations neither reliably die
nor reliably grow; attractor lengths scale roughly with √N
K ≥ 3 CHAOTIC a single flipped bit typically cascades through a large
fraction of the network within a few steps; attractor
lengths can grow exponentially with N
Measuring the boundary: Derrida plots
Bernard Derrida gave a clean, quantitative way to locate the order-chaos boundary: take two copies of the same network, start them in nearly identical states (differing in one bit), run both forward one step, and measure the fraction of nodes that now disagree — the Hamming distance after one update, as a function of the Hamming distance before it. Plot "distance after" against "distance before" across many trials and the curve either bends below the diagonal (differences shrink — ordered regime), sits almost exactly on the diagonal (differences neither grow nor shrink on average — critical), or bends above it (differences amplify — chaotic).
For NK networks with unbiased random Boolean functions, this Derrida curve crosses the diagonal almost exactly at K = 2, which is the origin of the famous "K = 2 is critical" result.
Attractors as cell types
Kauffman's biological punchline was bolder than the mathematics alone: he proposed that different attractor cycles of the same underlying gene network correspond to different, stably differentiated cell types in a real organism — skin cells, liver cells and neurons all share identical DNA, but settle into different self-consistent, self-sustaining patterns of gene activity, exactly as different starting states of the same NK network settle into different attractors. He further noted that networks in the ordered-to-critical regime naturally have a manageable, roughly polynomial number of short attractors — plausibly matching the modest number of distinct cell types found in real organisms — while deep-chaotic networks would have an unmanageably large, exponentially growing number of long, unstable attractors, which is not what biology actually shows.
This remains a provocative hypothesis rather than settled biology, but it is the reason Boolean networks are still a standard toy model in systems biology for thinking about cell-fate stability and reprogramming.
Często zadawane pytania
Dlaczego sieć Boolean z N węzłami musi ostatecznie cyklicznie się powtarzać?
Ponieważ sieć jest deterministyczna i posiada skończoną przestrzeń stanów, składającą się dokładnie z 2^N możliwych konfiguracji. Rozpoczynając od dowolnego stanu początkowego i podążając za deterministycznym regułą aktualizacji, trajektoria musi odwiedzić wcześniej widziany stan w ciągu maksymalnie 2^N kroków – raz to zrobi, będzie to powtarzać tę samą sekwencję na zawsze, tworząc zamknięty atractor cykliczny. Nie ma gdzie indziej, by trajektorii iść.
Co właściwie kontroluje K?
K oznacza liczbę węzłów wejściowych, do których każdy węzeł słucha. Bezpośrednio określa, jak bardzo pojedyncza zmiana bitu może się rozprzestrzeniać: przy małym K, większość zakłóceń ginie, ponieważ niewielu węzłów jest następnie dotkniętych (kolejność). Przy dużym K, pojedynczy flip zazwyczaj powoduje kaskadę i wpływa na około połowę sieci w ciągu kilku kroków (chaos). K=2 z losowymi funkcjami Boolean znajduje się prawie dokładnie na granicy tych obszarów – "brzeg chaosu."
Dlaczego Kauffman uważał to za model biologii komórkowej?
Modelował każdy gen jako węzeł Boolean, włączony lub wyłączony w zależności od stanu niewielkiej liczby regulujących genów (K wejść), a cały genom aktualizował się razem z każdym "tickiem". W tej perspektywie atractor dynamiki to stabilny, samopodtrzymujący się wzorzec aktywności genów – Kauffman postulował, że różne attractorzy tego samego genomu odpowiadają różnym zróżnicowanym typom komórkom (skóra, wątroba, neuron), wszystkie zbudowane z identycznego DNA, ale zablokowane w różnych spójnych wzorcach aktywności.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz Boolean Network i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację Boolean Network