2008-10-21

Kolejne zdjęcie


Butterfly, originally uploaded by minthem.

Motyl staje się - całkiem tego nie chciałem - powoli jakimś lejtmotiwem tego bloga. Cóż, wychodzi jak wychodzi.
Kolejne zdjęcie z flickr'a.
Lato tego roku. Wybraliśmy się z żoną w odludne miejsce w okolicach Alwerni. Usiłowałem moim Kodakiem dokonać niemożliwego i próbowałem robić zdjęcia tzw. "macro". Kilka nawet jakoś wyszło. To - zdecydowanie najlepiej. Polowałem z aparatem, opalaliśmy się na łące, czytaliśmy. Symbol chaosu i małe wspomnienie upalnej niedzieli.

2008-10-20

Książka, którą (chyba) przeczytałem

Nie wiem czy też to macie, ale są książki, które są w biblioteczce od zawsze, przemieszczają się wraz ze zmianą mieszkania itd. a których nigdy tak naprawdę nie przeczytaliście a jednak (chyba) przeczytaliście. Przez "tak naprawdę" rozumiem to, że nie siedliście nigdy i nie przeczytaliście ich od deski do deski. Przez "(chyba) przeczytaliście" rozumiem to, że tyle razy zaglądaliście do nich w różnych miejscach, że per capita wychodzi na to, że jednak je przeczytaliście.
Wśród takich książek poczesne miejsce zajmuje u mnie książka Edwarda M. Reingold'a, Jurg'a Nievergold'a i Narshing'a Deo "Algorytmy kombinatoryczne".
Wiele się z tej książki nauczyłem, wiele tematów które frapują mnie przez niemal całe życie jakie pamiętam w tej książce ma swoje korzenie. Ciekawa jest historia.
W połowie lat osiemdziesiątych wartościowe książki były trudne do dostania. Kiedyś w jakimś czasopiśmie jakie kupił mój ojciec był kupon na zamówienie książek, zdaje się pocztą. Wśród nich (a były to głównie książki popularne, nie naukowe) była i rzeczona. Wtedy już jako uczeń najstarszej klasy szkoły podstawowej interesowałem się matematyką i programowaniem i w spisie dostrzegłem tę właśnie pozycję. Mój ojciec, za co (i za wiele innych rzeczy) mu wielka chwała nie bardzo pewnie rozumiejąc o co w tej książce chodzi (ja też nie rozumiałem, ale to była książka o czymś co mnie interesowało i skoro tak mało było książek o tym bardzo chciałem ją mieć) uległ prośbom napalonego nastolatka i zamówił ją również. Przyszła i była piękna - dziś jeszcze jak patrzę na jej okładkę to czuję trochę wzruszenie. Wertowałem ją i wydawała mi się bardzo trudna. Dziś ciągle uważam, że nie jest łatwa. Ale w takich książkach, nawet jeśli jesteś nastolatkiem na głębokiej prowincji i ich nie rozumiesz jest coś: marzenie, wyzwanie, inspiracja, przeczucie drogi jaka cię czeka i celu jaki chcesz osiągnąć - zrozumieć te wszystkie trudne rzeczy.
Po raz pierwszy skorzystałem z tej książki kiedy w liceum startowałem w olimpiadzie matematycznej. Nie do końca pamiętam po co. Potem już była ze mną i często ją wertowałem, podczytywałem (czasem rozdział jakiś, czasem jego fragment). Ostatnio zajrzałem do niej kilka dni temu, żeby odświeżyć sobie kwestie związane z problemami NP-zupełnymi itp. Chyba przeczytałem ją całą - może nie? Ale to wierny towarzysz. I wiele wspomnień i uczuć się w niej miesza -lata 80-te, moi rodzice którzy wysupłali grosz na fanaberię syna, mój nieżyjący już nauczyciel Kazimierz Serbin, moje starty w OM, moje studia, moja praca w kolejnych firmach, moje pasje, udane i nieudane projekty, zrealizowane i porzucone pomysły.
To jedna z wielu książek, które są mi bliskie, ale dziś jakoś popatrzyłem na nią z większą czułością. Rozklejam się.

2008-10-18

Odkrycie flickr'a


5 am, originally uploaded by minthem.

Nie wiem jak mogło to uchodzić przez tyle lat mojej uwadze... Odkryłem właśnie niedawno serwis www.flickr.com. No i od kilku dni jak dziecko książkę z obrazkami wertuję świetne zdjęcia umieszczone tam przez użytkowników.
Postanowiłem oczywiście sam też wrzucić tam kilka moich zdjęć i dorzucać sukcesywnie, jak uznam któreś za interesujące. Ale do - nie najlepszych już nawet, ale przeciętnych - prac zamieszczonych tam jednak mi bardzo daleko. Niestety.

Eksplorując możliwości flickr'a dalej odkryłem ciekawą moźliwość: zamieszczania swoich zdjęć z serwisu na blogach, między innymi na blogerze. Właśnie ją wypróbowuję niniejszym postem.

Zdjęcie na dziś: 2004 rok, zima, między czwartą a piątą rano. Widok z kuchennego okna. Dawno tak wcześnie nie wstawałem (już prędzej zdarzało mi się kłaść...). Lubię to zdjęcie, bo to jedno z pierwszych, jakie zrobiłem po tym jak wprowadziliśmy się do naszego mieszkania.

2008-10-15

Anons: Ruch na blogach. Tricki. Knol.

Profesor Timothy Gowers na swoim blogu zaanonsował dzisiaj powstanie Tricki - nowego narzędzia, działającego na zasadzie podobnej do wiki, gdzie będzie można znaleźć i publikować różnego rodzaju sztuczki, kruczki, metody i wzorce stosowalne w rozumowaniach matematycznych.
To wspaniała idea która wzbudziła sporo zainteresowania na pronumerowanych przeze mnie blogach. Mam po cichu nadzieję, że jeśli chwyci, może być dla matematyki nieocenionym a może i przełomowym momentem. Może stać się tym czym skatalogowanie "design patterns" stało się dla inżynierii oprogramowania. Jakkolwiek tautologicznie by to nie zabrzmiało, być może wkraczamy w okres "matematyki opartej na wiedzy", przez analogię do gospodarki opartej na wiedzy.
Gorąco kibicuję, czekam i będę zawzięcie studiował, do czego zachęcam i innych. Kilka wprawek jakie pojawiły się na blogu Timothy'ego Gowers'a i innych wygląda bardzo obiecująco.

Skoro już na anonse mi się zebrało, polecam knolową serię Włodka Holsztyńskiego. Również wygląda bardzo obiecująco. Również polecam.

2008-10-09

Drobiażdżki

Małe wprawki w Haskellu i drobniutkie zabawy matematyczne. To moje rozrywki ostatnio, kiedy akurat mam trochę wolnego czasu, nie oglądam telewizji i nie czytam jednej z dwóch książek których coś nie mogę skończyć.
Zabawa wzięła początek z zagadek o jakich kiedyś na blogu wspomniałem.

Na początek - jak liczbę z zakresu [0,1) zamienić na jej rozwinięcie dziesiętne, a więc, (być może nieskończony) strumień cyfr {0,...,9}?
Można tak:
Bierzemy x.
Jeżeli x równa się 0, kończymy wypisując 0, jeśli nie to:
Mnożymy razy 10. Mamy 10*x.
Bierzemy część całkowitą. Mamy [10*x] (tu [_] oznacza funkcję int: R->Int). Wypisujemy.
W końcu z liczbą (10*x-[10*x]) robimy to samo.

W efekcie produkujemy, być może nieskończony (nawet dla wymiernego argumentu), ciąg cyfr.
Jak zamienić na rozwiniecie przy innej podstawietawie np. 2? To proste: funkcję x->10*x w powyższym schemacie zastąpić przez x->2*x.

Zagadka: co ma wspólnego z tym co napisałem poniższy obrazek:



Ułamek łańcuchowy, np taki: 1/(a_1+1/(a_2+1/(a_3+1/a_4))) będę reprezentował jako listę liczb naturalnych, np. taką: [a_1, a_2, a_3, a_4]. Oczywiście lista może być nieskończona.

Teraz: jak liczbę z zakresu [0,1) zamienić na ułamek łańcuchowy?
Można tak:

Bierzemy x.
Jeżeli x równa się 0, kończymy wypisując 0, jeśli nie to:
Dzielimy 1 przez x. Mamy 1/x.
Bierzemy część całkowitą. Mamy [1/x] ([_] znowu oznacza funkcję int: R->Int). Wypisujemy.
W końcu z liczbą (1/x-[1/x]) robimy to samo.

W efekcie produkujemy, być może nieskończony (ale nie dla wymiernego argumentu, dowód: ćwiczenie) ciąg liczb.

Zagadka (podobna do poprzedniej): co ma wspólnego z tym co napisałem poniższy obrazek:



Spróbuję ten ogólny schemat zapisać w Haskellu, ale:
- będę używał będę typu Rational w miejsce liczb rzeczywistych
- nie będę sprawdzał zakresu wejść (to ważne w życiu ale nudne, więc chociaż na blogu zluzuję)

W poniższym kodzie:
numscheme - to nasz schemat
n_ary - ogólny schemat rozwinięcia pozycyjnego
binary - szczególny przypadek n_ary dla n = 2
decimal - szczególny przypadek n_ary dla n = 2
confrac - rozwinięcie w ułamek łańcuchowy


Kod:


import Ratio ( numerator, denominator, (%) )

numscheme :: Rational -> (Rational -> Rational) -> [Integer]

numscheme 0 _ = []
numscheme x f = y : numscheme( (f x) - fromInteger y) f where
y = div (numerator$z) (denominator$z)
z = f x

n_ary :: Integer -> Rational -> [Integer]
n_ary n s = numscheme s ((toRational n)*)

binary :: Rational -> [Integer]
binary = n_ary 2

decimal :: Rational -> [Integer]
decimal = n_ary 10

confrac :: Rational -> [Integer]
confrac s = numscheme s (1/)



Na deser poznęcajmy się nad liczbą (229/232). Mój kalkulator windowsowy daje przybliżenie: 0,98706896551724137931034482758621

Popatrzmy na nasz drobiażdżek w działaniu:

Main> take 40 $ binary (229/232)
[1,1,1,1,1,1,0,0,1,0,1,1,0,0,0,0,1,0,0,0,1,1,0,1,0,0,1,1,1,1,0,1,1,1,0,0,1,0,1,1]
Main> take 40 $ decimal (229/232)
[9,8,7,0,6,8,9,6,5,5,1,7,2,4,1,3,7,9,3,1,0,3,4,4,8,2,7,5,8,6,2,0,6,8,9,6,5,5,1,7]
Main> confrac (229/232)
[1,76,3]


Tyle na dziś. More to come...

2008-10-08

Jazda po dziwnym atraktorze

OK. Jest kiepsko. Światowe rynki finansowe po serii drgawek pogrążyły się w depresji. System bankowy nie tylko nie okazał się oparciem ale sam był zalążkiem problemu i pierwszy padł ofiarą własnej beztroski. Banki narodowe i rządy usiłują ratować chwiejącego się na nogach kolosa i utrzymać go w pionie licząc, że okrzepnie, albo przynajmniej nie narobi wielu szkód spadając. Frazesy o pieniądzach podatników, zasady które nakazywałyby w innych wypadkach nie używać ich do ratowania prywatnych instytucji, zasady fair play i wolnej konkurencji, pomocy państwa i wiele innych rzeczy poszło w odstawkę w obliczu możliwej katastrofy. Rządzi goły pragmatyzm jeśli nie cynizm. Realna gospodarka - w której wydobywa się i przetwarza kopaliny, uprawia rolę, tworzy narzędzia i produkty i oferuje usługi - gospodarka w której wartość bierze się z natury prztworzonej pracą i myślą ludzką właśnie została zaprzęgnięta by podtrzymać nadęte i abstrakcyjne "coś". Tak musi być - to "coś" ma bowiem również podstawowe funkcje, dla których nie można gadzinie dać zdechnąć. Jest krwioobiegiem dzięki któremu w całym ekonomicznym systemie świata płynie kapitał. Zanik tej funkcji równałby się stężeniu krwi w żyłach. To coś zamknęło w sobie również depozyty miliardow mieszkańców globu. Śmierć tego systemu oznaczałaby nieuchronny bunt.

Tak oto rzeczy się mają i depresji ni smuty w najbliższym czasie nie unikniemy.
Włączając co rano Bloomberga, CNBC Biznes, TVN 24 i podobne myślę jednak o tym, że właściwie nic się nie dzieje. No może nic niezwykłego. Nieprzewidywalność giełd, trendów ekonomicznych, koniunktury nie jest odkryciem dnia dzisiejszego. Zbliżyliśmy się brawurowo do katastrofy, ale w ostatecznym rozrachunku - jeśli system nie pęknie, nic to zmieni. Ten system ocierał się już o katastrofy. Dziś działa co prawda inaczej - nigdy nie śpi, przekracza swoim rozmiarem pojęcie człowieka, działa szybciej niż potrafią zareagować ludzkie zmysły. Żyje w synergii z komputerami, na których pracują niestrudzone aplikacje moniturujące, reagujące na zmiany w jego pracy. Nie wiem czy w rzeczywistości jesteśmy już kiedykolwiek w stanie nad nim zapanować. Działając tak szybko i zwielokrotniając reakcje przez natychmiastowe działanie oprogramowania, staje się podatny na fluktuacje, które rozdmuchuje w mgnieniu oka do gigantycznych rozmiarów.
Mam przed oczami znany obrazek: atraktor Lorenza.

Lorenz (zresztą niedawno bo w kwietniu 2008 zmarły) modelował pogodę - inny układ podobnie jak gospodarka czy rynki finansowe złożony i nieprzewidywalny. Niemalże tradycyjny synonim systemu złożonego. Wychodząc od równań konwekcji w już znacznie uproszczonym modelu, w serii kolejnych uproszczeń uzyskał nieliniowe autonomiczne równanie różniczkowe pierwszego rzędu. Teoria nie dostarcza dziś nawet, nie mówiąc już o latach sześćdziesiątych zbyt wielu narzędzi do badania takich równań. Lorenz użył kompoutera i odkrył, że długoterminowe zachowanie tego prostego zdawałoby się układu zmienia się diametralnie w zależności od wyboru warunku początkowego, wykazując oprócze tego w krótszym terminie "porządek" - czytaj kręcąc się w przestrzeni niemal jak przyzwoity układ o stabilnym cyklu granicznym.
To dało początek teorii chaosu. Kształt tego tworu, do którego zbliża się chaotyczna orbita, tworu na czesć odkrywcy nazwanego atraktorem Lorenza, przypomina nieco kształt motyla. Czy to to spowodowało, że motyl został głównym bohaterem podstawowej anegdotki tłumaczącej chaos laikom (którą też tu przytaczałem) ? Może.

Układ Lorenza budził wątpliwości. Uważano, że jest możliwe iż ruch w tym układzie jest w istocie znacznie bardziej uporządkowany natomiast problemy pojawiają się w związku z interpretacją wyników symulacji numerycznych (jak również zwykłej niedokładności obliczeń).
Tak nie jest, tj. mamy rzeczywiście do czynienia z chaosem. Pokazali to w latach 90-tych Konstantin Mischaikow z Georgia Institut of Technology w Atlancie i Marian Mrozek z Uniwersytetu Jagiellońskiego w Krakowie. Przełomowość tego dowodu opiera sia na połączeniu klasycznego dowodu z rygorystycznym obliczeniem numerycznym. Wiem, wiem - brzmi to nieco enigmatycznie i pachnie dowodem przez ogląd, ale w istocie jest ścisłym dowodem matematycznym. Warto zapoznać się z ich wspólną pracą: tu.

Albo... popatrzeć, zamiast w gorączkowe migawki serwisów ekonomicznych na krążący, jak system który stanowimy my wszyscy dziś, punkt przelatujący tuż nad (pod? obok?) atraktorem Lorenza:



Co nam zostało gdy pozostajemy we władaniu chaosu...