Duch w maszynie
-
- Paweł Brągoszewski,
- 01.02.2004
Klatka z patyczakami
Jeden z najciekawszych obecnie projektów związanych z zagadnieniem sztucznego życia to dzieło młodych polskich naukowców. Symulacja życia, a przede wszystkim ewolucji prostych organizmów (nazwanych właśnie "framsticks"), uwzględniająca najnowsze badania (między innymi wykorzystująca logikę rozmytą), a jednocześnie niesłychanie atrakcyjna nawet dla laików. Obserwowanie ewolucji kolejnych pokoleń stworzonek zamieszkujących wirtualny świat, podglądanie ich życia "codziennego": szukania źródeł energii, walki, prób biegu i pływania - to prawdziwa przyjemność! Niewątpliwą zaletą Framsticks, oprócz rzetelnych podstaw naukowych, jest wizualna atrakcyjność. Organizmy oglądamy w ich naturalnym środowisku, w realistycznej grafice 3D, a dodatkowe narzędzia umożliwiają stworzenie grafik i filmów na bardzo wysokim poziomie.

John Conway, matematyk brytyjski, twórca, "Gry w życie"
Patyczaki w projekcie Framsticks mają własny genotyp, odpowiednik kodu DNA występującego we wszystkich prawdziwych organizmach. Patyczaki są stworzeniami o uproszczonej budowie: składają się z kości oraz mięśni, mają też elementy umożliwiające wchłanianie energii oraz receptory zapachu, dotyku i równowagi. Sterowanie ruchem patyczaka odbywa się za pomocą sieci neuronowej. Stworzenia poruszają się w wirtualnym trójwymiarowym środowisku, pozyskując energię z jej źródeł lub poprzez zabicie innego stworzenia. Gdy wyczerpią swój zapas energii na ruch i walkę - giną. Kolejne pokolenia stworków podlegają mutacjom. Jeśli w wyniku mutacji powstanie patyczak lepiej przystosowany do panujących warunków - przetrwa i wygeneruje kolejne stworki, jeśli mutacja podąży w złym kierunku - zginie, nie przekazując dalej swojego genotypu. Zupełnie jak w życiu... Ruch stworzeń został zaprojektowany bardzo starannie i realistycznie, przy użyciu specjalnego silnika fizycznego, opartego na metodzie elementu skończonego i dynamice bryły sztywnej.

Interfejs programu Framsticks jest dość skomplikowany, ale warto poświęcić mu dłuższą chwilę.
Patyczaki możesz hodować także w swoim komputerze. Odpowiedni program można pobrać ze stronyhttp://www.frams.alife.pl , znajdziesz go również na naszych krążkach CD/DVD. Program jest klasy shareware, dlatego aby w pełni korzystać z jego możliwości (a przede wszystkim - wizualizacji 3D), powinieneś go zarejestrować (kosztuje to 35 USD, w wersji edukacyjnej - 25 USD). Obsługa aplikacji nie jest intuicyjna, na początkowym etapie zabawy możesz mieć trochę problemów z założeniem hodowli. Najlepiej skorzystać z gotowych stworzeń, których genotyp możesz dowolnie modyfikować lub też poddawać losowym mutacjom. Każdy z patyczaków, chociaż to bardzo proste stworzenie, ma własne imię i nazwisko. Ulubionym patyczakiem w mojej hodowli był Aruzir Etehohutu, meduzopodobny stwór zamieszkujący środowisko wodne. Niestety, kolejne mutacje, czyli potomkowie Aruzira, okazały się zupełnie nieprzystosowane i szybko ginęły, tracąc energię na mało wydajne próby poruszania się.
Jeśli chciałbyś wygenerować tak efektowne, realistyczne grafiki, jak te, które oglądasz w piśmie, użyj specjalnego dodatku do Framsticks, pliku definicji do programu POV-Ray (znana aplikacja renderująca realistyczne obrazy 3D). POV-Ray w wersji również znajdziesz na naszych krążkach.

Realistyczna wizualizacja patyczaka wyhodowanego w programie Framstick.
Jeśli uznasz program Framsticks za zbyt skomplikowany, wypróbuj starsze i nieco prostsze programy do hodowli wirtualnych organizmów (wszystkie znajdziesz na naszych krążkach). GenePool 3 to bardzo prosty symulator wirtualnej sadzawki z pływającymi stworzonkami. Użytkownik nie ma wielu możliwości wpływania na losy żyjątek, może jedynie wybrać sposób doboru partnera "reprodukcyjnegoÓ: czy będzie to ten o najbardziej podobnym kolorze, czy ten największy, czy może najbardziej ruchliwy. Żyjątka poruszają się, spotykają i rozmnażają. Najlepszą metodą korzystania z GenePool 3 jest uruchomienie programu, obejrzenie różnorodnych stworzonek zamieszkujących wirtualny staw i pozostawienie ich swojemu losowi na dłuższy czas. Gdy po kilku godzinach ponownie odwiedzisz poletko doświadczalne, ujrzysz zupełnie inne stworzenia! W podobny sposób działa program DarwinPond, aplikacja przeznaczona raczej do starszych systemów operacyjnych. Tutaj możesz ręcznie umieszczać żyjątka, dodawać i usuwać zasoby pożywienia, wczytywać różne rodzaje stworzeń z plików.
Porozmawiaj z nią

Rozmowy z maszyną to nie tylko zabawa - komercyjne projekty tworzone są także w Polsce.
Odrębną i intrygującą kategorią projektów związanych ze sztuczną inteligencją są programy symulujące rozmowę z żywym człowiekiem w języku naturalnym (przekazywanym za pomocą klawiatury i ekranu). Takie aplikacje, których zadaniem jest, między innymi, pomyślne przejście testu Turinga, korzystają na równi z metod sztucznej inteligencji i lingwistyki matematycznej, a ich twórcy często stosują różne sztuczki psychologiczne, aby podtrzymać wrażenie konwersacji z żywym człowiekiem.
Jednym z pierwszych programów symulujących rozmowę z człowiekiem była ELIZA z 1968 roku. Aplikacja miała tylko 240 wierszy kodu! Eliza nie była zaawansowanym programem, po chwili rozmowy każdy mógł się zorientować, że ma do czynienia z maszyną. Najnowszą wersję Elizy - dosową, działającą bez problemu w Windows, znajdziesz na naszych krążkach.
Pierwszy poważny sprawdzian algorytmów symulujących rozmowę z człowiekiem odbył się w 1991 roku. Wyniki były co najmniej interesujące. Za najbardziej ludzki uznano program (!) gawędzący na luźne tematy, a za komputer uznano człowieka - znawcę dzieł Szekspira. Cytowanie z pamięci fragmentów sztuk wielkiego Williama zasugerowało osobom poddającym się testowi, że mają do czynienia z maszyną... Twórca polskiego programu AnA, symulującego konwersację z żywą istotą, testował możliwości swojej aplikacji na... internautach rozmawiających na kanałach IRC. Wielu z nich nie zauważyło, że mają do czynienia z wirtualną dziewczyną...
Wydawać by się mogło, że programy symulujące rozmowę z żywym człowiekiem, to - na obecnym etapie - wyłącznie zabawa. Otóż nie! Działa już w Polsce firma (http://www.fido.pl ), wykonująca komercyjne aplikacje internetowe, tzw. linguaboty, działające w charakterze wirtualnych przewodników po serwisach WWW, "pracowników" biura obsługi klienta itd. Pierwszy poważny projekt został już zrealizowany i wdrożony. Wirtualnego pracownika możesz spotkać na stroniehttp://www.sterprojekt.pl .
procedura ObliczSasiadow;
var
i,j: Integer;
begin
for i:=1 to 100 do
for j:=1 to 100 do
begin
// oblicz liczbę sąsiadów,
// nie zwracamy uwagi na brzegi obszaru
Sasiedzi[i][j]:= Organizm[i-1][j-1]+Organizm[i]
[j-1]+Organizm[i-1][j]
+Organizm[i+1][j]+Organizm[i][j+1]+Organizm[i+1] [j+1]
+Organizm[i+1][j-1]+Organizm[i-1][j+1];
end;
end;
procedure NastepnePokolenie;
var
i,j: Integer;
begin
for i:=1 to 100 do
for j:=1 to 100 do
begin
//czy organizm przeżył?
if (Sasiedzi[i][j]=3) then
Organizm[i][j]:= 1
else if (Sasiedzi[i][j]=2) and (Organizm[i] [j]=1) then
Organizm[i][j]:= 1
else
Organizm[i][j]:= 0;
end;
end;