Conway elu mäng

Klõpsa rakke, et mängida jumalat ja joonistada oma olend — või laadi klassikaline muster — seejärel vajuta esitust ja vaata, kuidas lihtsad reeglid loovad keerulist elu.

Interaktiivse simulatsiooni laadimine...

Õppetund

Teooria — Conway elu mäng

Kogu elumäng on kaks arvu. B3: surnud rakk, millel on täpselt kolm elavat naabrit, sünnib. S23: elav rakk kahe või kolme naabriga jääb ellu, muidu sureb. Muud reeglit ei ole, juhust ei ole ja mängijat ei ole — sina paned paika esimese põlvkonna ja kõik ülejäänu on sunnitud. Kõik, mida paneel loeb, ja iga muster rippmenüüs on nende kahe arvu tagajärg, rakendatuna kõigile rakkudele korraga.

Mida iga sümbol tähendab

n
elavate rakkude arv raku kaheksa naabri seas — neli külge ja neli nurka. Iga otsus selles mängus tehakse selle ühe täisarvu põhjal.
B3
sünnireegel. Täpselt kolm: kahest jääb väheks ja neli on liiga palju, ning just see teravus annab mustritele selged servad, mitte laialivalguvad plekid.
S23
ellujäämisreegel. Elav rakk, millel on vähem kui kaks naabrit, sureb nagu üksindusse; rohkem kui kolmega nagu ülerahvastusse.
Phase
paneeli enda otsus selle kohta, mida muster teeb — Evolving, Still life, Oscillating või Extinct. See on võrdlus varasemate põlvkondadega, mitte ennustus.

Kust valem tuleb

  1. Loenda iga laual oleva raku kohta elavad tema kaheksa naabri seas. Tee seda ka surnud rakkude jaoks — sünd otsustatakse samamoodi nagu ellujäämine ja rakul, keda veel ei ole, on ikkagi naabrid.
  2. Rakenda B3. Surnud rakk, millel n = 3, ärkab ellu. Lae plokk ja kontrolli: iga tühi ruut, mis teda puudutab, näeb ülimalt kahte elavat, seega tema kõrvale ei sünni kunagi midagi. Just seepärast plokk paigal püsibki.
  3. Rakenda S23. Elav rakk, millel n = 2 või n = 3, jääb alles. Iga ploki neljast rakust puudutab täpselt kolme teist, seega jäävad kõik neli ellu ja plokk taastoodab end täpselt.
  4. Ja tee kõik seda korraga. Iga rakku hinnatakse sama hetkevõtte suhtes ja seejärel asendatakse kogu laud. Uuenda selle asemel rakk-rakuhaaval ja saad teistsuguse, vale mängu — juba muudetud naaber mõjutaks kõrvalolevat rakku. Üheaegsus pole teostuse pisiasi, vaid osa reeglist.

Kuidas nähtut lugeda

Jälgi ruudustiku asemel rida Phase. Lae plokk ja ühe põlvkonna järel seisab seal Still life; vilkur vajab kaht, enne kui ilmub Oscillating; diehard jookseb 130 põlvkonda ja näitab siis Extinct. Lae nüüd liugur ja astu nii kaua kui tahad. Ta jääb igaveseks Evolving peale — ja ta on menüü kõige korrapärasem asi, korrates oma täpset kuju iga nelja põlvkonna järel. Klassifikaator võrdleb kogu lauda varasemate laudadega ja liuguri laud ei kordu kunagi, sest kuju on nihkunud ühe ruudu diagonaalis. Ränduv kord on nähtamatu testile, mis otsib paigalseisvat korda.

Eeldab
Lõplikku lauda — ja sellist, mida sa päris ei juhi: iga muster toob kaasa oma ruudustiku suuruse ja tühistab sinu oma. Leht avaneb 30×30; vali Acorn ja sellest saab 50×50, sea käsitsi 70 ja see püsib, vali siis Diehard ja see langeb 40×40 peale. Conway reegel on määratletud piiramatul tasandil, nii et muster, mis siin servani jõuab, ei mängi enam päris sedasama mängu.
Ei kehti, kui
Phase’i rida ei saa sulle kunagi öelda, et muster jääb ellu. Lae diehard: seitse rakku, mis kasvavad kahekümne neljani, uitavad üle saja põlvkonna ja on 130. põlvkonnaks kadunud — nimi on välja teenitud. Miski ekraanil ei vihjanud sellele enne 130. põlvkonda ja miski ei saanudki. Elumäng on Turingi mõttes universaalne, seega küsimus „kas see muster sureb välja?“ on peatumisprobleem teises kübaras ja ükski algoritm seda ei lahenda. Paneel vastab otsustatavale küsimusele — kas see laud on juba kordunud? — ja ütleb oodates hoolikalt Evolving, mitte midagi tugevamat.

Vaikelu ei tähenda, et midagi ei toimu — see on aritmeetika, mis klapib igas rakus korraga 🖖

Lae muster block ja loe ise üle. Iga selle neljast elusast rakust puutub täpselt kolme teist elusat rakku, ja kolm on ühtaegu sünni- ja ellujäämisarv, nii et kõik jäävad elama. Samal ajal puutub iga tühi rakk ploki ümber kõige rohkem kahte elusat rakku, ja kaks ei ole kolm, nii et midagi ei saa sündida. Plokk ei püsi sellepärast, et temaga ei juhtu midagi, vaid sellepärast, et reeglit hinnatakse igal pool ja igas põlvkonnas ning loendus tuleb korraga kõigis suundades soodne. Murra üks nurk ära ja see tasakaal on kadunud.

Mäng ilma mängijateta 🖖

Conway elu on mängijata mäng: sead algrakud paika, vajutad käivitamist ega puuduta seda enam kunagi. Kõik edasine tuleneb vaid kahest reeglist — surnud rakk, millel on täpselt 3 elavat naabrit, ärkab ellu, ja elav rakk jääb ellu ainult 2 või 3 naabriga. Sellest kasvab välja kolm saatust: mõned kujundid tarduvad igaveseks, mõned vilguvad tsüklis ja mõned (nagu glider) liuglevad ühtlaselt üle ruudustiku.

50-dollariline kihlvedu, mille Conway kaotas 🖖

1970. aastal oletas Conway, et ükski algmuster ei saa lõpmatuseni kasvada, ja pakkus Martin Gardneri Scientific Americani veerus 50 dollarit igaühele, kes selle lahendaks. Mõne nädalaga ehitas Bill Gosperi rühm MIT-is glideripüssi — mustri, mis paiskab iga 30 põlvkonna järel välja uue glideri, nii et populatsioon kasvab piiritult. Gosper võitis raha ja lükkas oletuse ümber; püssi saab ühe mustrina ülal laadida.

Ülesanne täielikult lahendatud

  1. Viis elusat rakku 30 × 30 ruudustikul 5 sammu

    Viis elusrakku 30 × 30 ruudustikul. Arvutage tihedus, mille paneel kuvab, seejärel arvutage, kui kiiresti liugur liigub ja miks see ei saa kiiremini liikuda. See on olek Liugur.

    1. Tihedus on lihtsalt elusrakkude arv jagatud rakkude koguarvuga ning ruudustik on ruudukujuline.

    2. Reegel täielikul kujul. Pane tähele, mida see ei sisalda: ei mingit mõistet suunast, kaugusest ega mälust. Rakk näeb kaheksat naabrit ja praegust põlvkonda, ja see on kõik.

    3. Jälgi liugurit läbi nelja sammu ja see on taas oma algses kujus, üks rakk paremal ja üks rakk allpool. Kaks neist sammudest ei sarnane sugugi algusega, mis tõttu periood on neli, mitte kaks.

    4. Kiirus on nihe jagatud perioodiga. Piirkiiruse nimetaja määravad naabrid: üks rakk põlvkonna kohta on kiireim viis, kuidas info saab liikuda.

    5. Skaleeri see lauale. Läbimisaeg on mustri ja ruudustiku omadus, mitte animatsiooni kiiruse oma — see muudab vaid seda, kui kaua tuleb oodata.

    Vastus

    c/4, kus c on üks rakk põlvkonna kohta. Elumängul on range kiiruspiirang ja see tuleneb otseselt reeglist: rakk vaatab alati ainult oma kaheksat naabrit, seega ei saa ükski mõju liikuda rohkem kui ühe raku võrra põlvkonna kohta, ükskõik millise mustri te ehitate. See on kausaalkoonus ja Elumängu kirjanduses nimetatakse seda ilma suurema irooniata valguse kiiruseks. Liugur taastab oma algse kuju nelja põlvkonna järel, nihkudes ühe raku võrra diagonaalselt, seega liigub see veerandiga piirkiirusest — ja miski, mis on ehitatud reeglistiku B3/S23 põhjal, pole kunagi ületanud c/2 ortogonaalselt. Perioodi ja nihkega viierakuline muster on Elumängus väikseim objekt, mis kuskile liigub, ning sellel kulub laua läbimiseks 120 põlvkonda ehk selle kiirussätte juures 24 sekundit.

Allikad (3)

Näiteülesanded

  • Liugleja - Liugleja liigub diagonaalselt
  • Vilkur - Vilkur, ostsillaator perioodiga 2
  • Liugleja relv - Gosperi liugleja kahur loob liuglejaid
  • Pulsar - Pulsar, ostsillaator perioodiga 3