Życie w komputerze: symulacja czy rzeczywistość?

Cytowanie artykułu: Komosiński M., Życie w komputerze: symulacja czy rzeczywistość? Nauka 2/2011, Polska Akademia Nauk, Warszawa, pp. 83–93. [BibTex]

Streszczenie
Niniejszy artykuł przedstawia dwa podejścia do wykorzystania komputerów jako środowiska, w którym mogą przebiegać procesy życiowe. W pierwszym z nich komputer służy do symulacji modeli życia ziemskiego – zarówno tych dokładnych, umożliwiających lepsze poznanie określonych zjawisk, jak i modeli uproszczonych (takich jak sztuczne sieci neuronowe czy algorytmy ewolucyjne), interesujących z pragmatycznego punktu widzenia. Drugie z opisywanych podejść polega na stworzeniu w komputerze środowiska, które umożliwiłoby rozwój życia. Artykuł pokazuje przydatność pierwszego z tych podejść oraz wskazuje niektóre problemy, pytania i wątpliwości związane z realizacją drugiego z nich.

Kiedy próbujemy porównać ze sobą dwa środowiska: to, które nas otacza oraz to, które stanowi zawartość pamięci komputera, dostrzegamy natychmiast ich radykalną odmienność. Nasze życie jest częścią pierwszego z nich, podczas gdy to drugie – małe, niewidoczne, a dla wielu osób niemal niematerialne – jest często uznawane za niezrozumiałe lub nieciekawe. Co bowiem zaskakującego może kryć się w prądożernych obwodach elektrycznych, układach scalonych i bramkach logicznych, które pozwalają autorowi sprawnie napisać tekst i poprawić błędy wygodniej, niż mógłby to zrobić pisząc na maszynie do pisania? Komputer jest jedynie zaawansowaną, deterministyczną maszyną przetwarzającą informacje, dlatego trudno wyobrazić sobie, by w jego pamięci zaistniało coś, co nazwalibyśmy życiem, i uznalibyśmy za interesujące i wartościowe. Ale czy można być tego absolutnie pewnym? W dalszej części artykułu zastanowimy się nad możliwościami i ograniczeniami komputerów w kontekście fenomenu życia i jego właściwości.

1. Modele i symulacje życia biologicznego

To, że komputer może służyć do symulowania ziemskiego życia, wiadomo od dawna. Istnieją niezliczone modele organizmów biologicznych, ich części, podsystemów oraz procesów, które w tych organizmach zachodzą – służące lepszemu ich poznaniu, począwszy od poziomu chemicznego i komórkowego, a skończywszy na populacjach, ekosystemach i społecznościach [11]. Wykorzystujemy modele neuronów, pamięci, słyszenia, widzenia, wnioskowania, modele kości, ruchu, starzenia się, ewolucji wirusów, wzrostu roślin, wpływu środowiska na rozwój zarodka, wykształcania się języka i komunikacji, koewolucji i podziału na gatunki... i wiele, wiele innych – po to, by móc opisać i lepiej zrozumieć te procesy, włącznie z ich zaburzeniami i anomaliami, które występują w rzeczywistości. Modele takie pozwalają nie tylko opisywać pewne zjawiska; dzięki symulacjom można ich używać do przewidywania przebiegu procesów w przyszłości (np. wyznaczając prawdopodobne scenariusze rozprzestrzeniania się grypy w zależności od rozmaitych warunków), a niekiedy także do wyjaśniania zjawisk z przeszłości.

Symulacje socjologiczne obejmujące dużą liczbę agentów1 mogą dotyczyć nawet takich kwestii jak wpływ egoizmu i altruizmu na jednostki i populacje, pytań czy zachowania altruistyczne mogą spontanicznie wyewoluować, jakie są konsekwencje prawdomówności i oszustwa, itp. Badania takie odwołują się do wcześniejszych rozważań prowadzonych w ramach teorii gier, cybernetyki i teorii systemów. Z kolei „agenci” reprezentujący pojedyncze cząsteczki lub komórki umożliwiają modelowanie oddziaływań międzykomórkowych, co pozwala na przykład opisywać reakcje zapalne i sepsę, a także pomaga w analizie przyczyn niewydolności wielonarządowej (por. rozdział 7 w [11]).

Do opisu zachowania wielkiej liczby identycznych jednostek (cząsteczek, komórek, osobników) używa się tradycyjnie modeli matematycznych, takich jak równania różniczkowe lub rekurencyjne. Opis matematyczny może jednak wymagać założeń, które nie są spełnione w rzeczywistości – na przykład, może wymagać równomiernego rozmieszczenia owych jednostek w przestrzeni. Modele wieloagentowe są często bardziej realistyczne (każda jednostka jest traktowana niezależnie i może być odmienna od pozostałych) oraz bardziej elastyczne (łatwiej takie modele tworzyć, modyfikować i rozszerzać).

Widzimy tu jedno z możliwych zastosowań komputerów: kiedy mamy już wystarczająco dokładny model pewnego zjawiska lub procesu życiowego, możemy go opisać programem komputerowym i dalej symulować ów proces na komputerze („ograniczone modele badawcze” na Rys. 1). Niestety często uważa się, że jest to jedyny kierunek działania w ramach prób tworzenia „komputerowego życia” – to znaczy, że jedynym celem jest możliwie dokładne odzwierciedlenie otaczających nas form życia. Prowadzi to dalej do poczucia, że jedynym życiem jakie może istnieć w komputerze jest życie imitujące organizmy biologiczne. W takim przypadku kryterium oceny symulacji jest ich zgodność ze „wzorem” czyli światem, który nas otacza: im wierniejsza symulacja i dokładniejszy model, tym lepiej. Znakomita większość artykułów opisujących stan prac nad komputerowym życiem, sztuczną świadomością oraz inteligentnymi programami czy robotami dotyczy właśnie tego podejścia: budowania sztucznych tworów, które naśladują w całości lub części organizmy biologiczne (por. dyskusję w [14]).

Rysunek 1. Charakterystyka różnych modeli komputerowego Sztucznego Życia.

Istnieje także druga grupa zastosowań komputerowych modeli życia; modele nie muszą tu wiernie naśladować natury, zależy nam raczej na ich skuteczności [10]. Podobnie jak skrzydło samolotu nie musi przypominać skrzydła ptaka by być przydatnym dla człowieka, tak i sztuczny neuron nie musi przypominać komórki nerwowej w całej jej złożoności. Znaczne uproszczenie wykorzystywanego modelu jest w tym przypadku zaletą, co ilustrują następujące przykłady („algorytmy inspirowane biologicznie” na Rys. 1):

  • Neuron jest jednostką, która w pewien sposób przetwarza sygnały wejściowe (pochodzące z „wyjść” innych neuronów lub ze środowiska) i sam przekazuje efekty swojego działania innym neuronom. Sztuczna sieć neuronowa potrafi dokonywać skomplikowanych obliczeń [6] pomimo tego, że zbudowana jest z bardzo uproszczonych modeli neuronów biologicznych. Jeśli poszczególne neurony lub ich połączenia mogą zmieniać swoją charakterystykę, to sieć jest plastyczna – może się uczyć, albo możemy dostroić jej zachowanie tak, by osiągnąć zadany cel (np. rozpoznawanie sygnałów, przydział obrazów, tekstów albo pacjentów do określonych klas, identyfikację mówcy na podstawie głosu, itp.).
  • Ewolucja to przede wszystkim proces sukcesywnego ulepszania osobników. Szukając jak najlepszych rozwiązań określonego problemu, możemy jego potencjalne rozwiązania potraktować jako osobniki. Dalej wystarczy zdefiniować mutację, krzyżowanie, mechanizm selekcji oraz ocenę przystosowania osobnika w ten sposób, by komputer na drodze ewolucyjnej poszukiwał jak najlepszego rozwiązania postawionego przed nim zadania [7, 10].
  • Koewolucja to proces, w którym zachodzi ewolucja zależnych od siebie populacji osobników. Jeśli potrafimy postawić problem tak, by ocena rozwiązania zależała od jego interakcji z innymi rozwiązaniami, możemy uruchomić koewolucję na komputerze i – przy odpowiednich warunkach – oczekiwać ciągłej, wzajemnej presji wymuszającej postęp w każdej z populacji rozwiązań2. Możemy też zastosować inny rodzaj koewolucji: taki, w którym to nie rozwiązania konkurują ze sobą, ale ich części – podzielone na populacje – współpracują. Wówczas fragmenty rozwiązań „rozmnażają się” proporcjonalnie do tego, jak dobre, kompletne rozwiązania potrafią utworzyć łącząc się z fragmentami rozwiązań z pozostałych populacji.
  • Mrówki, choć niemal ślepe, potrafią dzięki współpracy i komunikacji (stygmergii) skutecznie odkrywać krótkie drogi łączące odległe od siebie lokalizacje. Analogiczne mechanizmy (wirtualne „mrówki” współpracujące przy budowie rozwiązania i komunikujące się za pomocą „feromonu”) wykorzystywane są z powodzeniem w optymalizacji komputerowej do znajdowania jak najlepszych rozwiązań najróżniejszych problemów [5].
  • Lecące stado, w którym poszczególne osobniki dobierają swoją prędkość i kierunek ruchu do zachowania swoich sąsiadów, stanowi interesującą alternatywę dla tradycyjnych algorytmów optymalizacji. Stado jest tu, podobnie jak w przypadku algorytmów ewolucyjnych, populacją rozwiązań przemieszczającą się w przestrzeni możliwych rozwiązań w kierunku, w którym następuje poprawa ich jakości [9]. Kierunek i prędkość ruchu osobników odpowiada ich własnej wiedzy na temat korzystnego kierunku zmian, i ta wiedza jest współdzielona w ramach sąsiadujących rozwiązań.
  • Układ odpornościowy jako złożony, dynamiczny zbiór mechanizmów, którego zasadniczym celem jest identyfikacja i likwidowanie patogenów, stanowi inspirację dla tworzenia uproszczonych, sztucznych systemów immunologicznych. Systemy te, w postaci odpowiednio skonstruowanych programów [3], wykorzystywane są do szybkiego wykrywania anomalii (nietypowych zachowań, wyjątków – stąd częste zastosowania w dziedzinie bezpieczeństwa). Sztuczne systemy immunologiczne posiadają również zdolność wzmacniania swojej odpowiedzi (uczenia się) po wystąpieniu i rozpoznaniu sytuacji uznanej za niepożądaną (wrogą).
  • Cząsteczki (bio)chemiczne wraz z regułami, które pozwalają im się łączyć i wchodzić w reakcje wedle znanych praw – to przykład systemu, w którym, ogólnie mówiąc, różne obiekty oddziałują (lub nie) między sobą i tworzą (lub nie) nowe obiekty. Stąd już krok do „sztucznych chemii”, czyli systemów w których to naukowcy określają rodzaje „cząsteczek” i reguły „reakcji” [4]. Dzięki temu możliwe jest modelowanie, symulowanie, i analiza całej gamy procesów z takich dziedzin jak socjologia, ekonomia, fizyka, chemia czy biologia za pomocą pojedynczego, spójnego podejścia, które stanowi wspólny mianownik dla pozornie odległych od siebie zjawisk.

Powyższe przykłady pokazują, że mechanizmy występujące w przyrodzie mogą być przydatne nawet wtedy, kiedy wykorzystamy jedynie ich główną zasadę działania. Porównując działanie takich wzorowanych na naturze podejść ze znanymi od dawna algorytmami zaprojektowanymi przez człowieka można zauważyć, że rozwiązania inspirowane biologicznie cechuje najczęściej rozproszenie, równoległość i odporność na zakłócenia [10, 11], co determinuje ich wysoką skuteczność i wartość praktyczną.

2. Komputer, w którym istnieje życie

Opisane w poprzednim rozdziale działania, polegające na zmuszeniu komputera do bardziej lub mniej wiernego symulowania życia biologicznego, są przydatne i często wykorzystywane. Jednakże świadomość, że oto komputer stojący na biurku symuluje ławicę ryb, działanie kory mózgowej lub ewolucję wirusa, nie powoduje w nas odczucia, że w tym komputerze jest życie. Dzieje się tak dlatego, że to człowiek poświęcił swój czas by na owym komputerze, krok po kroku, odzwierciedlić interesujące go zjawiska. Co więcej, najczęściej znane są ograniczenia symulowanego procesu – to twórca modelu je narzuca. Jesteśmy zatem przekonani, że ów proces nie osiągnie efektów, które znacznie przekroczą nasze przewidywania.

Zwróćmy uwagę na znaczenie słowa symulacja w kontekście obliczeń komputerowych. Pierwotnie oznacza ono odtwarzanie zjawiska za pomocą modelu, i znaczenie to dobrze opisuje sytuację, w której na komputerze odtwarzamy przybliżone zachowanie naturalnego procesu. Jeśli jednak program komputerowy prowadzi pewien proces lub oblicza stany środowiska, które nie ma żadnego wzorca naturalnego – i tak jesteśmy skłonni powiedzieć, że jest to symulacja. Należy jednak zauważyć, że mamy wtedy do czynienia z oryginalnym środowiskiem, a nie z próbą naśladowania oryginału. Można wyobrazić sobie nawet sytuację, w której owo jedyne w swoim rodzaju środowisko istniejące w pamięci komputera staramy się symulować (odzwierciedlać) w rzeczywistym świecie.

Przekonanie, że symulacje komputerowe są bardzo ograniczone, a efekty ich działania są zgodne z oczekiwaniami, nie zawsze jest słuszne. Ciągle zwiększające się zasoby pamięciowe oraz moce obliczeniowe powodują, że owe ograniczenia są bardziej wyborem projektanta symulacji niż faktycznym niedostatkiem zasobów. Postęp technologiczny spowodował, że komputery mają obecnie nadmiar mocy do wykonania typowych zadań, a użytkownicy przestali zwracać uwagę na to, w ile kilo/mega/giga/terabajtów pamięci jest wyposażony3. Zasobów pamięci jest tak dużo, że zrozumienie jej zawartości stanowi problem nawet wtedy, gdy ta zawartość została wcześniej zaprojektowana i starannie udokumentowana przez człowieka. Jeśli natomiast dostępna pamięć zostanie wypełniona przez złożone struktury w wyniku działania jakiegoś nieznanego procesu, to zrozumienie takiej zawartości będzie poza naszymi możliwościami.

Jeśli nie człowiek miałby zaprojektować życie w komputerze, to w jaki sposób miałoby ono tam powstać? Na przykład zgodnie z zasadą działania algorytmów ewolucyjnych: nie projektujemy rozwiązania, a jedynie sposób jego oceny – przystosowanie do środowiska. W ten sposób można uzyskać program grający wyśmienicie w szachy znając jedynie zasady gry, a samemu nie mając w tej grze żadnego doświadczenia. Tworząc „prawdziwe” komputerowe życie, człowiek musiałby stworzyć odpowiednie warunki sprzyjające jego spontanicznemu powstaniu („złożone środowiska sztucznego życia” na Rys. 1), zamiast starać się bezpośrednio odzwierciedlić już wykształcone życie, które nas otacza. Wynik takiego eksperymentu zależy jedynie od owych warunków: jeśli będą one zbliżone do ziemskich, być może uzyskamy zbliżone rezultaty. Nie ma natomiast powodu, by starać się modelować właśnie ziemskie warunki – istnieje nieskończenie wiele prostszych możliwości.

Oznacza to jednak, że rozwijające się wirtualne środowisko nie musi być zgodne z tym, które znamy (tak jak na przykład środowisko automatów komórkowych4 jest odmienne od naszego): zastosowanie pojęć „osobnik”, „myślenie”, „komunikacja” może być bardzo trudne. Podobnie trudna będzie analiza zachowania systemu czy też stwierdzenie, że dzieje się w nim coś interesującego, jaki jest stopień złożoności oddziaływań, i jakie jest ich znaczenie – wyrażone w kategoriach, które rozumiemy. Dlatego też ludzie najczęściej nie odchodzą zbyt daleko od zasad, które obowiązują w naszym świecie, a najpewniej czują się odzwierciedlając, przynajmniej w ogólnej formie, procesy i mechanizmy występujące wokół nich.

Jeśli jednak jesteśmy w stanie kreować wysoce zróżnicowane środowiska, to jak możemy sprawdzić, czy powstało w nich życie, czy istnieją formy inteligentne, świadome, uczuciowe? Żeby dowieść, że wymienione zjawiska występują lub nie występują, potrzebujemy bardziej ogólnych niż obecnie, a zarazem ścisłych definicji tych zjawisk. Dziś trudno je obiektywnie zmierzyć nawet gdy badamy człowieka – przecież każdy z nas jest inny. Różnimy się tym, jak odbieramy te same bodźce i jakie powodują w nas reakcje. Praktyka pokazuje, że dla ludzi różnice kulturowe lub światopoglądowe stanowią niekiedy barierę nie do pokonania, zatem dogłębne poznanie i zrozumienie innych gatunków jest tym bardziej utrudnione: Czy delfiny są inteligentne? Jeśli tak, to na ile i w jakiej skali? Czy koty posiadają świadomość? Jeśli tak, to jaką? Czy (i na ile) sikorki są uczuciowe? Czy (i na ile) rośliny odczuwają ból? Czy wirusy żyją?

Im dalej odchodzimy od pytań dotyczących gatunku ludzkiego, tym bardziej dostrzegamy trudność zdefiniowania miar, które będą obowiązywały dla dowolnego środowiska – również takiego, którego nie pojmujemy i w którym nie żyjemy. Różnice skłaniają do pochopnego osądzania obcych nam, niezrozumiałych środowisk, jako nieinteresujących. Mówi się nawet o „szowinizmie węglowym”: nasz świat i nasze, biologiczne formy życia, są najdoskonalsze. Tymczasem to, że nie współdzielimy odczucia bólu czy uczucia wdzięczności z innym organizmem, lub że nie mamy wspólnej nazwy na ten stan, nie znaczy jeszcze, że on analogicznych odczuć nie doświadcza.

Bodaj najprostszą do mierzenia ze wspomnianych cech jest inteligencja. Nawet jeśli uwierzymy, że potrafimy oszacować liczbowo pewien rodzaj inteligencji różnych gatunków, to czy można istniejące metody zastosować do sztucznych form życia, które funkcjonują w wirtualnych środowiskach? Znany z badań nad Sztuczną Inteligencją test Turinga [15] pokazuje, jak trudno zaproponować uniwersalny sposób mierzenia inteligencji. W teście Turinga nie oceniamy inteligencji maszyny za pomocą jakichś abstrakcyjnych zadań – sprawdzamy jedynie, jak skutecznie maszyna może udawać człowieka podczas rozmowy. Nie można zatem użyć tej metody do oceny inteligencji istot, z którymi nie da się rozmawiać „po ludzku”. Obecnie to my jesteśmy nie tylko wyrocznią inteligencji, ale też wzorcem, do którego porównujemy wszystko inne, używając naszego sposobu komunikacji, naszych kryteriów oceny i naszych doświadczeń. Taka porównawcza ocena jest wysoce niedoskonała: inteligentni ludzie mogliby zostać uznani za głupców przez jakiś (być może prymitywny) gatunek dlatego, że nie potrafią prowadzić typowej dla tego gatunku konwersacji.

Otaczające nas biologiczne życie ciągle zaskakuje swoją ukrytą złożonością, tymczasem wirtualne środowiska umożliwiają zaistnienie nieskończenie wielu światów bardziej lub mniej podobnych do naszego, w których istnienie i sposób realizacji czasu, przestrzeni, czy też energii będą zależeć od człowieka. Istotniejszym od samego tworzenia takich rozwiniętych środowisk jest udzielenie odpowiedzi na pytanie, czy i jak można je zrozumieć, ocenić, lub świadomie i z pożytkiem wykorzystać.

3. Podsumowanie

Zarówno w tytule, jak i w treści niniejszego artykułu występuje termin „komputer” określający urządzenie zdolne do symulowania procesów i środowisk. Jest to najbardziej elastyczne powszechnie dostępne urządzenie, jednak w kontekście poruszanej tu tematyki nie należy myśleć wyłącznie o biurkowym komputerze lub laptopie. Można dziś wytwarzać specjalizowane układy elektroniczne przystosowane do wykonywania określonych obliczeń, których architektura nie przypomina budowy komputera „dla mas”, jaki znajdziemy w sklepie. Można też konstruować wysoce elastyczne, rekonfigurowalne układy elektroniczne, w których połączenia będą się błyskawicznie zmieniały w trakcie ich działania. Rozwijane są układy hybrydowe łączące podzespoły elektroniczne z substancjami chemicznymi i biochemicznymi – po to, by wykorzystać zalety każdego z tych mediów5. Dokonywać obliczeń można również na cząsteczkach DNA oraz na innych cząsteczkach chemicznych, które posiadają określone właściwości [8]. Sztuczne środowisko, w którym ma powstać życie, nie musi być zatem ograniczone do tradycyjnych komputerów i ich specyficznego charakteru.

Czy życie w komputerze to tylko symulacja życia, czy też prawdziwe życie? Pierwsza część artykułu pokazuje, że możemy mówić o symulacjach: z dnia na dzień coraz bardziej dokładnych, a w pewnym momencie nierozróżnialnych od procesów i form życia, jakie nas otaczają. Dziś większość badań naukowych i doniesień medialnych dotyczy właśnie takiego podejścia – dążenia do perfekcyjnego naśladownictwa (symulacji) życia. Jego ilustracją byłby program szachowy skonstruowany przez specjalistów tak, by wiernie naśladował sposób myślenia człowieka-szachisty. Taki program grałby w szachy „tak, jak człowiek”, w przeciwieństwie do tradycyjnych, dostępnych obecnie programów, które oceniają olbrzymią liczbę potencjalnych ruchów za pomocą reguł zdefiniowanych przez ekspertów i programistów.

Druga część artykułu dotyczy pytania, czy procesom zachodzącym w komputerze zostanie nadany status życia (a nie: symulacji życia). Czy otrzymają one także status inteligencji i świadomości (a nie: symulacji inteligencji i symulacji świadomości)? Być może nastąpi to wtedy, gdy zamiast odzwierciedlać w bardzo ograniczony sposób nasze otoczenie, zostaną stworzone warunki sprzyjające swobodnemu rozwojowi życia w pamięci komputera. Gdy zdefiniowane zostaną cechy, jakie ma posiadać życie – jakiekolwiek życie: biologiczne, krzemowe, mechaniczne, sztuczne, wirtualne, czy też pozaziemskie. Gdy owe cechy będzie można obiektywnie zmierzyć.

Odpowiedź na pytanie, czy procesy zachodzące w komputerze możemy nazwać życiem, zależy od przyjętych definicji. Obecnie wśród cech życia wymienia się metabolizm, rozmnażanie, adaptację, aktywność w środowisku, kodowanie genetyczne, ewolucję, dziedziczenie informacji oraz zdolność do samoorganizacji i przetrwania w postaci zorganizowanej, pomimo niszczącego wpływu otoczenia. Cechy te są najczęściej niezależne od środowiska (medium) w jakim szukamy życia, zatem można ich szukać i w środowisku elektronicznym, i w innych środowiskach. Jeśli zostałyby tam odkryte, można by wtedy, zgodnie ze stanowiskiem „silnego sztucznego życia”, mówić o życiu – dodając dla uściślenia przymiotnik, na przykład „krzemowe”, „elektroniczne” albo „wirtualne”.

Jeśli natomiast założymy, że termin „życie” jest zastrzeżony wyłącznie dla życia biologicznego (stanowisko „słabego sztucznego życia”), to procesy zachodzące w komputerze, które posiadają właściwości kojarzone z życiem, nazwiemy modelami i symulacjami życia. Tej nazwy użyjemy nawet jeśli nie są to modele i symulacje znanego życia biologicznego, i w niczym go nie przypominają. Ale jak wtedy określić procesy obliczeniowe, które posiadają cechy życia, a które, zamiast w tradycyjnym komputerze, zachodzą w środowisku cząsteczek biochemicznych – jako życie czy jego symulację?

Warto zauważyć, że pamięć tradycyjnego komputera jest materialna, więc życie komputerowe istniałoby materialnie (nie byłoby abstrakcyjne). Na niskim poziomie występują układy elektroniczne, na poziomach pośrednich mogą występować liczby i symbole, a na wyższych poziomach – procesy, które zostałyby nazwane życiem lub jego symulacją. Przypomina to występowanie różnych poziomów organizacji u organizmów ziemskich i środowisko chemiczne („substrat”) leżące u podstaw ich życia.

Wgłębiając się nieco w kwestie informatyczne zauważmy, że idee i pomysły są najpierw opisywane formalnie jako algorytmy, później zapisywane w pewnym języku programowania, a następnie przekształcane do postaci rozkazów maszynowych zrozumiałych dla cyfrowych układów procesora. Istnieje tu wiele pośrednich reprezentacji algorytmu, a jego postać wykonywalna podlega dalszym przekształceniom zanim zacznie sterować procesorem. Tymi różnymi reprezentacjami i przekształceniami zajmują się określone programy oraz system operacyjny, który w dzisiejszych czasach bywa czasem symulowany przez inny system operacyjny. Niekiedy wykorzystuje się tak zwane maszyny wirtualne (odrębne środowiska wykonawcze działające w ramach systemu operacyjnego) albo symuluje się pewien rodzaj procesora na innym procesorze.

W rezultacie nawet podczas codziennej pracy na komputerze, mamy do czynienia z wielowarstwową architekturą z wieloma poziomami złożoności i reprezentacji algorytmów, wieloma wzajemnie powiązanymi modułami, oraz wzajemnie zagnieżdżonymi „światami” (systemami operacyjnymi albo procesorami) działającymi jeden w drugim. Dla działającego programu (na przykład symulującego życie) może być nierozróżnialne, czy jest on uruchomiony na prawdziwym telefonie komórkowym z określonym procesorem, czy na symulatorze tego telefonu, czy na symulatorze, który działa na innym symulatorze i na zupełnie odmiennym komputerze. Jednak niezależnie od tego, ile jest pośrednich warstw symulacji, pośrednich przekształceń, i jakie układy elektroniczne (lub inne?) wykonują ostatecznie algorytm – z powodów praktycznych oczekujemy, że rezultaty jego działania będą zawsze takie same. Oznacza to, że charakter środowiska wykonawczego może być nieistotny z punktu widzenia samej idei algorytmu (programu) i rezultatów jego działania. Środowiska, które wydają się nam zupełnie odmienne (np. mechaniczne, chemiczne, elektroniczne) mogą być w tym sensie równoważne.

Zacieranie się granic pomiędzy środowiskiem biochemicznym i elektronicznym powoduje, że coraz trudniej znaleźć krótkie, oczywiste określenia dotyczące tak skomplikowanego fenomenu, jakim jest życie. Choć występują problemy z nazewnictwem i definicjami, nie utrudniają one na szczęście samych badań życia, jego modeli i symulacji. Prawdopodobnie określenie „sztuczne życie” będzie się w przyszłości stawać coraz mniej precyzyjne, bowiem większość form życia będzie w części naturalna, a w części sztuczna – zależnie od stopnia mechanicznej, elektronicznej, genetycznej lub jakiejkolwiek innej ingerencji człowieka. Wszystko wskazuje na to, że – podobnie jak to przedstawiają filmy [12, 2] – również środowiska rzeczywiste i wirtualne będą się łączyć: sztuczne organizmy zaistnieją w realnym świecie pod postacią robotów [13, 1], a ludzka działalność będzie dalej przenosić się do środowisk niematerialnych.

Przypisy

  1. Termin „agent” oznacza w tym przypadku prosty algorytm naśladujący w określonym zakresie zachowanie człowieka (podejmowanie decyzji, uczenie się, komunikację, handel, rywalizację, ruch, itp.).
  2. W prowadzonej na komputerze koewolucji tego typu stosuje się często ulepszenia i modyfikacje, które nie występują w naturze. Obejmują one na przykład przechowywanie interesujących osobników z przeszłości oraz staranne dobieranie osobników, które ze sobą konkurują – tak, aby przeciwnicy nie byli ani zbyt silni, ani zbyt słabi. Inną modyfikacją jest dodatkowe premiowanie tych osobników, które jako nieliczne poradziły sobie z bardzo silnymi przeciwnikami. Udoskonalenia te pozwalają na zwiększenie kontroli nad koewolucją oraz na uniknięcie jej znanych wad (spowolnienia lub zatrzymania postępu, wpadnięcia w cykle czy też utraty różnorodności osobników).

    Takie postępowanie jest przykładem sytuacji, w której uproszczony model pewnego zjawiska zostaje wzbogacony o nowe, niewystępujące w naturze elementy, z korzyścią dla właściwości i skuteczności działania owego modelu.

  3. Ta sekwencja przedrostków, z których każdy kolejny określa tysiąc razy większy mnożnik, pokazuje, jak szybki jest wzrost pojemności dostępnych układów pamięciowych. Wzrost ten wymusza uporządkowanie jednostek stosowanych do określania pojemności pamięci: tradycyjnie w informatyce używano oficjalnych przedrostków układu SI (kilo – 103 czyli tysiąc, mega – 106 czyli milion, itd.), choć w istocie określały one potęgi dwójki (kilo – 210 czyli 1024, mega – 220 czyli 1 048 576, itd.). Wraz z rosnącymi zasobami pamięci komputerowej różnica w znaczeniu przedrostka staje się coraz bardziej istotna, stąd aby uniknąć nieporozumień, zaleca się obecnie stosowanie specjalnych przedrostków dwójkowych (kibi, mebi, gibi, tebi). Dysk o pojemności jednego tebibajta (1 TiB) mieści 240 bajtów, czyli o około 10% więcej, niż dysk o pojemności jednego terabajta (1 TB, bilion bajtów).
  4. Automat komórkowy to w uproszczeniu wielowymiarowa (np. 2-wymiarowa) siatka składająca się z komórek. Każda komórka może przyjmować jeden z wielu stanów w zależności od tego, w jakim stanie są komórki sąsiednie. Chociaż zachowanie każdej z komórek jest deterministyczne i zależy tylko od jej sąsiadów, to zachowanie całego automatu (w zależności od stanu początkowego komórek i reguł ich modyfikacji) może być bardzo skomplikowane i trudne do przewidzenia. Można na przykład obserwować przemieszczanie się pewnych struktur (grup) komórek, ich powielanie, podział, niszczenie, wzrost złożoności, wzajemne oddziaływania zorganizowanych układów komórek, itp. Dochodzi zatem do emergencji jakościowo nowych, nieoczekiwanych zachowań, które powstają jako efekt znanych nam oddziaływań pomiędzy prostymi elementami.
  5. Takie hybrydy są budowane nie tylko w mikroskali (układy scalone połączone z komórkami), ale również w makroskali [1]: roboty mogą być zasilane energią elektryczną uzyskaną z metabolizmu bakterii (zjawisko opisane już na początku XX wieku), a nawet sterowane przez proste organizmy (np. śluzowce) występujące w roli procesora.

Literatura

  1. Adamatzky, A., Komosinski, M. (eds.): Artificial Life Models in Hardware. Springer (2009)
  2. Cronenberg, D.: eXistenZ. Film (1999)
  3. De Castro, L.N., Timmis, J.: Artificial Immune Systems: A New Computational Intelligence Approach. Springer (2002)
  4. Dittrich, P., Ziegler, J., Banzhaf, W.: Artificial chemistries – a review. Artificial Life 7, 225–275 (2001)
  5. Dorigo, M., Stützle, T.: Ant Colony Optimization. MIT Press (2004)
  6. Dreyfus, G.: Neural networks: methodology and applications. Birkhäuser (2005)
  7. Goldberg, D.E.: The Design of Innovation: Lessons from and for Competent Genetic Algorithms. Kluwer Academic Publishers (2002)
  8. Kahan, M., Gil, B., Adar, R., Shapiro, E.: Towards molecular computers that operate in a biological environment. Physica D: Nonlinear Phenomena 237(9), 1165–1172 (2008). DOI: 10.1016/j.physd.2008.01.027
  9. Kennedy, J., Eberhart, R.C., Shi, Y.: Swarm Intelligence: Collective, Adaptive. Morgan Kaufmann (2001)
  10. Komosinski, M.: Sztuczne życie. Algorytmy inspirowane biologicznie. Nauka 2008(4), 7–21 (2008)
  11. Komosinski, M., Adamatzky, A. (eds.): Artificial Life Models in Software, second (revised and expanded) edn. Springer (2009)
  12. Lisberger, S.: TRON. Film (1982)
  13. Pollack, J.B., Hornby, G.S., Lipson, H., Funes, P.: Computer creativity in the automatic design of robots. Leonardo 36(2), 115–121 (2003)
  14. Tallis, R., Aleksander, I.: Computer models of the mind are invalid. Journal of Information Technology 23, 55–62 (2008)
  15. Turing, A.M.: Computing machinery and intelligence. Mind LIX(236), 433–460 (1950). 10.1093/mind/LIX.236.433