Miesięczne archiwum: luty 2007

Pachnidło

W drodze na Kongregację Odpowiedzialnych skończyłem czytać zewsząd reklamowany bestseller Pachnidło. Czymś, co zaciekawiło mnie najbardziej są opisy. Nie ma tu opisów tego jak coś wygląda, ale jak to pachnie. Przywołane zostały setki nazw zapachów. Inna sprawa, że niewiele z nich kojarze, ale podziwiam autora, który wykazał się dużym znawstwem opisywanej dziedziny. No, w każdym razie umiał stworzyć takie pozory ;). A poza tym? Przeciętne moim zdaniem – fabuła bez jakichś ogromnych niespodzianek, pomysł z głównym bohaterem – geniuszem zapachu – może i dobry, ale po tych 200 stronach zdążył się jakoś znudzić (przynajmniej mi). Końcówka wzbudziła we mnie mieszane uczucia (może to i dobrze?) – z jednej strony jakaś taka nijaka, a z drugiej to dobre zakończenie powieści, która cała jest utrzymana w turpistycznej estetyce. W skali szkolnej: 4.

Nowy umysł cesarza

Jestem właśnie w trakcie lektury książki Rogera Penrose‚a pt. Nowy umysł cesarza. Autor zastanawia się, czy możliwe jest stworzenie komputera, który działałby tak jak ludzki umysł. Ale jak ten umysł właściwie działa? Aby to wyjaśnić, autor uważa za niezbędne przedstawienie teorii kwantów, ogólnej i szczególnej teorii względności, „klasycznych” teorii fizycznych, zagadnienia obliczalności, determinizmu, twierdzenia Gödla i wielu innych ważnych teorii nauk ścisłych. Czyni to jednak w sposób zrozumiały, każda nowa teoria jasno wypływa z poprzednich, a na początku wystarczy znajomość podstaw matematyki.

Zadziwiający dla mnie jest fakt, że w celu opisania działania ludzkiego umysłu, trzeba powoływać się na tak wiele nowych i zaawansowanych teorii. Jednak nawet te zaawansowane teorie nie wystarczają, aby w pełni wyjaśnić jak to się dzieje, że człowiek potrafi wymyśleć takie rzeczy i rozwiązać takie problemy, których setka komputerów nie rozwiąże nigdy.

Człowiek jest więc zwieńczeniem stworzenia, umysł jest bytem korzystającym z najbardziej zaawansowanych (a może właśnie najbardziej pierwotnych i podstawowych) właściwości naszego świata. Czy istnieją nauki bardziej humanistyczne niż nauki ścisłe, skoro matematyka i fizyka pozwalają nam dojść do takich właśnie wniosków?

Czarne oceany

Podtytuł bloga został zaczerpnięty z mojej ulubionej książki: Czarne oceany. Autor – Jacek Dukaj – przedstawił w niej dość spójną i niestety pesymistyczną (czarną?) wizję przyszłości. Wizja ta składa się z bardzo wielu mniejszych i większych cegiełek – pomysłów Dukaja, dotyczących bardzo różnych sfer życia. Te które najbardziej utkwiły mi w pamięci, to:

Nowa Etykieta. Zaczęło się od procesów o molestowanie seksualne w pracy pod koniec lat ’90 XX wieku. Szereg precedensów doprowadził do sytuacji, w której uśmiech do przechodzącej ulicą kobiety może stać się przestępstwem karanym gigantyczną grzywną (równą życiowemu dorobkowi). Gesty takie jak poklepanie kogoś po plecach, czy wejście do czyjegoś biura bez odpowiednich formułek powitalnych jest już zbrodnią.

Metagiełda. Czyli giełda, która nie odzwierciedla niczego prócz giełdy. Zaczęło się od stosowania prostych programów eksperckich, umożliwiających sprzedaż całości akcji w czasie krachu. Z czasem programy te stawały się coraz bardziej inteligentne, aż do momentu, w którym to one podejmują wszystkie ważne decyzje. Ludzie zajmują się jedynie konserwacją. Najgorsze jest to, że nie ma z tego systemu ucieczki – kraj czy instytucja, która chciałaby zrezygnować z programów eksperckich, zostanie po prostu bankrutem – człowiek nie dorówna w metagiełdowych analizach maszynie. Skutkiem ubocznym jest to, że wskaźniki giełdowe i zależności między nimi stały się nie do pojęcia nawet dla siedzących w cztero- i pięciowymiarowych symulacjach operatorów.

Komputery osobiste. To jest pomysł, który podoba mi się najbardziej. Komputery osobiste nie mają już postaci beżowych skrzynek, nie chowa się ich nawet do kieszeni, a wszczepia bezpośrednio w układ nerwowy. Komunikacja z takimi wszczepkami odbywa się w oparciu o rzeczywistość wirtualną – obok użytkownika takiego komputera pojawia się postać menadżera wszczepki, któremu można wydawać polecenia (myślami, lub przy użyciu np. fantomowego szóstego palca). Dukaj w pełni rozumie możliwości, jakie daje taka wszczepka. W pewnym momencie bohater znajduje się w ciemnym pomieszczeniu. Menedżer wszczepki każe mu klasnąć, a następnie analizując to, jak rozchodzi się dźwięk, jest w stanie ukazać bohaterowi zarysy pomieszczenia (oczywiście w VR). Istnieją – nielegalne wprawdzie – programy w pełni modyfikujące docierającą do ich użytkownika rzeczywistość. Chętni mogą na przykład przenieść się do świata horrorów Lovecrafta. Jak wówczas jednak rozpoznać, czy docierające bodźce są ciągle elementem gry, czy też prawdziwą rzeczywistością? Istnieją również w pełni legalne edytory ruchu, wspomagające strzelanie z pistoletu czy umiejętności oratorsko-retoryczne.

Telepatia. Jednym z głównych elementów książki jest telepatia – tutaj rozumiana bardziej jako pewne upośledzenie układu odpornościowego. Oczywiście nie chodzi o odporność na zarazki, lecz o odporność na psychomemy – hipotetyczne byty, towarzyszące procesowi myślowemu dowolnej istoty. Mózg osoby nieodpornej przyjmuje psychomemy jako własne myśli i uczucia. Skutkiem jest telepatia – myślenie i czucie tego samego, co osoba znajdująca się w pobliżu. A co gdyby pojawiła się epidemia wirusa, który osłabiałby układ odporności na cudze psychomemy? Szaleństwo tłumu, czerń psychomemów zalewająca chore umysły, czarne oceany…

Zbiór Mandelbrota

Kiedyś, gdy byłem dość młodym użytkownikiem 8-bitowego komputera Atari 65XE (z magnetofonem XC12 jako pamięcią masową) zobaczyłem w telewizji program edukacyjny poświęcony fraktalom. Zaciekawiło mnie to, że każdy fragment takiego fraktala po przybliżeniu daje w obraz bardzo podobny do całości. Marzyło mi się, żeby móc narysować coś takiego na moim komputerze – niestety nie posiadałem w tamtym czasie dostatecznych umiejętności matematyczynych, by zrozumieć w ogóle czym np. taki zbiór Mandelbrota jest (nie miałem zresztą również skąd zaczerpnąć tej wiedzy).

Na szczęście teraz mam dostęp do Wikipedii, a także znam już liczby zespolone – okazuje się, że nic więcej nie potrzeba, by zrozumieć, czym jest fraktal i jak go narysować. Jeśli jednak drogi czytelniku nie wiesz, czym są liczby zespolone, to nie przejmuj się tym za bardzo. Na użytek poniższego tekstu możemy przyjąć po prostu, że liczba zespolona określa pewien punkt na płaszczyźnie (tak jak liczba rzeczywista określa pewien punkt na prostej). Liczby zespolone najczęściej zapisuje się tak: [tex](a,b)[/tex], lub tak: [tex]a+bi[/tex]. Liczba [tex]i[/tex] ma taką ciekawą właściwość, że podniesiona do kwadratu daje [tex]-1[/tex]: [tex]i^2=-1[/tex]. Wiedza ta przyda nam się do wyprowadzenia wzoru na kwadrat liczby zespolonej, który to wzór jest niezbędny do narysowania ładnego fraktala: [tex](a+bi)^2=a^2+2abi+(bi)^2=a^2+2abi-b^2=a^2-b^2+(2ab)i[/tex].

Wiemy już, czym są liczby zespolone, jak można taką liczbę podnieść do kwadratu, możemy więc określić, czym jest zbiór Mandelbrota. Otóż, zbiór Mandelbrota, to zbiór takich liczby zespolonych [tex]p[/tex], dla których ciąg określony wzorem rekurencyjnym:

[tex]z_0=0[/tex]
[tex]z_{n+1}={z_n}^2+p[/tex]

ma określoną granicę (nie dąży do nieskończoności). W praktyce wystarczy sprawdzić, czy punkt określony przez tę liczbę zespoloną, leży w odległości mniejszej od [tex]\sqrt{2}[/tex] od początku układu współrzędnych (w Wikipedii napisane jest, że dla [tex]2[/tex], a nie dla [tex]\sqrt{2}[/tex], ale widocznie działa i tak i tak). Odległość punktu określonego przez liczbę zespoloną od początku układu współrzędnych można dość prosto obliczyć. Dla liczby zespolonej [tex](a,b)[/tex] jest to po prostu [tex]\sqrt{a^2+b^2}[/tex]. Odległość ta nazywa się modułem liczby zespolonej. Moduł ten musi więc wynosić mniej niż [tex]\sqrt{2}[/tex] dla pewnej liczby pierwszych wyrazów ciągu [tex]z_n[/tex]. Powstaje oczywiście pytanie: ile tych pierwszych wyrazów trzeba zbadać. Odpowiedź nie jest taka prosta – im mniej wyrazów zbadamy, tym szybszy uzyskamy algorytm, ale z drugiej strony – tym mniej dokładny obraz fraktala powstanie.

Pozostaje jeszcze pytanie o kolory. Fraktale, które widziałem w telewizji były bardzo kolorowe, tymczasem w/w algorytm pozwala nam jedynie domyśleć się, gdzie postawić kropkę, a gdzie jej nie stawiać. Otóż, jeśli w pewnych punktach [tex]n[/tex]-ty wyraz ciągu z ma moduł większy od [tex]\sqrt{2}[/tex], to [tex]n[/tex] możemy sobie zapamiętać i na jego podstawie pokolorować punkt, który aktualnie rozważamy.

„Przepis” na narysowanie fraktalu Mandelbrota jak widać nie jest bardzo skomplikowany, a pozwala uzyskać zadziwiające efekty. Pół godziny pracy w C# zaowocowało następującym obrazkiem:

Zbiór Mandelbrota narysowany przy użyciu programu w C#.

Jednak to nie koniec. Zachęcony powodzeniem tej operacji, postanowiłem sprawdzić, czy małe Atari poradzi sobie z narysowaniem fraktala (pomyślałem, że wystarczy przedstawienie dwukolorowe). Efektem krótkiego (nieco ponad 20 linijek!) programu w Basicu jest następujący obrazek:

Zbiór Mandelbrota narysowany przy użyciu Atari 65XE.

Mimo, że program w Basicu był krótszy niż ten w C# (a może właśnie dlatego), wykonywał się on o wiele dłużej. Uruchomiłem go na emulatorze z opcją Full speed (prędkość 10-krotnie przewyższająca oryginalne Atari), a mimo to obrazek powstawał przez kilkanaście godzin. Może gdyby zakodować to w asemblerze

Listing programu w Basicu.

Źródła w C#.

Początek.

To mój pierwszy wpis, więc wypadałoby się przedstawić. Jestem Newton, studiuję informatykę na UMK, działam w Ruchu Światło-Życie. Te dwie moje główne aktywności wyznaczają dość dobrze spektrum moich zainteresowań: od informatyki (ostatnio szczególnie VoIP, od dłuższego czasu PHP), poprzez matematykę, filozofię, literaturę, aż po teologię. Myślę, że blog jest dobrym miejscem, by podzielić się przeczytaną książką, czy radością z dodania rewolucyjnej opcji do otwartej centralki Asterisk. Nie wydaje mi się natomiast, żeby blog był dobrym miejscem na dzielenie się osobistymi problemami, czy wydarzeniami – dlatego też wielbiciele ekshibicjonizmu nie znajdą tu zbyt wiele interesujących postów.