Ludo de la vivo - alia perspektivo pri komputado
#000000
Kiam oni pensas pri komputiloj, oni plej ofte pensas pri la tekokomputilo aŭ persona komputilo kiun oni uzas hejme, pri etaj komputiloj en poŝtelefonoj kaj aliaj maŝinoj, aŭ pri la gigantaj komputiloj kiujn entreprenoj aŭ sciencistoj uzas por prilabori grandajn arojn da datumoj. Malgraŭ ilia diverseco, tiuj maŝinoj havas unu gravan komunan kvaliton, nome ke ili uzas elektronikajn cirkvitojn por fari la kalkulojn. Nenio preventas aliajn sistemojn de iĝi komputiloj tamen. Alternative, oni povas uzi domenajn tabuletojn, rulglobetojn aŭ fluantan akvon por atingi la saman, se oni ruze kunmetas la maŝinon.
#000001
John von Neumann revis pri maŝinoj kiuj povus krei perfektan kopion de si mem kaj pruvis ke tiaj maŝinoj estus la plej efika strategio por la minado de ekzemple asteroidoj. Tiu tasko estis ege malfacila. Kvankam li ja sukcesis matematike priskribi tian maŝinon en 1940, ĝi estis tre komplika ĉela aŭtomato kun multaj reguloj kaj 29 statoj de ĉeloj. Ĉiu ĉelo havis kvar najbarojn kun 29 ŝatoj, de kiuj la sekva generacio dependus. Tio donas 295 eblojn, aŭ ĉirkaŭ dudek milionoj, por nur la plej simpla maŝino. Conway volis draste simpligi tiun modelon kaj kunigis aron da studentoj en 1965 por elpensi novajn regulojn. Trovi bonan sistemon estis malfacila kaj oni devis ellabori ĉion permane, sed oni havis kelkajn sukcesojn. Finfine GOL iĝis la plej konata sistemo, interalie pro ĝia simpleco kaj la fakto ke la kalkuloj ne daŭras tro longe.
#000003
GOL estas nulpersona ”ludo” kiu estas ludata sur senfine granda tabulo kun kvadrataj ĉeloj. Tiuj ĉeloj povas esti nigraj (vivantaj) aŭ blankaj (mortaj) kaj evoluas dum la tempo. Conway elpensis kvar regulojn por priskribi kiel tiu evoluo okazas kaj ili ĉiuj dependas de la kvanto de najbaroj kiun la ĉelo havas. Malkiel la maŝino de von Neumann, oni ne nur enkalkulas la ĉelojn kiuj flanke limas kiel najbarojn, sed ankaŭ tiujn kiuj diagonale limas.
#000005
Por scii kio okazos al la ŝelo, oni nombras kiom da vivantaj najbaroj specifa ĉelo havas kaj sekvas la taŭgan regulon:
#000006
La reguloj de la ludo ŝajnas tute hazardaj, sed malantaŭ ili estas amaso da laboro. Per nur iomete ŝanĝi la regulojn, la sistemo perdas sian balancon kaj kreskas senfine aŭ mortas en kelkaj generacioj. Per ĉi tiuj reguloj tamen, la ludo estas tre fleksebla kaj povas krei amason da ĉelajn strukturojn, kiuj similas al aferoj en la naturo. Ekzemplo de tio estas la kreskado de kristaloj, aŭ ”kolonia inteligenteco”, kie grandskalaj interagoj estas kaŭzataj de tre simplaj decidoj je la ĉela nivelo. Tio similas al formika kolonio. Ankaŭ aliaj regularoj ekzistas sub aliaj nomoj, sed neniu ludo estas tiom vaste uzata kiel GOL.
#000008
Ekzistas multaj strukturoj en GOL kun tre diversaj kvalitoj. Kelkaj estas fiksaj, aliaj moviĝas kaj kelkaj eĉ povas fabriki aliajn strukturojn. Tio donas kompleksecon al la sistemo. Oni havas tre bazajn regulojn, sed malsamaj kondiĉoj je la komenco povas krei la plej mirindajn rezultojn. Unue la strukturoj estis tre simplaj tamen, kaj ekde kiam oni sukcesis krei komputilajn programojn por simili la ludon, oni povis malkovri pli kaj pli komplikajn strukturojn. Tiuj malkovroj bone sekvis la evoluon de la kapabloj de komputiloj kaj hodiaŭtage multaj homoj ankoraŭ provas malkovri novajn strukturojn. Certe estas amuze serĉi senkostan programon por mem eksperimenti, aŭ eĉ fari tion per papero kaj skribilo por vidi kiel ĉio funkcias ene. La strukturojn en la bildoj mi kreis per la programo Golly.
#000009
La ekzemploj ĉi-supre estas fiksaj strukturoj. Neniu ĉelo mortas aŭ ekvivas sen influoj de ekstere. Tio igas ilin tre gravaj, ĉar ili povas subteni pli grandajn strukturojn per agi kiel bariloj, aŭ ili povas agi kiel komputila memoro. De maldekstre la figuroj nomiĝas ”Bloko” (Block), ”Boato” (Boat), ”Pano” (Loaf) kaj “Abelujo” (Beehive). La strukturoj estas tre simplaj kaj eĉ hazarde aperas kiam oni uzas hazardajn kondiĉojn.
#000010
Ĝis nun montritaj strukturoj ja moviĝis, sed ili ne povis interagi. Por krei pli kompleksajn strukturojn, malsamaj partoj bezonas manierojn por komuniki. Tion oni povas fari per moviĝantaj strukturoj kiuj iras en specifa direkto. Strukturoj kiuj kapablas fari tion nomiĝas kosmoŝipoj kaj ili funkcias ĉar ili revenas al la sama strukturo kiel antaŭe, sed iom ŝovite. Kosmoŝipoj estas speco de informo kaj ne povas vojaĝi pli rapide ol ”lumo”. En GOL tio signifas ke nenio povas vojaĝi pli rapide ol unu ĉelo ĉiun generacion, ĉar ĉeloj nur povas influi siajn rektajn najbarojn. Tiu rapideco estas nomata c, sed praktike spacŝipoj ne povas moviĝi pli rapide ol c/2 sen helpo.
#000012
Kosmoŝipoj povas esti parto de la originaj kondiĉoj de la ludo, sed ili ankaŭ povas esti produktataj de strukturoj. Tio povas okazi tute hazarde, sed oni ankaŭ konstruis maŝinojn, kiuj ritme fabrikas novajn kosmoŝipojn kaj elsendas ilin en rektan linion. Oni povas vidi la kosmoŝipojn kiel informojn kaj la linion kiel ŝnuron. Per aliaj kosmoŝipoj aŭ fiksaj strukturoj oni povas bloki la linion se tio necesas. Ĉi tio estas la bazo de GOL kiel vera komputilo, ĉar ĉi tiun transdonadon de informoj ankaŭ ebligas kalkuladon.
#000016
Logika pordo estas la bazo de komputila kalkulado. Ili konsistas el transistoroj kaj havas plej ofte unu aŭ du ŝnurojn kiuj iras enen kaj unu kiu iras eksteren. La stato de la ŝnuro eksteren dependas de la statoj de la ŝnuroj enen kaj tiel oni povas fari la plej bazan kalkuladon. Per ĝuste ordigi tiujn logikajn pordojn, oni povas adicii kaj subtrahi nombrojn kaj krei primitivan komputilan memoron. La bazo por komputilo!
#000019