Ugrás a tartalomhoz

Conway's Game of Life

A Wikiszótárból, a nyitott szótárból


Főnév

Conway's Game of Life (tsz. Conway's Game of Lifes)

  1. (informatika) Conway’s Game of Life – magyarul Conway-féle Életjáték – egy celluláris automata, amelyet John Horton Conway angol matematikus talált ki 1970-ben. A játék a rácson zajló élet szimulációját valósítja meg egyszerű szabályok alapján, mégis képes bámulatosan összetett viselkedésre. Nem valódi „játék”, mert nincs játékos és nincs győzelem vagy vereség – sokkal inkább egy matematikai modell vagy szimulációs rendszer.



🌱 Alapötlet

A játék célja: megfigyelni, hogyan fejlődik egy kezdeti cellaállapot az időben, adott szabályok szerint. A rács végtelen (vagy nagy), és minden négyzetrács mező (cell) kétféle állapotú lehet:

  • Élő (live) – általában fekete vagy színes négyzet
  • Halott (dead) – fehér vagy üres négyzet

A játék lépésekben (generációkban) halad. Minden generációban minden cella vizsgálja a 8 szomszédját, és a következő szabályok szerint változtatja az állapotát.



⚙️ Szabályok (B3/S23 szabályrendszer)

Minden cella 8 szomszédot vizsgál:

  • A születés (Birth, B) akkor következik be, ha egy halott cellának épp 3 élő szomszédja van → ez a cella életre kel.
  • A túlélés (Survival, S) akkor történik, ha egy élő cellának 2 vagy 3 élő szomszédja van → életben marad.
  • Más esetben:
    • Egy élő cella meghal (0 vagy 1 szomszéd: magány, 4+ szomszéd: túlnépesedés)
    • Egy halott cella halva marad, ha nincs pontosan 3 élő szomszédja.

Ez determinisztikus: minden új állapot kizárólag az előző állapottól függ.



🧠 Példa: egyszerű minták

Minta neve Leírás
Block 2x2 élő cella – stabil, nem változik
Blinker Három egymás melletti élő cella – periodikus, 2 fázis
Glider 5 cellás forma – mozog átlósan a rácson
Gosper glider gun Létrehoz folyamatosan glidereket – végtelen növekedés



📊 Turing-teljesség

Az Élet játéka Turing-teljes, ami azt jelenti, hogy bármilyen algoritmus (amelyet számítógépen végre lehet hajtani) elvileg modellezhető az Élet játékán keresztül. Ez azt mutatja, hogy a rendszer számítási szempontból elképesztően erős – pusztán lokális, egyszerű szabályokkal.



🧩 Szimulációs jelentőség

Az Élet játékát gyakran használják:

  • Komplex rendszerek modellezésére
  • Önszervező rendszerek, mintafelismerés, evolúció, biológiai rendszerek vizsgálatára
  • Számítástudományi oktatásban, algoritmusok és optimalizáció illusztrálására



💻 Megvalósítás (algoritmus vázlat)

  1. Készíts egy rácsot (2D mátrix), pl. n x n méretben
  2. Kezdeti állapot: élő és halott cellák
  3. Minden generációban:
    • Minden cellára számold meg az élő szomszédokat
    • Alkalmazd a szabályokat
    • Készíts új mátrixot a következő generációhoz
  4. Ismételd, amíg kell (vagy végtelen ciklus)



🧑‍💻 Példa kód (Python)

import numpy as np

def count_neighbors(grid, x, y):
    neighbors = 0
    for i in [-1, 0, 1]:
        for j in [-1, 0, 1]:
            if not (i == 0 and j == 0):
                neighbors += grid[(x + i) % grid.shape[0], (y + j) % grid.shape[1]]
    return neighbors

def step(grid):
    new_grid = np.zeros_like(grid)
    for x in range(grid.shape[0]):
        for y in range(grid.shape[1]):
            n = count_neighbors(grid, x, y)
            if grid[x, y] == 1 and n in [2, 3]:
                new_grid[x, y] = 1
            elif grid[x, y] == 0 and n == 3:
                new_grid[x, y] = 1
    return new_grid

📚 Történelmi érdekesség

  • A játékot Martin Gardner mutatta be 1970-ben a Scientific American magazinban.
  • Az Élet játéka volt az egyik első példája annak, hogyan tudnak egyszerű szabályokból komplex viselkedések kialakulni – ez előfutára volt a káoszelméletnek és a komplex rendszerek tudományának is.



🧬 Tanulság

Conway Élet játéka bemutatja, hogyan lehet a determinista lokális szabályokból globálisan nem determinisztikusnak tűnő komplex viselkedést kapni. Egyaránt inspiráló matematikusok, informatikusok, biológusok és művészek számára.