UKOCHANEJ MONICE
Transkrypt
UKOCHANEJ MONICE
UKOCHANEJ MONICE PODZIĘKOWANIA Serdecznie dziękuję prof. dr. hab. inż. Janowi Zabrodzkiemu za nieustanne wspieranie mojej działalności naukowej od samego początku jej prowadzenia na Politechnice Warszawskiej. Równie serdecznie dziękuję recenzentom: prof. dr. hab. inż. Krzysztofowi Marciniakowi i prof. dr. hab. inż. Władysławowi Skarbkowi za wnikliwe uwagi, które znacznie wpłynęły na ulepszenie rozprawy. Specjalne podziękowania kieruję do prof. dr. hab. inż. Jacka Kudrewicza za zainteresowanie, cenne rady oraz wskazanie kilku istotnych błędów, którymi obarczona była pierwotna wersja rozprawy. P R A C E N A U K O W E P O L I T E C H N I K I WA R S Z AW S K I E J z. 178 Elektronika 2011 Tomasz Martyn Instytut Informatyki Politechniki Warszawskiej ALGORYTMY GEOMETRYCZNE W WIZUALIZACJI FRAKTALI UKŁADÓW ODWZOROWAŃ ITEROWANYCH Rękopis dostarczono 16.03.2011 r. W pracy przedstawiono i przeanalizowano algorytmy rozwiązywania podstawowych problemów geometrycznych pojawiających się w wizualizacji komputerowej obiektów fraktalnych opisywanych przy użyciu układów odwzorowań iterowanych (IFS) – atraktorów IFS oraz miar niezmienniczych IFSP. Przedstawiono również – wykorzystujące te algorytmy – metody obrazowania wymienionych obiektów. Zagadnienia omawiane w pracy obejmują: aproksymację tych obiektów, w tym ich aproksymowanie na równomiernych siatkach dyskretnych; wyznaczanie wypukłych zbiorów o zadanej geometrii zawierających atraktory IFS, w tym kół i kul oraz wielokątów i wielościanów wypukłych; wyznaczanie przecięcia półprostej z atraktorem oraz obliczanie odległości punktu przestrzeni od atraktora; szacowanie wektorów normalnych w punktach atraktora; metody obrazowania rozważanych obiektów zlokalizowanych przestrzeni dwu- i trójwymiarowej. Większość z omawianych algorytmów zaprezentowano w formie pseudokodu, który powinien być zrozumiały dla każdego czytelnika znającego dowolny język programowania proceduralnego. Efektywne algorytmy rozwiązywania wymienionych problemów umożliwiają m.in. dokonywanie realistycznej wizualizacji atraktorów IFS oraz miar niezmienniczych IFSP w czasie rzeczywistym przy wykorzystaniu współczesnego sprzętu graficznego. Nadto, po dokonaniu implementacji odpowiednich algorytmów rozwiązujących te problemy, obrazowanie może być dokonywane za pomocą istniejących aplikacji graficznych. Implementacje te mogą również posłużyć jako niezbędny element do wizualizowania omawianych obiektów przy użyciu powszechnie stosowanych API graficznych, takich jak OpenGL lub Direct3D. W szczególności implementacje te mogą zostać zastosowane jako moduły rozszerzające funkcjonalność istniejących silników graficznych i fizycznych o możliwość przetwarzania modeli opartych na specyfikacjach IFS. Potencjalny zakres zastosowań problematyki podjętej w pracy jest bardzo szeroki i rozciąga się od wizualizacji naukowej, poprzez rozrywkę (gry komputerowe i wideo), do sztuki nowoczesnej. Celem pracy jest zebranie i usystematyzowanie rozwiązań do tej pory rozproszonych w literaturze dotyczącej zarówno grafiki komputerowej, jak i stricte fraktali oraz matematycznej, w tym rezultatów wieloletnich badań przedstawianych przez autora w jego indywidualnych publikacjach. Niektóre z rezultatów, zarówno tych uzyskanych poprzednio przez autora, jak i przez innych ba- 6 Stosowane oznaczenia daczy, zostały w niniejszej pracy rozszerzone i zaktualizowane, pewne zaś zostały przedstawione w formie zawężonej do kontekstu tematu pracy. Słowa kluczowe: fraktal, atraktor IFS, układ odwzorowań iterowanych, algorytmy geometryczne, grafika komputerowa, wizualizacja STOSOWANE OZNACZENIA N N0 Z R R+ Rn Rm×n 2X min max inf sup . , . || x || || x ||E , || x || , || x || p || M ||E , || M || , || M ||F | A| A A (X ,d) diam( A) B ( x, r ) B ( x, r ) N ( A, ) conv( A) f ( A) f 1 ( A) id , id X f g f k f|A Lip( f ), Lip d ( f ) d e d E , d d ( x, A) h( A, B ) spt f # – zbiór pusty – zbiór liczb naturalnych – zbiór liczb naturalnych z zerem – zbiór liczb całkowitych – zbiór liczb rzeczywistych – zbiór liczb rzeczywistych dodatnich – przestrzeń n-elementowych wektorów liczb rzeczywistych – przestrzeń macierzy m×n nad ciałem liczb rzeczywistych – zbiór wszystkich podzbiorów zbioru X – minimum zbioru – maksimum zbioru – kres dolny zbioru – kres górny zbioru – zaokrąglenie liczby w dół, zaokrąglenie liczby w górę – norma wektora – norma euklidesowa, norma maksimum, norma p wektora – norma spektralna, norma maksimum, norma Frobeniusa macierzy – moc (liczność) zbioru – brzeg zbioru – domknięcie zbioru – przestrzeń metryczna z metryką d – średnica zbioru – kula otwarta o środku w punkcie x i promieniu r – kula domknięta o środku w punkcie x i promieniu r – otoczenie epsilonowe (otwarte) zbioru – otoczka wypukła zbioru A – obraz zbioru przy odwzorowaniu f – przeciwobraz zbioru przy odwzorowaniu f – odwzorowanie identycznościowe, odwzorowanie identycznościowe na przestrzeni X – złożenie odwzorowań – k-krotne złożenie odwzorowania – restrykcja odwzorowania do zbioru A – stała Lipschitza odwzorowania, stała Lipschitza odwzorowania względem metryki d – równoważność metryk – metryka euklidesowa, metryka maksimum – kres dolny odległości punktu od punktów zbioru – odległość Hausdorffa zbiorów – nośnik miary – obraz miary przy odwzorowaniu f Wstęp 7 P ( A) – prawdopodobieństwo zajścia zdarzenia A P ( A | B ) – prawdopodobieństwo zajścia zdarzenia A pod warunkiem zajścia zdarzenia B E( X ) – wartość oczekiwana zmiennej losowej 1. WSTĘP 1.1. GEOMETRIA FRAKTALNA A WIZULIZACJA Termin fraktal1 został stworzony i użyty przez B.B. Mandelbrota w jego książce Les objects fractals: forme, hasard et dimension z 1975 roku, jako nazwa obiektów geometrycznych o złożonej, wielopoziomowej, samopodobnej strukturze2, które odegrały ważną rolę w powstaniu nowoczesnej matematyki teoretycznej XX wieku. Jak zauważa F.J. Dyson [27], na przełomie XIX i XX wieku miał miejsce wysyp rewolucyjnych idei matematycznych, który spowodował zmianę w sposobie postrzegania matematyki przez matematyków, wytyczając wyraźną granicę między matematyką klasyczną XIX wieku a nowoczesną matematyką wieku XX. Matematyka klasyczna, mając swoje korzenie w regularnych strukturach geometrii euklidesowej i rachunku różniczkowym Newtona i Leibniza, postrzegana była bowiem głównie jako aparat opisu zjawisk świata fizycznego, w myśl siedemnastowiecznego poglądu wyrażonego przez Galileusza, iż „językiem natury jest matematyka, zaś jej alfabetem – trójkąty, koła i inne figury geometryczne”. Matematyka nowoczesna rozpoczyna się wraz z teorią mnogości Cantora i krzywymi wypełniającymi przestrzeń, skonstruowanymi m.in. przez Peano, Hilberta i Kocha. Dziś często uważa się, iż to właśnie odkrycie tych dziwnych – nieprzystających do intuicji rozwijającej się na gruncie geometrii euklidesowej i ciągłej dynamiki Newtona – struktur geometrycznych było jedną z sił napędowych rewolucji w matematyce. Opierając się na obowiązującym paradygmacie klasycznej matematyki, ówcześni ortodoksyjni matematycy uznali te krzywe za konstrukcje wydumane i nieistotne, bowiem niemające żadnego odzwierciedlenia w świecie rzeczywistym. Pogląd ten znalazł wówczas wyraz w pejoratywnym określeniu tych krzywych jako krzywych patologicznych – „monstrów”, które być może budzą zain1 Jak wskazuje Mandelbrot [76], nazwa „fraktal” pochodzi od łacińskiego przymiotnika fractus, a odpowiadający mu czasownik frangere oznacza „łamać”, „tworzyć nieregularne fragmenty”. Jak dotychczas, nie ma powszechnie akceptowanej, ścisłej matematycznej definicji fraktala. Jedna z najczęściej spotykanych w literaturze pochodzi od Mandelbrota, definiującego go jako zbiór, którego wymiar Hausdorffa-Besicovitcha jest większy od wymiaru topologicznego tego zbioru [76, s. 15]. Niestety, definicja ta nie obejmuje wielu obiektów powszechnie uznawanych za fraktale, w tym słynnego zbioru Mandelbrota, którego oba wspomniane wymiary wynoszą 2 (por. np. (Kudrewicz [70])). 2 8 Wstęp teresowanie, ale jedynie jako swego rodzaju panoptikum dziwolągów. Z drugiej strony, twórcy tych geometrycznych osobliwości uznawali je za ważne, bowiem stanowiące dowód, iż platoński świat matematyki teoretycznej zawiera bogactwo możliwości wykraczających daleko poza proste struktury konstytuujące świat fizyczny. Opierając się na takim przeświadczeniu, dwudziestowieczni matematycy uznali, iż matematyka dokonała tym samym transcendencji, uwalniając się z okowów nałożonych na nią przez jej naturalistyczne korzenie. Jednakże wbrew ówcześnie panującym poglądom, język tej „czystej”, wyzwolonej matematyki – podobnie jak już to wielokrotnie miało miejsce w historii nauki – po upływie przeszło pół wieku objawił swą zadziwiającą, tak często wprawiającą w zdumienie filozofów nauki, relację ze światem rzeczywistym. Okazało się bowiem, iż – paradoksalnie – konstrukcje, które przedstawiciele obydwu przeciwstawnych sobie obozów matematyków zgodnie uznali za nienaturalne z punktu widzenia otaczającego świata, są w tym świecie wszechobecne i jako takie nadają się znacznie lepiej do jego opisu, aniżeli „język trójkątów, kół i innych figur euklidesowych”. Transformacja sposobu postrzegania kontrowersyjnych obiektów „patologicznych” dokonała się za sprawą powstania tak zwanej fraktalnej geometrii, której rozkwit nastąpił po roku 1982 wraz z wydaniem słynnej książki B.B. Mandelbrota o trafnie oddającym jej treść tytule: Fraktalna geometria natury (The fractal geometry of nature) [76]. „Chmury nie są sferami, góry nie są stożkami, linia brzegowa nie jest kołem, kora nie jest gładka, ani też błyskawica nie mknie po linii prostej” – powiada we wstępie Mandelbrot. Zdanie to, będąc antytezą przytoczonego wyżej poglądu Galileusza, uznawane jest dziś za motto geometrii fraktalnej i dobrze oddaje jej cel i istotę. Od samego zarania, geometria fraktalna była nierozerwalnie związana z grafiką komputerową, będącą najpierw jej entelechią, by następnie stać się jej głównym narzędziem badawczym. U podłoża powstania tej nowej geometrii leżało bowiem zerwanie z antywizualnym podejściem obowiązującym w nowoczesnej matematyce XX wieku, na rzecz wizualizacji. Jak wspomina Mandelbrot [77]: „Wykonane przeze mnie we wczesnej fazie prac wizualizacje takich klasycznych obiektów, jak krzywe Kocha i Peana, czy zbiór Cantora, były bardzo inspirujące. Obrazy te wystarczyły do całkowitego obalenia poprzednio dominującego poglądu, że zbiory te są «monstrami». Całkiem przeciwnie, okazało się, że są one swego rodzaju «karykaturami» rzeczywistości. Na przykład, w ten sposób udało mi się «zdegradować» krzywe Peana ze statusu niezgodnych z intuicją potworów do bycia niczym innym, jak ruchami układu sieci rzek wypełniających płaszczyznę” [77, s. 6]. W innym miejscu cytowanej pracy czytamy: „Moja praktyka była zawsze zdominowana, zarówno jeśli chodzi o matematykę, jak i nauki przyrodnicze, przez w pełni rozwinięte obrazy komputerowe, które były tak dokładne, jak to tylko możliwe, i które wykraczały daleko poza proste szkice i diagramy. [...] Książka Fraktalna geometria natury z 1982 roku była pomyślana przede wszystkim jako Wstęp 9 swego rodzaju manifest sławiący «wyszkolone oko». Uważam, że grafika komputerowa pozwoliła obalić ikonoklastyczny dogmat, który pokutował w matematyce i fizyce, otwierając drzwi do uniwersum nowych możliwości odkrywczych. W nieustannym poszukiwaniu zawsze świeżych dowodów umacniających mnie w tym poglądzie wypatrywałem w wizualizacjach nowych faktów, które pozostawały do tej pory skryte. Na początku cel obrazów był skromny: uzyskać akceptację dla idei i teorii, które udało mi się rozwinąć bez pomocy wizualizacji, a których przyjęcie było powolne i utrudnione z powodu czynników kulturowych. W rezultacie, obrazy nie tylko doprowadziły do akceptacji, ale również zaczęły pomagać mnie i innym w tworzeniu nowych idei i teorii. Pojawił się strumień nowych, coraz bardziej zaawansowanych pytań i zagadnień, wykraczających znacznie dalej, aniżeli moje początkowe zamiary i przewidywania” [77, s. 5]. Z drugiej strony, geometria fraktalna odegrała i wciąż odgrywa ważną rolę w grafice komputerowej. Ponieważ umożliwia ona opis złożonych form przypominających pod wieloma względami kształty występujące w naturze, niemalże od początku jej istnienia techniki fraktalne wykorzystywane są do modelowania obiektów naturalnych na potrzeby realistycznej syntezy obrazów. Potrzeby te zaowocowały różnymi sposobami reprezentacji obiektów fraktalnych, stymulując tym samym rozwój grafiki komputerowej w zakresie nowych podejść do modelowania i wizualizacji, aplikacji graficznych oraz sprzętu graficznego. Fraktalne tereny i góry, fraktalna roślinność czy fraktalne tekstury są dziś wszechobecne jako modele obiektów naturalnych w grach komputerowych i wideo oraz innych programach graficznych ukierunkowanych na realistyczną wizualizację zjawisk naturalnych. Nie bez znaczenia dla grafiki komputerowej, rozważanej jako nowoczesne medium wyrazu artystycznego, pozostaje również estetyczny aspekt fraktali. Fraktale bowiem są bardzo często atrakcyjne wizualnie i od wielu lat przyciągają uwagę zawodowych artystów i amatorów, którzy za pomocą dedykowanych programów tworzą budzące zachwyt obrazy „mieszkańców” świata fraktalnej geometrii. 1.2. UKŁADY ODWZOROWAŃ ITEROWANYCH Układy odwzorowań iterowanych (IFS), zaproponowane przez Hutchinsona [59] i spopularyzowane przez Barnsleya za sprawą jego znanej książki Fractals everywhere [7], są jedną z istniejących metod definiowania fraktali. Metoda ta umożliwia przede wszystkim modelowanie i opis geometrii obiektów pod wieloma względami przypominających twory występujące w naturze. Ponadto, przy użyciu IFS można również opisywać wiele innych złożonych obiektów „abstrakcyjnych”, które mają cechę samopodobieństwa. W odróżnieniu od niektórych in- 10 Wstęp nych sposobów reprezentowania fraktali (np. opartych na ułamkowych ruchach Browna (Mandelbrot [76], Peitgen i Saupe [114]) czy różnego rodzaju innych szumach fraktalnych (Ebert i inni [29])), przedmiotem zainteresowania teorii IFS jest geometria, która wykazuje cechę samopodobieństwa w rozumieniu deterministycznym. Ponieważ cecha ta jest również zauważalna w wielu obiektach opisywanych przez geometrię klasyczną, teoria IFS może być rozważana jako sui generis rozszerzenie geometrii euklidesowej. Struktury geometryczne opisywane przy wykorzystaniu specyfikacji IFS, zarówno fraktale sensu stricte, jak i obiekty niemające cech fraktalnych, określane są w teorii IFS jako atraktory IFS. Sposób opisu geometrii stosowany w teorii IFS opiera się na – znanych z klasycznej geometrii – różnego rodzaju transformacjach przestrzeni (takich jak na przykład odwzorowania afiniczne), przy użyciu których wyrażane są relacje między częściami definiowanego obiektu geometrycznego. Dzięki takiemu podejściu, teoria IFS dostarcza jednolitego sposobu opisu continuum geometrycznego, od klasycznych obiektów znanych z geometrii euklidesowej, takich jak trójkąty i kwadraty, do niezwykle skomplikowanych struktur fraktalnych o nieskończonym poziomie szczegółowości w każdej skali. Co więcej, „fraktalne formuły” IFS stanowią bardzo zwartą reprezentację opisywanych przez nie obiektów w rozumieniu kosztów pamięciowych wynikających z przechowywania tych reprezentacji. Cecha ta jest przede wszystkim eksploatowana w tak zwanej fraktalnej kompresji obrazów (np. (Fisher [36])). Niemniej, jest ona również bardzo istotna ze względu na inne potencjalne zastosowania IFS w grafice komputerowej, takie jak choćby reprezentowanie obiektów naturalnych na potrzeby realistycznej syntezy obrazów (Hart i inni [53], Traxler i Gervautz [149], Martyn [82, 85, 95], Maciejewski [75], Stępień [142, 143]). Poza zastosowaniami do opisu samej geometrii, teoria IFS ma głębokie związki z teorią miary. Umożliwia ona bowiem również definiowanie szerokiej klasy samopodobnych miar borelowskich, określanych w literaturze jako miary niezmiennicze IFSP (np. Barnsley [7], Falconer [34], Harte [54], Martyn [88, 90]). Jako taka, teoria IFS znajduje zastosowanie w nowoczesnej geometrycznej teorii miary (Mattila [97]) i teorii układów dynamicznych (Elton [32], Gutiérrez i inni [49], Alligood i inni [3]), a także w grafice komputerowej, jako sposób reprezentowania i generowania fraktalnych tekstur oraz cieniowanych obrazów (Barnsley i inni [11]), Barnsley [7, 9], van Wijk i Saupe [151], Van Loocke [150]). 1.3. CEL, ZAKRES I TEZA PRACY Jak wskazano w punkcie 1.1, istnieje silna potrzeba wizualizowania obiektów fraktalnych. Geometria fraktalna i grafika komputerowa przenikają się bowiem od samego początku istnienia tej pierwszej, wzajemnie stymulując swój Wstęp 11 rozwój. O ile metody wizualizacji obiektów fraktalnych opartych na ułamkowych ruchach Browna oraz będących produktami zespolonych układów dynamicznych są stosunkowo dobrze poznane (Fournier i inni [39], Kajiya [62], Peitgen i Saupe [114], Musgrave i inni [102], Szeliski i Terzopoulos [146], Ebert i inni [29]), o tyle metody obrazowania atraktorów IFS są w grafice komputerowej rozwinięte raczej połowicznie. Dotyczy to przede wszystkim metod wizualizacji atraktorów IFS w przestrzeni trójwymiarowej, w szczególności w czasie rzeczywistym, które to zagadnienia są w literaturze niemalże nietknięte. Może się to wydawać nieco zaskakujące, szczególnie wziąwszy pod uwagę fakt, że teoria IFS rozwijana była przede wszystkim pod kątem zastosowań graficznych. Głównej przyczyny takiego stanu rzeczy należy upatrywać przede wszystkim w tym, że w swej oryginalnej postaci specyfikacje IFS generują obiekty fraktalne w postaci niezorganizowanych, nieskończonych zbiorów punktów. Sprzęt graficzny rozwijany był jednakże przede wszystkim pod kątem przetwarzania geometrii w postaci siatek wielokątów, których podstawowymi elementami składowymi (tzw. prymitywami graficznymi) są trójkąty. Choć z punktu widzenia klasycznej geometrii opartej na teorii mnogości może wydawać się to nieco dziwne, zaawansowane idee reprezentowania i wizualizacji modeli zbudowanych z prymitywów punktowych w grafice komputerowej pojawiły się stosunkowo niedawno. Mowa tutaj o nurcie grafiki komputerowej określanym mianem grafiki punktowej (ang. point-based graphics). Chociaż w literaturze grafiki komputerowej od przeszło dwudziestu lat pojawiały się mniej lub bardziej trafne idee zastosowania prymitywów punktowych w miejsce powszechnie wykorzystywanych trójkątów, to jednak podstawowe założenia i metodyka grafiki punktowej zostały sformułowane dopiero na początku XXI wieku (Gross i Pfister [46]). Jednakże rozwój sprzętu graficznego i wykorzystujących ten sprzęt powszechnie używanych w profesjonalnych zastosowaniach API graficznych, takich jak OpenGL i DirectX, pozostaje pod silną dominacją reprezentacji wielokątowych. W rezultacie implementacja potoku przetwarzania geometrii opartej na punktach, nawet przy użyciu współczesnego sprzętu graficznego, stanowi problem. Wizualizacja modeli punktowych zwykle polega na przekształceniu takiego modelu w odpowiednią reprezentację wielokątową, bądź to w fazie obliczeń poprzedzających proces wizualizacji, bądź też na odpowiednim etapie standardowego, programowalnego potoku nowoczesnej karty graficznej. Wykorzystanie znanych technik grafiki punktowej w odniesieniu do atraktorów IFS nie jest jednak sprawą prostą. Głównym powodem jest to, że obiekty te są zwykle bardzo skomplikowane pod względem geometrycznym i topologicznym, w szczególności na ogół nie reprezentują one powierzchni ciągłych. Aby więc otrzymać pożądaną dokładność wizualizacji, atraktory IFS muszą być zwykle reprezentowane (a dokładniej – aproksymowane, biorąc pod uwagę, iż są one zbiorami nieskończonymi) za pomocą ogromnej liczby punktów, co czyni ich ob- 12 Wstęp razowanie zadaniem trudnym zarówno pod względem czasu obliczeń, jak i kosztów pamięciowych. Ogromna liczba punktów niezbędna do aproksymowania atraktorów IFS z pożądaną dokładnością stanowi również poważną przeszkodę w wyznaczaniu dla tych obiektów tzw. figur ograniczających, czyli możliwie najmniejszych zbiorów o zadanej (zwykle prostej i wypukłej) geometrii, które zawierają dane obiekty geometryczne. Figury ograniczające są jednym z podstawowych i często niezbędnych elementów ogólnie rozumianej wizualizacji trójwymiarowej, w tym tzw. silników graficznych i silników fizycznych (Eberly [28], Lengyel [72]). Zakres zastosowań figur ograniczających obejmuje m.in. szereg zaawansowanych metod przyspieszania obliczeń związanych z samym procesem wizualizacji (wstępne testy widzialności), metody wykrywania kolizji między obiektami w aplikacjach graficznych czasu rzeczywistego, czy po prostu dostosowanie współrzędnych ekranu do rozmiarów wizualizowanego obiektu (np. Glassner [43], Lengyel [72], Luna [74], Eberly [28]). Na ogół do wyznaczania figur ograniczających dla „typowych” obiektów stosowanych w grafice komputerowej wykorzystywane są znane algorytmy geometrii obliczeniowej (Preparata i Shamos [120], de Berg i inni [23], O’Rourke [110]). Niestety, ogromna liczba punktów reprezentujących atraktor IFS zwykle powoduje, że bezpośrednie zastosowanie tych algorytmów w kontekście IFS jest albo niemożliwe (ze względu na ograniczone ramy czasowe nałożone przez konkretne zastosowanie), albo po prostu nieopłacalne. Z punktu widzenia zastosowań, blisko spokrewnione z problemem wyznaczania figur ograniczających pozostają zagadnienia wyznaczania przecięcia półprostej z obiektem geometrycznym oraz wyznaczania najmniejszej odległości punktu przestrzeni od obiektu. Możliwość wydajnego rozwiązywania wspomnianych problemów jest często niezbędna do rozwiązywania elementarnych problemów grafiki komputerowej, takich jak choćby testowanie widzialności obiektów w metodzie śledzenia promieni czy detekcja kolizji między obiektami. Niestety, podobnie jak w przypadku wyznaczania figur ograniczających, w przypadku atraktorów IFS zastosowanie standardowych metod rozwiązywania tych zagadnień jest na ogół niemożliwe. Innym ważnym aspektem atraktorów IFS, który poważnie utrudnia zastosowanie znanych metod obrazowania modeli trójwymiarowych do tych obiektów, jest fakt ich nieróżniczkowalności. W rezultacie, wektor normalny w punkcie atraktora IFS jest na ogół nieokreślony, przynajmniej z matematycznego punktu widzenia, co powoduje trudności w zastosowaniu powszechnie wykorzystywanych technik cieniowania i oświetlania modeli trójwymiarowych (Hall [51], Akenine-Möller i Haines [1], Olano i inni [109]). Jako podsumowanie powyższych rozważań można sformułować następującą listę podstawowych problemów pojawiających się w szeroko rozumianej wizualizacji atraktorów IFS: Wstęp 13 • aproksymowanie atraktorów z zadaną dokładnością; • wyznaczanie zbiorów o zadanej geometrii, które ograniczają atraktory lub ich aproksymacje; • wyznaczanie przecięcia półprostej z atraktorem; • wyznaczanie najmniejszej odległości punktu przestrzeni od atraktora; • określanie wektorów normalnych w zadanych punktach atraktora. Lista ta oczywiście nie wyczerpuje wszystkich możliwych problemów i obejmuje jedynie zagadnienia elementarne, ale zarazem najistotniejsze. Efektywne algorytmy rozwiązania tych problemów umożliwiają dokonywanie m.in. realistycznej wizualizacji atraktorów IFS przy wykorzystaniu najbardziej popularnych w dzisiejszej grafice komputerowej metod, takich jak śledzenie promieni i algorytm z-bufora. Co więcej, po dokonaniu implementacji odpowiednich algorytmów rozwiązujących te problemy, wizualizacje takie mogą być dokonywane za pomocą istniejących aplikacji graficznych. Implementacje te mogą być również wykorzystane jako niezbędny element obrazowania atraktorów IFS przy użyciu powszechnie stosowanych API graficznych, takich jak OpenGL lub Direct3D. Mogą one zostać także zastosowane jako moduły rozszerzające funkcjonalność istniejących silników graficznych i fizycznych o możliwość przetwarzania modeli opartych na specyfikacjach IFS. Celem niniejszej rozprawy jest kompleksowe przedstawienie i analiza algorytmów rozwiązywania wyżej przytoczonych problemów, przy wykorzystaniu ujednoliconego aparatu matematycznego. Ze względu na ograniczone ramy opracowania, zakres rozważań zawężono do zwykłych układów IFS i układów IFS z prawdopodobieństwami, mianowicie do IFS składających się ze skończonej liczby odwzorowań (na ogół zwężających), pomijając szereg istniejących w literaturze uogólnień, takich jak choćby IFS rekurencyjne i hierarchiczne, czy superfraktale. Ponadto, skupiono się wyłącznie na problemach wizualizacji. Całkowicie pominięto więc problematykę ogólnie rozumianego modelowania obiektów przy wykorzystaniu specyfikacji IFS, w tym zagadnienia związane z fraktalną kompresją obrazów, fraktalną interpolacją oraz morfingiem atraktorów IFS. Ze względu na interdyscyplinarny charakter przedmiotu badań, prezentowany materiał oparty jest na rozwiązaniach do tej pory rozproszonych w literaturze dotyczącej zarówno grafiki komputerowej, jak i stricte fraktali oraz matematycznej, w tym na rezultatach badań przedstawionych przez autora w jego indywidualnych publikacjach oraz przez innych badaczy. Niektóre z rezultatów zostały w niniejszej pracy rozszerzone i zaktualizowane, pewne zaś zostały przedstawione w formie zawężonej do kontekstu tematu pracy. Tezą pracy jest to, że rozwiązania wyżej przedstawionych problemów mogą być efektywnie znalezione w sposób automatyczny poprzez obliczenia numeryczne. W konsekwencji, wizualizacja obiektów opisanych przez IFS, w tym wizuali- 14 Wstęp zacja realistyczna trójwymiarowych atraktorów IFS i miar niezmienniczych IFSP w czasie rzeczywistym, jest możliwa. 1.4. UKŁAD PRACY Sposób prezentacji materiału w niniejszej pracy wzorowany był głównie na monografiach poświęconych metodom numerycznym, ze szczególnym uwzględnieniem geometrii obliczeniowej, takich jak choćby cytowane w załączonej literaturze pozycje (Kiełbasiński i Schwetlick [66], Preparata i Shamos [120]). Większość z omawianych algorytmów zaprezentowano w formie pseudokodu, który powinien być zrozumiały dla każdego czytelnika znającego dowolny język programowania proceduralnego. Rozdział 2 poświęcono elementom teoretycznym teorii IFS w ujęciu topologii metrycznej oraz teorii prawdopodobieństwa i teorii miary. Rozdział ten ma celu przede wszystkim zaznajomienie czytelnika z faktami, na których opierają się algorytmy przedstawiane w następnych rozdziałach, oraz wprowadzenie oznaczeń i nazewnictwa wykorzystywanych w niniejszej pracy. Zakończono go punktem zawierającym podstawowe informacje z zakresu teorii łańcuchów Markowa, które są wykorzystywane przy analizie niektórych z algorytmów przedstwionych w następnych rozdziałach. W rozdziałach 3 i 4 przedstawiono i poddano analizie metody aproksymowania atraktorów IFS. W rozdziale 3 podjęto tematykę algorytmów generowania aproksymujących zbiorów punktowych nieujętych w ramy żadnej struktury uporządkowania przestrzennego oraz przedstawiono – stosunkowo rzadko omawiane w literaturze – metody wyznaczania i szacowania współczynników zwężania odwzorowań tworzących układy IFS. W rozdziale 4 zajęto się algorytmami aprokn symacji na równomiernych siatkach w przestrzeni R . Pewne zaskoczenie może budzić przedstawiony w nim, a rzadko podnoszony w literaturze fakt, że – niejako wbrew teorii – w rzeczywistych implementacjach niektórych algorytmów aproksymacji atraktorów IFS dany układ odwzorowań iterowanych może definiować zbiór graniczny w sposób niejednoznaczny. Z kolei rozdz. 5 i 6 zawierają kompleksowe omówienie metod wyznaczania figur ograniczających atraktory IFS. Zakres rozważań zawężono do figur ograniczających najczęściej stosowanych w grafice komputerowej, pomijając pojawiające się niekiedy w literaturze struktury wykorzystywane w przypadku specyficznych zagadnień (takie jak choćby tzw. kapsułki i pastylki (Eberly [28])). Rozdział 5 poświęcono zatem zagadnieniu szacowania najmniejszych kul zawierających wspomniane obiekty, rozdział 6 – algorytmom wyznaczania wielokątów i wielościanów, takich jak: prostokąty i prostopadłościany o krawędziach równoległych do osi układu współrzędnych, prostokąty i prostopadłościany zo- Podstawy teoretyczne 15 rientowane, wielokąty i wielościany o zadanej liczbie wierzchołków czy aproksymacje otoczek wypukłych. Zagadnieniu wyznaczania przecięcia półprostej z atraktorem IFS poświęcono rozdz. 7. Oprócz omówienia i analizy algorytmów rozwiązywania tego zagadnienia, rozdział ten zawiera również omówienie metody szacowania najmniejszej odległości punktu przestrzeni od atraktora IFS. W rozdziale 8 dokonano przeglądu wykorzystywanych w grafice komputerowej metod szacowania wektorów normalnych w punktach „powierzchni” fraktalnych w kontekście zastosowań do realistycznej wizualizacji atraktorów IFS. Prezentację poszczególnych algorytmów uzupełniono informacjami o możliwości zastosowania danego podejścia w wizualizacji atraktorów IFS w czasie rzeczywistym. Część merytoryczną pracy kończy rozdz. 9, w którym zaprezentowano zastosowanie omówionych algorytmów geometrycznych w różnego rodzaju metodach wizualizowania atraktorów IFS oraz miar niezmienniczych IFSP. Rozdział podzielony jest na dwie części. W części pierwszej zaprezentowano podejścia do obrazowania 2 struktur generowanych przez układy IFS i IFSP działające na przestrzeni R . Omówione w tej części podejścia obejmują zarówno algorytmy wizualizowania geometrii atraktora, wzbogaconej ewentualnie o dodatkową informację, np. wartości miary niezmienniczej, jak i różnego rodzaju metody obrazowania informacji zawartej w dopełnieniu atraktora. Część druga rozdziału odnosi się do zagadnień obrazowa3 nia atraktorów i miar niezmienniczych w przestrzeni R , ze szczególnym uwzględnieniem wizualizacji realistycznej dokonywanej w czasie rzeczywistym przy wykorzystaniu współczesnego sprzętu graficznego. Rozprawę zamyka rozdz. 10, w którym podsumowano dotychczasowe prace nad wizualizacją atraktorów IFS oraz podjęto próbę określenia dalszych kierunków rozwoju tej problematyki. 2. PODSTAWY TEORETYCZNE 2.1. POJĘCIA PODSTAWOWE W niniejszej pracy będziemy zajmowali się głównie podzbiorami przestrzeni metrycznych (X, d), gdzie X jest pewnym zbiorem (nośnikiem przestrzeni), zaś d metryką. Często będzie to skończenie wymiarowa przestrzeń rzeczywista Rn z metryką euklidesową, bądź zwarty podzbiór tej przestrzeni. Oczywiście każda przestrzeń liniowa unormowana (a także dowolny podzbiór tej przestrzeni) może być rozpatrywana w kategoriach przestrzeni metrycznej z (naturalną) me- 16 Podstawy teoretyczne tryką indukowaną przez normę tej przestrzeni, to jest metryką zdefiniowaną jako d(x, y) = ||x – y||. Poniżej przedstawione zostaną podstawowe pojęcia i notacja wykorzystywane w dalszej części pracy. Będziemy mówili, że metryki d i e są równoważne i oznaczali ten fakt przez d e , gdy istnieją liczby c1 , c2 R takie, że c1d ( x, y ) e( x, y ) c2 d ( x, y ) dla wszystkich x, y X . Łatwo pokazać, że równoważność metryk jest rzeczywiście relacją równoważności w rozumieniu algebraicznym. Kulę otwartą i, odpowiednio, kulę domkniętą, o środku x X i promieniu r R oznaczamy przez B ( x , r ) { y X : d ( x , y ) r} i B ( x , r ) { y X : d ( x , y ) r} . Przez A oznaczono brzeg zbioru A X , to jest zbiór wszystkich punktów x X takich, że 0, p A, q X \ A, p, q B ( x, ) . Średnicę niepustego podzbioru A X oznaczono jako diam( A) sup{d ( x, y ) : x, y A} . Dodatkowo będziemy przyjmowali, że diam() 0 . Przez f(A) i, odpowiednio, przez f 1 ( B ) dla pewnego odwzorowania f : X Y będziemy oznaczali obraz zbioru A X i, odpowiednio, przeciwobraz zbioru B Y przy odwzorowaniu f, to jest f ( A) { f ( x) Y : x A} , f 1 ( B ) {x X : f ( x) B} . Jeśli x X oraz A i B są niepustymi podzbiorami X, to odległość punktu x od zbioru B oraz odległość zbioru A od zbioru B wynoszą, odpowiednio, d ( x, B ) inf{d ( x, y ) : y B} , d ( A, B ) sup{d ( x, B ) : x A} . W ogólnym przypadku d ( A, B ) d ( B, A) . Otoczenie epsilonowe (otwarte) zbioru A X określamy jako N ( A, ) { y : d ( x, y ) dla pewnego x A} dla R . Siatką epsilonową zbioru A X będziemy nazywać dowolny skończony podzbiór A A taki, że x A, y A , d ( x, y ) dla R . Podstawy teoretyczne Całka Lebesgue’a 17 f d f ( x ) d (x ) A A względem miary po zbiorze A oraz pojęcie całkowalności funkcji f zdefiniowane są w powszechnie przyjmowany sposób (Rudin [131]). W przypadku gdy dziedziną całkowania będzie cała przestrzeń X, wówczas zwykle będziemy ją pod symbolem całkowania pomijać, używając notacji f d f d . X 2.2. ZUPEŁNOŚĆ, ZWARTOŚĆ I TWIERDZENIE BANACHA O ODWZOROWANIU ZWĘŻAJĄCYM Definicja 2.1. Odwzorowanie w : X Y z przestrzeni metrycznej (X, dX) w przestrzeń metryczną (Y, dY) jest ciągłe w sensie Lipschitza, jeśli istnieje liczba s 0 taka, że dY ( w( x), w( y )) sd X ( x, y ), x, y X . (2.1) Z definicji tej natychmiast wynika, że ciągłość w sensie Lipschitza implikuje nie tylko ciągłość, ale także ciągłość jednostajną odwzorowania w. Ponadto zachodzi: Twierdzenie 2.2. Niech S [0, ) będzie zbiorem liczb spełniających nierówność (2.1) dla danego odwzorowania w : X Y ciągłego w sensie Lipschitza. Zbiór S posiada minimum. Dowód. Aby wykazać tezę twierdzenia, należy pokazać, że inf S S . Załóżmy dla dowodu nie wprost, że inf S S . Wtedy dla pewnych punktów x, y X dY ( w( x), w( y )) inf S d X ( x, y ) . Zatem d X ( x, y ) 0 , bowiem w przeciwnym przypadku, na podstawie aksjomatów metryki, x y i stąd dY ( w( x), w( y )) 0 . Niech s0 dY ( w( x), w( y )) / d X ( x, y ) . Wtedy dY ( w( x), w( y )) s0 d X ( x, y ) , i stąd inf S s0 . Wobec tego s s0 , dY ( w( x), w( y )) s d X ( x, y ) , a zatem istnieje przedział (inf S , s0 ) , który nie zawiera żadnej liczby ze zbioru S. Stąd inf S nie jest kresem dolnym zbioru S, a więc otrzymujemy sprzeczność kończącą dowód twierdzenia. 18 Podstawy teoretyczne Definicja 2.3. Najmniejsza liczba s spełniająca nierówność (2.1) określana jest jako stała Lipschitza1 odwzorowania w. Liczba ta będzie oznaczana przez Lip(w). Szczególnym przypadkiem odwzorowań ciągłych w sensie Lipschitza są odwzorowania afiniczne na przestrzeniach rzeczywistych Rn z normą || . || definiowane jako w(x) L(x) t , (2.2) gdzie t Rn jest wektorem translacji, zaś L – odwzorowaniem liniowym na Rn , to jest takim, że L( x y) L(x) L(y ) , , R , x, y Rn . (2.3) Ze względu na izomorfizm algebry operatorów liniowych i algebry macierzy, odwzorowanie afiniczne na Rn można przedstawić w postaci macierzowej albo jako w(x) Lx t , (2.4) gdzie L Rnn jest macierzą reprezentującą odwzorowanie liniowe, albo w układzie współrzędnych jednorodnych jako w(x H ) Wx H , (2.5) gdzie x H [x T ,1]T , natomiast W R( n 1)( n 1) jest macierzą postaci L t W T . (2.6) 0 1 Gdy dla stałej Lipschitza zależność (2.1) przybiera postać równości, mamy do czynienia ze szczególnym przypadkiem odwzorowania afinicznego, jakim jest podobieństwo (izometria). Definicja 2.4. Odwzorowanie ciągłe w sensie Lipschitza jest odwzorowaniem zwężającym, jeśli istnieje stała Lipschitza Lip(w) [0, 1) . Taka stała Lipschitza określana jest jako współczynnik zwężania odwzorowania w. Definicja 2.5. Przestrzeń metryczna (X, d) jest zupełna, jeśli każdy ciąg Cauchy’ego w tej przestrzeni, to jest ciąg {xi }i1 taki, że 0, N N, m, n N , d ( xm , xn ) , jest ciągiem zbieżnym. Łatwo zauważyć, że jeśli (X, d) jest zupełna i d e , to również (X, e) jest zupełna. Należy zauważyć, iż w wielu pozycjach, w tym (Barnsley [7, 9]), mianem stałej Lipschitza odwzorowania określa się każdą liczbę s spełniającą nierówność (2.1). Natomiast liczbę, o której mowa w definicji 2.3, nazywa się czasem najlepszą stałą Lipschitza odwzorowania. 1 Podstawy teoretyczne 19 Równie łatwo pokazać, że obraz ciągu Cauchy’ego przy odwzorowaniu jednostajnie ciągłym jest również ciągiem Cauchy’ego. Stąd, jeśli odwzorowanie w : X Y z przestrzeni metrycznej zupełnej (X, dX) w przestrzeń metryczną (Y, dY) jest jednostajnie ciągłe i odwracalne oraz jego odwrotność jest również odwzorowaniem jednostajnie ciągłym, to (Y, dY) jest również zupełna. Ze względu na fakt, że ciągłość w sensie Lipschitza jest silniejszą własnością od ciągłości jednostajnej, wniosek ten stosuje się również do odwzorowań ciągłych w sensie Lipschitza. Twierdzenie 2.6 (Banacha o odwzorowaniu zwężającym). Niech w : X X będzie odwzorowaniem zwężającym na przestrzeni metrycznej zupełnej X. Wówczas w posiada dokładnie jeden punkt stały xf = w(xf). Ponadto, dla dowolnego x X , lim w k ( x) x f , (2.7) k k gdzie w oznacza k-krotne złożenie odwzorowania w. Dowód. Na przykład (Barnsley [7, s. 75]). Na przykład: przestrzenią zupełną jest każda skończenie wymiarowa przestrzeń liniowa z metryką indukowaną przez normę (Giles [42, s. 25]), dowolny podzbiór domknięty przestrzeni zupełnej z metryką tej przestrzeni, a także dowolna przestrzeń zwarta. W tym ostatnim przypadku zupełność przestrzeni wynika natychmiast z ciągowej definicji zbioru zwartego: Definicja 2.7. Podzbiór przestrzeni metrycznej jest zbiorem zwartym, jeśli każdy ciąg punktów z tego zbioru zawiera podciąg zbieżny w tym zbiorze. Definicja 2.8. Podzbiór A przestrzeni metrycznej X jest ograniczony, jeśli istnieje kula B ( x, r ) X taka, że A B ( x, r ) . Podzbiór A jest całkowicie ograniczony, gdy dla dowolnego 0 istnieje siatka epsilonowa tego zbioru. Warto zauważyć, że każdy zbiór całkowicie ograniczony jest również ograniczony, zaś implikacja odwrotna w ogólnym przypadku przestrzeni metrycznych jest nieprawdziwa. Jednakże, na przykład, dla skończenie wymiarowych przestrzeni liniowych z dowolną metryką indukowaną przez normę oraz dowolnych podzbiorów tych przestrzeni obie własności są równoważne (np. Giles [41, s. 171]). Twierdzenie 2.9. Podzbiór A przestrzeni metrycznej zupełnej jest zbiorem zwartym wtedy i tylko wtedy, gdy A jest podzbiorem domkniętym i całkowicie ograniczonym. Dowód. (Barnsley [7, s. 20]). 20 Podstawy teoretyczne Na podstawie tego twierdzenia, dla przypadku skończenie wymiarowych przestrzeni liniowych z metryką indukowaną przez normę otrzymujemy: Wniosek 2.10. Podzbiór A przestrzeni metrycznej (X, d), gdzie X jest dowolnym domkniętym podzbiorem skończenie wymiarowej przestrzeni liniowej, zaś d jest metryką indukowaną przez normę, jest podzbiorem zwartym wtedy i tylko wtedy, gdy A jest domknięty i ograniczony. 2.3. UKŁAD ODWZOROWAŃ ITEROWANYCH I ATRAKTOR IFS Definicja 2.11. Rodzinę wszystkich zwartych i niepustych podzbiorów przestrzeni metrycznej X będziemy oznaczać przez H ( X ) . Definicja 2.12. Odległość (metryka) Hausdorffa h między podzbiorami A, B H ( X ) przestrzeni metrycznej (X, d) definiowana jest jako h( A, B ) max{d ( A, B ), d ( B, A)} . (2.8) Często wygodnie jest korzystać z równoważnej logicznie definicji odległości Hausdorffa wyrażonej w języku otoczeń epsilonowych zbiorów: Definicja 2.13. Odległość Hausdorffa między podzbiorami A, B H ( X ) przestrzeni metrycznej (X, d) jest dana przez h( A, B ) inf{ : A N ( B, ) i B N ( A, )} . (2.9) Nietrudno pokazać, że rodzina H ( X ) wraz z odległością Hausdorffa h jest przestrzenią metryczną (Barnsley [7, s. 32]). Ponadto zachodzi następujące twierdzenie: Twierdzenie 2.14. Niech przestrzeń metryczna (X, d) będzie zupełna. Wtedy H ( X ) wraz z odległością Hausdorffa h jest przestrzenią metryczną zupełną. Dowód. Na przykład (Barnsley [7, s. 35–37]) . Znacznie krótszy dowód wykorzystujący definicję otoczeniową 2.13 odległości Hausdorffa można znaleźć w (Edgar [31, s. 67]). Definicja 2.15. Układem odwzorowań iterowanych IFS (od ang. Iterated Function System) nazywamy skończony zbiór {w1,...,wN}, N N , odwzorowań wi : X X ciągłych w sensie Lipschitza na przestrzeni metrycznej zupełnej (X, d). W przypadku, gdy odwzorowania są zwężające na tej przestrzeni, wówczas powyższy układ odwzorowań określa się jako hiperboliczny IFS. Operatorem Hutchinsona skojarzonym z danym IFS nazywane jest przekształcenie zdefiniowane jako N gdzie A H ( X ) . W ( A) wi ( A) , i 1 (2.10) Podstawy teoretyczne 21 Twierdzenie 2.16. Operator Hutchinsona skojarzony z IFS {w1,...,wN} jest odwzorowaniem ciągłym w sensie Lipschitza na przestrzeni H ( X ) z metryką Hausdorffa h. Stała Lipschitza tego operatora spełnia nierówność Lip(W ) max{Lip(w1 ),..., Lip(wN )} . W szczególności, operator Hutchinsona skojarzony z hiperbolicznym IFS jest odwzorowaniem zwężającym na (H ( X ) , h) . Dowód. (Barnsley [7, s. 79–80]) . Ponieważ operator Hutchinsona skojarzony z hiperbolicznym IFS jest odwzorowaniem zwężającym na przestrzeni (H ( X ) , h) oraz na mocy twierdzenia 2.14 (H ( X ) , h) jest zupełna, jeśli tylko (X, d) jest zupełna, zatem bezpośrednio na podstawie twierdzenia 2.6 otrzymujemy następujący wniosek: Wniosek 2.17. Operator Hutchinsona skojarzony z hiperbolicznym IFS {w1,...,wN} posiada dokładnie jeden punkt stały A H ( X ) , A W ( A ) (2.11) oraz, dodatkowo, dla dowolnego B H ( X ) zachodzi A lim W n ( B ) . n (2.12) Uwaga. Zauważmy, że fakt posiadania przez operator Hutchinsona właściwości odwzorowania zwężającego (w szczególności zapewnionej przez hiperboliczność IFS) jest warunkiem wystarczającym, ale nie koniecznym posiadania przez ten operator unikalnego punktu stałego. Co więcej, jeśli weźmie się pod uwagę oszacowanie „z góry” stałej Lipschitza operatora Hutchinsona podane w twierdzeniu 2.16, operator ten może być odwzorowaniem zwężającym, nawet jeśli układ IFS nie jest hiperboliczny. Jednakże w dalszej części pracy będziemy głównie zajmowali się układami IFS, które są hiperboliczne. Dlatego na ogół będziemy pomijać to dookreślenie, zakładając domyślnie, iż dany IFS składa się wyłącznie z odwzorowań zwężających. W nielicznych przypadkach, w których będzie mowa o układach IFS zawierających odwzorowania nieposiadające właściwości odwzorowań zwężających, fakt ten będzie wyraźnie odnotowany. Definicja 2.18. Punkt stały operatora Hutchinsona, o którym mowa we wniosku 2.17, nazywany jest atraktorem IFS. Dla celów praktycznych (ale nie tylko – patrz następny punkt) często pożądane jest zawężenie oryginalnej, nieograniczonej dziedziny, na której działają odwzorowania IFS, do zbioru zwartego. Okazuje się, że mając dany IFS z atraktorem A określony na zupełnej, ale nie zwartej przestrzeni (X, d), można zawsze dokonać takiego zawężenia do zbioru zwartego K X , takiego że K A oraz skojarzony z tym IFS operator Hutchinsona jest operatorem na H ( K ) . Na przy- 22 Podstawy teoretyczne kład zawężenia takiego dokonamy, przyjmując K W n ( E ) dla dowolnego n0 E H ( X ) . (W szczególności, jeśli E będzie równy samemu atraktorowi IFS, wówczas otrzymamy zawężanie do przestrzeni atraktora – zob. twierdzenie 3.4). Oczywiście, ze względu na (zwykle) skomplikowaną geometrię zbioru zwartego otrzymanego w ten sposób, z praktycznego punktu widzenia takie rozwiązanie jest często niezadowalające. Jednakże w przypadku przestrzeni metrycznych, w których całkowita ograniczoność jest równoważna ograniczoności, za zbiór zwarty można przyjąć domkniętą kulę skonstruowaną przy wykorzystaniu następującego twierdzenia: Twierdzenie 2.19 (Skarbek [139]). Niech dany będzie IFS {wi }iN1 na przestrzeni zupełnej (X, d). Niech B (c, r ) będzie dowolną kulą domkniętą w (X, d) zawierającą wszystkie punkty stałe x (fi ) X odwzorowań wi. Wtedy dla B B (c, r) , 1 s i s max Lip( wi ) , zbiór restrykcji {wi }iN1 jest IFS na ( B, d ) . gdzie |B i 1,..., N 1 s Dowód. Dla dowolnego x B i dla każdego i {1,..., N } d ( x, x (fi ) ) d ( x, c) d (c, x (fi ) ) r r r ( 1) . Zatem d ( wi ( x), x (fi ) ) d ( wi ( x), wi ( x (fi ) )) Lip( wi ) d ( x, x (fi ) ) sr ( 1) r r . |B |B |B Na tej podstawie d ( wi ( x), c) d ( wi ( x), x (fi ) ) d ( x (fi ) , c) r r r r |B |B i stąd wi : B B dla każdego i {1,..., N } . Nadto, wi są zwężające, bo wi są |B |B zwężające, oraz (B, d) jest zupełna, ponieważ B jest zbiorem domkniętym i (X, d) jest zupełna. Każda kula jest zbiorem ograniczonym (definicja 2.8). Zatem, wobec wniosku 2.10, w przypadku IFS określonych na dowolnych domkniętych podzbiorach skończenie wymiarowych przestrzeni liniowych z metryką indukowaną przez normę, kule wyznaczone na podstawie twierdzenia 2.19 są zbiorami zwartymi. W szczególności dotyczy to przestrzeni X będących domkniętymi podzbiorami przestrzeni Rn z normą. Dodatkowo, w przypadku układów IFS składających się ze zwężających odwzorowań afinicznych działających na przestrzeni Rn z metryką indukowaną przez normę, najmniejszym wypukłym zbiorem zwartym, do którego można do- Podstawy teoretyczne 23 konać omawianego zawężenia dziedziny IFS, jest otoczka wypukła atraktora1. Do przedstawienia dowodu tego faktu potrzebny będzie następujący lemat: Lemat 2.20 (Carathéodory’ego). Niech A będzie dowolnym podzbiorem przestrzeni Rn . Otoczka wypukła conv( A) jest sumą mnogościową wszystkich (domkniętych) simpleksów rozpiętych na co najwyżej n 1 wierzchołkach w A: n 1 n 1 conv( A) k a k : a k A, k 0, k 1 . k 1 k 1 Dowód. Na przykład (Kincaid i Cheney [67, s. 410]). Następne twierdzenie ujmuje rozważaną możliwość zawężania dziedziny afinicznego IFS w punkcie (a). Dodatkowo w punkcie (b) prezentuje interesującą zależność między otoczką wypukłą atraktora i otoczkami wypukłymi jego podzbiorów. Twierdzenie 2.21. Niech A Rn będzie atraktorem układu IFS {w1,...,wN}, N N , w którym wi : Rn Rn są zwężającymi odwzorowaniami afinicznymi. Wtedy: (a) dla każdego i {1,..., N } , wi (conv( A )) conv( A ) ; (b) dla dowolnego złożenia f wi1 ... wim , ik {1,..., N } , odwzorowań IFS, conv( f ( A )) f (conv( A )) . Dowód. Przed przystąpieniem do właściwego dowodu wykażemy kilkukrotnie wykorzystywany w nim fakt, że obrazem dowolnej kombinacji wypukłej punktów przestrzeni Rn przy odwzorowaniu afinicznym jest kombinacja wypukła obrazów tych punktów przy tym odwzorowaniu. Niech p1 ,..., p m Rn , 1 ,..., m 0 , m k 1 k 1 , zaś g : Rn Rn będzie odwzorowaniem afinicznym g (x) L(x) t . Wtedy m m m m m g k p k L k p k t k L(p k ) k t k g (p k ) . k 1 k 1 k 1 k 1 k 1 a) Niech c conv( A ) . Wtedy, na podstawie lematu 2.20, istnieją punkty a1 ,..., a n 1 A oraz liczby 1 ,..., n1 0 , n 1 k 1 n 1 k 1 , takie że c k a k . n 1 k 1 Odwzorowania IFS są afiniczne, zatem i {1,..., N } , wi (c) k wi (a k ) . k 1 W tym miejscu należy odnotować, że otoczka wypukła zbioru zwartego w skończenie wymiarowej przestrzeni liniowej z normą jest zbiorem zwartym; por. np. (Kincaid i Cheney [67, s. 410]). 1 24 Podstawy teoretyczne Odwzorowania IFS przekształcają atraktor w niego samego (równości (2.10) i (2.11)), zatem wi (a k ) A , k 1,..., n 1 . Stąd, na podstawie lematu 2.20, wi (c) conv( A ) . b) Pokażemy najpierw, że conv( f ( A )) f (conv( A )) . Niech c f (conv( A )) . Wtedy, na podstawie lematu 2.20, istnieją punkty a1 ,..., a n 1 A i liczby n 1 n 1 1 ,..., n1 0 , k 1 , takie że c f k a k . Złożenie odwzorowań k 1 k 1 n 1 afinicznych jest odwzorowaniem afinicznym, więc c k f (a k ) . Z kolei k 1 odwzorowania IFS przekształcają atraktor w niego samego, zatem f (a k ) A , k 1,..., n 1 . Stąd, na podstawie lematu 2.20, c conv( f ( A )) . Pokażemy teraz, że conv( f ( A )) f (conv( A )) . Ponieważ conv( A ) A , zatem f (conv( A )) f ( A ) oraz conv( f ( A )) jest najmniejszym (w sensie relacji zawierania) zbiorem wypukłym zawierającym f ( A ) . Dodatkowo przecięcie dowolnych zbiorów wypukłych jest zbiorem wypukłym. Wobec tego, aby wykazać, że conv( f ( A )) f (conv( A )) , wystarczy pokazać, że f (conv( A )) jest zbiorem wypukłym. Niech c b1 (1 )b 2 , gdzie b1 , b 2 f (conv( A )) i [0, 1] . Wtedy istnieją a1 , a 2 conv( A ) takie, że f (a1 ) b1 i f (a 2 ) b 2 . Dodatkowo conv( A ) jest wypukły, zatem dla każdego [0, 1] , a1 (1 )a 2 conv( A ) . Stąd f ( a1 (1 )a 2 ) f (conv( A )) i, ponieważ f jest odwzorowaniem afinicznym, f (a1 ) (1 ) f (a 2 ) f (conv( A )) . Co za tym idzie, c f (conv( A )) , a więc f (conv( A )) jest zbiorem wypukłym. Następne twierdzenie pokazuje jak zapisywać IFS w różnych układach współrzędnych. Twierdzenie 2.22 (O przekształceniu atraktora IFS). Niech A będzie atraktorem IFS {w1,...,wN} na (X, dX). Niech f : X Y będzie odwzorowaniem odwracalnym. Wtedy f ( A ) jest atraktorem IFS { f w1 f 1 ,..., f wN f 1} na przestrzeni (Y, dY) z metryką dY ( x, y ) d X ( f 1 ( x), f 1 ( y )) . Dowód. Ponieważ f jest odwracalne, zatem dY jest metryką (spełnia aksjomaty metryki). Ponadto zarówno f, jak i f 1 są ciągłe w sensie Lipschitza ze stałą Lipschitza równą 1. Stąd (Y, dY) jest zupełna, gdyż (X, dX) jest zupełna. Ponieważ Lip( f ) Lip( f 1 ) 1 , zatem złożenia f wi f 1 : Y Y , i 1,..., N , są odwzorowaniami zwężającymi ze współczynnikami zwężania Lip(wi). Tym samym wykazaliśmy, że przekształcony układ odwzorowań spełnia założenia IFS (definicja 2.15). Następnie pokażemy, że atraktorem tego IFS jest zbiór f ( A ) . Ponieważ A jest punktem stałym operatora Hutchinsona skojarzonego z {w1,..., wN}, zatem Podstawy teoretyczne 25 N N N i 1 i 1 i 1 f ( A ) f ( wi ( A )) f wi ( A ) f wi f 1 ( f ( A )) . Stąd zbiór f ( A ) jest punktem stałym operatora Hutchinsona skojarzonego z przekształconym IFS, a zatem f ( A ) jest atraktorem tego układu. Lemat 2.23. Niech przestrzeń (X, d) będzie zupełna. Niech w : X X będzie odwzorowaniem zwężającym o punkcie stałym xf . Wtedy d ( x, x f ) (1 s ) 1 d ( x, w( x)) 1 s d ( x, x f ) 1 s (2.13) dla dowolnego x X i s [Lip( w), 1) . Dowód. (Pierwsza z nierówności). Ponieważ dla ustalonego x X , d(x, y) jest funkcją ciągłą na (X, d), zatem na podstawie twierdzenia 2.6 oraz zastosowania nierówności trójkąta i wzoru na granicę szeregu geometrycznego otrzymujemy n d ( x, x f ) d ( x, lim w n ( x)) lim d ( x, w n ( x)) lim d ( w( m 1) ( x), w m ( x)) n n n m 1 n 1 lim d ( x, w( x)) Lip( w) m d ( x, w( x))(1 Lip( w)) 1 d ( x, w( x))(1 s ) 1 . n m 1 (Druga z nierówności). Z nierówności trójkąta wynika d ( x, w( x)) d ( x, x f ) d ( x f , w( x)) d ( x, x f ) d ( w( x f ), w( x)) d ( x, x f ) Lip(w)d ( x, x f ) (1 s )d ( x, x f ). Stąd, na podstawie pierwszej z udowodnionych nierówności, otrzymujemy tezę. Jedną z konsekwencji powyższego lematu jest znane twierdzenie „o kolażu”, dające podstawy do aproksymowania dowolnych zbiorów zwartych przy użyciu atraktorów IFS: Twierdzenie 2.24 (o kolażu). Niech dane będą aproksymowany zbiór D H ( X ) oraz 0 . Jeśli zdefiniujemy układ IFS {w1,..., wN} taki, że N h( D, wi ( D)) i 1 to h( D, A ) 1 max Lip( wi ) . i 1,..., N Dowód. Na podstawie lematu 2.23 zastosowanego do operatora Hutchinsona jako odwzorowania zwężającego na przestrzeni H ( X ) z metryką Hausdorffa (twierdzenie 2.16). 26 Podstawy teoretyczne Innymi słowy, opisywanie danego zbioru zwartego D przy użyciu formuły IFS polega na zdefiniowaniu zbioru przekształceń zwężających takich, żeby suma mnogościowa pomniejszonych obrazów zbioru D przy tych przekształceniach jak najbardziej przypominała zbiór D. 2.4. UKŁAD ODWZOROWAŃ ITEROWANYCH Z PRAWDOPODOBIEŃSTWAMI I MIARA NIEZMIENNICZA Definicja 2.25. Miarą borelowską na przestrzeni metrycznej (X, d) nazywana jest funkcja : B [0, ] taka, że i 1 i 1 ( Ai) ( Ai ) , A1 , A2 ,B parami rozłącznych, gdzie B oznacza rodzinę zbiorów borelowskich na (X, d). Miara borelowska jest unormowana (probabilistyczna), jeśli ( X ) 1 . Należy pamiętać, że zbiory borelowskie na przestrzeni (X, d) to najmniejsza -algebra1, która zawiera wszystkie zbiory otwarte w (X, d). Stąd do zbiorów borelowskich, obok zbiorów otwartych, należą również m.in. wszystkie zbiory domknięte w przestrzeni (X, d), a także sumy mnogościowe oraz części wspólne przeliczalnej liczby zbiorów. Definicja 2.26. Nośnikiem spt miary borelowskiej na przestrzeni (X, d) jest podzbiór domknięty definiowany jako spt X \ {V : V jest otwarty i (V ) 0} . (2.14) Definicja 2.27. Zbiór unormowanych miar borelowskich na zwartej przestrzeni metrycznej (X, d) będziemy oznaczali przez P ( X ) . Metryka Monge’a-Kantorowicza2 dP na P ( X ) definiowana jest jako dP ( , ) sup f d f d , gdzie całkowanie obejmuje wszystkie f ( x) – f ( y ) d ( x, y ) , x, y X . 1 funkcje (2.15) f :X R takie, że To jest rodzina M podzbiorów przestrzeni X taka, że: , X M ; jeśli A M , to X \ A M ; jeśli A1 , A2 ,... M , to A M . i i 1 W literaturze metryka ta czasem określana jest jako metryka Hutchinsona (np. Barnsley [7], Kudrewicz [70]). Sam Hutchinson jednakże w swojej pionierskiej pracy [59] oraz kolejnych określał tę metrykę mianem zastosowanym w tej rozprawie w definicji 2.27. Zgodnie z sugestiami Hutchinsona nazwa te została również przejęta w końcu przez Barnsleya w jego najnowszej książce [9]. 2 Podstawy teoretyczne 27 Twierdzenie 2.28. Niech przestrzeń metryczna (X, d) będzie zwarta. Wtedy przestrzeń metryczna (P ( X ), dP ) jest także zwarta. Dowód. (Hutchinson [59]). Definicja 2.29. Obraz miary przy odwzorowaniu f : X X definiowany jest jako f # ( A) ( f 1 ( A)) , A X . Jako natychmiastowy wniosek otrzymujemy, że jeśli jest miarą borelowską na przestrzeni metrycznej X i f jest odwzorowaniem ciągłym (w szczególności zwężającym) na X, to obraz f # jest również miarą borelowską na X. Definicja 2.30. Układem odwzorowań iterowanych z prawdopodobieństwami (IFSP) {w1,...,wN ; p1,...,pN} nazywany jest układ {w1,...,wN}, N N , odwzorowań wi : X X ciągłych w sensie Lipschitza na zwartej przestrzeni (X, d), w którym każdemu z N odwzorowań wi przyporządkowano liczbę pi > 0, tak że oraz N N p i 1 i 1 p Lip(w ) 1 . Operatorem Markowa skojarzonym z danym IFSP nazyi 1 i i wana jest funkcja M : P ( X ) P ( X ) zdefiniowana jako N M ( ) pi wi# . (2.16) i 1 W związku z tą definicją przede wszystkim zauważmy, że każdy (hiperboliczny) IFS określony na zwartej przestrzeni spełnia warunki IFSP po przypisaniu odwzorowaniom IFS dodatnich prawdopodobieństw, których suma wynosi jeden. Co więcej, mając dany IFS z atraktorem A określony na przestrzeni zupełnej (X, d), można zawsze dokonać zawężenia dziedziny tego IFS do odpowiedniego zbioru zwartego, tak jak to pokazano w poprzednim punkcie (twierdzenia 2.19 i 2.21). Twierdzenie 2.31. Operator Markowa M skojarzony z IFSP jest odwzorowaniem zwężającym na przestrzeni (P ( X ), dP ) . Współczynnik zwężania tego operatora N spełnia nierówność Lip( M ) pi Lip( wi ) . i 1 Dowód. (Barnsley [9, s. 127–128]). Ponieważ operator Markowa jest zwężający na przestrzeni (P ( X ), dP ) oraz, na mocy twierdzenia 2.28, (P ( X ), dP ) jest zwarta i stąd zupełna, jeśli tylko (X, d) jest zwarta, zatem bezpośrednio z twierdzenia Banacha o odwzorowaniu zwężającym (twierdzenie 2.6) wynika następujący wniosek: 28 Podstawy teoretyczne Wniosek 2.32. Operator Markowa posiada dokładnie jeden punkt stały P ( X ) N pi wi# (2.17) i 1 oraz dla dowolnego v P ( X ) zachodzi lim M n (v) . n (2.18) Mając to na uwadze, warto odnotować, iż do tego, aby operator Markowa skojarzony z danym IFSP był odwzorowaniem zwężającym na (P ( X ), dP ) (i stąd na pewno posiadał dokładnie jeden punkt stały), nie jest konieczne, aby odwzorowania wchodzące w skład IFSP były odwzorowaniami zwężającymi na zwartej przestrzeni (X, d). Twierdzenie 2.31 gwarantuje bowiem, iż dla każdego układu odwzorowań z prawdopodobieństwami spełniającego warunki definicji 2.30, istnieje dokładnie jedna miara spełniająca równości (2.17) i (2.18). W konsekwencji IFSP definiuje także w sposób jednoznaczny pewien zwarty i niepusty podzbiór przestrzeni X, który jest nośnikiem tej miary. W przypadku układów IFSP mamy zatem do czynienia z sytuacją bardziej ogólną niż w przypadku „zwykłych” układów IFS, dla których gwarantem istnienia unikalnych zwartych zbiorów niezmienniczych (atraktorów IFS) jest właśnie fakt posiadania przez odwzorowania składowe właściwości odwzorowań zwężających. W literaturze, w celu zaakcentowania tej bardziej ogólnej właściwości zwężającej układów IFSP, stosuje się często określenie, iż dany IFSP jest zwężający „na średnio” (ang. contractive on average). Co więcej, wykorzystując twierdzenie Schaudera-Tichonowa o punkcie stałym, można pokazać, że nawet jeśli układ {w1,...,wN ; p1,..., pN} nie jest zwężający „na średnio”, ale odwzorowania wi : X X są ciągłe (w ogólnym sensie) na zwartej przestrzeni (X, d), to operator (2.16) posiada przynajmniej jeden punkt stały (Barnsley [9, s. 128]). Gdy odwzorowania IFSP są zwężające na zwartej przestrzeni (X, d) i jako takie tworzą układ IFS, wówczas spełnione jest następujące twierdzenie: Twierdzenie 2.33. Nośnikiem miary będącej punktem stałym operatora Markowa skojarzonego z IFSP {w1,...,wN ; p1,..., pN} na przestrzeni (X, d), w którym odwzorowania wi są zwężające, jest atraktor IFS {w1,...,wN }. Dowód. (Barnsley [7, s. 359]). Definicja 2.34. Miara borelowska będąca punktem stałym operatora Markowa skojarzonego z danym IFSP nazywana jest miarą niezmienniczą (generowaną przez) IFSP. Podstawy teoretyczne 29 2.5. MOMENTY ZWYKŁE PIERWSZEGO I DRUGIEGO RZĘDU MIARY NIEZMIENNICZEJ IFSP Poszukując przybliżonych rozwiązań problemów geometrycznych dotyczących nieskończonych i skomplikowanych zbiorów punktowych, często wygodnie jest dokonać transformacji dziedziny danego problemu ze współrzędnych geometrycznych do dziedziny rozkładów mas skojarzonych z tymi zbiorami. W dziedzinie rozkładu mas, zamiast operować współrzędnymi geometrycznymi punktów zbioru, dokonuje się obliczeń na podstawie parametrów tych rozkładów, takich jak środek masy, macierz kowariancji czy ogólnie tzw. momenty. W przypadku atraktorów IFS, naturalnymi funkcjami rozkładu masy dla tych zbiorów są właśnie – zdefiniowane w poprzednim punkcie – miary niezmiennicze IFSP. W niniejszym punkcie przedstawiono metodę obliczania momentów zwykłych pierwszego i drugiego rzędu miar niezmienniczych generowanych przez IFSP składających się ze zwężających afinicznych odwzorowań na przestrzeniach Rn . Jak pokazano poniżej, wykorzystanie współrzędnych jednorodnych prowadzi do zwartego rozwiązania, które łatwo ująć w formę algorytmu numerycznego. Przedstawiony materiał jest uogólnieniem rezultatów częściowych, prezentowanych poprzednio przez autora w pracach [86], [87] w odniesieniu do przestrzeni R 2 i R3 . Twierdzenie 2.35. Niech {w1,...,wN ; p1,..., pN} będzie IFSP na zwartej przestrzeni (X, d), gdzie wi są odwzorowaniami zwężającymi. Niech f : X R będzie odwzorowaniem ciągłym. Wtedy A N f d pi i 1 f wi d , (2.19) A gdzie A X jest atraktorem IFS {w1,...,wN }, zaś – miarą niezmienniczą generowaną przez ten IFSP. Dowód. Podane twierdzenie jest bezpośrednią konsekwencją bardziej ogólnego faktu wykazanego w (Barnsley [7, s. 350]), a mianowicie, że N f d (M ( )) p f w d v , gdzie M jest operatorem Markowa skojarzonym X i 1 i i X z IFSP i P ( X ) . Niech dany będzie IFSP {w1,...,wN ; p1,..., pN} na przestrzeni (X, d), tak że X jest zwartym podzbiorem Rn oraz wi są zwężające na (X, d). Niech A będzie atraktorem IFS {w1,...,wN}, zaś miarą niezmienniczą IFSP. Oznaczmy przez : Rn Rn 1 odwzorowanie przekształcające współrzędne punktu x Rn do układu współrzędnych jednorodnych, to jest ( x) [ 1 (x),..., n ( x),1]T , gdzie 30 Podstawy teoretyczne i : Rn R , i = 1..., n, i wartością i (x) jest i-ta współrzędna punktu x. Następ- nie, niech T : Rn R( n 1)( n 1) oznacza odwzorowanie zdefiniowane jako 1 (x) 1 (x) T (x) (x)( (x))T n (x) 1 (x) 1 ( x) 1 (x) n (x) 1 (x) . n (x) n (x) n (x) n ( x) 1 Teraz całkując T względem po A , otrzymamy macierz symetryczną M R( n 1)( n 1) taką, że 1 1d A M Td d n 1 A A d 1 A 1 n d A n d A n A n d . 1 n 1 A d d A (2.20) Ponieważ nośnikiem miary niezmienniczej jest atraktor A (twierdzenie 2.33), zatem elementy lewej górnej podmacierzy n×n macierzy M są momentami zwykłymi drugiego rzędu miary , zaś ostatnią kolumnę (i ostatni wiersz) tworzą momenty zwykłe pierwszego rzędu tej miary (zakończone momentem zerowym d równym 1 ze względu na fakt unormowania ). Twierdzenie 2.36. Niech {w1,..., wN ; p1,..., pN} będzie IFSP na przestrzeni (X, d), gdzie wi : X X są zwężającymi odwzorowaniami afinicznymi, zaś X jest zwartym podzbiorem Rn . Macierz M R( n 1)( n 1) momentów miary niezmienniczej jest rozwiązaniem układu n(n 3) / 2 równań liniowych określonych równaniem macierzowym N M pi Wi M WiT , (2.21) i 1 gdzie Wi R ( n 1)( n 1) jest macierzą reprezentującą odwzorowanie wi w układzie współrzędnych jednorodnych. Dowód. Na podstawie twierdzenia 2.35 M Z kolei N T (x)d pi T wi (x)d . A i 1 A T wi (x) T ( 1 ( Wi (x))) ( Wi (x))( Wi (x))T WiT (x) WiT , Podstawy teoretyczne 31 a zatem N M pi i 1 W T ( x) W i T i d . (2.22) A Rozpisując całkowanie po prawej stronie tej równości względem elementów man 1 n 1 cierzy Wi ak( i,)m i T (x) bk , m (x) k , m 1 oraz biorąc pod uwagę fakt, że całk , m 1 kowanie Lebesgue’a jest operacją liniową, otrzymujemy n 1 n 1 n 1 ( i ) ( i ) W T ( x ) W d a a b ( x ) d k ,q m,r k ,m i k , m 1 A A q 1 r 1 T i n 1 n 1 n 1 ak( i,)q am( i,)r bk , m (x)d q 1 r 1 k , m 1 A Wi T (x)d WiT Wi M WiT . A Stąd, w wyniku zastąpienia całki w równaniu (2.22) wyrażeniem Wi M WiT , uzyskujemy równanie (2.21). Ponieważ M jest macierzą symetryczną rozmiaru (n+1)(n+1) oraz element M [n 1, n 1] 1 , zatem układ równań składa się z nań i tylu samych niewiadomych (momentów). n (i 1) n(n 3) / 2 rówi 1 Następnie zajmiemy się przedstawieniem układu równań (2.21) w formie dogodnej do obliczeń. W celu zwięzłości zapisu oznaczmy M [ k, m] M k , m i Wi [k , m] ak( i,)m ( k , m 1,..., n 1 ) . Układ równań reprezentowany przez równanie macierzowe (2.21) można przedstawić w postaci jawnej jako N n 1 n 1 M k , m pi ak( i,)q am( i,)r M q , r , k 1,..., n , m k ,..., n 1 . (2.23) i 1 q 1 r 1 Oznaczając momenty pierwszego rzędu M q , n 1 M n 1, q ( q 1,..., n ) po prawej stronie równości (2.23) przez M q i dokonując elementarnych operacji algebraicznych, układ równań liniowych można sprowadzić do układu składającego się z n równań postaci: n n 1 n N N M k , k pi (ak( i,)q ) 2 M q , q 2 pi ak( i,)q ak( i,)r M q , r q 1 i 1 q 1 r q 1 i 1 (2.24a) n N N (i ) (i ) (i ) 2 2 pi ak , q ak , n 1 M q pi (ak , n 1 ) , k 1,..., n, q 1 i 1 i 1 32 Podstawy teoretyczne oraz n(n + 1)/2 równań postaci: n n 1 n N N M k , m pi ak( i,)q am( i,)q M q , q pi (ak( i,)q am( i,)r ak( i,)r am( i,)q ) M q , r q 1 i 1 q 1 r q 1 i 1 n N N pi (ak( i,)q am( i,)n 1 ak( i,)n 1am( i,)q ) M q pi ak( i,)n 1am( i,)n 1 , q 1 i 1 i 1 k = 1,..., n, (2.24b) m = k + 1,..., n + 1. Ponieważ macierze Wi (i = 1,..., N) reprezentują odwzorowania afiniczne w układzie współrzędnych jednorodnych (por. (2.6)), zatem an( i)1, m 0 (m = 1,..., n) i an( i)1, n 1 1 . Stąd podzbiór równań (2.24b), w których momenty pierwszego rzędu M k , n 1 M k (k = 1,..., n) występują po lewej stronie, może zostać wyrażony w uproszczonej formie n N N M k pi ak( i,)q M q pi ak( i,)n 1 , k = 1,..., n, q 1 i 1 i 1 (2.25a) lub równoważnie w notacji macierzowej jako N N I p L E pi t i , i i i 1 i 1 (2.25b) gdzie I Rnn oznacza macierz identycznościową, Li Rnn i t i Rn oznaczają odpowiednio macierz części liniowej i wektor translacji odwzorowania wi reprezentowanego przez macierz Wi (por. (2.6)), E zaś jest wektorem momentów pierwszego rzędu. Korzystając z analogii zaczerpniętych z mechaniki, wektor ten często utożsamia się ze środkiem masy o rozkładzie określonym przez miarę . Na podstawie wzorów (2.25), w przypadku afinicznych IFS momenty zwykłe pierwszego rzędu są niezależne od momentów zwykłych drugiego rzędu. Zatem obliczenie macierzy momentów M może zostać dokonane w dwóch następujących po sobie krokach. W kroku pierwszym rozwiązywany jest układ n równań liniowych (2.25) w celu otrzymania wektora momentów pierwszego rzędu E . W kroku drugim wektor E jest wykorzystywany do obliczania momentów zwykłych rzędu drugiego, które są wyznaczane jako rozwiązanie układu n(n 1) / 2 równań liniowych określonych równościami: (2.24a) dla k = 1,..., n oraz (2.24b) dla k = 1,..., n – 1 i m = k + 1,..., n. 2.6. ELEMENTY TEORII ŁAŃCUCHÓW MARKOWA Przy analizie niektórych algorytmów aproksymacji opisanych w rozdz. 3 i 4 będziemy korzystali z elementów teorii łańcuchów Markowa. W tym punkcie Podstawy teoretyczne 33 przedstawiono stosowane w niniejszej pracy definicje i własności tych procesów stochastycznych. Definicja 2.37. Łańcuchem Markowa nazywany jest ciąg zmiennych losowych { X i }i 0 o wartościach w przeliczalnym zbiorze S (przestrzeni stanów) taki, że dla każdego i N i każdej sekwencji s0 , s1 ,..., si S zachodzi P ( X i si | X i 1 si 1 ,..., X 1 s1 , X 0 s0 ) P ( X i si | X i 1 si 1 ) , jeśli tylko P ( X i si | X i 1 si 1 ,..., X 1 s1 , X 0 s0 ) 0 . Własność ta określana jest jako własność Markowa ciągu zmiennych losowych. Innymi słowy, łańcuch Markowa to taki proces stochastyczny, którego stan w chwili i zależy wyłącznie od stanu w chwili i 1 . Definicja 2.38. Niech { X i }i 0 będzie łańcuchem Markowa na przestrzeni stanów S. Macierzą przejścia (macierzą stochastyczną) łańcucha Markowa w kroku i N nazywana jest macierz P (i ) [ psk , sm ]sk , sm S , taka że dla każdego sk S , p sm S sk , sm 1 oraz psk , sm określa prawdopodobieństwo przejścia łańcucha w i-tym kroku ze stanu sk do stanu sm , to jest: psk , sm P ( X i sm | X i 1 sk ) , jeśli tylko P ( X i 1 sk ) 0 . Definicja 2.39. Rozkładem początkowym łańcucha Markowa { X i }i 0 nazywamy rozkład zmiennej losowej X 0 . Łańcuch Markowa nazywany jest jednorodnym (jednorodnym w czasie), gdy istnieje macierz przejścia P będąca dla każdego i N macierzą przejścia tego łańcucha w i-tym kroku, to jest P P (i ), i N . W pracy zajęto się wyłącznie łańcuchami Markowa jednorodnymi w czasie. Z tego względu w dalszej części niniejszego podpunktu będzie pomijane to dookreślenie. Twierdzenie 2.40. Niech { X i }i 0 będzie łańcuchem Markowa na przestrzeni stanów S {s1 , s2 ,...} . Niech wektor [ ps1 (l ), ps2 (l ),...] , l N 0 , określa rozkład zmiennej losowej X l , zaś P i [ psk , sm (i )]sk , sm S , i N , będzie i-krotnym iloczynem macierzy przejścia tego łańcucha. Wtedy wektor [ ps1 (l i ), ps2 (l i ),...] [ ps1 (l ), ps2 (l ),...]P i określa rozkład zmiennej losowej X l i . W szczególności, w przypadku rozkładu początkowego danego wektorem [ ps1 (0), ps2 (0),...] , wektor [ ps1 (i ), ps2 (i ),...] [ ps1 (0), ps2 (0),...]P i określa rozkład zmiennej losowej X i . Dowód. Na przykład (Jakubowski i Sztencel [60, s. 265 i n.]). 34 Podstawy teoretyczne Na podstawie twierdzenia 2.40, elementy psk , sm (i ) macierzy P i określają prawdopodobieństwa przejścia łańcucha Markowa ze stanu sk do stanu sm w i-krokach, czyli l N 0 , psk , sm (i ) P ( X l i sm | X l sk ) , jeśli tylko P ( X l sk ) 0 . Definicja 2.41. Niech { X i }i 0 będzie łańcuchem Markowa na przestrzeni stanów S {s1 , s2 ,...} . Niech P i [ psk , sm (i )]sk , sm S będzie i-krotnym iloczynem macierzy przejścia tego łańcucha. (a) Stan sm jest osiągalny ze stanu sk , jeśli istnieje i N , dla którego psk sm (i ) 0 . (b) Stany sk i sm nazywane są wzajemnie komunikującymi się, jeśli stan sk jest osiągalny ze stanu sm oraz stan sm jest osiągalny ze stanu sk . (c) Podzbiór stanów C S nazywany jest nieprzywiedlnym, jeśli wszystkie stany ze zbioru C wzajemnie komunikują się. Podobnie, jeśli cała przestrzeń stanów S tworzy zbiór nieprzywiedlny, wówczas będziemy mówili o nieprzywiedlnym łańcuchu Markowa. (d) Podzbiór stanów C S nazywany jest zamkniętym, jeśli żaden stan spoza zbioru C nie jest osiągalny z żadnego ze stanów należących do C. Stan nazywany jest pochłaniającym, jeśli tworzy zamknięty podzbiór jednoelementowy. Definicja 2.42. Niech { X i }i 0 będzie łańcuchem Markowa na przestrzeni stanów S {s1 , s2 ,...} . Przez Fsk , sm oznaczono prawdopodobieństwo, że łańcuch wychodząc ze stanu sk dotrze kiedykolwiek do stanu sm : Fsk , sm P { X i sm }| X 0 sk . i 1 Stan sk nazywany jest (a) powracającym, gdy Fsk , sk 1 ; (b) chwilowym, gdy Fsk , sk 1 . Twierdzenie 2.43. Przestrzeń stanów nieprzywiedlnego łańcucha Markowa składa się wyłącznie albo ze stanów powracających, albo ze stanów chwilowych. Dowód. Na przykład (Jakubowski i Sztencel [60, s. 282]). Twierdzenie 2.44. Przestrzeń stanów S łańcucha Markowa można jednoznacznie przedstawić w postaci sumy: S T R1 R 2 ... , gdzie T jest zbiorem stanów chwilowych, zaś Ri są nieprzywiedlnymi zamkniętymi zbiorami stanów powracających. Dowód. Na przykład (Jakubowski i Sztencel [60, s. 283 i n.]). Podstawy teoretyczne 35 Z twierdzenia tego wynika, że jeśli X 0 Ri , to łańcuch Markowa nigdy nie opuści Ri . Zatem dla każdego (niepustego) podzbioru Ri można dokonać „zawężenia” oryginalnego łańcucha Markowa do łańcucha Markowa działającego na przestrzeni stanów Ri , otrzymując w ten sposób nieprzywiedlny łańcuch Markowa o przestrzeni stanów składającej się ze stanów powracających. Twierdzenie 2.45. Jeżeli łańcuch Markowa jest nieprzywiedlny oraz jego przestrzeń stanów składa się ze stanów powracających, to dla każdego stanu sk P (i 1, X i sk ) 1 niezależnie od rozkładu początkowego tego łańcucha. Dowód. Na przykład (Jakubowski i Sztencel [60, s. 282]). Według twierdzenia 2.45 nieprzywiedlny łańcuch Markowa, którego przestrzeń składa się ze stanów powracających (por. twierdzenie 2.43), w trakcie swojej ewolucji odwiedzi wszystkie swoje stany niezależnie od stanu, z którego wystartował. Twierdzenie 2.46. Niech { X i }i 0 będzie łańcuchem Markowa na przestrzeni stanów S {s1 , s2 ,...} i macierzy przejścia P. Jeżeli sm jest stanem chwilowym, to dla każdego stanu sk lim psk sm (i ) 0 i gdzie psk sm (i ) jest elementem i-krotnego iloczynu P i macierzy przejścia tego łańcucha. Dowód. Na przykład (Jakubowski i Sztencel [60, s. 280]). Jeśli przestrzeń stanów S {s1 , s2 ,..., sn } łańcucha Markowa jest skończona, to dla każdego stanu sk mamy n p m 1 sk , sm (i ) 1 . Zatem w takim przypadku zawsze istnieje stan sm taki, że prawdopodobieństwo psk sm (i ) nie zbiega do zera przy i . Z twierdzenia 2.46 wynika zatem następujący wniosek: Wniosek 2.47. Niech { X i }i 0 będzie łańcuchem Markowa na skończonej przestrzeni stanów S {s1 , s2 ,..., sn } . Niech R S będzie zbiorem stanów powracających. Wtedy: (a) R ; (b) P (i 0 : X i R ) 1 niezależnie od stanu, z którego łańcuch wystartował. Twierdzenie 2.48. Niech { X i }i 0 będzie łańcuchem Markowa na przestrzeni stanów S {s1 , s2 ,...} i macierzy przejścia P [ psk , sm ]sk , sm S . Oznaczmy przez pC ( sk ) i C ( sk ) prawdopodobieństwo dojścia tego łańcucha do podzbioru C S i, odpowiednio, średni czas tego dojścia pod warunkiem, że łańcuch jest w stanie sk : 36 Aproksymacja – algorytmy ogólne pC ( sk ) P ({i 0 : X i C}| X 0 sk ) , C ( sk ) E (inf{i 0 : X i C}| X 0 sk ) . Wtedy: (a) jeśli sk C , to pC ( sk ) 1 i C ( sk ) 0 ; (b) jeśli sk C , to spełnione są układy równań pC ( sk ) psk sm pC ( sm ) , sm S C ( sk ) 1 p sm C ( sm ) . sk sm C Ponadto, gdy S jest zbiorem skończonym, wówczas powyższe układy równań mają jednoznaczne rozwiązanie. Dowód. Na przykład (Jakubowski i Sztencel [60, s. 299–300]). 3. APROKSYMACJA – ALGORYTMY OGÓLNE Aproksymacja atraktorów IFS jest postawowym problemem spotykanym zarówno w wizualizacji tych zbiorów, jak i wielu zadaniach z zakresu numerycznego rozwiązywania różnego rodzaju zagadnień z dziedziny geometrii obliczeniowej, czy też obliczania cech ilościowych charakteryzujących te zbiory, takich jak choćby wymiar fraktalny. Zbiory te składają się bowiem na ogół z nieskończonej (i zwykle, nieprzeliczalnej) liczby punktów, a sposób ich opisu oparty na specyfikacji IFS sprawia, iż często nie jest możliwe rozwiązanie danego zadania bezpośrednio na podstawie samej specyfikacji. W większości przypadków zatem obliczenia mogą być dokonywane co najwyżej z pewną określoną precyzją, na postawie skończonego zbioru punktów, który aproksymuje oryginalny atraktor z zadaną dokładnością. W tym rozdziale przedstawiono i przeanalizowano algorytmy aproksymacji atraktorów IFS generujące zbiory aproksymacyjne, które nie zawierają żadnych dodatkowych informacji dotyczących topologii zbioru lub zależności przestrzennych między składowymi zbioru. W rozdziale następnym omówiono metody aproksymacji atraktorów generujące zbiory uporządkowane względem podziału przestrzennego indukowanego przez równomierną siatkę na przestrzeni R n . 3.1. ITEROWANIE OPERATORA HUTCHINSONA Algorytm aproksymacji atraktora IFS oparty na iterowaniu operatora Hutchinsona skojarzonego z tym IFS jest bezpośrednią konsekwencją konstruktywnej części Aproksymacja – algorytmy ogólne 37 twierdzenia Banacha o odwzorowaniu zwężającym (twierdzenie 2.6) zastosowanego w odniesieniu do tego operatora, ujętej w poprzednim rozdziale w formule (2.12). Niech dany będzie IFS {w1,...,wN} określony na przestrzeni metrycznej X z metryką d. Niech A będzie atraktorem tego IFS, zaś (0, diam( A )] dozwolonym błędem aproksymacji. Wówczas, na podstawie twierdzenia 2.16, w wyniku iteracyjnego zastosowania operatora Hutchinsona W skojarzonego z tym IFS, w k-tym kroku iteracji otrzymuje się zbiór Bk = W(Bk1) taki, że h( Bk , A ) ( max Lip( wi )) k h( B0 , A ) i 1,..., N (3.1) gdzie zbiór początkowy B0 X jest zwarty i niepusty, zaś h oznacza metrykę Hausdorffa (indukowaną przez d). Zatem, wybierając zbiór początkowy B0 taki, że h( B0 , A ) diam( A ) oraz przyjmując log diam( A ) log , M log( max Lip (wi )) i 1,..., N (3.2) w M-tej iteracji operatora W, otrzymuje się zbiór A BM taki, że h( A , A ) , to jest aproksymujący atraktor IFS z błędem nie większym niż względem metryki Hausdorffa. W celu otrzymania aproksymacji punktowej atraktora, zbiór początkowy B0 należy określić jako singleton zawierający jeden z punktów atraktora A . Z kolei, dowolny punkt atraktora najłatwiej wyznaczyć jako punkt stały xf = wi(xf) dowolnego z odwzorowań wi wchodzących w skład IFS1. W przypadku odwzorowań afinicznych na przestrzeniach Rn (lub ich zwartych podzbiorach) obliczenie punktu stałego sprowadza się do rozwiązania układu n równań liniowych. Ponieważ IFS składa się z odwzorowań zwężających, zatem na podstawie twierdzenia Banacha o odwzorowaniu zwężającym (twierdzenie 2.6) rozważany układ równań liniowych jest oznaczony. W przypadku IFS składających się z odwzorowań nieliniowych, punkt stały odwzorowania nieliniowego można wyznaczyć numerycznie z dowolną dokładnością, np. poprzez aproksymację formuły (2.7), k-krotnie stosując to odwzorowanie do dowolnego punktu przestrzeni. Jedną z podstawowych wad omawianego algorytmu aproksymowania atraktorów IFS jest jego wykładnicze zapotrzebowanie na pamięć. Zakładając bowiem, że IFS składa się z N odwzorowań i B0 jest singletonem, należy w k-tej iteracji przechowywać w pamięci zbiór N k punktów, po czym w kroku kolejnym każdy z tych punktów jest przekształcany każdym z N odwzorowań IFS. 1 Faktu przynależności punktu stałego xf dowolnego z odwzorowań IFS do atraktora można na przykład dowieść w następujący sposób (Skarbek [140]): x f W ({x f }) , więc x f W k ({x f }) dla każdego k N . Stąd d (W k ({x f }), A ) d ( x f , A ) 0 . Na podstawie twierdzenia 2.6 d (W k ({x f }), A ) 0 przy k . Zatem d ( x f , A ) 0 i stąd x f A , bo A jest zbiorem domkniętym. 38 Aproksymacja – algorytmy ogólne Ponadto, w ogólnym przypadku, algorytm ten daje w wyniku zbiory, które choć aproksymują dany atraktor z zadaną dokładnością, to jednak tworzące je punkty wypełniają atraktor nierównomiernie. Ponieważ M W (...(W ( B0 )...) W M ( B0 ) N i1 ,...,iM 1 wi1 ... wiM ( B0 ) , (3.3) zatem M-krotne zastosowanie operatora Hutchinsona do zbioru początkowego B0 w procesie iteracyjnym (lewa strona formuły (3.3)) jest równoważne zastosowaniu do tego zbioru każdego z N M różnych złożeń odwzorowań IFS (prawa strona formuły (3.3)). Z kolei na podstawie (2.11) otrzymuje się A W M ( A ) N i1 ,...,iM 1 wi1 ... wiM ( A ) . (3.4) Stąd, przyjmując za zbiór początkowy singleton B0 = {x}, x A , otrzymamy, że każdy z N M podzbiorów wi1 ... wiM ( A ) atraktora zawiera punkt wi1 ... wiM ( x) zbioru A BM aproksymującego ten atraktor. Dodatkowo, na podstawie nierówności (2.1), średnice podzbiorów wi1 ... wiM ( A ) spełniają zależności M diam( wi1 ... wiM ( A )) Lip( wi1 ... wiM ) diam( A ) Lip( wi j ) diam( A ) , j 1 (3.5) które przybierają postać równości w przypadku, gdy wi j są podobieństwami. Zatem w przypadku, gdy współczynniki zwężania odwzorowań IFS nie są sobie równe, dla ustalonego M N , średnice podzbiorów wchodzących w skład sumy mnogościowej prawej strony równości (3.4) mogą różnić się od siebie dowolnie dużo. Jak wcześniej pokazano, na każdy z tych N M podzbiorów przypada przynajmniej jeden z punktów zbioru A i punktów tych jest co najwyżej N M . Stąd, części atraktora, na które przypadają podzbiory wi1 ... wiM ( A ) o mniejszych średnicach, są zwykle wypełniane przez punkty zbioru A gęściej, aniżeli części atraktora, na które przypadają podzbiory o średnicach większych. Na zakończenie niniejszego punktu warto nadmienić, że złożoność pamięciową niniejszego podejścia można zredukować z O( N M ) do O(M), przekształcając jawną iterację operatora Hutchinsona w algorytm rekurencyjny. Jak zauważono bowiem wyżej (równość (3.3)), M-krotne zastosowanie operatora Hutchinsona do pewnego zbioru jest równoważne sumie mnogościowej obrazów tego zbioru przy wszystkich możliwych N M złożeniach odwzorowań IFS o długości M. Zatem ten sam rezultat otrzymuje się wykonując następujący prosty algorytm rekurencyjny (Martyn [79, s. 103], Nikiel i Steć [107]): Aproksymacja – algorytmy ogólne 39 procedure RecursiveHutchinson(B, k) begin 1. for each i {1,, N } do begin B wi ( B ) ; 2. 3. if k = M then A A B ; 4. 5. else RecursiveHutchinson( B , k + 1); end for; end. dla argumentów B = B0 i k = 1 i początkowej wartości A równej tożsamościowo . Ponieważ w trakcie konstruowania zbioru aproksymującego atraktor należy M N M 1 1 dokonać N i 1 przekształceń punktów, złożoność obliczeniowa N 1 i 1 obydwu rozwiązań jest rzędu O( N M ). Rys. 3.1. Samopodobna budowa atraktora IFS 3.2. ALGORYTM ADAPTACYJNYCH ODCIĘĆ Algorytm adaptacyjnych odcięć (ang. adaptive-cut algorithm), zaproponowany w pracy (Hepting i inni [56]), wykorzystuje cechę samopodobieństwa atraktorów IFS, która jest bezpośrednią konsekwencją definicji operatora Hutchinsona oraz faktu, że atraktory IFS są niezmiennicze względem tego operatora. Algorytm ten pozwala uzyskać zbiory aproksymujące, które zwykle wypeł- 40 Aproksymacja – algorytmy ogólne niają atraktory o wiele bardziej równomiernie aniżeli algorytm opisany w punkcie poprzednim. Nadto, w wersji rekurencyjnej, charakteryzuje się on logarytmicznym zapotrzebowaniem na pamięć w stosunku do liczby punktów wchodzących w skład zbioru aproksymującego. W pracy [56] algorytm adaptacyjnych odcięć został zaproponowany jako metoda aproksymacji atraktorów IFS składających się jedynie z odwzorowań afinicznych na Rn . Może on jednakże być również stosowany w bardziej ogólnym przypadku IFS zawierających zwężające różniczkowalne odwzorowania nieliniowe na wypukłych podzbiorach Rn . Ujęcie przedstawione w niniejszym punkcie obejmuje także ten ogólny przypadek i stąd stanowi rozszerzenie podejścia oryginalnego. 3.2.1. Opis i analiza Samopodobieństwo atraktorów IFS wynika z formuły (2.11), która pokazuje, że każdy atraktor IFS składa się z podzbiorów będących obrazami tego atraktora przy odwzorowaniach IFS. Ponieważ odwzorowania te są zwężające, zatem składowe podzbiory wi ( A ) , i = 1,..., N, atraktora A są mniejsze (względem średnic) od całego atraktora. Na podstawie zależności (3.5) otrzymujemy bowiem, że diam( wi ( A )) Lip( wi ) diam( A ) Lip(wi ) [0,1) . i (3.6) Z kolei, podobnie jak cały atraktor, każdy z podzbiorów wi ( A ) składa się z N mniejszych podzbiorów o postaci wi w j ( A ) , j = 1,..., N, ponieważ N N j 1 j 1 wi ( A ) wi ( w j ( A )) wi w j ( A ) (3.7a) oraz, na podstawie (3.5), diam( wi w j ( A )) Lip( wi w j ) diam( A ) Lip( wi ) Lip( w j ) diam( A ) . (3.7b) Ogólnie N wi1 ... wik ( A ) wi1 ... wik ( wik 1 ( A )) ik 1 1 N w ik 1 1 i1 ... wik wik 1 ( A ) , (3.8) a więc każdy podzbiór wi1 ... wik ( A ) atraktora można rozłożyć na N mniejszych podzbiorów postaci wi1 ... wik wik 1 ( A ) , ik+1 = 1,..., N, o średnicach spełniających zależność (3.5) (rys. 3.1). Powyższa obserwacja stanowi podstawę ogólnej koncepcji algorytmu adaptacyjnych odcięć. Niech dany będzie IFS {w1,..., wN} określony na przestrzeni metrycznej X z metryką d. Niech A będzie atraktorem tego IFS, zaś (0, diam( A )] dozwolonym błędem aproksymacji. Wówczas, rozpoczyna- Aproksymacja – algorytmy ogólne 41 jąc od zbioru zawierającego odwzorowania IFS, w kolejnych krokach algorytmu konstruujemy zbiór odwzorowań poprzez sekwencyjne zastępowanie każdego odwzorowania wi1 ... wik , i j {1,..., N } , k N , dla którego współczynnik zwężania Lip( wi1 ... wik ) , (3.9) diam( A ) N odwzorowaniami postaci wi1 ... wik wik 1 , ik+1 = 1,..., N. W rezultacie działania algorytmu otrzymujemy zbiór F składający się z odwzorowań f i0i1 ...im będących złożeniami odwzorowań IFS wi1 ... wim (w ogólnym przypadku o różnej długości) takich, że A f i0i1 ...im ( A ) (3.10) fi i ...i F 01 m oraz których współczynniki zwężania spełniają zależność Lip( f i0i1 ...im ) diam( A ) Lip( f i0i1 ...im1 ) , (3.11) gdzie m N i f i0 = idX jest odwzorowaniem identycznościowym na przestrzeni X. Zbiór aproksymujący atraktor otrzymujemy na podstawie zbioru F , definiując go jako A {x X : x f i0i1 ...im ( A ) i f i0i1 ...im F } . (3.12) Występujące w powyższej formule punkty należące od podzbiorów f i0i1 ...im ( A ) zwykle wyznacza się jako obrazy dowolnego punktu atraktora przy tych odwzorowaniach. Podobnie jak w algorytmie iteracji operatora Hutchinsona, za punkt należący do atraktora wygodnie jest przyjąć punkt stały dowolnego odwzorowania IFS. Na podstawie (3.12), A A , zatem d ( A , A ) 0 . Nadto, na podstawie (3.5), (3.10) i (3.11), diam( f i0i1 ...im ( A )) dla każdego f i0i1 ...im F . Zatem dla każdego a A istnieje x A taki, że d (a, x) i stąd d ( A , A ) . Wobec powyższego h( A , A ) , czyli zbiór A aproksymuje atraktor A z błędem nie większym niż względem metryki Hausdorffa. Ponieważ IFS składa się ze skończonej liczby N odwzorowań zwężających, zatem w skład wynikowego zbioru F będzie wchodziło co najwyżej N M odwzorowań (i co najwyżej tyle samo punktów zbioru A ), gdzie log diam( A ) log , M max{m : f i0i1 ...im F } (3.13) log( max Lip( wi )) i 1,..., N czyli M jest równe prawej stronie równości (3.2). Stąd w przypadku pesymistyczN M 1 1 N 1 złożeń odwzorowań podczas konstrunym należy uwzględnić N 1 42 Aproksymacja – algorytmy ogólne owania zbioru F . W takim przypadku zbiór aproksymujący uzyskany przy użyciu algorytmu adaptacyjnych odcięć będzie się składał z tej samej liczby N M punktów, co zbiór aproksymujący będący rezultatem algorytmu opisanego w punkcie 3.1. Sytuacja taka będzie miała miejsce na przykład wówczas, gdy w skład układu IFS będą wchodziły podobieństwa o identycznych współczynnikach zwężania. Choć istnieją klasyczne zbiory fraktalne będące atraktorami IFS w takiej postaci (trójkąt Sierpińskiego, czy krzywa Kocha), to jednak z punktu widzenia ogólnych zastosowań IFS dla celów grafiki komputerowej (np. jako sposób opisu geometrii przy użyciu twierdzenia 2.24) przypadek taki występuje względnie rzadko. W zależności od potrzeb, algorytm adaptacyjnych odcięć może być zaimplementowany zarówno w formie iteracyjnej, jak i rekurencyjnej. W wersji iteracyjnej algorytm jest następujący: procedure IterativeACA() 1. begin F {w1 ,, wN } ; A ; 2. while F do begin 3. F F \ { f } , gdzie f F ; if Lip( f ) 4. diam( A ) then begin Wyznacz punkt x f ( A ) ; A A {x} ; end if; else F F { f w1 ,..., f wN } ; end while; 5. 6. 7. end. Zaletą podejścia iteracyjnego jest możliwość określenia dowolnej funkcji wyboru bieżącego odwzorowania f ze zbioru F w kroku 3 algorytmu, co w niektórych adaptacjach tego podejścia do rozwiązywania innych zagadnień geometrycznych może wpłynąć na znaczne zmniejszenie realnego czasu obliczeń. (Na przykład wybór w pierwszej kolejności odwzorowań o punktach stałych najbliższych danemu punktowi y przestrzeni pozwala często na skrócenie czasu obliczeń w przypadku aproksymowania odległości d ( y, A ) tego punktu od atraktora – zob. punkt 7.3). W przypadku, gdy nie zależy nam na żadnej konkretnej funkcji wyboru, zbiór F wygodnie jest implementować jako kolejkę. Wadą podejścia iteracyjnego jest złożoność pamięciowa1 rzędu O( N M 1 ) , w przypadku IFS składającego się jedynie z odwzorowań afinicznych, Podane złożoności pamięciowe nie uwzględniają pamięci zajmowanej przez aproksymację A atraktora. Należy bowiem zauważyć, iż algorytm nie pobiera żadnych informacji z tej pamięci w trakcie swego działania. Operacja sumowania, która jest dokonywana w kroku 6 algorytmu, w kategoriach algorytmicznych jest niczym innym, jak przekazaniem nowo obliczonego punktu na wyjście algorytmu. 1 Aproksymacja – algorytmy ogólne 43 i O( MN M 1 ) , gdy IFS zawiera odwzorowania nieliniowe, gdzie M jest określone równością (3.13). Podane złożoności wynikają z konieczności przechowywania w pamięci złożeń odwzorowań wchodzących w skład zbioru F w trakcie działania algorytmu (krok 7 algorytmu). Różnica w podanej złożoności pamięciowej dla ściśle afinicznych IFS oraz IFS zawierających odwzorowania nieliniowe jest skutkiem zastosowania odmiennego podejścia do wyznaczania i przechowywania złożeń odwzorowań w tych dwóch przypadkach. Wyznaczanie złożenia odwzorowań afinicznych na Rn można sprowadzić do mnożenia odpowiednich macierzy reprezentujących te odwzorowania (por. wzór (2.6)), w wyniku czego otrzymuje się macierz tych samych rozmiarów co macierze mnożone. Zatem zarówno koszt obliczeniowy wyznaczania złożenia afinicznego, jak i koszt pamięciowy związany z jego przechowywaniem są stałe. Jak wspomniano, zbiór F składa się z co najwyżej N M odwzorowań. Dlatego w przypadku pesymistycznym zbiór F zawierający złożenia pośrednie będzie składał się z N M 1 odwzorowań i stąd wynika podany wyżej rząd złożoności pamięciowej w przypadku afinicznych IFS. Sytuacja przedstawia się odmiennie w przypadku wyznaczania złożeń zawierających odwzorowania nieliniowe. Po pierwsze, wyznaczanie złożenia odwzorowań nieliniowych w postaci jawnej reprezentacji przydatnej do obliczeń jest w ogólnym przypadku zadaniem nietrywialnym pod względem algorytmicznym, które zwykle pociąga za sobą konieczność dokonywania obliczeń symbolicznych (na przykład wówczas, gdy w skład odwzorowania wchodzą funkcje elementarne, takie jak np. sinus, kosinus). Po drugie, koszt pamięciowy związany z przechowywaniem jawnej reprezentacji złożenia odwzorowań nieliniowych jest zwykle większy niż koszt pamięciowy związany z przechowywaniem dowolnego z odwzorowań wchodzących w skład tego złożenia (na przykład złożenie odwzorowania wielomianowego stopnia k1 z odwzorowaniem wielomianowym stopnia k2 jest odwzorowaniem wielomianowym stopnia k1k2). Dlatego w przypadku IFS zawierających odwzorowania nieliniowe często wygodniej jest zrezygnować z wyznaczania jawnej reprezentacji złożeń tych odwzorowań. W praktyce zwykle o wiele lepszym rozwiązaniem jest przechowywanie w trakcie działania algorytmu jedynie informacji o tworzących te złożenia odwzorowaniach IFS w postaci skończonych ciągów indeksów i1i2...im. (Ponieważ, na podstawie formuły (3.13), M określa górną granicę długości tych ciągów, stąd podana wyżej złożoność pamięciowa dla przypadku IFS zawierających odwzorowania nieliniowe). Stosując to drugie podejście, punkty x f i0i1 ...im ( A ) zbioru aproksymującego A występujące w formule (3.12) wyznacza się, w kroku 5 algorytmu, poprzez iteracyjne zastosowanie składowych odwzorowań IFS jako wi1 (...wim (a )...) , gdzie a jest dowolnym punktem atraktora A . W algorytmie adaptacyjnych odcięć w wersji rekurencyjnej złożenia należące do zbioru F wyznaczane są w sposób bardziej ekonomiczny pamięcio- 44 Aproksymacja – algorytmy ogólne wo. Rozwiązanie to wymaga bowiem pamiętania jedynie informacji o odwzorowaniach { f i0 , f i0i1 ,..., f i0i1 ...im } bieżącej ścieżki podstawień wiodącej do złożenia f i0i1 ...im F . Ogólną wersję rekurencyjną algorytmu można przedstawić w sposób następujący: procedure RecursiveACA( f ) begin 1. for each i {1,, N } do begin g f wi ; 2. if Lip( g ) 3. diam( A ) then begin Wyznacz punkt x g ( A ) ; A A {x} ; end if; else RecursiveACA( g ); end for; 4. 5. 6. end. Zbiór A aproksymujący atraktor otrzymuje się, wywołując powyższą procedurę z odwzorowaniem f = idX równym odwzorowaniu identycznościowemu i początkową wartością A równą tożsamościowo . Działanie obydwu przedstawionych wersji algorytmu adaptacyjnych odcięć może być zatem rozpatrywane w kategoriach przeszukiwania drzewa złożeń odwzorowań IFS, w którym węzły na k-tym poziomie przechowują złożenia o postaci wi1 ... wik i których węzły potomne przechowują złożenia wi1 ... wik wik 1 . W korzeniu drzewa znajduje się odwzorowanie identycznościowe, zaś w jego liściach – złożenia o stałych Lipschitza nie większych od / diam( A ) . O ile jednak algorytm w wersji iteracyjnej przeszukuje to drzewo „wszerz”, o tyle w wersji rekurencyjnej przeszukiwane drzewa postępuje „w głąb”. W przypadku zastosowania omówionego podejścia do reprezentowania złożeń odwzorowań nieliniowych za pomocą ciągów indeksów odwzorowań IFS, rekurencyjna wersja algorytmu adaptacyjnych odcięć przybiera postać: procedure NonlinearRecursiveACA( k ) begin 1. for each i {1,, N } do begin 2. [k ] i ; 3. if Lip( w [1] ... w [ k ] ) diam( A ) then begin Aproksymacja – algorytmy ogólne 45 Wyznacz punkt x w [1] ... w [ k ] ( A ) , jako x w [1] (...w [ k ] (a )...) , gdzie a A ; A A {x} ; end if; else NonlinearRecursiveACA( k + 1 ); end for; 4. 5. 6. end. Zbiór A aproksymujący atraktor otrzymuje się, wywołując powyższą procedurę z argumentem k równym 1 i początkową wartości A równą tożsamościowo . W obydwu wyżej przedstawionych wariantach wersji rekurencyjnej algorytm adaptacyjnych odcięć charakteryzuje się logarytmicznym zapotrzebowaniem na pamięć rzędu O(log N M ) O( M ) , gdzie M jest określone równością (3.13). Wszystkie przedstawione wersje algorytmu adaptacyjnych odcięć charakteryzują się w przypadku pesymistycznym złożonością obliczeniową rzędu O( N M ) , gdzie oznacza czas potrzebny na wyznaczanie stałej Lipschitza bieżącego złożenia odwzorowań. 3.2.2. Wyznaczanie stałych Lipschitza odwzorowań Przedstawione w poprzednim punkcie wersje algorytmu adaptacyjnych odcięć wymagają wyznaczenia (lub przynajmniej oszacowania od góry) stałej Lipschitza bieżącego złożenia odwzorowań IFS. W literaturze problem ten dyskutowany jest rzadko i to w sposób ograniczony. Dotyczy to zarówno pozycji poświęconych stricte tematyce IFS, jak i ogólnych opracowań dotyczących poszczególnych dziedzin matematyki. Nieliczne prace poruszają bowiem jedynie temat wyznaczania lub szacowania współczynników zwężania zwężających odwzorowań afinicznych. W przypadku odwzorowań nieliniowych zagadnienie to pozostaje niemalże nietknięte. W niniejszym punkcie podjęto próbę przedstawienia powyższego problemu w sposób kompleksowy, obejmujący przypadek zarówno IFS zawierających odwzorowania nieliniowe różniczkowalne na wypukłych podzbiorach Rn , jak i IFS składających się jedynie z odwzorowań afinicznych. Rozpoczynając od podstaw teoretycznych, pokazano, że zagadnienie wyznaczania stałych Lipschitza odwzorowań afinicznych jest przypadkiem szczególnym problemu wyznaczania tych stałych w odniesieniu do różniczkowalnych odwzorowań nieliniowych. Następnie, opierając się na rozważaniach teoretycznych przedstawiono i przeanalizowano różne metody numeryczne rozwiązywania tego problemu. Definicja 3.1. Norma macierzy L Rn n indukowana przez normę wektorową . p na Rn definiowana jest jako 46 Aproksymacja – algorytmy ogólne || Lx || p || L || p sup : x R n , x 0 . (3.14) || x || p Opierając się na arytmetyce macierzy i aksjomatach normy nietrudno pokazać (np. (Martyn [81])), że zbiór wektorów x występujących w tej definicji można ograniczyć do brzegu kuli jednostkowej B (0, 1) i wzór (3.14) zapisać w równoważnej postaci: || L || p sup{|| Lx || p : x R n ,|| x || p 1} . (3.15) Normę macierzową indukowaną przez euklidesową normę wektorową często określa się mianem normy spektralnej macierzy. Lemat 3.2. Niech f będzie ciągłym odwzorowaniem przedziału [a, b] R w przestrzeni Rn , które jest różniczkowalne w (a, b). Wtedy istnieje liczba x (a, b) taka, że f (b) f (a ) E f ( x) E (b a ) . (3.16) Dowód. (Rudin [131, s. 97]). Twierdzenie 3.3. Niech f : R n będzie odwzorowaniem f [ f1 ,..., f n ]T różniczkowalnym na otwartym i wypukłym podzbiorze R n . Jeśli f jest ciągłe w sensie Lipschitza na względem metryki euklidesowej dE, to Lip( f ) sup{|| Df (p) ||E : p } , (3.17) f1 f1 x (p) x (p) m 1 Df (p) f m (p) f m (p) x1 xm (3.18) gdzie jest macierzą Jacobiego odwzorowania f w punkcie p, zaś || Df (p)||E oznacza normę spektralną tej macierzy. Dowód. W celu zwięzłości zapisu oznaczmy M sup{|| Df (p)||E : p } . Pokażemy najpierw, że Lip( f ) M . Niech a, b będą dowolnymi punktami zbioru . Zdefiniujmy funkcję (t ) (1 t )a tb . Ponieważ zbiór jest wypukły, zatem dla każdego t [0,1] , (t ) . Oznaczając g (t ) f ( (t )) , otrzymujemy, że g (t ) f ( (t )) (t ) f ( (t ))(b a) , t [0,1] . Ponieważ macierz Jacobiego Df(p) reprezentuje pochodną funkcji f w punkcie p, stąd dla wszystkich t [0,1] Aproksymacja – algorytmy ogólne 47 || g (t ) ||E || f ( (t )) ||E || b a ||E M || b a ||E . Z kolei, na podstawie lematu 3.2, dla pewnego x [0,1] zachodzi || g (1) g (0)||E || g ( x)||E i stąd || g (1) g (0)||E M || b a ||E . Dokonując teraz podstawienia g(1) = f(b) i g(0) = f(a) w ostatniej nierówności otrzymuje się || f (b) f (a)||E M || b a ||E dla dowolnych a, b i stąd Lip( f ) M . Z powyższych rozważań wynika, że do udowodnienia tezy twierdzenia pozostaje wykazać, że M Lip( f ) . Niech p będzie dowolnym punktem . Oznaczmy L = Df(p). Macierz L reprezentuje pochodną funkcji f w punkcie p, zatem spełnia ona równość || f (x) f (p) L(x p)||E (3.19a) lim 0. x p || x p ||E Równość ta może zostać wyrażona w równoważnej postaci f (x) f (p) L(x p) r (x p) , gdzie wektor r (x p) R n , taki że lim x p L( x p) r ( x p) (3.19b) r (x p) 0 . Stąd || x p ||E Lip( f ) x p E , E gdyż f jest ciągła w sensie Lipschitza. Ponieważ jest otwarty, zatem istnieje kula B (p, ) {y R n :|| y p ||E } i na podstawie powyższej nierówności otrzymujemy, że dla każdego h x p B (0, ) , || L( h) r ( h) ||E Lip( f ) || h ||E . Stąd dla h 0 dostajemy h r ( h) L || h ||E || h ||E Lip( f ) E i przechodząc do granicy przy 0 otrzymujemy h L || h ||E Lip( f ) , E dla każdego h B (0, ) , h 0 . Ponieważ (3.20) 48 Aproksymacja – algorytmy ogólne h n sup L : h B (0, ), h 0 sup{|| Lh ||E : h R , || h ||E 1} , h || || E E na podstawie formuł (3.20) i (3.15) otrzymujemy || Df (p)||E Lip( f ) . Ponieważ p jest dowolnym punktem zbioru , zatem M Lip( f ) , co kończy dowód. Twierdzenie 3.3 daje praktyczną podstawę numerycznego wyznaczania stałej Lipschitza dowolnego odwzorowania f ciągłego w sensie Lipschitza na otwartym zbiorze wypukłym . Stałą Lipschitza takiego odwzorowania można bowiem wyznaczyć z dowolną dokładnością przy użyciu dowolnego algorytmu optymalizacji na zbiorze wypukłym, maksymalizując funkcję F (p) || Df (p)||E na . W przypadku zastosowania opisanej metody do wyznaczania stałej Lipschitza nieliniowej funkcji f wi1 ... wik , reprezentowanej niejawnie za pomocą ciągu indeksów i1i2...im odwzorowań składowych, można macierz Jacobiego tej funkcji w punkcie p 0 wyznaczyć iteracyjnie (wykorzystując regułę różniczkowania funkcji złożonej) jako iloczyn macierzy Jacobiego Dw im (.) odwzorowań składowych w odpowiednich punktach: k 1 Df (p 0 ) Dw i m0 k m (p m ) , p m 1 wi k m (p m ) , m {0,..., k 2} , (3.21) są różniczkowalne w punktach p m . o ile wi k m Należy zauważyć, że z podejściem takim wiążą się jednak co najmniej dwie trudności. Po pierwsze, nawet jeśli wi są różniczkowalne na pewnym otwartym i wypukłym zbiorze , to jednak w ogólnym przypadku wi () , a zatem wi niekoniecznie muszą być różniczkowalne w punktach p m (i stąd odwzorowanie f niekoniecznie jest różniczkowalne na ). Po drugie, bezpośrednie włączenie opisywanego podejścia do algorytmu adaptacyjnych odcięć w kroku, w którym wyznaczany jest współczynnik zwężania bieżącego złożenia odwzorowań (krok 4 algorytmu w wersji iteracyjnej i krok 3 algorytmu w wersji rekurencyjnej algorytmu), wiązałoby się ze znacznym nakładem obliczeniowym. Rozważany krok algorytmu wykonywany jest bowiem, w zależności od wersji algorytmu, w każdym przebiegu iteracji lub w każdym wywołaniu rekursywnym. W takich okolicznościach wygenerowanie zbioru A aproksymującego atraktor wymagałoby O(| A |) wywołań algorytmu maksymalizacji funkcji na zbiorze wypukłym, gdzie | A | oznacza liczbę punktów zbioru A . Ponieważ w praktycznych zastosowaniach zbiory aproksymujące składają się zwykle co najmniej z kilku tysięcy punktów, rozwiązanie takie jest w praktyce na ogół nie do zaakceptowania. Poniżej przedstawiono metodę pozwalającą na ominięcie wspomnianych trudności w zastosowaniach praktycznych. Aproksymacja – algorytmy ogólne 49 Niech {wi }iN1 , wi : X X , będzie IFS z atraktorem A . Załóżmy, że istnieje otwarty i wypukły zbiór X , taki że A . Wówczas restrykcje wi| , i = 1,..., N, są odwzorowaniami zwężającymi na ze współczynnikami zwężania Lip( wi ) Lip( wi ) . Ponadto, dla dowolnego złożenia f wi1 ... wik , | im {1,..., N } , f jest odwzorowaniem zwężającym na ze współczynnikiem | zwężania Lip( f ) Lip( f ) . (3.22) | Dodatkowo, ponieważ A , zatem diam( f ( A )) Lip( f ) diam( A ) . Oczy| wiście k Lip( f ) Lip( wim ) m 1 i stąd, na podstawie nierówności (3.22), także k Lip( f ) Lip( wim ) . | m 1 k Pomimo to, niekoniecznie spełniona jest nierówność Lip( f ) Lip( w ) , | im | m 1 bowiem – jak sygnalizowano to już wcześniej – w ogólnym przypadku wi nie odwzorowują w . Jednakże zachodzi następujące twierdzenie: Twierdzenie 3.4. Niech A będzie atraktorem IFS {wi }iN1 na X z metryką euklidesową dE. Wtedy A jest także atraktorem IFS {wi }iN1 o odwzorowaniach | A działających na zwartej przestrzeni ( A , d E ) . Jeśli dodatkowo istnieje otwarty i wypukły zbiór X , taki że A oraz restrykcje wi| , i = 1,..., N, są różniczkowalne na , to k Lip( wi1 | A ... wik | A ) sup{|| Dw im (p)||E : p } 1 (3.23) m 1 dla dowolnych im {1,..., N } , k N . Dowód. Niech W będzie operatorem Hutchinsona skojarzonym z {wi }iN1 . N E H ( A ) , W ( E ) W ( E ) wi ( E ) . Po|H ( A ) | A i 1 nieważ także atraktor IFS A H ( A ) i A jest punktem stałym W, zatem A W ( A ) W ( A ) . Wobec tego A jest także punktem stałym |H ( A ) W oraz W : H ( A ) H ( A ) jest zwężający na H ( A ) ze |H ( A ) |H ( A ) ) Lip(W ) . Ponieważ A jest zwarty, współczynnikiem zwężania Lip(W |H ( A ) zatem jest przestrzenią zupełną z metryką dE. Stąd, na podstawie twierdzenia 2.6, Wtedy dla każdego 50 Aproksymacja – algorytmy ogólne W posiada dokładnie jeden punkt stały i jest nim właśnie A . Stąd A jest |H ( A ) atraktorem IFS {wi }iN1 . | A Pokażemy teraz, że zachodzi nierówność (3.23). Ponieważ wi : A A , | A k i = 1,..., N, zatem Lip( wi1 ... wik ) wim . Ponieważ X A i wi | A | A | A m 1 są zwężające na X, zatem wi| są zwężające na i Lip( wi ) Lip( wi ) 1 . | A | Ponadto, jest otwarty i wypukły oraz wi| są różniczkowalne na . Stąd, stosując twierdzenie 3.3 do Lip( wi ) , otrzymujemy nierówność (3.23). | Z punktu widzenia praktycznych zastosowań w problemach numerycznych, część pierwsza powyższego twierdzenia mówi o tym, że w odniesieniu do dowolnego IFS na przestrzeni X, zamiast rozpatrywać oryginalne odwzorowania składowe, można ograniczyć rozważania do restrykcji tych odwzorowań do podzbioru jakim jest atraktor. W szczególności, w przypadku dowolnego złożenia wi1 ... wik oryginalnych odwzorowań IFS diam( wi1 ... wik ( A )) diam( wi1 ... wik ( A )) | A | A Lip( wi1 ... wik ) diam( A ). | A | A (3.24) Stąd, wykorzystując do aproksymacji atraktora IFS algorytm adaptacyjnych odcięć, można wyznaczanie współczynników zwężania (krok 4 algorytmu w wersji iteracyjnej i krok 3 algorytmu w wersji rekurencyjnej) ograniczyć do złożeń restrykcji odwzorowań oryginalnych. Z kolei, na mocy drugiej części powyższego twierdzenia, współczynniki zwężania złożeń tych restrykcji można oszacować z góry za pomocą prawej strony nierówności (3.23), o ile istnieje otwarty i wypukły podzbiór przestrzeni X zawierający atraktor, na którym odwzorowania oryginalne są różniczkowalne1. Kresy górne norm odpowiednich macierzy Jacobiego występujące w nierówności (3.23) należy wyznaczyć w fazie poprzedzającej proces aproksymacji atraktora, wykorzystując w tym celu – tak jak wspomniano wcześniej – odpowiedni algorytm optymalizacji na zbiorze wypukłym. Najmniejszym zbiorem wypukłym, który wchodzi w rachubę, jest zbiór N (conv( A ), ) dla dowolnie małego 0 , to jest dowolnie małe otoczenie epsilonowe otoczki wypukłej atraktora. W przypadku IFS składających się wyłącznie z odwzorowań afinicznych na n R problem wyznaczania współczynników zwężania złożeń tych odwzorowań znacznie się upraszcza. Pochodną odwzorowania afinicznego w(x) = L(x) + t Warto zauważyć, że na podstawie twierdzenia Rademachera każde odwzorowanie ciągłe w sensie Lipschitza na podzbiorze otwartym w Rn jest różniczkowalne na tym podzbiorze prawie wszędzie, to jest z wyjątkiem zbioru zerowej miary Lebesgue’a (Mattila [97]). 1 Aproksymacja – algorytmy ogólne 51 (wzór (2.2)) jest bowiem L, czyli część liniowa tego odwzorowania, i nie zależy ona od punktów przestrzeni. Dlatego macierz Jacobiego odwzorowania części liniowej jest po prostu macierzą L reprezentującą tę część. Ponieważ dowolne złożenie odwzorowań afinicznych jest odwzorowaniem afinicznym, to samo tyczy dowolnego złożenia tych odwzorowań. Macierz Jacobiego złożenia tych odwzorowań jest równa macierzy części liniowej tego złożenia, a ta ostatnia jest równa iloczynowi macierzy części liniowych tych odwzorowań (co zresztą wynika również z formuły (3.21)). Dlatego dowolne odwzorowanie afiniczne jest różniczkowalne na Rn oraz – jak łatwo pokazać – jest ono ciągłe w sensie Lipschitza na Rn z metryką euklidesową. Zatem w przypadku odwzorowań afinicznych formuła (3.17) upraszcza się do postaci: Lip( w) L E , (3.25) gdzie L jest macierzą części liniowej odwzorowania w. Rozważając wymienione własności odwzorowań afinicznych w kontekście algorytmu adaptacyjnych odcięć, można wysnuć wniosek, że zwykle efektywniejszym rozwiązaniem problemu wyznaczania współczynników zwężania bieżących złożeń odwzorowań afinicznych jest zastosowanie odmiennej strategii, aniżeli szacowanie tych współczynników na podstawie formuły (3.23). Metodom tym poświęcona jest dalsza część niniejszego podpunktu. Na podstawie twierdzenia o rozkładzie macierzy względem wartości szczególnych (Kiełbasiński i Schwetlick [66, s. 47]) norma spektralna macierzy L jest równa L E max (L) , (3.26) gdzie max (L) oznacza maksymalną wartość szczególną macierzy. Choć istnieją stabilne numerycznie metody rozkładu macierzy względem wartości szczególnych (SVD) (Golub i Van Loan [44]), to jednak ich zastosowanie w celu wyznaczenia stałej Lipschitza każdego z O(NM) złożeń odwzorowań tworzonych w algorytmie adaptacyjnych odcięć nie byłoby rozwiązaniem rozsądnym. Przede wszystkim metody te są kosztownymi obliczeniowo algorytmami iteracyjnymi (patrz np. implementacja SVD w pracy (Press i inni [121])). Ponadto, na podstawie twierdzenia o rozkładzie macierzy symetrycznej względem wartości własnych (Kiełbasiński i Schwetlick [66, s. 41]), (L) 2 max (LT L) , gdzie lewa strona równości oznacza maksymalną wartość własną nieujemnie określonej macierzy symetrycznej LT L . Stąd norma spektralna macierzy L może zostać wyrażona również jako L E max (LT L) . (3.27) Norma spektralna macierzy może być zatem wyznaczona na podstawie zer wielomianu charakterystycznego macierzy LT L . W szczególności, ponieważ pierwiastki wielomianów stopnia trzeciego i czwartego można wyznaczyć analitycz- 52 Aproksymacja – algorytmy ogólne nie, stosując reguły Cardano i Ferrariego (Schwarze [133], Herbison-Evans [57]), zaś wyznaczenie pierwiastków wielomianu stopnia drugiego polega na rozwiązaniu równania kwadratowego, zatem normę spektralną macierzy L Rn n dla n < 5 można obliczyć w stałym czasie. Podejście to można wykorzystać więc do obliczania stałych Lipschitza odwzorowań na przestrzeniach rzeczywistych o wymiarach mniejszych niż pięć. Dotyczy to zarówno obliczania współczynników zwężania złożeń afinicznych odwzorowań IFS bezpośrednio w algorytmie adaptacyjnych odcięć (Martyn [80, 81], Peitgen i inni [113, s. 325]), jak i obliczania wartości funkcji F (p) || Df (p)||E w algorytmie jej maksymalizacji w opisanej uprzednio metodzie wyznaczania współczynnika zwężania nieliniowego odwzorowania IFS na zbiorze wypukłym. Przedstawiona metoda wyznaczania stałej Lipschitza odwzorowania nie może zostać zastosowana do IFS na przestrzeniach rzeczywistych o wymiarze większym niż cztery. Słynne twierdzenie Abela-Ruffiniego mówi bowiem, że pierwiastki wielomianów stopnia większego niż cztery nie mogą zostać wyznaczone przy użyciu skończonej liczby podstawowych działań arytmetycznych1. W takim przypadku wyznaczenie wartości własnej macierzy symetrycznej wymaga zastosowania jednej ze znanych metod numerycznych rozwiązywania symetrycznego zadania własnego. Biorąc pod uwagę, że w zastosowaniach IFS w grafice komputerowej wymiar przestrzeni rzeczywistej, na której działa IFS, zwykle nie przekracza wymiaru 9 (patrz np. (Nikiel [104, 105])), najbardziej odpowiednią metodą wyznaczania wartości własnych w celu obliczenia stałych Lipschitza wydaje się algorytm Jacobiego (Martyn [81], Kiełbasiński i Schwetlick [66, s. 384]). Algorytm Jacobiego, rozpatrywany w kontekście innych znanych metod rozwiązywania symetrycznego zadania własnego dla macierzy wymiaru mniejszego niż 10, jest uważany za metodę wydajną. Jednakże, w ogólnym przypadku, sens jego wykorzystania do wyznaczania współczynników zwężania każdego z O(NM) złożeń odwzorowań afinicznych w trakcie działania algorytmu adaptacyjnych odcięć jest kwestią dyskusyjną. Należy bowiem zauważyć, że jest to algorytm iteracyjny, w którym koszt wykonania jednego cyklu dla macierzy rozmiaru n×n wynosi w przybliżeniu 8n podstawowych działań arytmetycznych, przy czym zwykle należy wykonać od kilku do kilkunastu cykli. Rozważając problem wyznaczania stałych Lipschitza odwzorowań afinicznych bezpośrednio w algorytmie adaptacyjnych odcięć, należy wziąć pod uwagę możliwość górnego szacowania tych wartości przy użyciu formuły (Martyn [81, 82]): L F n n a i 1 j 1 2 ij , (3.28a) Przez podstawowe działania arytmetyczne rozumie się tutaj operacje: dodawania, odejmowania, mnożenia, dzielenia oraz pierwiastkowania. 1 Aproksymacja – algorytmy ogólne 53 gdzie L [aij ]in, j 1 R nn , tak jak poprzednio, jest macierzą części liniowej odwzorowania afinicznego. Wartość (3.28a), choć nie jest indukowana przez żadną normę wektorową, określana jest często mianem normy Frobeniusa macierzy (Kiełbasiński i Schwetlick [66]). Łatwo pokazać, że wartość ta rzeczywiście spełnia aksjomaty normy oraz że zachodzi równość L F n (L ) i 1 i 2 , (3.28b) gdzie i (L) oznaczają wartości szczególne macierzy L. Na podstawie powyższej równości, biorąc pod uwagę równość (3.26), otrzymuje się następujące oszacowanie normy spektralnej przez normę Frobeniusa: L E L F n L E. (3.29) Na podstawie równości (3.28b) łatwo zauważyć, że nierówność po prawej stronie formuły (3.29) przybiera postać równości jedynie wtedy, gdy wartości szczególne macierzy są sobie równe, a więc tylko wówczas, gdy macierz L reprezentuje podobieństwo. Wobec stałego kosztu 2n 2 1 działań wymaganych do obliczenia normy Frobeniusa dowolnej macierzy L Rn n , szacowanie stałych Lipschitza odwzorowań afinicznych na podstawie normy Frobeniusa jest konkurencyjne nie tylko w stosunku do algorytmu Jacobiego dla n > 4, ale również do metody opartej na analitycznym wyznaczaniu pierwiastków wielomianów stopnia n 4 . Należy bowiem zauważyć, że na przykład dla n = 3, pomijając nawet koszt związany z wyznaczeniem wielomianu charakterystycznego macierzy LT L , samo zastosowanie wzorów Cardano wymaga wykonania ponad 50 arytmetycznych działań podstawowych. Z drugiej strony wyznaczenie normy Frobeniusa macierzy L wymaga w tym przypadku wykonania jedynie 17 takich działań, przy czym, na podstawie nierówności (3.29), wartość normy Frobeniusa jest co najwyżej 3 razy większa niż wartość normy spektralnej. Przedstawione metody wyznaczania stałych Lipschitza dotyczą odwzorowań ciągłych w sensie Lipschitza względem metryki euklidesowej. Jednakże, jak słusznie zauważono m.in. w (Peitgen i inni [113, s. 259]), z punktu widzenia teorii IFS metryka euklidesowa nie jest jakąś metryką wyróżnioną w tym sensie, że można na jej podstawie przesądzać o tym, czy dany zbiór odwzorowań spełnia warunki IFS (definicja 2.15). Należy bowiem zauważyć, że nawet jeśli dane odwzorowanie nie jest zwężające w metryce euklidesowej dE na zupełnej przestrzeni X, to być może istnieje na X jakaś inna metryka e, względem której odwzorowanie to jest jednak zwężające oraz X jest zupełna. W takich okolicznościach układ N takich odwzorowań niezwężających względem dE będzie IFS na przestrzeni (X, e) i stąd zbiór ten będzie również posiadał atraktor. Na przykład, z przypadkiem ta- 54 Aproksymacja – algorytmy ogólne kim mamy zwykle do czynienia w praktycznych zastosowaniach teorii IFS w zagadnieniach interpolacji skończonych zbiorów punktów przy wykorzystaniu fraktalnych funkcji i powierzchni interpolujących (tzw. interpolacja fraktalna) (Barnsley [7, s. 215], Massopust [96]). Wobec tego rodzi się pytanie o możliwość stosowania algorytmu adaptacyjnych odcięć do aproksymacji atraktorów IFS opisanych przez odwzorowania niezwężające w metryce euklidesowej. Należy bowiem zauważyć, że nawet jeśli znana byłaby a priori metryka, względem której odwzorowania składowe IFS są zwężające, to jednak obliczanie współczynników zwężania w tej metryce, w ogólnym przypadku, byłoby zagadnieniem nietrywialnym. Paradoksalnie, w przypadku IFS określonych na przestrzeni Rn (lub jej podzbiorach) z dowolną metryką równoważną metryce euklidesowej, problem powyższy nie tylko ma proste rozwiązanie, ale co więcej, rozwiązanie to sugeruje inne wydajne metody wyznaczania stałych Lipschitza odwzorowań. Lemat 3.5. Niech odwzorowanie f : X X będzie ciągłe w sensie Lipschitza ze stałą Lipschitza Lip e ( f ) na przestrzeni metrycznej (X, e). Niech d e . Wtedy istnieje stała c R taka, że d ( f ( x), f ( y )) c Lip e ( f ) d ( x, y ), x, y X , to jest f jest ciągłe w sensie Lipschitza względem metryki d ze stałą Lipschitza Lip d ( f ) c Lip e ( f ) . Dowód. Ponieważ metryka d jest równoważna metryce e, zatem istnieją stałe c1 , c2 R takie, że c1d ( x, y ) e( x, y ) c2 d ( x, y ), x, y X . Na tej podstawie c1d ( f ( x), f ( y )) e( f ( x), f ( y )) Lip e ( f ) e( x, y ) c2 Lip e ( f ) d ( x, y ) i stąd c2 Lip e ( f ) d ( x, y ), x, y X . c1 c Zatem poszukiwana stała wynosi c 2 . c1 d ( f ( x), f ( y )) Niech dany będzie IFS {wi }iN1 na (X, e). Niech d e . Ponieważ wi są zwężające na (X, e), zatem algorytm adaptacyjnych odcięć uruchomiony dla {wi }iN1 na (X, e) wygeneruje zbiór F , składający się ze skończonej liczby złożeń f wi1 ... wim o stałych Lipschitza Lip e ( f ) nieprzekraczających dowolnie małej wybranej war- 0 (równanie (3.11)). Na podstawie lematu 3.5, wartości stałych diam( A ) Lipschitza Lip d ( f ) tych złożeń względem metryki d są jednak ograniczone przez tości c Lip e ( f ) dla pewnej stałej c R . Zatem w przypadku c , gdzie 0 jest Aproksymacja – algorytmy ogólne 55 dowolnie małą wybraną wartością, algorytm ten uruchomiony dla {wi }iN1 na (X, e) wygeneruje zbiór F , składający się ze skończonej liczby złożeń g o stałych Lip- schitza Lip d ( g ) względem d nieprzekraczających wartości . Stąd, przy diam( A ) powyższych założeniach, dokonywanie porównań na podstawie wartości stałych Lipschitza w metryce d w instrukcji warunkowej algorytmu (krok 4 w wersji iteracyjnej i krok 3 w wersji rekurencyjnej) nie spowoduje utraty zbieżności algorytmu i wygeneruje on zbiór F składający się ze skończonej liczby złożeń g o sta- łych Lipschitza Lip d ( g ) nieprzekraczających wartości . W rezultacie diam( A ) otrzyma się zbiór A aproksymujący atraktor A z błędem nie większym niż względem metryki Hausdorffa indukowanej przez metrykę d. Jedną z konsekwencji powyższego faktu jest to, że jeśli {wi }iN1 jest afinicznym IFS na (X, d), gdzie X R n oraz d d E , wówczas można dokonywać aproksymacji atraktora tego układu przy użyciu algorytmu adaptacyjnych odcięć oraz metod wyznaczania/szacowania stałych Lipschitza opisanych w niniejszym punkcie. W rezultacie otrzymuje się zbiór aproksymujący atraktor z zadaną dokładnością względem metryki Hausdorffa indukowanej przez metrykę euklidesową. Ze względu na fakt równoważności norm na przestrzeniach liniowych o skończonej liczbie wymiarów (Bachman i Narici [4, s. 122]), powyższa uwaga dotyczy w szczególności wszystkich metryk indukowanych przez normy na Rn . Ponadto, ze względu na fakt, że równoważność metryk jest relacją równoważności, w przypadku układu odwzorowań afinicznych spełniającego warunki IFS względem metryki euklidesowej (lub jakiejkolwiek innej metryki jej równoważnej), obliczanie współczynników zwężania w algorytmie adaptacyjnych odcięć można oprzeć na dowolnej metryce równoważnej z metryką euklidesową. W wyniku otrzymuje się zbiór aproksymujący atraktor z zadaną dokładnością względem metryki Hausdorffa indukowaną przez wybraną metrykę. Wykorzystanie tego faktu może wpłynąć na zwiększenie wydajności procesu aproksymacji w przypadku zastosowania metryki, w której wyznaczenie stałych Lipschitza odwzorowań wymaga mniejszego nakładu obliczeń, aniżeli w metryce euklidesowej. W przypadku stałych Lipschitza odwzorowań afinicznych względem metryk indukowanych przez normy wektorowe zachodzi następujące twierdzenie: Twierdzenie 3.6. Niech w : Rn Rn będzie odwzorowaniem afinicznym w(x) = Lx + t, L Rnn , t Rn , na przestrzeni metrycznej ( Rn , d), gdzie metryka d jest indukowana przez pewną normę wektorową || . || p na Rn . Wtedy w jest ciągłe w sensie Lipschitza ze stałą Lipschitza Lip( w) || L || p . Dowód. Ponieważ (ze względu na równoważność norm na Rn ) d d E oraz odwzorowanie afiniczne jest ciągłe w sensie Lipschitza na ( Rn , dE), zatem jest ono 56 Aproksymacja – algorytmy ogólne również ciągłe w sensie Lipschitza na ( Rn , d). Stała Lipschitza Lip(w) jest najmniejszą liczbą spełniającą nierówność (2.1), zatem d ( w(x), w(y )) Lip( w) sup : x, y Rn , x y d ( x, y ) || Lx Ly || p sup : x, y Rn , x y || x y || p || L(x y )|| p sup : x, y Rn , x y || x y || p || Lx || p sup : x Rn , x 0 || L || p . || x || p Na podstawie tego twierdzenia, zagadnienie wyboru metryki w celu dążenia do redukcji kosztu wyznaczania stałych Lipschitza odwzorowań afinicznych w algorytmie adaptacyjnych odcięć sprowadza się do porównania kosztu obliczania (lub szacowania) normy spektralnej z kosztem obliczania normy macierzowej indukowanej przez dowolną inną normę wektorową. Wobec tak postawionego problemu, jedną z metryk, które można wykorzystać w tym celu, jest metryka indukowana przez wektorową normę maksimum || . || . Wartość normy macierzowej indukowanej przez || . || można bowiem wyrazić jako n (3.30) L max aij , i 1,..., n j 1 n n gdzie L [a ] R . Ze względu na koszt n 2 operacji (w tym n operacji porównania) związanych z wyznaczeniem prawej strony równości (3.30), wykorzystanie macierzowej normy maksimum jest konkurencyjne nawet wobec, opisanego wyżej, zastosowania normy Frobeniusa (koszt 2n 2 1 operacji) w celu szacowania normy spektralnej. Dodatkowo łatwo pokazać, że spełnione są następujące nierówności: 1 L L E n L . (3.31) n n ij i , j 1 Stąd, dla dowolnej macierzy L R nn , norma spektralna macierzy jest co najwyżej n razy większa od normy maksimum tej macierzy, zaś norma maksimum tej macierzy jest co najwyżej n razy większa od normy spektralnej tej macierzy. Wobec tego, w przypadku IFS na przestrzeni z metryką euklidesową, zastosowanie normy maksimum w algorytmie adaptacyjnych odcięć może wpłynąć na Aproksymacja – algorytmy ogólne 57 co najwyżej n -krotne pogorszenie zbieżności algorytmu w stosunku do wykorzystania w tym celu normy spektralnej. Zatem w takich okolicznościach, ewentualne pogorszenie zbieżności algorytmu jest tego samego rzędu, jak w rozwiązaniu opartym na szacowaniu normy spektralnej przy użyciu normy Frobeniusa. W tym drugim przypadku otrzyma się jednakże zbiór wynikowy A aproksymujący atraktor względem metryki Hausdorffa indukowanej przez metrykę euklidesową, zaś w wyniku zastosowania normy maksimum zbiór A będzie aproksymował atraktor względem metryki Hausdorffa indukowanej przez metrykę maksimum. W związku z tym należy zauważyć, iż w wielu zastosowaniach aproksymacji to właśnie metryka maksimum jest metryką „naturalną” (rozdz. 4). Przykładem są zadania aproksymacji atraktora na siatkach n-wymiarowych (Martyn [88]), w szczególności, na przestrzeni obrazu z „prostokątną” geometrią piksela (Skarbek [138]) czy przestrzeni wokselowej (Nikiel i Goinski [106], Martyn [94]). Rys. 3.2. Przykłady zastosowania algorytmu adaptacyjnych odcięć do aproksymowania atraktorów IFS zawierających odwzorowania nieliniowe. Układy IFS zostały skonstruowane poprzez nieliniowe modyfikacje odwzorowań wchodzących w skład IFS opisującego trójkąt Sierpińskiego (zob. dodatek A, pkt 2). Więcej przykładów – na załączonym dysku CD-ROM Niestety, problem aproksymacji atraktorów IFS zawierających odwzorowania nieliniowe i niezwężające względem metryki euklidesowej d E jest nieco bardziej złożony. Należy bowiem zauważyć, że jednym z założeń twierdzenia 3.4, na którym oparto zaproponowaną metodę szacowania stałych Lipschitza złożeń odwzorowań nieliniowych (formuła (3.23)), jest właśnie to, że odwzorowania IFS są zwężające względem d E . Jednakże, jak pokazano wyżej, jeśli metryka przestrzeni, na której określony jest IFS, jest równoważna d E , to dla dowolnego 0 algorytm adaptacyjnych odcięć zastosowany z metryką d E wygeneruje skończony zbiór F złożeń f odwzorowań IFS o stałych Lipschitza Lip( f ) względem d E . Z kolei, na podstawie równości (3.10), zbiór diam( A ) F może być rozpatrywany jako IFS opisujący ten sam atraktor, co IFS wejściowy. Wobec tego, przyjmując diam( A ) 1 , dla danego IFS na (X, d), gdzie d d E , zawsze można skonstruować przy użyciu algorytmu adaptacyjnych odcięć odpowiedni IFS o odwzorowaniach zwężających względem d E . Konstruk- 58 Aproksymacja – algorytmy ogólne cję tę należy wykonać w fazie poprzedzającej właściwy proces aproksymacji, korzystając z dowolnego algorytmu optymalizacji na zbiorze wypukłym dla wyznaczenia stałych Lipschitza bieżących złożeń odwzorowań. Na rysunku 3.2 zaprezentowano obrazy przykładowych aproksymacji nieliniowych atraktorów IFS na R 2 , które zostały uzyskane przy wykorzystaniu omówionego uogólnienia algorytmu adaptacyjnych odcięć. Definiujące te atraktory układy IFS zostały skonstruowane poprzez złożenie odwzorowań układu IFS opisującego trójkąt Sierpińskiego z różnymi nieliniowymi przekształceniami przestrzeni R 2 , których interesujący katalog można znaleźć w artykule (Draves i Reckase [24]). 3.3. GRA W CHAOS 3.3.1. Opis algorytmu Algorytm probabilistyczny, określany popularnie jako gra w chaos (ang. the chaos game), został zaproponowany (Barnsley i inni [11], Barnsley [7]) jako metoda aproksymacji miar niezmienniczych generowanych przez układy IFSP (definicje 2.30 i 2.34). Ze względu na fakt, że w przypadku, gdy IFS składa się z odwzorowań zwężających, atraktory IFS są nośnikami tych miar (twierdzenie 2.33), algorytm probabilistyczny jest często wykorzystywany do aproksymacji tych atraktorów (np. Pierański [117], Kudrewicz [70]). Niech dany będzie IFSP {w1,...,wN ; p1,..., pN} na zwartej przestrzeni X. Algorytm probabilistyczny jest algorytmem iteracyjnym. Rozpoczynając od dowolnego punktu przestrzeni X, algorytm generuje losowo skończoną sekwencję punktów, która począwszy od pewnego wyrazu, aproksymuje atraktor. Algorytm probabilistyczny można przedstawić w następujący sposób: procedure ChaosGame( x0, OmittedPoints, NumPoints ) begin 1. x x0 ; A ; 2. for i 1 to NumPoints do begin 3. Wybierz losowo, niezależnie od poprzednich losowań, liczbę k ze zbioru indeksów {1, ..., N} odwzorowań IFSP tak, że prawdopodobieństwo P(k = m) = pm ; 4. x wk ( x) ; 5. if i > OmittedPoints then 6. A A {x} ; end for; end. gdzie argumenty x0, OmittedPoints i NumPoints oznaczają odpowiednio: dowolny punkt przestrzeni X; początkową liczbę punktów generowanych przez algorytm, Aproksymacja – algorytmy ogólne 59 które nie są uwzględniane w zbiorze aproksymującym atraktor; całkowitą liczbę iteracji algorytmu. W przypadku gdy IFSP zawiera wyłącznie odwzorowania zwężające (a zatem układ odwzorowań tworzy IFS), odwzorowania te przekształcają atraktor IFS w niego samego. Zatem wybierając punkt początkowy x0 jako jeden z punktów atraktora, w rezultacie działania algorytmu otrzymuje się sekwencję punktów, której wszystkie wyrazy również należą do atraktora. W takich okolicznościach zwykle bezzasadne jest pomijanie jakichkolwiek początkowych wyrazów generowanej sekwencji (OmittedPoints = 0). Zaletą algorytmu probabilistycznego jest liniowa złożoność obliczeniowa rzędu O(NumPoints) oraz stała złożoność pamięciowa. Podstawową wadę algorytmu stanowi trudność w określeniu a priori skończonej liczby punktów wymaganej do aproksymacji atraktora dla zadanej wartości dokładności aproksymacji . Należy bowiem zauważyć, że choć (jak to zostanie pokazane w podpunkcie 3.3.2 oraz 3.3.4) teoretycznie dla x0 A , przy NumPoints dążącym do nieskończoności, algorytm wygeneruje z prawdopodobieństwem równym 1, ciąg punktów wypełniający atraktor w sposób gęsty, to jednak rezultaty działania algorytmu w skończonym czasie silnie zależą od wartości prawdopodobieństw przypisanych odwzorowaniom (zob. np. Hepting i inni [56]). Dla porządku należy jedynie dodać, że w realnych zastosowaniach w rachubę wchodzą jedynie wyniki działania algorytmu w czasie skończonym, to jest skończone sekwencje punktów uzyskane dla danego NumPoints N . Co więcej, ze względu na probabilistyczny charakter omawianego algorytmu, fakt aproksymacji atraktora z zadaną dokładnością 0 przez sekwencję punktów wygenerowaną przez algorytm w skończonej liczbie kroków jest zdarzeniem losowym o prawdopodobieństwie zależnym zarówno od liczby wyrazów sekwencji, jak wartości prawdopodobieństw układu IFSP. Zagadnieniu numerycznego szacowania prawdopodobieństw tych zdarzeń poświęcono podpunkt 3.3.3. 3.3.2. Analiza w przypadku nieskończonej liczby iteracji Oryginalny dowód poprawności algorytmu probabilistycznego wyrażany jest przy użyciu pojęć z teorii miary i teorii ergodycznej. Dowód ten opiera się na twierdzeniu ergodycznym Eltona [32], które z kolei może być rozważane jako przypadek szczególny twierdzenia ergodycznego Birkoffa (Petersen [116, s. 30]). Istotny dla dalszych rozważań jest następujący wniosek z twierdzenia Eltona, który przedstawiono poniżej w formie twierdzenia: Twierdzenie 3.7. Niech będzie miarą niezmienniczą generowaną przez IFSP na zwartej przestrzeni X. Niech {xi }i 0 będzie ciągiem punktów wygenerowanym przez algorytm probabilistyczny w nieskończonej realizacji tego algorytmu. 60 Aproksymacja – algorytmy ogólne Oznaczmy przez n(B, i) liczbę punktów przecięcia {x0 , x1 , ..., xi } B , i N 0 , gdzie B X jest dowolnym zbiorem borelowskim, takim że (B ) 0 . Wtedy, z prawdopodobieństwem równym jeden, ( B) lim i n( B, i ) i 1 (3.32) dla dowolnego punktu początkowego x0 X . Na podstawie równości (3.32), rozkład nieskończonego ciągu punktów generowanego przez algorytm probabilistyczny zbiega do miary niezmienniczej, której nośnikiem jest pewien zwarty podzbiór przestrzeni X. Stąd, pomijając odpowiednią liczbę wyrazów początkowych, ciąg {xi }i 0 aproksymuje ten podzbiór z dowolną dokładnością 0 względem metryki Hausdorffa. W przypadku, gdy odwzorowania są zwężające, podzbiorem tym jest atraktor IFS (twierdzenie 2.33). Warto jednakże odnotować, że twierdzenie 3.7 nie stawia wymagania, aby układ IFSP zawierał odwzorowania zwężające. Warunkiem wystarczającym na to, aby ciąg punktów wygenerowany przez algorytm probabilistyczny zbiegał do zwartego nośnika miary niezmienniczej jest bowiem jedynie to, aby układ odwzorowań z prawdopodobieństwami spełniał warunki1 podane w definicji 2.30. Jednakże w dalszej części tego podpunktu oraz podpunktach 3.3.3 i 3.3.4 będą rozważane układy IFSP składające się wyłącznie z odwzorowań zwężających, czyli będziemy zakładać, że zbiór odwzorowań wchodzących w skład IFSP tworzy (hiperboliczny) IFS. Z punktu widzenia złożoności obliczeniowej i pamięciowej wyznaczania aproksymacji atraktora IFS (i ewentualnie dalszego przetwarzania tej aproksymacji w celu rozwiązywania innych problemów numerycznych) istotne jest, aby generowana sekwencja punktów była jak najkrótsza. Problem ten sprowadza się do zagadnienia generowania sekwencji punktów wypełniających podzbiory atraktora w sposób jak najbardziej bliski rozkładowi równomiernemu. Na podstawie powyższego twierdzenia, rozkłady sekwencji punktów generowanych przez algorytm probabilistyczny dążą do miary niezmienniczej generowanej przez IFSP, która zależy od wartości prawdopodobieństw przypisanych odwzorowaniom IFS (wniosek 2.32). Zatem w celu dążenia do równomiernego rozkładu punktów tej sekwencji wskazane jest takie dopasowanie prawdopodobieństw układu IFSP, aby generowana przez ten IFSP miara niezmiennicza była jak najbliższa rozkładowi równomiernemu. Niestety, w ogólnym przypadku IFS nie istnieje układ prawdopodobieństw, dla którego IFSP wygeneruje miarę niezmienniczą równą rozkładowi równomiernemu. Niemniej, jeśli IFS składa się z odwzorowań afinicznych oraz jego atraktor 1 To jest, aby układ odwzorowań z prawdopodobieństwami był zwężający „na średnio”. Aproksymacja – algorytmy ogólne 61 jest zbiorem całkowicie niespójnym1, to z punktu widzenia omawianego problemu dobre oszacowanie pożądanych prawdopodobieństw dane jest przez (Barnsley [7, s. 85]): max(|det Li |, ) pi N , (3.33) max(|det Li |, ) i 1 gdzie Li oznacza macierz części liniowej i-tego odwzorowania IFS, zaś 0 jest |det Li | , i = 1,..., N. arbitralnie wybraną małą liczbą, N |det Li | i 1 Należy zauważyć, że |det Li | L n ( wi ( E )) , Ln (E) gdzie L n jest n-wymiarową miarą Lebesgue’a2, zaś E dowolnym zbiorem n-wymiarowym przestrzeni Rn . Powyższy sposób określania prawdopodobieństw może zostać zatem zinterpretowany jako wyznaczanie wartości pi proporcjonalnie do stosunku wartości n-wymiarowej miary Lebesgue’a otoczki wypukłej podzbioru wi ( A ) do wartości tej miary dla otoczki wypukłej atraktora (por. punkt b twierdzenia 2.21). W przypadku, gdy afiniczne odwzorowanie IFS jest nieodwracalne, wymiar otoczki conv( wi ( A )) jest mniejszy niż n, a zatem jej n-wymiarowa miara Lebesque’a jest równa zeru. Wówczas, w celu spełnienia wymogu niezerowych wartości prawdopodobieństw IFSP (definicja 2.30), prawdopodobieństwu pi przypisuje się arbitralnie małą liczbę. Ze względu na swą prostotę, przedstawiona metoda określania prawdopodobieństw jest powszechnie stosowana do wszystkich IFS zawierających odwzorowania afiniczne, bez względu na rodzaj spójności charakteryzującej atraktor. Jak wskazano wyżej, oryginalny dowód faktu wyrażonego w twierdzeniu 3.7, angażuje aparat matematyczny, którego zrozumienie wymaga wiedzy z zakresu teorii ergodycznej i teorii miary. Ze względu na popularność algorytmu probabilistycznego (głównie jako metody wizualizacji fraktali IFS), w literaturze przedmiotu podejmowano próby przeprowadzenia bardziej elementarnego dowodu po- Dokładniej, zamiast o atraktorach, należy tutaj mówić o IFS „całkowicie niespójnych” i „prawie niespójnych” (ang. just-touching) jako przeciwieństwie IFS „nakładających się” (ang. overlapping) (Barnsley [7, s. 125]). 1 Innymi słowy, w zależności od wymiaru n przestrzeni, miara Lebesgue’a jest uogólnieniem długości, pola powierzchni, objętości etc. 2 62 Aproksymacja – algorytmy ogólne prawności tego algorytmu1. Forte i Mendivil [38] znacznie uprościli oryginalny dowód twierdzenia Eltona, uwzględniając (w oryginale niewykorzystany) fakt unikalności miary niezmienniczej generowanej przez IFSP. Z kolei Goodman [45] wykazał poprawność algorytmu probabilistycznego, opierając się na teorii łańcuchów Markowa. Interesujący dowód, będący analizą zbieżności omawianego algorytmu dla przypadku IFSP o równych wartościach prawdopodobieństw przypisanych odwzorowaniom, zapezentowano w pracy (Skarbek [137]). Idea przewodnia dowodu polega na przekształceniu zbioru nieskończonych ciągów indeksów przekształceń IFS na odcinek jednostkowy2 i wykazaniu, że dla dowolnej skończonej sekwencji indeksów miara Lebesgue’a obrazu nieskończonych ciągów zawierających tę sekwencję jest równa 1. Twierdzenie oraz dowód są następujące: Twierdzenie 3.8. Niech dany będzie IFSP {w0 ,..., wN 1 ; p0 ,..., pN 1} na zwartej 1 przestrzeni (X, d), tak że prawdopodobieństwa pk , k {0,..., N 1} , są sobie N równe. Niech A X będzie atraktorem IFS {w0 ,..., wN 1} . Wtedy ciąg punktów {xi }i 0 wygenerowany przez algorytm probabilistyczny w nieskończonej realizacji tego algorytmu dla dowolnego punktu początkowego x0 X i błędu aproksymacji 0 ma następujące własności: (a) a A , P ({xi }i 0 B (a, ) ) 1 ; (b) M N , b X \ N ( A , 2 ) , P ({xi }i M B (b, ) ) 0 . Dowód. (a) Ponieważ X H ( X ) , zatem na podstawie równości (2.12) lim W i ( X ) A . Stąd dla dowolnego punktu a A , istnieje nieskończone i złożenie odwzorowań IFS takie, że dla każdego x X , lim w1 ... w i ( x) a , i k {0,..., N 1} . Ponieważ X, jako zbiór zwarty, jest całkowicie ograniczony (twierdzenie 2.9) i stąd ograniczony, na podstawie powyższego istnieje M N takie, że dla wszystkich x X , w1 ... w i ( x) B (a, ) , jeśli tylko i M . Niech teraz S M ...1 będzie zbiorem wszystkich nieskończonych sekwencji indeksów ze zbioru N {0,..., N 1} , które zawierają sekwencję M ... 1 : S M ...1 { M ... 1 : Np , N , p N 0 } , gdzie Np i N oznaczają zbiory sekwencji, odpowiednio, o długości p i długości nieskończonej. Załóżmy, że algorytm w nieskończonej liczbie iteracji wygeneNależy zaakcentować, iż w odróżnieniu od oryginalnego twierdzenia Eltona, wszystkie cytowane w niniejszej pracy uproszczenia dowodu tego twierdzenia przyjmują dodatkowe założenie, że odwzorowania wchodzące w skład IFSP są odwzorowaniami zwężającymi. 1 Zgodnie z nomenklaturą teorii IFS, mowa jest tutaj o przekształceniu z przestrzeni adresów skojarzonej z danym IFS (Barnsley [7, s. 122]) w przedział [0, 1]. 2 Aproksymacja – algorytmy ogólne 63 ruje pewną sekwencję 1 ... p M ... 1 S M ...1 . Wtedy, dla dowolnego x0 X , w1 ... w M w p ... w1 ( x0 ) B (a, ) . Stąd każda sekwencja indeksów ze zbioru S M ...1 generuje ciąg punktów {xi }i 0 , który przecina kulę B (a, ) . Zatem, aby wykazać pierwszą część twierdzenia, wystarczy udowodnić, że prawdopodobieństwo wygenerowania przez algorytm gry w chaos sekwencji ze zbioru S M ...1 jest równe jedności: P ( S M ...1 ) 1 . Fakt ten zostanie wykazany dla pewnego podzbioru S M ...1 S M ...1 określonego jako S M ...1 { M ... 1 : Np , N , p N 0 , M | p} , gdzie M | p oznacza, iż liczba p jest wielokrotnością liczby M. Ponieważ S M ...1 S M ...1 , zatem P ( S M ...1 ) P ( S M ...1 ) . (3.34) W celu obliczenia prawdopodobieństwa P ( S M ...1 ) , zbiór N zostanie odwzorowany na odcinek [0, 1] przy użyciu surjekcji T : N [0, 1] zdefiniowanej jako T (1 2 ...) (0,1 2 ...) N , gdzie zapis występujący po prawej stronie równości oznacza ułamek w systemie liczbowym o podstawie N. Wtedy prawdopodobieństwo P ( S M ...1 ) L (T ( S M ...1 )) , (3.35) gdzie L oznacza miarę Lebesgue’a na przestrzeni R. Rozważmy zbiór T ( S M ...1 ) [0, 1] . W zbiorze S M ...1 sekwencja M ... 1 poprzedzona jest p indeksami tworzącymi sekwencję oraz liczba p jest wielokrotnością liczby M. Zatem, traktując sekwencje o długości M indeksów ze zbioru {0,..., N 1} jak pojedyncze symbole ze zbioru N M (uporządkowanego zgodnie z naturalnym porządkiem liczb rzeczywistych w systemie o podstawie N), zbiór T ( S M ...1 ) może być rozważany jako zbiór ułamków w systemie liczbowym o podstawie N M . Zbiór ten można rozłożyć na sumę rozłącznych podzbiorów Y j , j =1,2, …, o postaci: Y j {(0, tsm) N M [0, 1]: t ( N M \ {s}) j 1 , s ( M ... 1 ) N N M , m N M } . Z kolei, każdy ze zbiorów Y j może być przedstawiony jako suma rozłącznych podzbiorów postaci: Yj {(0, tsm) N M : m N M } . t( NM \{ s}) j 1 Wobec tego miara Lebesgue’a L (Y j ) t( NM \{ s}) j 1 L{(0, tsm) N M : m N M } , 64 Aproksymacja – algorytmy ogólne ale dla dowolnego t ( N M \ {s}) j 1 j 1 L{(0, tsm) N M : m N M } L [(0, ts ) N M , (0, t ( s 1)) N M ] M , N a zatem j M 1 N 1 L (Y j ) ( N M 1) j 1 M M N N j 1 1 . NM Ponieważ T ( S M ...1 ) Y j oraz Y j są rozłączne, zatem j 1 L (T ( S ... )) L (Y j ) 1 , M 1 j 1 co na podstawie formuł (3.34) i (3.35) kończy dowód pierwszej części twierdzenia. (b) Operator Hutchinsona W skojarzony z IFS {w0 ,..., wN 1} jest odwzorowaniem zwężającym na (H ( X ) , h) (twierdzenie 2.16) oraz X H ( X ) . Stąd, dla każdego i N , h(W i ( X ), A ) (Lip(W ))i h( X , A ) (Lip(W ))i diam( X ) . Zatem, na podstawie definicji 2.13, log log diam( X ) i M , w i ... w1 ( x0 ) N ( A , ) , log Lip(W ) dla dowolnych k {0,..., N 1} i dowolnego x0 X . Ponieważ dla b X \ N ( A , 2 ) , kule B (b, ) X \ N ( A , ) , zatem kule te nie są przecinane przez {xi }i M . Poniżej zaprezentowano dowód poprawności algorytmu probabilistycznego przedstawiony w pracy (Martyn [83]). W odróżnieniu od poprzedniego, dowód obejmuje wszystkie przypadki układów IFSP składających się z odwzorowań zwężających oraz jest elementarny w tym sensie, że wykorzystuje jedynie podstawową wiedzę z rachunku prawdopodobieństwa. Ponadto, jak pokazano w cytowanej pracy, przedstawione wnioskowanie w sposób naturalny może zostać zaadaptowane do wykazania poprawności algorytmu probabilistycznego dla uogólnień specyfikacji IFS, takich jak IFS rekurencyjny (Barnsley i inni [10]) i IFS hierarchiczny (Peitgen i inni [113, s. 272]). Twierdzenie 3.9. Niech dany będzie IFSP {w1,..., wN ; p1,..., pN} na zwartej przestrzeni X. Niech A X będzie atraktorem IFS {w1,..., wN}. Niech {xi }i 0 będzie ciągiem punktów wygenerowanym przez algorytm probabilistyczny w nieskoń- Aproksymacja – algorytmy ogólne 65 czonej realizacji tego algorytmu dla dowolnego punktu początkowego x0 X . Wtedy, z prawdopodobieństwem równym 1, dla dowolnego (0, diam( A )] , istnieje M N takie, że h( A ,{xi }i M ) , to jest podciąg {xi }i M aproksymuje A z błędem nie większym niż względem metryki Hausdorffa. Dowód. Dowód składa się z dwóch części. W części pierwszej pokazano, że jeśli punkt początkowy x0 należy do atraktora, to dla dowolnego M N punkty ciągu {xi }i M stanowią zbiór gęsty w atraktorze. W części drugiej dowodu wykorzystano ten fakt do wykazania tezy twierdzenia. Niech punkt początkowy x0 A . Ponieważ odwzorowania IFS przekształcają atraktor w atraktor, wszystkie punkty ciągu {xi }i 0 należą do A . Niech a X będzie dowolnym punktem A . W celu przeprowadzenia pierwszej części dowodu wystarczy pokazać, że dla dowolnego (0, diam( A )] i dowolnego M N , podciąg {xi }i M zawiera – z prawdopodobieństwem równym 1 – punkt znajdujący się w odległości nie większej niż od punktu a. Na podstawie rozważań z podpunktu 3.2.1, dla dowolnego (0, diam( A )] , atraktor A może zostać rozłożony na skończoną liczbę podzbiorów postaci w1 ... w k ( A ) o średnicach nie większych niż . Zatem punkt a należy przynajmniej do jednego z podzbiorów w1 ... w k ( A ) dekompozycji. Stąd, jeśli począwszy od dowolnej iteracji m działania algorytmu, w k bezpośrednio następujących po sobie iteracjach zostanie wylosowana sekwencja k ,..., 1 indeksów odwzorowań IFS, to punkt xm k 1 ciągu {xi }i 0 będzie należał do zbioru w1 ... w k ( A ) . Niech Bm oznacza zdarzenie losowe, że w kolejnych iteracjach o numerach m, m 1 ,..., m k 1 została wylosowana sekwencja k ,..., 1 . Ponieważ diam( w1 ... w k ( A )) oraz a w1 ... w k ( A ) , zatem jeśli zdarzenie Bm będzie miało miejsce, to d ( xm k 1 , a ) . Ponieważ losowania indeksów odwzorowań odbywają są niezależnie, zatem k P ( Bm ) p i 0 . (3.36) i 1 Oczywiście kolejne zdarzenia Bm, m = 1, 2,..., nie są niezależne. Zdarzenia Bkm , m = 1, 2,..., są już jednak niezależne, a zatem wystąpienie zdarzeń z podciągu {Bkm }m 1 może być rozpatrywane w kategoriach nieskończonego ciągu prób Bernoulliego z prawdopodobieństwem p sukcesu (tj. wystąpienia dowolnego zdarzenia spośród zdarzeń {Bkm }m 1 ) w pojedynczej próbie, określonym równością (3.36). Na mocy prawa wielkich liczb Bernoulliego1 (Jakubowski i Sztencel [60, s. 154]), dla dowolnego 0 , 1 Pokazany dalej rezultat można równie łatwo otrzymać, stosując zamiast prawa wielkich liczb Bernoulliego – lemat Borela-Cantelliego. Ponieważ jednak lemat ten operuje stosunkowo trudnymi pojęciami granic górnej i dolnej ciągu zdarzeń, więc w ocenie autora prawo wielkich liczb Bernoulliego jest łatwiejsze do przyswojenia na podstawowym poziomie znajomości rachunku prawdopodobieństwa. 66 Aproksymacja – algorytmy ogólne S lim P m p 1 , m m gdzie Sm oznacza liczbę sukcesów w m próbach. Stąd, z prawdopodobieństwem równym 1, lim Sm . Zatem w nieskończonej realizacji algorytmu probabilim stycznego zajdzie nieskończenie wiele spośród zdarzeń {Bkm }m 1 , więc tym bardziej spośród zdarzeń {Bm }m 1 . Stąd, dla dowolnego M N , w nieskończonej realizacji algorytmu probabilistycznego zajdzie również nieskończenie wiele spośród zdarzeń {Bm }m M . Ponieważ a A był dowolny, zatem jeśli punkt początkowy x0 A , wówczas, z prawdopodobieństwem równym 1, dla dowolnego punktu atraktora, dowolnego M N oraz każdego (0, diam( A )] , ciąg punktów {xi }i M zawiera punkt położony w odległości nie większej niż . Co więcej, punkty ciągu {xi }i M należą do A , a zatem zbiór tych punktów, z prawdopodobieństwem równym 1, jest gęsty w A . Niech teraz punkt x0 będzie dowolnym punktem przestrzeni X. Niech {xi }i 0 i { yi }i 0 będą nieskończonymi ciągami punktów wygenerowanymi równolegle przez tę samą realizację algorytmu probabilistycznego dla punktów początkowych x0 X i y0 A , tzn. xi 1 w i ( xi ) i yi 1 w i ( yi ) , gdzie i jest indeksem odwzorowania IFS wylosowanym w i-tej iteracji algorytmu. Ponieważ odwzorowania IFS są zwężające, zatem odległość między punktami xm i ym ciągów w m-tej iteracji algorytmu wynosi d ( xm , ym ) d ( w m ... w1 ( x0 ), w m ... w1 ( y0 )) m Lip ( w m ... w1 ) d ( x0 , y0 ) Lip ( w k ) d ( x0 , y0 ) k 1 oraz, dla każdego n > m, d ( xn , yn ) (max Lip( wl )) n m d ( xm , ym ) , gdzie max Lip( wl ) 1 . Zatem, dla dowolnego (0, diam( A )] , istnieje M N takie, że dla każdego n M , d ( xn , yn ) . Stąd, odległość Hausdorffa między domknięciami zbiorów punktów podciągów {xi }i M i { yi }i M h {xi }i M ,{ yi }i M . (3.37) Ponieważ jednak y0 A , więc na podstawie pierwszej części dowodu, z prawdopodobieństwem równym 1, punkty ciągu { yi }i M tworzą zbiór gęsty w A . Wobec tego, domknięcie { yi }i M A . Stąd, na podstawie nierówności (3.37), otrzymujemy tezę. Alternatywny dowód poprawności algorytmu probabilistycznego, oparty na rozważaniach zawartych w następnym podpunkcie, przedstawiono w podpunkcie 3.3.4. Aproksymacja – algorytmy ogólne 67 3.3.3. Analiza w przypadku skończonej liczby iteracji W literaturze przedmiotu temat analizy algorytmu probabilistycznego w przypadku skończonej liczby iteracji podejmowany jest niezmiernie rzadko. Autorzy prac dotyczących zagadnień numerycznych, których rozwiązania opierają się na wykorzystaniu tego algorytmu, zwykle ograniczają się w tym zakresie do enigmatycznego stwierdzenia, iż iterację należy przeprowadzić odpowiednią liczbę razy, bądź po prostu zalecają a priori dokonywanie liczby iteracji rzędu miliona i więcej (Barnsley [6, s. 28])1. W tym drugim przypadku, uzasadnienia wspomnianego zalecenia należy poszukiwać w próbie reprezentowania nieskończonej liczby iteracji, o jakiej mowa w twierdzeniach 3.7 i 3.9, za pomocą wielkich liczb. Jako jedną z nielicznych pozycji dotyczących rozważanego problemu należy wspomnieć artykuł (Goodman [45]). Cytowana praca poświęcona jest analizie algorytmu probabilistycznego w kontekście IFSP o równych prawdopodobieństwach i odwzorowaniach opisujących trójkąt Sierpińskiego. Korzystając z teorii łańcuchów Markowa, dokonano w niej próby oszacowania od góry prawdopodobieństwa, że skończona sekwencja punktów wygenerowana przez algorytm probabilistyczny będzie aproksymowała wspomniany fraktal z zadaną dokładnością. Analiza dokonana w niniejszym podpunkcie opiera się na podejściu przedstawionym poprzednio przez autora w artykule (Martyn [84]). Podobnie jak w pracy (Goodman [45]), w cytowanej pozycji również skorzystano z elementów teorii łańcuchów Markowa. Jednakże, w odróżnieniu od pracy Goodmana, analiza zawarta w (Martyn [84]) obejmuje ogólny przypadek IFSP zarówno w zakresie odwzorowań IFS, jak i wartości prawdopodobieństw przypisanych tym odwzorowaniom. Dodatkowo, niniejszy podpunkt uzupełnia oryginalne rozważania o metodę szacowania wartości średniej liczby iteracji potrzebnej do wygenerowania przez algorytm probabilistyczny zbioru punktów aproksymujących atraktor IFS dla zadanej dokładności. Ponieważ, z punktu widzenia minimalizacji nakładu obliczeń związanych z aproksymacją (oraz jej ewentualnym wykorzystaniem do numerycznego rozwiązywania innych problemów), ciąg punktów generowany przez algorytm probabilistyczny powinien być jak najkrótszy, w dalszej części tego podrozdziału założono, że punkt początkowy należy do atraktora. W takich okolicznościach bowiem wszystkie punkty ciągu również są punktami atraktora, zaś sam punkt początkowy można łatwo wyznaczyć jako punkt stały dowolnego z odwzorowań IFS. Przed przystąpieniem do właściwych rozważań zdefiniowane zostaną pojęcia i oznaczenia wykorzystywane w dalszej części podpunktu. 1 W literaturze z dziedziny grafiki komputerowej można również spotkać oszacowania wymaganej liczby iteracji n algorytmu probabilistycznego w zależności od rozdzielczości ekranu w postaci n num_pixels ln(e num_pixels ) , gdzie e jest stałą Eulera (Monro i Dudbridge [100]). Jednakże oszacowanie to opiera się na nierealnych założeniach. 68 Aproksymacja – algorytmy ogólne Niech * oznacza zbiór wszystkich skończonych słów, wraz ze słowem pustym , nad skończonym alfabetem {1,..., N } , zaś L * – zbiór wszystkich słów o długości L. Dla danego słowa a * , a 1 2 ... m , przez a (k ) 1 ... k i a (k ) m – k ... m będą oznaczane odpowiednio: prefiks i sufiks o długości k {0, ..., | a |} słowa a, gdzie |a| = m oznacza długość tego słowa oraz a (0) a (0) . Symbolami i będą oznaczane odpowiednio: relacja prefiksowa i relacja sufiksowa na * , to jest a b k {0,...,| b |}, b (k ) a , a b k {0,...,| b |}, b (k ) a , gdzie a, b * . (Należy zauważyć, że słowo puste jest w relacji prefiksowej i sufiksowej z każdym słowem z * ). W końcu, niech a : S N 0 oznacza funkcję sufiksową słowa a S , to jest a (b) max{k : a (k ) b} . Niech teraz {w1,..., wN ; p1,..., pN} będzie IFSP na zwartej przestrzeni X. Niech A X będzie atraktorem IFS {w1,..., wN}. Na podstawie rozważań z podpunktu 3.2.1, dla dowolnego 0 , atraktor A może zostać rozłożony na skończoną liczbę podzbiorów postaci wi1 ... wik ( A ) o średnicach diam( wi1 ... wik ( A )) . Niech F będzie zbiorem skończonych złożeń odwzorowań wi1 ... wik IFS spełniającym warunki (3.10) i (3.11). Zdefiniujmy odwzorowanie z przestrzeni * na przestrzeń wszystkich skończonych złożeń odwzorowań IFS jako: ( ) id X , (1 2 ... m ) w ... w w , m 2 1 (3.38) gdzie idX jest odwzorowaniem identycznościowym na przestrzeni X. Wykorzystując powyższe odwzorowanie zdefiniujemy następnie podzbiory D, D oraz S przestrzeni *, odpowiednio: D jako zbiór wszystkich sekwencji indeksów generujących zbiór F za pośrednictwem odwzorowania , D jako zbiór wszystkich właściwych prefiksów zbioru D, zaś S jako sumę mnogościową D i D : D 1 ( F ) , (3.39a) D {a * : a s, a s, s D} , (3.39b) S D D . (3.39c) Lemat 3.10. (a) S i stąd a S , a (1) S ; (b) jeśli a S , to , k {1, ..., a 1} , (a ) (k ) S ; (c) jeśli a S i a (k ) D dla pewnego k {0, ..., | a |} , to a a (k ) . Aproksymacja – algorytmy ogólne 69 Dowód (a) Jak pokazano w podpunkcie 3.2.1, konstrukcja zbioru F polega na generowaniu złożeń f i0i1 ...imim1 f i0i1 ...im wim1 dla każdego im 1 {1,..., N } , gdzie m N i f i0 jest odwzorowaniem identycznościowym. Zatem, dla każdego i1 {1,..., N } , zbiór F zawiera przynajmniej jedno złożenie f i0i1 ...im , m N . Stąd, dla każdego a , istnieje a D takie, że a (1) . Ponieważ D S , stąd wynika teza. (b) Na postawie a), teza spełniona jest na przykład dla k = 0. (c) Niech a D i a (k ) D . Wtedy dla każdego k {0,..., | a | 1} , a (k ) D , bo na podstawie (3.11), Lip( (a (k ))) / diam( A ) . Zatem a a (k ) . Niech teraz a D i a (k ) D dla pewnego k {0,..., | a |} . Wtedy, na podstawie (3.11), Lip( (a (k ))) / diam( A ) . (3.40) Na podstawie założenia jednak a D . Zatem istnieje b * takie, że ab D i stąd Lip( (ab)) / diam( A ) . Wobec nierówności (3.40), jednocześnie jednak Lip( (a (k )b)) / diam( A ) . Zatem, na podstawie (3.11), a (k ) a . Niech ( L , F , P ) będzie przestrzenią probabilistyczną, taką że zbiór zdarzeń L F 2 oraz prawdopodobieństwo P ( A) 1 ... L A p1 ... p L , (3.41) gdzie pi jest wartością prawdopodobieństwa ze zbioru {p1,..., pN} prawdopodobieństw IFSP. Działanie algorytmu probabilistycznego w L iteracjach można rozpatrywać w kategoriach ewolucji pewnego dyskretnego procesu stochastycznego w czasie 0 i L , i N 0 , i stanach w zbiorze S, to jest ciągu {Yi }iL 0 zmiennych losowych określonych na przestrzeni ( L , F , P ) i przyjmujących wartości ze zbioru S. W procesie tym przejście ze stanu Yi w chwili i do następnego stanu Yi+1 w chwili i + 1 następuje zgodnie z regułą: Y0 , Yi 1 (Yi )(kmax ), (3.42a) gdzie kmax max( a (Yi )) , aS (3.42b) zaś jest indeksem odwzorowania IFS wylosowanym w i + 1 iteracji algorytmu. 70 Aproksymacja – algorytmy ogólne Łatwo zauważyć, że reguła ta określa ewolucję procesu w sposób poprawny. Na postawie punktów (a) i (b) lematu 3.10 można bowiem sformułować wniosek, że dla dowolnego stanu Yi S procesu w chwili i i dowolnego symbolu wylosowanego w chwili i + 1, istnieje jakiś stan (Yi )(k ) S procesu dla chwili i + 1. Ponadto, ponieważ dla ustalonego Yi S i ustalonego , istnieje w zbiorze S tylko jedno słowo (Yi ) (kmax ) , gdzie kmax określone jest równaniem (3.42b), przejście procesu ze stanu do stanu określone jest w sposób jednoznaczny. Co więcej, na podstawie (3.42a), stan procesu w chwili i + 1 zależy wyłącznie od stanu w chwili i oraz indeksu wylosowanego w chwili i + 1. Zatem proces ten jest łańcuchem Markowa, to jest posiada własność (to jest własność Markowa – definicja 2.37): P (Yi 1 a | Y0 , Y1 ,..., Yi ) P (Yi 1 a | Yi ) . (3.43) Na podstawie (3.41), prawdopodobieństwo przejścia ze stanu Yi do stanu Yi 1 (Yi ) (kmax ) , , wynosi P (Yi 1 (Yi ) (kmax ) | Yi ) p , (3.44) gdzie p jest prawdopodobieństwem ze zbioru {p1,..., pN} prawdopodobieństw IFSP. Ponieważ wartości prawdopodobieństw (3.44) nie zależą od czasu, {Yi }iL 0 jest łańcuchem jednorodnym w czasie (definicja 2.39). Dodatkowo zachodzi następujące twierdzenie: Twierdzenie 3.11. Niech s L będzie sekwencją indeksów odwzorowań IFS wygenerowaną w L iteracjach algorytmu probabilistycznego. Jeśli s zawiera, począwszy od i-tego miejsca, sekwencję a D , to Yi |a|1 a . Dowód. Niech a 1 2 ... |a| . Na podstawie (3.42), dla każdego k {1,..., | a |} , Yi k 1 (Yi k 2 k ) (mk ) , gdzie, na mocy punktu (b) lematu 3.10, mk 1 . Jednocześnie dla każdego k {1,..., | a |} , a (k ) S . Zatem mk k dla każdego k {1,..., | a |} i stąd Yi k 1 b (nk )a (k ) dla pewnych nk 0 i b s (i 1) . Wobec tego, Yi |a|1 b (n|a| )a . Ale b (n|a| )a S i, na podstawie założeń twierdzenia, a D . Zatem wobec punktu (c) lematu 3.10, b (n|a| )a a i stąd b (n|a| ) . Stąd Yi |a|1 a . Aproksymacja – algorytmy ogólne 71 Wobec tego, jeśli punkt początkowy x0 A , to oszacowanie prawdopodobieństwa zdarzenia, że ciąg punktów {xi }iL 0 wygenerowany przez algorytm probabilistyczny w L iteracjach będzie aproksymował atraktor z błędem nie większym aniżeli 0 , sprowadza się do oszacowania prawdopodobieństwa, że łańcuch Markowa {Yi }iL 0 odwiedzi wszystkie stany należące do podzbioru D: L L P ({a D, 0 i L, Yi a}) P {Yi a} 1 P {Yi a} . aD i 1 aD i 1 Na podstawie nierówności Boole’a otrzymujemy L L L P {Yi a} P {Yi a} D P {Yi a} aD aD i 1 aD i 1 i 1 i stąd L P ({a D, 0 i L, Yi a}) 1 P {Yi a} D . (3.45) aD i 1 Niech teraz T będzie zmienną losową reprezentującą czas, w którym łańcuch Markowa {Yi }i 0 odwiedzi wszystkie stany z podzbioru D, to jest T inf{L 0 : Yi1 a1 ,..., Yi| D | a| D| , i1 ,..., i| D| L, {a1 ,..., a| D| } D}. Ponieważ wartość zmiennej T jest nie większa od sumy czasów dojścia łańcucha Markowa do każdego ze stanów z podzbioru D indywidualnie, to jest T inf{L 0 : YL a} , aD zatem średni czas E(T) odwiedzenia przez łańcuch Markowa wszystkich stanów z podzbioru D spełnia: (3.46) E (T ) E (inf{L 0 : YL a}) . aD W celu wykorzystania oszacowań (3.45) i (3.46) w praktyce pozostaje wyzna L czyć, dla każdego stanu a D , wartości P {Yi a} i E (inf{L 0 : YL a}) , i 1 to jest, odpowiednio: prawdopodobieństwo zdarzenia, że łańcuch Markowa odwiedzi w czasie 0 i L stan a przynajmniej raz, i średni czas dojścia łańcucha Markowa do tego stanu. Dojście do ustalonego stanu. Jest dobrze znanym faktem, że prawdopodobieństwo wystąpienia skończonego słowa a w skończonej sekwencji symboli s, która została wygenerowana losowo poprzez niezależne losowania symboli z alfabetu , zależy nie tylko od prawdopodobieństwa wylosowania danego symbolu spośród symboli składowych słowa a, ale również od samej struktury tego słowa. Na przykład, w przypadku, gdy prawdopodobieństwa wylosowania symbo- 72 Aproksymacja – algorytmy ogólne li z alfabetu są równe, wówczas wystąpienie słowa będącego n-powtórzeniem pojedynczego symbolu jest mniej prawdopodobnym zdarzeniem losowym aniżeli wystąpienie dowolnego słowa o tej samej długości, lecz składającego się z różnych symboli alfabetu. Niech a 1 2 ... k D i {Yi }iL 0 będzie łańcuchem Markowa na przestrzeni probabilistycznej ( L , F , P ) o regule przejścia określonej równościami (3.42). Wówczas spełnionych jest k następujących równoważności: (1) (2) (k) Yi a a (k 1) Yi 1 i k został wylosowany w iteracji i, a (k 1) Yi 1 a (k 2) Yi 2 i k 1 został wylosowany w iteracji i –1, a (1) Yi k 1 Yi k i 1 został wylosowany w iteracji i – k + 1. Opierając się na sekwencji powyższych równoważności łatwo zauważyć, iż prawdopodobieństwo warunkowe zdarzenia, że łańcuch Markowa osiągnie w przyszłości stan a D pod warunkiem, że jest on w stanie b S , zależy od maksymalnego sufiksu b (mmax ) równego prefiksowi a (mmax ) , mmax a (b) , oraz nie zależy od pozostałej części słowa b, to jest od prefiksu b (| b | mmax ) . Stąd, jeśli maksymalne sufiksy dwóch różnych słów b, c S są równe pewnemu prefiksowi słowa a, wówczas słowa te są nierozróżnialne z punktu widzenia prawdopodobieństwa warunkowego osiągnięcia przez łańcuch Markowa stanu a pod warunkiem przebywania w danym stanie w teraźniejszości: a (b) a (c) P(Yi k a | Yi b) P(Yi k a | Yi c), k {0,..., L 1}, i {0,..., L}. Wobec tego, z punktu widzenia problemu dojścia łańcucha Markowa {Yi }iL 0 do danego stanu a D istotne jest osiąganie przez ten łańcuch poszczególnych podzbiorów podziału zbioru S, który to podział wprowadzany jest na S przez relację „równoważności sufiksowej” względem słowa a. Dla ustalonego a D , zdefiniujmy na S relację ~ jako b ~ c ( a (b) a (c)), b, c S . (3.47) Z definicji tej natychmiast wynika, że relacja ~ jest relacją równoważności. Tym sposobem otrzymujemy podział S / ~ {0,..., | a |} zbioru S względem relacji ~ na | a | 1 klas równoważności i [b] , gdzie [b] oznacza klasę równoważności słowa b S , taką że i a (b) . Niech teraz {Z i }iL 0 będzie ciągiem zmiennych losowych określonych – podobnie jak łańcuch Markowa {Yi }iL 0 – na przestrzeni ( L , F , P ) oraz przybierających wartości ze zbioru S / ~ na podstawie wartości zmiennych Yi zgodnie z regułą: Aproksymacja – algorytmy ogólne 73 Z 0 0, | a |, gdy Z i | a |, Z i 1 a (Yi 1 ), w p.p. (3.48) Ponieważ {Yi }iL 0 jest łańcuchem Markowa, zatem wobec powyższej definicji {Z i }iL 0 również posiada własność Markowa (definicja 2.37) z prawdopodobieństwem przejścia ze stanu do stanu określonym przez: gdy k | a | m, 1, P ( Z i 1 m | Z i k ) 0, gdy k | a | m, P ( (Y ) m | (Y ) k ), w p.p. a i 1 a i (3.49) Ponadto, jeśli a (Yi ) k , to, wobec reguł (3.42), a (Yi 1 ) a ((Yi ) (kmax )) a (a (k ) ) . Stąd, na mocy reguły przejścia (3.48), otrzymujemy funkcję przejścia a :{0,...,| a |} {0,..., | a |} łańcucha Markowa {Z i }iL 0 ze stanu k S / ~ pod wpływem symbolu w postaci: gdy k | a |, | a |, a (k , ) a (a (k ) ), w p.p. (3.50) Stąd, na podstawie (3.44), dla k | a | otrzymujemy P ( a (Yi 1 ) m | a (Yi ) k ) p , { : a ( k , ) m} gdzie p jest prawdopodobieństwem ze zbioru {p1,..., pN} prawdopodobieństw IFSP. Ponieważ a (| a |, ) | a | dla wszystkich , zatem wykorzystując powyższe obserwacje, można wzór (3.49) wyrazić przy użyciu funkcji przejścia (3.50) w równoważnej postaci jako P ( Z i 1 m | Z i k ) { : a ( k , ) m} p . (3.51) Wartości prawdopodobieństw IFSP nie zależą od czasu, stąd, na podstawie (3.51), łańcuch Markowa {Z i }iL 0 jest – podobnie jak {Yi }iL 0 – jednorodny w czasie. Dodatkowo zachodzi następujące twierdzenie: Twierdzenie 3.12. Dla każdego a D , L P {Yi a} P ( Z L | a |) . i 1 74 Aproksymacja – algorytmy ogólne Dowód. Na podstawie funkcji przejścia (3.50), stan |a| jest stanem pochłaniająL L L i 1 i 1 i 1 cym. Stąd {Z L | a |} {Z i | a |} { a (Yi ) | a |} {Yi | a |} . Ponadto, stan |a| jest klasą równoważności słowa a D względem relacji (3.47), to jest | a | [a ] {b S : a (b) | a |} {ca S : c * } . Stąd, na podstawie punktu (c) L lematu 3.10, | a | {a} . Wobec tego, {Z L | a |} {Yi a} i ponieważ zmieni 1 ne losowe Z i oraz Yi , i = 1,..., L, są określone na tej samej przestrzeni probabilistycznej – stąd wynika teza. Ponieważ łańcuch {Z i }iL 0 jest jednorodny w czasie, zatem wartości prawdopodobieństw warunkowych (3.51) określają, niezależną od czasu, macierz stochastyczną Pa R (|a|1) (|a|1) tego łańcucha, to jest macierz Pa [ pk , m ]k , mS / ~ , pk , m p . (3.52) { : a ( k , ) m} Wobec tego, rozkład prawdopodobieństwa zmiennej losowej ZL dany jest wektorem z R a 1 , takim że z T xT P L , gdzie k-ta współrzędna wektora z jest równa prawdopodobieństwu zdarzenia {ZL = k}, zaś x [1, 0,...,0]T jest rozkładem początkowym rozważanego łańcucha Markowa (to jest rozkładem zmiennej losowej Z0). Stąd, na podstawie twierdzenia 3.12, L ( L) P {Yi a} p0,| (3.53) a| , i 1 ( L) L ( L) gdzie p0,| a| jest prawym górnym elementem macierzy Pa [ pk , m ]k , mS / ~ . Funkcja przejścia (3.50) oraz macierz stochastyczna (3.52) mogą zostać wyznaczone w efektywny sposób przy wykorzystaniu algorytmu zaprezentowanego pod koniec niniejszego podpunktu. Na rysunku 3.3 przestawiono wartości funkcji przejścia oraz macierz stochastyczną łańcucha Markowa {Z i }iL 0 indukowanego przez przykładowy ciąg symboli. Na rysunku 3.4 zobrazowano zależności liczby iteracji wystarczającej do uzyskania aproksymacji z zadaną dokładnością od prawdopodobieństwa (3.45) dla trzech przykładowych zbiorów prawdopodobieństw układu IFSP opisującego trójkąt Sierpińskiego. Niech teraz |a| (k ) oznacza średni czas dojścia łańcucha {Z i }i 0 do stanu |a|, gdy łańcuch znajduje się w stanie k, tzn. |a| (k ) E (inf{L 0 : Z L j | a |}| Z j k ) . Aproksymacja – algorytmy ogólne 75 Rys. 3.3. Łańcuch Markowa indukowany przez słowo : a) graf przejścia (pominięto przejścia do stanu 0); b) wartości funkcji przejścia; c) macierz stochastyczna – symbole identyfikowane są z wartościami przypisanych im prawdopodobieństw Wtedy zachodzi następujące twierdzenie: Twierdzenie 3.13. Dla k | a | , |a| (k ) 0 . Dla k {0,...,| a | 1} wartości |a| (k ) określone są jako jednoznaczne rozwiązanie układu równań |a| ( k ) 1 m{0,...|a|1} pk , m |a| (m) , (3.54) gdzie wartości pk , m są elementami macierzy stochastycznej (3.52). Dowód. Na podstawie twierdzenia 2.48. Na podstawie reguły (3.48), |a| (0) E (inf{L 0 : YL a}) . Twierdzenie 3.13 daje zatem podstawę do oszacowania z góry średniego czasu odwiedzenia przez łańcuch Markowa {Yi }i 0 wszystkich stanów ze zbioru D, poprzez obliczenie prawej strony nierówności (3.46) przy wykorzystaniu macierzy stochastycznych (3.52) indukowanych przez stany z D. Obliczenia takie można przeprowadzić w trakcie konstruowania zbioru D przy użyciu prostej modyfikacji algorytmu adaptacyjnych odcięć (Martyn [84]). W szczególności, jeśli stan a stanowi sekwencję n-powtórzeń pojedynczego symbolu, to wówczas – na postawie funkcji przejścia (3.50) – układ równań (3.54) zapisuje się w postaci: k |a| (k ) |a| (0) m 1 1 pm dla k {1,...,| a | 1} 76 Aproksymacja – algorytmy ogólne oraz |a| (| a | 1) 1 (1 p) |a| (0) , gdzie p jest prawdopodobieństwem wylosowania symbolu składowego. Stąd |a| (0) 1 p |a| . p|a| (1 p ) Wobec tego, dla każdego a D Lmax 1 pmin , E (inf{L 0 : YL a}) Lmax pmin (1 pmin ) gdzie: pmin min{ p : } , Lmax max{| a |: a D} . Stąd, dla danego IFSP {w1,..., wN ; p1,..., pN} z atraktorem A , średni czas (3.46) wygenerowania przez algorytm probabilistyczny ciągu punktów {xi } , x0 A , aproksymującego A z błędem nie większym niż 0 względem metryki Hausdorffa, może być oszacowany z góry jako 1 p Lmax E (T ) N Lmax Lmax min , (3.55) pmin (1 pmin ) gdzie: Lmax max min k N : Lip( wi k ) { pi } . , pmin i min 1,..., N i 1,..., N diam( A ) Wyniki empiryczne przedstawione w artykule (Martyn [84]) pokazują, że dla ustalonych (stosunkowo dużych) wartości dokładności aproksymacji i liczby kroków algorytmu probabilistycznego, maksymalizacja wartości prawej strony nierówności (3.45) w dziedzinie możliwych wartości prawdopodobieństw afinicznych IFSP umożliwia wyznaczenie prawdopodobieństw skutkujących bardziej równomiernymi rozkładami punktów generowanych sekwencji niż te, które uzyskano dla prawdopodobieństw określonych przy użyciu wzoru (3.33). Na podstawie definicji 2.30, wartości prawdopodobieństw przypisywanych odwzorowaniom spełniają warunki pi 0 oraz N p i 1 i 1 . Dlatego wspomniany proces optymalizacji wygod- nie jest przeprowadzić w układzie współrzędnych barycentrycznych, maksymalizując rozważaną funkcję na zbiorze punktów wnętrza ( N 1) -wymiarowego simpleksu rozpiętego na wierzchołkach o współrzędnych barycentrycznych [1,0,...,0] , [0,1,...,0] ,…, [0,0,...,1] . Na rysunku 3.5 przedstawiono przykładowe porównanie rozkładów punktów wygenerowanych przez grę w chaos dla IFSP opisującego paprotkę Barnsleya i trzech różnych zestawów prawdopodobieństw, w tym zestawu uzyskanego w wyniku procesu optymalizacji. W ostatnim z przypadków, wygenerowana sekwencja punktów pokrywa atraktor w sposób bardziej równomierny niż w pozostałych. Aproksymacja – algorytmy ogólne 77 Rys. 3.4. Wystarczająca liczba iteracji algorytmu probabilistycznego do otrzymania aproksymacji trójkąta Sierpińskiego z zadanym prawdopodobieństwem i dozwolonym błędem aproksymacji . Wykresy przedstawiają wyniki dla trzech przykładowych zbiorów prawdopodobieństw IFSP i trzech dozwolonych błędów aproksymacji mierzonych względem metryki maksimum 78 Aproksymacja – algorytmy ogólne Rys. 3.5. Rozkłady punktów wygenerowanych przy wykorzystaniu gry w chaos dla układu IFSP opisującego paprotkę Barnsleya (dodatek A, pkt 3) dla trzech różnych zbiorów prawdopodobieństw. Wartości miary w punktach obrazu przedstawiono przy użyciu kolorów, począwszy od zieleni, poprzez brąz, czerwień, aż do barwy żółtej. Od strony lewej do prawej: prawdopodobieństwa [0,85, 0,07, 0,07, 0,01] wyznaczone przy użyciu formuły (3.33), prawdopodobieństwa [0,73, 0,11, 0,13, 0,03] zaproponowane w artykule (Hepting i inni [56]), prawdopodobieństwa [0,741, 0,099, 0,119, 0,068] uzyskane w wyniku procesu optymalizacji (patrz tekst) Wyznaczanie funkcji przejścia i macierzy stochastycznej. Niniejszy podpunkt zostanie zakończony omówieniem efektywnego algorytmu obliczania funkcji przejścia a (3.50) oraz macierzy stochastycznej Pa (3.52) łańcucha Markowa {Z i }iL 0 . Przedstawiony materiał oparty jest na rozwiązaniu przedstawionym w artykule (Martyn [84]). Problem wyznaczania wartości funkcji przejścia a przypomina pod wieloma względami zagadnienie dopasowywania wzorców tekstowych. Istotnie, opisywane tutaj podejście do wyznaczania funkcji przejścia a opiera się na spostrzeżeniach przedstawionych w artykule (Knuth i inni [68]), które stały się podstawą dla zaproponowanej w nim metody wyszukiwania ustalonego ciągu znaków w tekście przy użyciu automatów skończonych (patrz również: Cormen i inni [21]). Niech a :{0,...,| a |} {0,...,| a | 1} będzie funkcją prefiksową słowa a D , to jest funkcją zdefiniowaną jako (Knuth i inni [68]) gdy k 0; 0, max{m : m k i a (m) a (k )}, w p.p. a (k ) (3.56) Aproksymacja – algorytmy ogólne 79 Innymi słowy, dla k 0 , wartością a (k ) jest długość najdłuższego prefiksu słowa a (k ) , który jest jednocześnie właściwym sufiksem tego słowa. Twierdzenie 3.14. Niech a 1 2 ... |a| , i . Dla każdego k {0,...,| a | 1} i każdego , wartości funkcji przejścia (3.50) spełniają następującą zależność: gdy k 0 i 1 ; 0, a (k , ) k 1, gdy k 1 ; (3.57) ( (k ), ), w p.p. a a Dowód. Dwie pierwsze równości są oczywiste. Aby udowodnić równość trzecią, zostanie pokazane, że jeśli k > 0 i k 1 , to a (m) a (k ) a (m) a ( a (k )) . Stąd, na podstawie definicji funkcji sufiksowej oraz definicji funkcji przejścia (3.50), otrzymamy tezę. Niech a (m) a (k ) , gdzie k 0 i k 1 . Ponieważ k 1 , zatem a (m) a (k ) i stąd a (m) jest właściwym sufiksem słowa a (k ) . Z kolei, na podstawie (3.56), a ( a (k )) jest najdłuższym z prefiksów słowa a (k ) , które są jednocześnie właściwymi sufiksami tego słowa. Stąd a ( a (k )) jest najdłuższym z prefiksów słowa a (k ) będących jednocześnie właściwymi sufiksami tego słowa. Ponadto, łatwo zauważyć, że dla dowolnych słów x, y i z, założenie x z i y z oraz | y | | x | implikuje y x . Ponieważ, jak wykazano wyżej, a (m) a (k ) i a ( a (k )) a (k ) oraz | a (m) | | a ( a (k )) | , zatem – na podstawie powyższej obserwacji – a (m) a ( a (k )) . Niech teraz a (m) a ( a (k )) . Łatwo pokazać, że relacja sufiksowa jest przechodnia. Ponieważ, jak wykazano wyżej, a ( a (k )) a (k ) – stąd a ( m) a ( k ) . Wykorzystując twierdzenie 3.14, można skonstruować wydajny algorytm sukcesywnego wyznaczania wartości funkcji przejścia (3.50) oraz macierzy stochastycznej (3.52) łańcucha Markowa indukowanego przez ustalone słowo a D . Algorytm wyznacza, dla zadanego stanu k S / ~ i k 1 symbolu słowa a, przejścia a (k , ) pod wpływem każdego z symboli oraz wartości k-tego rzędu Pa [k,.] macierzy stochastycznej, który określa prawdopodobieństwa przejścia ze stanu k do poszczególnych stanów z S / ~ : procedure ComputeTransitions (k , k 1 ) begin 1. for each m S / ~ do Pa [k, m] = 0; 2. if k | a | then begin 80 Aproksymacja – algorytmy ogólne 3. 4. Pa [k, k] = 1; for each do a (k , ) k ; end if; else begin a (k ) ComputePrefixFunction(k); for each do begin if k 1 then a (k , ) k 1 ; else if k = 0 then a (k , ) 0 ; else a (k , ) a ( a (k ), ) ; Pa [k , a (k , )] Pa [k , a (k , )] p ; end for; end else; 5. 6. 7. 8. 9. 10. 11. end. gdzie k 1 jest dla k | a | , k 1 symbolem słowa a oraz dla k | a | − dowolnym symbolem, zaś p jest prawdopodobieństwem ze zbioru {p1, ..., pN} prawdopodobieństw IFSP. Jak łatwo zauważyć, dla danego stanu bieżącego k oraz k 1 symbolu słowa a, algorytm wyznacza wartości funkcji przejścia a (k,.) wraz z wartościami prawdopodobieństw Pa [k,.], wykorzystując w tym celu jedynie informację o wartościach funkcji przejścia wyznaczonych dla stanów poprzedzających stan k. Informacja dotycząca stanów następnych i symboli słowa a następujących po symbolu k 1 nie jest wymagana. W konsekwencji, macierze stochastyczne indukowane przez sekwencje indeksów (słowa) należące do zbioru D mogą być wyznaczane równolegle w trakcie konstruowania tego zbioru przy użyciu algorytmu adaptacyjnych odcięć (punkt 3.2). Odpowiednia modyfikacja algorytmu adaptacyjnych odcięć została przedstawiona w pracy (Martyn [84]). Podobnie jak wartości funkcji przejścia a , wartość funkcji prefiksowej a (k ) dla zadanego stanu k (krok 6 algorytmu) można obliczać efektywnie jedynie na podstawie wartości przyjmowanych przez tę funkcję dla stanów i k . Twierdzenie 3.15 daje podstawę do skonstruowania odpowiedniego algorytmu, który jest wykonywany w tym celu za sprawą wywołania funkcji oznaczonej w wyżej zaprezentowanym pseudokodzie jako: ComputePrefixFunction( k ). q Twierdzenie 3.15. Niech a ... a oznacza q-krotne złożenie funkcji prefiksowej a . Nadto, dla ustalonego k {1,..., | a |} , zdefiniujmy zbiór a (k ) jako q a a (k ) { a q (k )} . q 1,..., k 1 (3.58) Aproksymacja – algorytmy ogólne Wtedy zbiór 81 {a (i )} i a ( k ) zawiera wszystkie prefiksy a (i ) będące właściwymi sufiksami słowa a (k ) . Dowód. Teza wynika z przechodniości relacji sufiksowej i definicji funkcji prefiksowej. Na podstawie twierdzenia 3.15 otrzymuje się następujący wniosek: Wniosek 3.16. Niech a 1 2 ... |a| , i . Prefiks a (i 1) jest właściwym sufiksem słowa a (k ) wtedy i tylko wtedy, gdy i a (k 1) oraz i 1 k . Przyjmując, że sup oraz 1 , funkcję prefiksową słowa a 1 2 ... |a| , i , można zatem zapisać w postaci: a (k ) sup{sup{i a (k 1) : i 1 k } 1, 0} . (3.59) Wyznaczenie wartości funkcji prefiksowej dla zadanego stanu k S / ~ może więc zostać dokonane efektywnie na podstawie wartości tej funkcji określonych poprzednio dla stanów i k przy użyciu następującego algorytmu: function ComputePrefixFunction( k ) : integer begin 1. if k = 0 then return 0; 2. else begin i a (k 1) ; 3. 4. while i > 0 and i 1 k do i a (i ) ; 5. if i 1 k then i i 1 ; end else; 6. return i; end. 3.3.4. Alternatywny dowód poprawności algorytmu w przypadku nieskończonej liczby iteracji Przedstawiona w podpunkcie 3.3.3 analiza algorytmu probabilistycznego dla skończonej liczby iteracji może zostać w prosty sposób wykorzystana do wykazania poprawności tego algorytmu w nieskończonym czasie działania. Dokonując takiego rozszerzenia, otrzymamy – oparty na teorii łańcuchów Markowa – alternatywny dowód faktu wykazanego w twierdzeniu 3.9 przy założeniu, że punkt startowy algorytmu probabilistycznego należy do atraktora. 82 Aproksymacja – algorytmy ogólne Niech P|a| (k ) będzie prawdopodobieństwem dojścia łańcucha Markowa {Z i }i 0 do stanu |a| pod warunkiem, że łańcuch znajduje się w stanie k, to jest P|a| (k ) P ({i 0 : Z i j | a |}| Z j k ) . Wówczas zachodzi następujące twierdzenie: Twierdzenie 3.17. Jeśli k | a | , to P|a| (k ) 1 . W przypadku przeciwnym, prawdopodobieństwa P|a| (k ) określone są jako jednoznaczne rozwiązanie układu równań P|a| (k ) mS / ~ pk , m P|a| (m) , (3.60) gdzie wartości pk , m są elementami macierzy stochastycznej (3.52). Dowód. Na podstawie twierdzenia 2.48. Na podstawie twierdzenia 3.17 oraz definicji funkcji przejścia (3.50) otrzymujemy dla k {0,..., | a | 1} , że k P|a| (k 1) P|a| (k ) pk , m P|a| (m) m0 k 1 pk , m m0 oraz P|a| (| a |) 1 . Wobec tego | a |1 | a |1 m0 m0 1 p| a |1, m P| a | (| a | 1) p| a |1, m P| a | (m) , a zatem układ równań (3.60) spełniony jest dla P| a | (| a |) P| a | (| a | 1) ... P| a | (0) 1 . Co więcej, stosownie do twierdzenia 3.17, jest to jedyne rozwiązanie tego układu. Z kolei, P| a | (0) lim P ( Z L | a |) oraz, na podstawie twierdzenia 3.12, L L lim P ( Z L | a |) lim P {Yi a} . Stąd, z nierówności (3.45), otrzymujemy L L i 1 lim P ({a D, 0 i L, Yi a}) 1 , L co oznacza, że łańcuch Markowa {Yi }i 0 odwiedzi, z prawdopodobieństwem 1, wszystkie stany zbioru D. Zatem, dla dowolnego 0 , algorytm probabilistyczny, w nieskończonym czasie działania, wygeneruje ciąg punktów {xi }i 0 aproksymujących atraktor A z błędem nie większym niż względem metryki Hausdorffa, jeśli tylko x0 A . Aproksymacja – algorytmy ogólne 83 3.4. PORÓWNANIE ALGORYTMÓW W zależności od konkretnego przypadku IFS {w1,..., wN}, każdy z trzech algorytmów aproksymacji omówionych w tym rozdziale ma zarówno zalety, jak i pewne wady. Zaletą pierwszego z omówionych algorytmów – algorytmu iterowania operatora Hutchinsona jest przede wszystkim jego prostota implementacji. Ponadto, jak pokazano w punkcie 3.1, algorytm ten generuje zbiór aproksymujący A zawsze w czasie O(NM) i przy zapotrzebowaniu pamięciowym rzędu O(M) (w wersji rekurencyjnej algorytmu), gdzie wartość M określona jest równością (3.2). Z kolei, omówiony w punkcie 3.2, algorytm adaptacyjnych odcięć do wygenerowania zbioru A potrzebuje w pesymistycznym przypadku czasu O( N M ) i pamięci O(M) (w wariancie rekurencyjnym), gdzie oznacza czas potrzebny na wyznaczanie stałej Lipschitza bieżącego złożenia odwzorowań. Przypadek ten będzie miał na przykład miejsce wtedy, gdy odwzorowania IFS będą podobieństwami o równych współczynnikach zwężania. W takich okolicznościach algorytm iterowania operatora Hutchinsona jest bardziej efektywny pod względem czasu obliczeń od algorytmu adaptacyjnych odcięć. Niemniej, algorytm iterowania operatora Hutchinsona przechodzi zawsze całe zrównoważone drzewo wszystkich możliwych złożeń odwzorowań IFS o długości M. Algorytm adaptacyjnych odcięć dokonuje zaś aproksymacji na podstawie pierwszych napotkanych węzłów, które przechowują złożenia f o współczynnikach zwężania Lip( f ) /diam( A ) , i pomija zaczepione w tych węzłach poddrzewa. Ponieważ Lip( f ) (max Lip( wi )) M , zatem M jest górnym ograniczeniem wysokości drzewa złożeń odwzorowań IFS przeszukiwanego przez algorytm adaptacyjnych odcięć. Stąd algorytm adaptacyjnych odcięć przeszuka co najwyżej pełne zrównoważone drzewo wszystkich możliwych złożeń odwzorowań o długości M, tak jak to czyni algorytm iteracji operatora Hutchinsona. Jednakże w ogólnym przypadku IFS, w szczególności IFS składającego się z odwzorowań o różnych współczynnikach zwężania, długość złożenia o współczynniku zwężania nie większym niż /diam( A ) jest często mniejsza aniżeli górne ograniczenie M. Dlatego algorytm adaptacyjnych odcięć w celu wygenerowania jednego z punktów aproksymacji przemierza na ogół krótszą ścieżkę od korzenia do odpowiedniego węzła, niż ma to miejsce w przypadku algorytmu iterowania operatora Hutchinsona. W rezultacie, algorytm adaptacyjnych odcięć podczas generowania zbioru aproksymacyjnego przeszukuje na ogół znacznie mniejsze obszary drzewa złożeń odwzorowań IFS niż algorytm iterowania operatora Hutchinsona. Zaoszczędzony w ten sposób czas zwykle z nawiązką rekompensuje czas potrzebny na wyznaczanie współczynników zwężania bieżących złożeń odwzorowań. W konsekwencji algorytm adaptacyjnych odcięć w praktyce okazuje się zwykle znacznie efektywniejszy od algo- 84 Aproksymacja – algorytmy ogólne rytmu iterowania Hutchinsona. Co więcej, z tych samych powodów aproksymacja uzyskana przy wykorzystaniu tego algorytmu składa się na ogół ze znacznie mniejszej liczby punktów niż aproksymacja otrzymana poprzez iterowanie operatora Hutchinsona. W przypadku afinicznych IFS i – zaproponowanego w podpunkcie 3.2.2 – podejścia do szacowania od góry stałych Lipschitza złożeń odwzorowań składowych, algorytm adaptacyjnych odcięć podczas przeszukiwania drzewa złożeń może przekroczyć rozważane górne ograniczenie M wysokości drzewa. Pomimo to, jak wskazuje praktyka, sumaryczny czas potrzebny na oszacowanie stałych Lipschitza wszystkich złożeń takiego „rozszerzonego” drzewa jest na ogół znacznie mniejszy od czasu potrzebnego na dokładne obliczenie tych stałych dla złożeń odwzorowań drzewa przeszukiwanego przez standardową realizację tego algorytmu. Dotyczy to szczególnie – najbardziej interesujących z punktu widzenia grafiki komputerowej – przypadków afinicznych IFS na przestrzeniach rzeczywistych o wymiarze 2 i 3. W rezultacie implementacja algorytmu adaptacyjnych odcięć oparta na szacowaniu stałych Lipschitza jest zwykle o wiele bardziej wydajna niż implementacja standardowej wersji tego algorytmu. Co za tym idzie, implementacja taka jest na ogół również o wiele bardziej efektywna od implementacji algorytmu iterowania operatora Hutchinsona. Podobnie jak algorytm iterowania operatora Hutchinsona, trzeci z opisanych algorytmów – algorytm gry w chaos cechuje prostota implementacji. Dodatkowo, w odróżnieniu od dwóch pozostałych algorytmów, charakteryzuje się on stałym zapotrzebowaniem pamięciowym. Do zalet gry w chaos można również zaliczyć to, iż w przypadku afinicznych IFSP z prawdopodobieństwami wyznaczonymi na podstawie wzoru (3.33), używając tego algorytmu można zwykle, w stosunkowo krótkim czasie, otrzymać przybliżenie atraktora dające informację o globalnej geometrii tego zbioru. Niestety, ze względu na probabilistyczny charakter algorytmu, oszacowanie dokładności takiego przybliżenia wymaga dodatkowego nakładu obliczeń i, co więcej, może być dokonane tylko z pewnym prawdopodobieństwem. Autorską analizę gry w chaos z punktu widzenia zarówno nieskończonej, jak i skończonej liczby iteracji zaprezentowano w podpunktach 3.3.2 i 3.3.3 (Martyn [83, 84]). Jak pokazują wyniki eksperymentów numerycznych, uzyskanie aproksymacji atraktora w zakresie dokładności wykorzystywanych w grafice komputerowej i ze względnie wysokim prawdopodobieństwem wymaga często ogromnej liczby iteracji omawianego algorytmu. W rezultacie, otrzymywane w ten sposób zbiory aproksymujące atraktory składają się zwykle z ogromnej liczby punktów. Ponieważ w praktyce zbiory aproksymujące często wykorzystywane są następnie jako dana wejściowa innych algorytmów (takich jak np. algorytmy geometrii obliczeniowej), których złożoność zależy od liczności (mocy) zbioru, wykorzystywanie gry w chaos jako na- Aproksymacja – algorytmy ogólne 85 rzędzia aproksymacji atraktorów IFS jest z punktu widzenia takich zastosowań problematyczne. Na rysunku 3.6 przedstawiono obrazy aproksymacji paprotki Barnsleya, które otrzymano przy użyciu omówionych algorytmów. Zastosowanie algorytmu iterowania operatora Hutchinsona daje w tym przypadku zbiór, który mimo iż składa się ze znacznie większej liczy punktów niż dwa pozostałe zbiory, aproksymuje atraktor z dokładnością znacznie odbiegającą od dokładności zdeterminowanej rozdzielczością obrazu. Rezultaty otrzymane przy wykorzystaniu dwóch pozostałych algorytmów są znacznie lepsze pod względem dokładności aproksymacji, jednak – jak łatwo zauważyć – rozkład punktów zbioru otrzymanego przy wykorzystaniu algorytmu adaptacyjnych odcięć jest znacznie bliższy rozkładowi równomiernemu niż rozkład punktów zbioru wygenerowanego przy użyciu gry w chaos. W konsekwencji, cechą charakterystyczną zbioru uzyskanego przy wykorzystaniu gry w chaos jest to, że dokładność aproksymacji zmienia się lokalnie w zakresie różnych części zbioru (w zależności od wartości miary niezmienniczej, pewne fragmenty zbioru są aproksymowane lepiej niż inne), natomiast zbiór otrzymany za pośrednictwem algorytmu adaptacyjnych odcięć wykazuje pod tym względem znacznie lepsze właściwości. Rys. 3.6. Zastosowanie algorytmów opisanych w niniejszym rozdziale do aproksymowania paprotki Barnsleya. Od strony lewej do prawej: algorytm iterowania operatora Hutchinsona (1 048 576 punktów), gra w chaos (128 584 punkty), algorytm adaptacyjnych odcięć (128 584 punkty) 86 Aproksymacja – algorytmy ogólne W odróżnieniu od algorytmu adaptacyjnych odcięć, algorytm gry w chaos umożliwia jednak generowanie przybliżeń nośników miar niezmienniczych generowanych przez układy IFSP zwężające „na średnio” (por. definicja 2.30), które zawierają odwzorowania niemające właściwości odwzorowań zwężających. Na rysunku 3.7 przedstawiono przykłady nośników takich miar niezmienniczych generowanych przez IFSP składające się z odwzorowań afinicznych, z których jedno jest obrotem o stałej Lipschitza równej 1. Rys. 3.7. Przykładowe nośniki miar niezmienniczych IFSP generowanych przez niehiperboliczne układy odwzorowań afinicznych (zob. dodatek A, pkt 4) Aproksymacja na -siatkach 87 4. APROKSYMACJA NA -SIATKACH Wiele problemów numerycznych wymaga aproksymacji fraktali na -siatkach G przestrzeni Rn , to jest pokryciach tej przestrzeni hipersześcianami o (zadanej) długości boku 0 : C (m1 ,..., mn ) [m1 , (m1 1) ) ... [mn , (mn 1) ) , gdzie m1 ,..., mn Z . Przez T 1 1 c(m1 ,..., mn ) m1 ,..., mn 2 2 będzie oznaczany punkt środkowy hipersześcianu C (m1 ,..., mn ) . W teorii fraktali z zagadnieniem aproksymacji na -siatce mamy najczęściej do czynienia w związku z wyznaczaniem wymiaru pudełkowego zbiorów (np. Barnsley [7, s. 171 i n.], Falconer [33, s. 36 i n.]) oraz w analizie mulitfraktalnej (np. Harte [54], Martyn [88]). W zastosowaniach fraktali w grafice komputerowej aproksymacja na -siatkach wykorzystywana jest zwykle do wizualizacji fraktali dwuwymiarowych na siatce pikseli tworzących przestrzeń obrazu lub do uzyskania danych objętościowych określonych na przestrzeni wokseli, obrazowanej następnie przy użyciu jednej ze znanych technik wizualizacji wolumetrycznej (Nikiel i Goinski [106], Martyn [94]). 4.1. CZAS UCIECZKI I FUNKCJA CHARAKTERYSTYCZNA ATRAKTORA Algorytm czasu ucieczki dla IFS (ang. the escape time algorithm) (Prusinkiewicz i Sandness [125]), (Hepting i inni [56]) jest wdrożeniem do teorii IFS popularnego algorytmu wizualizacji (aproksymacji) „wypełnionych” zbiorów Julii (ang. filled-in Julia sets), to jest zbiorów będących dopełnieniami basenów przyciągania punktu w nieskończoności na sferze Riemanna1 (Peitgen i Saupe [114, s. 154–155], Kudrewicz [70, s. 100 i n.], Martyn [79, s. 96 i n.]). Zgodnie z terminologią zaczerpniętą z teorii układów dynamicznych, punkty stałe operatorów Hutchinsona, które w klasycznym podejściu są atraktorami, w ujęciu algorytmu czasu ucieczki są traktowane – podobnie jak zbiory Julii – jako tzw. repelery (por. np. Kudrewicz [70]). W tym ujęciu, zamiast operatora Hutchinsona zdefiniowanego jako suma mnogościowa odwzorowań zwężających IFS (2.10), rozpatruje się operator analogiczny z tą różnicą, że zbudowany na podstawie odwróconych od1 Zbiór Julii jest brzegiem tego dopełnienia. 88 Aproksymacja na -siatkach wzorowań IFS1. Zatem, zbiór A jest także punktem stałym „odwróconego” operatora Hutchinsona, jednakże iteracyjne zastosowanie tego operatora do singletona zawierającego dowolny punkt nienależący do A daje w rezultacie ciąg zbiorów oddalających się od A względem metryki Hausdorffa2. Algorytm czasu ucieczki dla IFS opiera się na następującym twierdzeniu: Twierdzenie 4.1. Niech dany będzie IFS {wi }iN1 na przestrzeni ( Rn , dE) i z atraktorem A , gdzie odwzorowania wi : Rn Rn są odwracalne. Wtedy dla dowolnego x A istnieje przynajmniej jeden ciąg odwzorowań odwrotnych {wik 1}k 1 taki, że k N, wik 1 ... wi1 1 (x) A . Jeśli x A , to dla każdego ciągu {wik 1}k 1 zachodzi: r 0, k N, wik 1 ... wi1 1 (x) B (0, r ) , czyli trajektoria punktu x określona ciągiem odwzorowań {wik 1}k 1 jest nieograniczona. Dowód. Niech x A . Wtedy x należy przynajmniej do jednego z podzbiorów wi ( A ) , i = 1,..., N. Ponieważ wi są odwracalne, zatem wi1 (x) A . Stąd, przez indukcję, otrzymujemy pierwszą część twierdzenia. Dowód części drugiej opiera się fakcie, że odwrotnościami odwzorowań zwężających są odwzorowania „rozciągające” przestrzeń – można go znaleźć w (Prusinkiewicz i Sandness [125]). Wobec tego, dla danego IFS {wi }iN1 na (R n , d E ) , definiowana jest rekurencyjnie funkcja dyskretnego czasu ucieczki (ang. the discrete escape time function) ETR : R n N 0 jako 1 max ET( wi1 (x)), gdy x B (0, R ), ETR (x) i 1,..., N w p.p., 0, (4.1) gdzie B (0, R ) A . Kulę B (0, R ) określa się jako spełniającą warunek B (0, R ) W ( B (0, R )) (Hepting i inni [56]). Kulę taką można łatwo wyznaczyć, stosując twierdzenie 2.19. Dokonując zawężenia dziedzin działania odwzorowań składowych „odwróconego” operatora Hutchinsona do odpowiednich podzbiorów przestrzeni, można skonstruować pewien układ dynamiczny z czasem dyskretnym (Kudrewicz [70]), którego (odpychającym) zbiorem niezmienniczym jest atraktor oryginalnego IFS; zob. np. (Barnsley [7, s. 246 i n.]). 1 Stąd nazwa repeler – rzeczownik od ang. czasownika to repel, tłumaczonego w tym kontekście jako odpychać. 2 Aproksymacja na -siatkach 89 Na podstawie twierdzenia 4.1, dany punkt x przestrzeni nie będzie należał do atraktora wtedy i tylko wtedy, gdy wartość ETR (x) jest skończona; w przypadku przeciwnym x jest punktem atraktora. Algorytm czasu ucieczki stosowany jest zwykle do wizualizacji atraktora IFS wraz z jego otoczeniami na -siatkach poprzez sprawdzanie wartości funkcji ET dla wybranych (zwykle centralnych) punktów elementów siatki (podpunkt 9.1.6). W praktyce, przed rozpoczęciem procesu wizualizacji, warto dokonać translacji atraktora w kierunku punktu 0 tak, aby kula B (0, R ) była w miarę możliwości jak najmniejsza. Najłatwiej tego dokonać, wyznaczając wektor momentów pierwszego rzędu miary niezmienniczej generowanej przez prawdopodobieństwa (3.33) poprzez rozwiązanie układu równań (2.25), a następnie zastosowanie odpowiedniej translacji do odwzorowań układu IFS, jak to pokazano w twierdzeniu 2.22. W ogólnym przypadku nieliniowych odwzorowań IFS przyjmuje się zwykle arbitralnie skończoną maksymalną wartość funkcji czasu ucieczki, dla której punkt uznawany jest za należący do atraktora. W takiej implementacji rozważana wartość maksymalna określa graniczną głębokość rekursji obliczeń określonych zależnością (4.1). Niestety, podejście takie nie gwarantuje otrzymania aproksymacji atraktora o zadanej dokładności. W przypadku IFS składających się z odwzorowań afinicznych stosunkowo łatwo adaptować algorytm czasu ucieczki do wyznaczania aproksymacji atraktora na równomiernej siatce przy zadanej dokładności mierzonej względem metryki Hausdorffa. W związku z tym należy przede wszystkim zauważyć, że jeśli odwzorowania IFS {wi }iN1 są odwracalne, to, dla pewnej sekwencji {wim1}km 1 , wik 1 ... wi1 1 (x) B (0, R ) wtedy i tylko wtedy, gdy x wi1 ... wik ( B (0, R )) . Obserwacja ta stanowi podstawę alternatywnej definicji funkcji dyskretnego czasu ucieczki (ang. forward discrete time (Hepting i Hart [55])): 1 max ETR , x ( f wi ), gdy x f ( B (0, R)), ETR , x ( f ) i 1,..., N w p.p. 0, (4.2) W świetle powyższych rozważań ETR (x) ETR , x (id ) , gdzie id jest odwzorowaniem identycznościowym na Rn . Ponadto, z założenia, kula B (0, R ) A , zatem jej obraz wi1 ... wik ( B (0, R )) wi1 ... wik ( A ) . Stąd, jeśli punkt x wi1 ... wik ( B (0, R )) , to odległość Hausdorffa h({x}, wi1 ... wik ( A )) diam( wi1 ... wik ( B (0, R ))) 2 R Lip( wi1 ... wik ) . Powyższe obserwacje dają podstawę do zaprojektowania zmodyfikowanego algorytmu czasu ucieczki dla aproksymacji atraktora z zadaną dokładnością na -siatce, którego działanie będzie opierało się na idei funkcji charakterystycznej zbioru. 90 Aproksymacja na -siatkach Niech G będzie -siatką przestrzeni Rn . Załóżmy, że B (0, R ) A jest kulą w metryce d indukowanej przez pewną normę wektorową na Rn . Funkcję charakterystyczną aproksymacji atraktora A definiujemy jako 1, gdy x B ( f (0), r ( f )) i Lip d ( f ) diam d (C ) / 2 R; (x, f ) max (x, f wi ), gdy x B ( f (0), r ( f )) i Lip d ( f ) diam d (C ) / 2 R; i 1,... N w p.p. 0, (4.3a) gdzie: 1 (4.3b) r ( f ) max diam d (C ), Lip d ( f ) R , 2 B (., r ( f )) jest kulą w metryce d, natomiast Lip d ( f ) i diam d (C ) oznaczają odpowiednio stałą Lipschitza odwzorowania f i średnicę hipersześcianu z G względem metryki d. Korzystając z funkcji charakterystycznej, można zbiór aproksymujący atraktor A zdefiniować jako domknięcie sumy mnogościowej hipersześcianów określonej jako A {C (m1 ,..., mn ) G : (c(m1 ,..., mn ), id ) 1 } . (4.4) Twierdzenie 4.2. Niech {wi }iN1 będzie IFS na przestrzeni (R n , d ) , gdzie d jest metryką indukowaną przez pewną normę na Rn . Zbiór A określony równo3 ścią (4.4) aproksymuje atraktor A z błędem diam d (C ) względem metry2 ki Hausdorffa. Dowód. Niech B (0, R ) A . Niech a A będzie dowolnym punktem atraktora. Wtedy a należy przynajmniej do jednego podzbioru f ( A ) , f wi1 ... wik , ta1 kiego że 2 R Lip d ( f ) diam d (C ) . Zatem a B ( f (0), r ) , gdzie r diam d (C ) . 2 Ponieważ siatka G pokrywa Rn hipersześcianami o średnicach diam d (C ) , zatem istnieje co najmniej jeden hipersześcian C (m1 ,..., mn ) , którego środek c(m1 ,..., mn ) B ( f (0), r ) . Stąd (c(m1 ,..., mn ), f ) (c(m1 ,..., mn ), id ) 1 , a zatem C (m1 ,..., mn ) A . Zatem, dla każdego a A istnieje punkt c(m1 ,..., mn ) A taki, że d (c(m1 ,..., mn ), a) diam d (C ) . Stąd N ( A ,diam d (C )) A . Niech teraz x A będzie dowolnym punktem aproksymacji. Wtedy x C (m1 ,..., mn ) dla pewnego hipersześcianu C (m1 ,..., mn ) A . Stąd (c(m1 ,..., mn ), id ) 1 , a zatem istnieje złożenie f wi1 ... wik odwzorowań 1 IFS takie, że kula B ( f (0), r ) , r diam d (C ) , zawiera środek c(m1 ,..., mn ) tego 2 hipersześcianu. Ponieważ także B ( f (0), r ) f ( A ) , zatem dla każdego x A istnieje a A taki, że Aproksymacja na -siatkach 91 d (a, x) d (a, c(m1 ,..., mn )) d (c(m1 ,..., mn ), x) 1 3 diam d (C ) diam d (C ) diam d (C ). 2 2 Stąd N ( A , 3diam d (C ) / 2) A . Na podstawie powyższych rozważań otrzymujemy N ( A ,diam d (C )) A i N ( A , 3diam d (C ) / 2) A . Stąd, na mocy definicji otoczeniowej odległo3 ści Hausdorffa (definicja 2.13), h( A , A ) diam d (C ) . 2 Na podstawie definicji funkcji charakterystycznej (4.3), dla danego x R n , (x, id ) 1 wtedy i tylko wtedy, gdy istnieje złożenie f i0i1 ...im wi1 ... wim odwzorowań IFS takie, że Lip d ( f i0i1 ...im ) diam d (C ) 2 R , oraz dla każdego k {0,1,..., m} , x B ( f i0i1 ...ik (0), r ( f i0i1 ...ik )) , gdzie f i0 id . Wobec tego, wyznaczanie aproksymacji A poprzez ewaluację wartości funkcji dla środków spójnego podzbioru D n hipersześcianów siatki G charakteryzuje się złożonością obliczeniową rzędu O( D n N M ) , gdzie log 2 R log diam (C ) d , M log( max Lip d ( wi )) i 1,..., N (4.5) natomiast jest czasem potrzebnym na wyznaczenie stałej Lipschitza względem metryki d. Koszt pamięciowy to O(log N M ) O( M ) . Zakładając, że kula B (0, R ) A zawiera się w kolekcji hipersześcianów C (m1 ,..., mn ) o współrzędnych m1 ,, mn D / 2 ,..., D / 2 , można omawianą modyfikację algorytmu czasu ucieczki przedstawić w następujący sposób: procedure GridET() begin 1. for each m1 ,..., mn D / 2 ,..., D / 2 do 2. C (m1 , , mn ) CharacteristicFunction(c(m1, …, mn), id ); end. gdzie: function CharacteristicFunction( x, f ) : integer begin a1. if Lip d ( f ) diam d (C ) / 2 R then 1 a2. if x f (0) diam d (C ) then return 1; 2 a3. else return 0; a4. else begin a5. if x f (0) Lip d ( f ) R then Aproksymacja na -siatkach 92 for i 1,..., N do if CharacteristicFunction(x, f wi ) = 1 then return 1; a6. a7. a8. end else; return 0; a9. end. Ze względu na równoważność norm na Rn (Bachman i Narici [4, s. 122]), algorytm ten można z powodzeniem stosować do aproksymacji atraktorów afinicznych IFS na przestrzeniach rzeczywistych z metrykami d indukowanymi przez dowolną normę wektorową. Na przykład w przypadku IFS na Rn z normą euklidesową, na mocy twierdzenia 4.2 otrzymuje się zbiór aproksymujący atraktor 3 z błędem nie większym niż n względem metryki Hausdorffa indukowanej przez normę euklidesową. 2 Co więcej, ponieważ równoważność norm jest relacją równoważności, zatem w przypadku IFS zawierających odwzorowania afiniczne zwężające względem jakiejkolwiek metryki indukowanej przez normę na Rn , wyznaczanie wartości Lip d ( f ) oraz x f (0) w funkcji CharacteristicFunction można oprzeć na dowolnej normie, przyjmując za R promień kuli o geometrii indukowanej przez tę normę. W wyniku zastosowania takiego podejścia otrzymuje się zbiór aprok3 symujący atraktor z błędem nie większym niż diam d (C ) względem metryki 2 Hausdorffa indukowanej przez tę normę. Przy niskim koszcie obliczeń wyznaczania wartości Lip d ( f ) dla normy maksimum (3.30) i „kubicznej” geometrii indukowanej przez nią kuli, „współgrającej” z geometrią elementów siatki, zastosowanie tej normy w omawianym problemie aproksymacji stanowi zwykle najlepsze rozwiązanie. Stosownie do twierdzenia 4.2, zbiór A aproksymuje wówczas 3 atraktor z błędem nie większym aniżeli . 2 Ponadto, w przedstawionej wersji algorytmu, zamiast obliczać dokładne wartości stałych Lipschitza, można te wartości szacować od góry, stosując metody przedstawione w podpunkcie 3.2.2. W konsekwencji, algorytm ten można również łatwo zaadaptować do aproksymowania atraktorów IFS zawierających odwzorowania nieliniowe. 4.2. ZMODYFIKOWANY ALGORYTM ADAPTACYJNYCH ODCIĘĆ Ponieważ w praktyce liczba D n hipersześcianów, dla których wyznaczane są wartości funkcji charakterystycznej (4.3), jest zwykle stosunkowo duża, algorytm przedstawiony w poprzednim punkcie jest na ogół mało wydajny obliczeniowo. Okazuje się jednak, że taki sam rezultat pod względem dokładności aproksymacji można uzy- Aproksymacja na -siatkach 93 skać znacznie mniejszym kosztem obliczeniowym i przy takim samym koszcie pamięciowym poprzez odpowiednią adaptację algorytmu adaptacyjnych odcięć. Niech G będzie -siatką przestrzeni Rn oraz niech A będzie atraktorem afinicznego IFS {wi }iN1 na (Rn , e) , gdzie metryka e jest indukowana przez normę . e . Następnie, niech B (0, R ) A będzie kulą w metryce d indukowanej przez pewną normę . d . W końcu, niech F będzie zbiorem wszystkich złożeń f i0i1 ...im wi1 ... wim odwzorowań IFS takich, że Lip d ( f i0i1 ...im ) diam d (C ) Lip d ( f i0i1 ...im1 ) , 2R (4.6) gdzie f i0 id , Lip d (.) oznacza stałą Lipschitza odwzorowania względem metryki d, natomiast diam d (C ) jest średnicą hipersześcianu G liczoną względem tej metryki. Ponieważ wszystkie normy na Rn są równoważne (Bachman i Narici [4, s. 122]), zatem e d . Stąd, na podstawie rozważań z punktu 3.2.2, zbiór F istnieje i spełnia równość (3.10). Zdefiniujmy zbiór aproksymujący atraktor jako A {C (m ,..., m ) G : f (0) C (m ,..., m )} . 1 1 1 1 (4.7) f F Twierdzenie 4.3. Zbiór A określony równością (4.7) aproksymuje atraktor A 3 z błędem diam d (C ) względem metryki Hausdorffa indukowanej przez me2 trykę d. Dowód. Niech punkt a A . Wtedy, na podstawie (3.10), istnieje złożenie odwzorowań IFS f F takie, że punkt a f ( A ) . Ponieważ B (0, R ) A , więc 1 na mocy (4.6) równocześnie a B ( f (0), r ) , gdzie r diam d (C ) . Na podstawie 2 (4.7) jednak f (0) A . Stąd dla każdego punktu a A istnieje punkt x A 1 taki, że d (a, x) diam d (C ) . Zatem N ( A ,diam d (C ) / 2) A . 2 Niech teraz punkt x A . Wtedy punkt x należy do pewnego C (m1 ,..., mn ) A oraz istnieje złożenie f F takie, że f (0) C (m1 ,..., mn ) . Stąd dla pewnego f F , d (x, f (0)) diam d (C ) . Dodatkowo kula B ( f (0), r ) f ( A ) , gdzie 1 1 r diam d (C ) , więc d ( f (0), a) diam d (C ) dla pewnego punktu a A . Za2 2 tem, dla każdego punktu x A istnieje punkt a A taki, że 3 d (x, a) d (x, f (0)) d ( f (0), a) diam d (C ) . 2 Stąd N ( A , 3diam d (C ) / 2) A . Wobec tego, na mocy definicji 2.13 (otoczeniowej odległości Hausdorffa) otrzymujemy tezę. 94 Aproksymacja na -siatkach Ponieważ algorytm adaptacyjnych odcięć umożliwia generowanie zbioru złożeń odwzorowań IFS spełniających równość (3.10) i, równocześnie, o stałych Lipschitza nieprzekraczających dowolnie małej, zadanej wartości, zatem zbiór złożeń odwzorowań F (formuła (4.6)) i – co za tym idzie – zbiór A można wyznaczyć za pomocą odpowiednio zmodyfikowanej wersji algorytmu oryginalnego. Zakładając, że kula B (0, R ) A zawiera się w kolekcji hipersześcianów C (m1 ,..., mn ) o współrzędnych m1 ,..., mn D / 2 ,..., D / 2 , omawiana adaptacja algorytmu adaptacyjnych odcięć w wersji rekurencyjnej przedstawia się następująco: procedure GridACE() begin 1. for each m1 ,..., mn D / 2 ,..., D / 2 do 2. C (m1 ,, mn ) 0 ; 3. GridRecursiveACA(id); end. gdzie: procedure GridRecursiveACA( f ) begin a1. for each i {1,, N } do begin g f wi ; a2. a3. if Lip d ( f ) diam d (C ) / 2 R then a4. C g (0) / 1 ; a5. else GridRecursiveACA( g ); end for; end. zaś g (0) / oznacza wektor utworzony poprzez zastosowanie funkcji . do współrzędnych wektora g (0) / . Koszt obliczeniowy takiego podejścia wynosi zatem O( D n N M ) , gdzie M określone jest równością (4.5), zaś jest czasem potrzebnym na wyznaczenie stałej Lipschitza względem metryki d. Należy zauważyć, że narzut czasowy D n spowodowany jest wymaganiem wstępnego „wyzerowania” tablicy hipersześcianów w procedurze GridACA (kroki 1 i 2). Koszt pamięciowy to, podobnie jak w oryginalnym algorytmie w wersji rekurencyjnej, O(log N M ) O( M ) . Wobec tego, podejście przedstawione w niniejszym punkcie charakteryzuje się niemalże D n razy większą wydajnością obliczeń w stosunku do adaptacji algorytmu czasu ucieczki z punktu poprzedniego. Z tych samych względów jak w przypadku adaptacji algorytmu czasu ucieczki, wybór metryki d jako metryki maksimum jest zwykle najlepszym rozwiązaniem pod względem minimalizacji czasu obliczeń. Zgodnie z twierdzeniem 4.3, zbiór 3 A będzie aproksymował wówczas atraktor z błędem nie większym niż . 2 Aproksymacja na -siatkach 95 Ponadto, podobnie jak oryginalny algorytm adaptacyjnych odcięć, tak i jego wersja opisana w niniejszym punkcie może być również zmodyfikowana pod kątem szacowania stałych Lipschitza od góry (por. podpunkt 3.2.2), a także zaadaptowana do aproksymowania atraktorów IFS zawierających odwzorowania nieliniowe. 4.3. UKŁAD -IFSP I DYSKRETNA GRA W CHAOS Interesujące podejście do aproksymacji atraktorów IFS na -siatkach w przestrzeni zostało przedstawione w stosunkowo mało znanej książce Discrete iterated function systems (Peruggia [115]). W cytowanej pozycji rozważania ograniczono do układów IFS składających się z odwzorowań zwężających na przestrzeni R 2 . W niniejszym punkcie uogólniono przedstawione tam rezultaty do IFS zwężających na zwartych podzbiorach przestrzeni Rn . Niech G będzie -siatką przestrzeni Rn . Oznaczmy przez K R n zbiór środków c(m1 ,..., mn ) hipersześcianów z G . Definicja 4.4. -zaokrąglenie odwzorowania w : R n R n definiujemy jako odwzorowanie w : K K takie, że w (x) c(m1 ,..., mn ) , gdzie m1 ,..., mn Z takie, że w(x) C (m1 ,..., mn ) . Innymi słowy, -zaokrąglenie w danego odwzorowania w : R n R n jest swego rodzaju restrykcją odwzorowania w do podzbioru środków hipersześcianów w R n , otrzymaną w ten sposób, że wartość w (x) wyznaczana jest jako środek hipersześcianu zawierającego obraz punktu x K przy oryginalnym odwzorowaniu w. Definicja 4.5. Niech odwzorowania wi : R n R n , i 1,..., N , będą zwężające na zwartym podzbiorze K Rn względem metryki d. Niech {w1 ,..., wN ; p1 ,..., pN } będzie IFSP na (K, d). Układ utworzony z -zaokrągleń odwzorowań wi, i = 1,..., N, to jest układ {w1 ,..., w N ; p1 ,..., pN } nazywany jest -IFSP (dyskretnym IFSP). Okazuje się, że ta pozornie niewielka zmiana w stosunku do oryginalnego IFSP ma daleko idące konsekwencje. Przede wszystkim należy zauważyć, że w ogólnym przypadku odwzorowania w i nie są zwężające na przestrzeni K (względem żadnej z metryk), nawet jeśli wi są zwężającymi odwzorowaniami afinicznymi. Stąd, -zaokrąglenia odwzorowań zwężających na ogół nie posiadają unikalnych punktów stałych. Jednakże, jeśli odwzorowanie w jest zwężające, to nietrudno wykazać1, że istnieje skończony podzbiór M K taki, że x K , K N, m K , w m (x) M . Na przykład wykorzystując twierdzenie 2.44 i wniosek 2.47 dla „zdegenerowanego” łańcucha Markowa generowanego przez jedno odwzorowanie. 1 96 Aproksymacja na -siatkach Zbiór M nazywany jest minimalnym zbiorem absorbującym -zaokrąglenia w i może być rozważany jako swego rodzaju analog punktu stałego odwzorowania w. Co więcej, w ogólnym przypadku zbiór M składa się z rozłącznych podzbiorów o elementach będących składnikami orbit okresowych {x 0 , w (x 0 ),..., w p (x 0 )} , x 0 M , w p (x 0 ) x 0 . W dalszej części tego punktu rozważane podzbiory określane będą jako komponenty zbioru M . Na rysunku 4.1 zobrazowano komponenty i obszary (baseny) ich przyciągania dla przykładowych -zaokrągleń zwężających odwzorowań afinicznych. Wobec tego, nawet jeśli intuicja podpowiada, że istnieje jakiś zwarty zbiór, który jest punktem stałym operatora Hutchinsona skojarzonego z -IFSP, to i tak nie można wykazać istnienia takiego zbioru w sposób „standardowy” dla IFS, to jest wykorzystując twierdzenie 2.6 (Banacha). Ponadto należy zauważyć, iż choć przy pierwszym oglądzie dyskretna wersja odwzorowań IFS może wydawać się tworem nieco egzotycznym, to jednak – ze względu na skończoną precyzję liczb zmiennopozycyjnych – w rzeczywistych obliczeniach numerycznych to właśnie z taką postacią tych odwzorowań mamy do czynienia. Co więcej, szereg zaproponowanych w literaturze algorytmów aproksymacji i wizualizacji atraktorów IFS (zebranych w kolejnych punktach niniejszego rozdziału oraz rozdz. 9) działa z założenia w przestrzeni dyskretnej: przestrzeni pikseli lub przestrzeni wokseli1. W związku z tym rodzą się pytania: jaki zbiór zostanie otrzymany w rezultacie zastosowania algorytmu probabilistycznego dla -IFSP oraz jak ten zbiór ma się do atraktora oryginalnego IFS. Odpowiedzi na te pytania stanowią podstawę algorytmów aproksymacji opisanych w tym i dwóch następnych punktach. Ponieważ w każdej iteracji algorytmu probabilistycznego odwzorowania są losowane niezależnie od iteracji poprzednich oraz przestrzeń K jest przeliczalna, zastosowanie tego algorytmu do -IFSP może być rozważane w kategoriach jednorodnego łańcucha Markowa { X i }i 0 na przestrzeni stanów K . Z kolei, na podstawie twierdzenia 2.44, przestrzeń stanów K łańcucha { X i }i 0 można jednoznacznie przedstawić w postaci K T R , (4.8) gdzie T jest podzbiorem stanów chwilowych, R zaś – rodziną nieprzywiedlnych, zamkniętych podzbiorów stanów powracających. Zatem, jeśli punktem początkowym algorytmu probabilistycznego będzie pewien punkt będący stanem należącym do jednego z nieprzywiedlnych, zamkniętych podzbiorów rodziny R , to – z definicji zamkniętości zbioru stanów (definicja 2.41d) – wszystkie punkty generowane przez ten algorytm pozostaną w tym podzbiorze. Niestety, autorzy tych algorytmów na ogół nie uwzględniają tego faktu w dowodach ich poprawności i wykazują zbieżność danego algorytmu dla „zwykłego” układu odwzorowań IFS, składającego się z odwzorowań zwężających działających na przestrzeni ciągłej. 1 Aproksymacja na -siatkach 97 Rys. 4.1. Minimalne zbiory absorbujące i baseny przyciągania dla -zaokrągleń przykładowych zwężających odwzorowań afinicznych (patrz dodatek A, pkt 5) dla 1 Aproksymacja na -siatkach 98 Ponadto zachodzą następujący lemat i twierdzenie: Lemat 4.6. Niech (K, d) będzie przestrzenią metryczną, gdzie K jest zwartym podzbiorem R n oraz d jest indukowana przez pewną normę na R n . Niech {w1 ,..., wN ; p1 ,..., pN } będzie układem IFSP na (K, d) spełniającym założenia definicji 4.5, zaś {w1 ,..., w N ; p1 ,..., pN } odpowiadającym mu -IFSP. Niech x 0 K oraz niech x 0 K będzie środkiem hipersześcianu, do którego należy x 0 . Następnie, niech {xi }i 0 i {x i }i 0 będą ciągami punktów wygenerowanych równolegle przez tę samą realizację algorytmu probabilistycznego dla układów IFSP i -IFSP, to jest xi 1 w i (xi ) i x i 1 w i (x i ) , gdzie i jest indeksem odwzorowania wylosowanym w i-tej iteracji algorytmu. Jeśli odwzorowania IFS wi , i 1,..., N , są zwężające na przestrzeni ( K {x i }i 0 , d ) ze współczynnikami zwężania Lip( wi ) , to d (xi , x i ) 1 s i 1 diam d (C ) dla każdego i N 0 2(1 s ) (4.9) gdzie s max Lip( wi ) oraz diam d (C ) oznacza średnicę hipersześcianu z G i 1,..., N względem metryki d. Dowód. Dla i = 0 nierówność spełniona jest w sposób oczywisty. Dla i N nierówności dowodzi się przy wykorzystaniu indukcji. Dla i = 1, na postawie nierówności trójkąta Z kolei d (x1 , x 1 ) d (x1 , w1 (x 0 )) d ( w1 (x 0 ), x 1 ) . d (x1 , w1 (x 0 )) d ( w1 (x 0 ), w1 (x 0 )) sd (x 0 , x 0 ) 1 s diam d (C ) , 2 ponieważ wi , i = 1,..., N, są zwężające na ( K {x i }i 0 , d ) , oraz 1 d ( w1 (x 0 ), x 1 ) d ( w1 (x 0 ), w 1 (x 0 )) diam d (C ) , 2 bo w 1 (x 0 ) jest środkiem hipersześcianu, do którego należy w1 (x 0 ) . Stąd 1 (1 s 2 ) d (x1 , x 1 ) (1 s ) diam d (C ) diam d (C ) . 2 2(1 s ) Załóżmy teraz, że nierówność (4.9) jest spełniona dla i. Wtedy Aproksymacja na -siatkach 99 d (xi 1 , x i 1 ) d (xi 1 , w1 (x i )) d ( w1 (x i ), x i 1 ) 1 sd (xi , x i ) diam d (C ) 2 i 1 1 s 1 s diam d (C ) diam d (C ) 2(1 s ) 2 1 si2 diam d (C ), 2(1 s ) ponieważ wi , i = 1,..., N, są zwężające na ( K {x i }i 0 , d ) . To kończy dowód. Wniosek 4.7. Niech spełnione będą założenia lematu 4.6. Wówczas i N 0 , d (xi , x i ) diam d (C ) . 2(1 s ) Twierdzenie 4.8. Niech (K, d) będzie przestrzenią metryczną, gdzie K jest zwartym podzbiorem R n oraz d jest indukowana przez pewną normę na R n . Niech {w1 ,..., wN ; p1 ,..., pN } będzie układem IFSP na (K, d) spełniającym założenia definicji 4.5, zaś {w1 ,..., w N ; p1 ,..., pN } odpowiadającym mu -IFSP. Zdefiniujmy zbiór S K jako N (4.10) S S k , S k 1 w i ( S k ) , k 0 i 1 gdzie S0 jest zbiorem środków hipersześcianów -siatki G mających niepuste przecięcie ze zbiorem K. Jeśli odwzorowania wm , m = 1,…, N, oryginalnego IFS są zwężające na przestrzeni ( S K , d ) , to podzbiór stanów powracających R łańcucha Markowa { X i }i 0 jest niepusty i skończony. Ponadto, { X i }i 0 , startując z dowolnego stanu z S, osiąga pewien stan z R z prawdopodobieństwem równym 1. Dowód. Zbiór S składa się z punktów wszystkich możliwych ciągów {x i }i 0 K , o jakich mowa w lemacie 4.6. Ponieważ zbiór K jest zwarty oraz wm : K K dla każdego m {1,..., N } , zatem, na podstawie wniosku 4.7, zbiór S jest ograniczony i stąd skończony. Wobec tego, { X i }i 0 jest jednorodnym łańcuchem Markowa na skończonej przestrzeni stanów S. Teza twierdzenia wynika zatem z wniosku 2.47. Na podstawie pierwszej części twierdzenia 4.8 oraz twierdzenia 2.44, podzbiór stanów powracających R S rozważanego łańcucha Markowa { X i }i 0 przedstawia się jednoznacznie jako skończona suma mnogościowa nieprzywiedlnych, zamkniętych i skończonych podzbiorów stanów powracających: M R R k . k 1 (4.11) Aproksymacja na -siatkach 100 Na podstawie drugiej części twierdzenia 4.8, algorytm probabilistyczny, startując z dowolnego punktu (stanu) z S, wygeneruje, z prawdopodobieństwem 1, punkt należący do jednego z podzbiorów R k . Jak już zauważono wyżej, począwszy od tego punktu kolejne punkty generowane przez algorytm pozostaną w tym podzbiorze. Co więcej, na podstawie twierdzenia 2.45, łańcuch { X i }i 0 po osiągnięciu dowolnego stanu należącego do jednego z podzbiorów R k , odwiedzi z prawdopodobieństwem równym 1 wszystkie stany należące do tego podzbioru. W konsekwencji, algorytm probabilistyczny, w zależności od wyboru punktu początkowego, w nieskończonym czasie działania wygeneruje z prawdopodobieństwem równym 1, ciąg punktów, który zawiera oprócz pewnego podzbioru stanów chwilowych dokładnie jeden z podzbiorów R k . W szczególności, jeśli punkt początkowy będzie należał do R k , wszystkie punkty wygenerowane przez algorytm probabilistyczny będą należały do R k i algorytm w nieskończonej liczbie iteracji wygeneruje ten zbiór. W cytowanej pozycji (Peruggia [115, s. 128]) wykazano, że w przypadku IFS na przestrzeni R 2 z metryką euklidesową liczba podzbiorów R k sumy mnogościowej (4.11) nie może przekroczyć liczby komponentów minimalnego zbioru absorbującego -zaokrąglenia odwzorowania IFS o najmniejszej stałej Lipschitza. Wobec tego, nieskończone realizacje algorytmu probabilistyczny dla odpowiedniego -IFSP na R 2 mogą wygenerować, w zależności od wyboru punktu początkowego, co najwyżej M różnych zbiorów stabilnych (to jest zbiorów powstałych poprzez odrzucenie punktów należących do zbioru stanów chwilowych T ). Należy zauważyć, że jest to sytuacja odmienna w stosunku do podejścia polegającego na zastosowaniu algorytmu probabilistycznego dla IFSP i wybieraniu hipersześcianów -siatki, do których należą generowane punkty. W takim przypadku twierdzenie 3.7 gwarantuje nam bowiem, że po ustabilizowaniu się procesu (to jest zbliżeniu się trajektorii generowanych punktów na odpowiednio małą odległość do atraktora), zawsze otrzyma się ten sam zbiór. Z punktu widzenia zagadnienia aproksymacji istotne jest zatem pytanie, jak poszczególne podzbiory R k mają się do atraktora oryginalnego IFS. Lemat 4.9. Przy spełnionych założeniach twierdzenia 4.8, dla każdego zamkniętego nieprzywiedlnego zbioru R k sumy (4.11), odległość Hausdorffa zbioru R k od atraktora A oryginalnego IFS {w1 ,..., wN } spełnia nierówność gdzie s max Lip(wi ) . i 1,..., N h(R k , A ) diam d (C ) , 2(1 s ) (4.12) Aproksymacja na -siatkach 101 diam d (C ) A dla dowolnego Dowód. Pokażemy najpierw, że N R k , 2(1 s ) 0 . Niech a będzie dowolnym punktem atraktora A . Na podstawie twierdzenia 3.9, dla każdego 0 , {xi }i 0 B (a, ) dla dowolnego x 0 R k , gdzie {xi }i 0 jest ciągiem punktów wygenerowanym przez realizację algorytmu probabilistycznego dla oryginalnego IFSP. Stąd, na podstawie wniosku 4.7, diam d (C ) {x i }i 0 B a, dla x 0 x 0 , gdzie {x i }i 0 jest ciągiem punk2(1 s ) tów wygenerowanym przez tę samą realizację algorytmu probabilistycznego dla -IFSP. Wobec tego, dla każdego a A i każdego 0 , istnieje x R k taki, że d (a, x ) 0. diam d (C ) diam d (C ) A dla dowolnego . Stąd, N R k , 2(1 s ) 2(1 s ) diam d (C ) Pokażemy teraz, że N A , R k dla dowolnego 0 . 2(1 s ) Niech x będzie dowolnym elementem zbioru R k . Ponieważ R k jest nieprzywiedlny, zatem istnieje sekwencja 1 ,..., j indeksów odwzorowań IFS taka, że w j ... w 1 (x ) x . Stąd, dla każdego i N ( w j ... w 1 )i (x ) x oraz, na podstawie wniosku 4.7, d (x ,( w j ... w1 )i (x )) diam d (C ) . 2(1 s ) Z kolei, dla dowolnego 0 , istnieje M ( ) N takie, że dla każdego m M ( ) d ( w m ... w1 (x ), A ) s m d (x , A ) niezależnie od sekwencji 1 ,..., m . Wobec tego, dla każdego x R k , istnieje diam d (C ) diam d (C ) Rk punkt a A taki, że d (x , a) . Stąd, N A , 2(1 s ) 2(1 s ) dla dowolnego 0 . Na tej podstawie, tezę twierdzenia otrzymujemy, wykorzystując definicję otoczeniową odległości Hausdorffa (definicja 2.13). Definiując zbiór aproksymujący atraktor jako A( k ) {C (m1 ,..., mn ) G : c(m1 ,..., mn ) R k } otrzymujemy następujące twierdzenie: (4.13) 102 Aproksymacja na -siatkach Twierdzenie 4.10. Zbiór A( k ) określony równością (4.13) aproksymuje atraktor A z błędem 1 2s diam d (C ) 2 1 s względem metryki Hausdorffa indukowanej przez metrykę d, gdzie s zdefiniowano w lemacie 4.9. Dowód. Ponieważ, z definicji zbioru aproksymującego (formuła (4.13)), 1 h(R k , A( k ) ) diam d (C ) , zatem na podstawie nierówności trójkąta i nierówno2 ści (4.12) otrzymujemy tezę. Wniosek 4.11. Dla danego 0 , określając długość boku hipersześcianów -siatki tak, aby średnica hipersześcianu spełniała nierówność diam d (C ) 1 s otrzymuje się zbiór A( k ) aproksymujący atraktor A z błędem nie większym niż względem metryki Hausdorffa indukowanej przez metrykę d. 4.4. ALGORYTM MINIMALNEGO RYSOWANIA Jak pokazano w punkcie poprzednim, dyskretny algorytm probabilistyczny w nieskończonej liczbie iteracji zbiega, z prawdopodobieństwem 1, do zbioru punktów równego jednemu z zamkniętych nieprzywiedlnych podzbiorów R k . Jednakże, podobnie jak w przypadku oryginalnego algorytmu probabilistycznego, zagadnienie czy ciąg punktów wygenerowany przez ten algorytm w skończonej liczbie iteracji będzie równy jednemu z tych podzbiorów, może być rozpatrywane jedynie w kategoriach zdarzenia losowego o prawdopodobieństwie zależnym od liczby iteracji, przypisanych prawdopodobieństw, oraz od wartości . Z praktycznego punktu widzenia taka „losowa dokładność” jest często rozpatrywana jako cecha niekorzystna. Algorytmy przedstawione w tym i następnym punkcie nie mają wymienionej wady i umożliwiają wyznaczenie zbiorów aproksymujących w skończonym czasie w sposób deterministyczny. Podobnie jak w punkcie poprzednim, niech G będzie -siatką przestrzeni n R oraz K Rn zbiorem środków c(m1 ,..., mn ) hipersześcianów z G . W tym i następnym punkcie przyjęto, że układ IFSP na zwartej przestrzeni (K, d) spełnia założenia twierdzenia 4.8, to znaczy jego odwzorowania są zwężające na przestrzeni ( S K , d ) , przy czym zbiór S K został zdefiniowany we wspomnianym twierdzeniu. Aproksymacja na -siatkach 103 Dla danego -IFSP {w1 ,..., w N ; p1 ,..., pN } , dyskretny operator Hutchinsona W : H ( S ) H ( S ) zostanie zdefiniowany jako N W ( E ) w i ( E ) . (4.14) i 1 Jak już zauważono w poprzednim punkcie, w ogólnym przypadku nie istnieje metryka na Rn , w której -zaokrąglenia w i byłyby zwężające na przestrzeni stanów S (pomimo iż z założenia oryginalne odwzorowania IFS są zwężające na zbiorze K S ). W takich okolicznościach także W nie jest na ogół operatorem zwężającym na przestrzeni H ( S ) wyposażonej w metrykę Hausdorffa. Spełnione jest jednakże następujące twierdzenie: Twierdzenie 4.12. Dla dowolnego podzbioru R k sumy (4.11), R W (R ) . k k (4.15) Dodatkowo, dla każdego x R k , Rk W m ({x }) R k , (4.16) m0 gdzie W 0 ({x }) {x } , zaś R k oznacza liczbę stanów w R k . Dowód. R k jest zamkniętym podzbiorem stanów łańcucha Markowa { X i }i 0 , zatem dla każdego x R k i każdego i {1,..., N } , w i (x ) R k . Stąd R k W (R k ) . Dodatkowo, R k jest zbiorem stanów powracających, zatem dla każdego x R k istnieją y R k oraz i {1,..., N } takie, że w i (y ) x . Stąd W (R k ) R k . Wobec tego R k W (R k ) . Niech x będzie dowolnym punktem zbioru R k . Ponieważ zbiór R k jest skończonym, nieprzywiedlnym i zamkniętych zbiorem stanów powracających, zatem na podstawie twierdzenia 2.45, dla każdego y R k , istnieje sekwencja 1 ,..., k indeksów odwrowań -IFSP taka, że w k ... w 1 (x ) y , gdzie k R k . Co więcej, w i ... w 1 (x ) R k dla każdego i k , gdyż R k jest zamknięty. Ponieważ W m generuje wszystkie możliwe m-krotne złożenia odwzorowań -IFSP i, stąd, wszystkie możliwe sekwencje 1 ,..., m indeksów, na podstawie powyższego otrzymujemy tezę twierdzenia. Twierdzenie 4.12 stanowi podstawę metody iteracyjnego wyznaczania jednego z podzbiorów R k . Oryginalny algorytm, zaproponowany w pracy (Dubuc i Elqortobi [25]), wykorzystuje w tym celu trzy bufory: bufor R do przechowywania punktów zbioru R k oraz bufory New i Prev do przechowywania nowych punktów zbioru R k wyznaczonych odpowiednio w bieżącej i w poprzedniej iteracji. Wersję algorytmu wykorzystującą twierdzenie 4.12 można przedstawić w sposób następujący: 104 Aproksymacja na -siatkach procedure MinimalPlotting1() begin 1. New x , gdzie x dowolny element zbioru R k ; 2. R ; 3. while New do begin R R New ; 4. 5. Prev New ; 6. New W ( Prev) ; 7. New New \ R ; end while; end. Każdy z punktów bufora R przekształcany jest – za pośrednictwem buforów New i Prev – dyskretnym operatorem Hutchinsona (krok 6). Zatem, jak słusznie wskazali autorzy metody, jeśli w wyniku takiego przekształcenia powstaje punkt już znajdujący się w buforze R, to kolejne przekształcenia tego punktu nie są konieczne, bowiem generują punkty, które już były wyznaczone w poprzednich iteracjach. Dlatego, w celu minimalizacji redundancji obliczeń, punkty takie są eliminowane z dalszego przetwarzania w kroku 7. W rezultacie działania algorytmu generowane są zatem wszystkie punkty jednego ze zbiorów R k , przy czym każdy z tych punktów przetwarzany jest dokładnie raz dyskretnym operatorem Hutchinsona. Stąd złożoność obliczeniowa algorytmu jest rzędu O( N R k ) , zaś jego złożoność pamięciowa to O( R k ) . W artykule (Monro i Dudbridge [100]) zaproponowano implementację algorytmu minimalnego rysowania, która, zamiast trzech buforów, wykorzystuje jeden bufor R i kolejkę Q. Wersję algorytmu opartą na twierdzeniu 4.12 można zapisać w sposób następujący: procedure MinimalPlotting2() begin 1. Zainicjuj kolejkę Q dowolnym elementem x zbioru R k ; 2. R x ; 3. while Q do begin 4. Pobierz punkt x z początku Q; 5. for each i {1,, N } do begin 6. y w i (x ) ; 7. if y R then begin 8. R R {y } ; 9. Dodaj y z tyłu Q; end if; end for; end while; end. Aproksymacja na -siatkach 105 Rzędy złożoności obliczeniowej i pamięciowej tego algorytmu są takie same jak algorytmu w wersji pierwotnej. Ponieważ obydwie wersje algorytmu generują jeden z podzbiorów R k , zatem definiując zbiór aproksymujący zgodnie z zależnością (4.13), otrzymuje się zbiór aproksymujący atraktor z dokładnością opisaną twierdzeniem 4.10. W praktyce, wyznaczenie początkowego punktu x tak, aby należał do jednego z podzbiorów R k , na ogół jest zadaniem trudnym. Okazuje się jednak, że jako punkt początkowy można wybrać środek hipersześcianu -siatki, do którego należy punkt stały dowolnego z odwzorowań IFS1. Jak zostanie pokazane, choć taki wybór punktu początkowego nie gwarantuje, że zbiór wynikowy E będzie równy jednemu ze zbiorów R k ani nawet, że E W ( E ) , to jednak E będzie aproksymował oryginalny atraktor A z dokładnością ograniczoną od góry wartością diam d (C ) / 2(1 s ) . Niech x będzie środkiem hipersześcianu -siatki, do którego należy x f wi (x f ), i {1,..., N } . Punkt x może być stanem powracającym i wtedy algorytm wygeneruje jeden ze zbiorów R k , jednak w zależności od odwzorowania i wartości , punkt x może być równie dobrze stanem chwilowym. W tym drugim przypadku, ponieważ zbiór stanów S jest skończony, istnieje sekwencja 1 ,..., |S | indeksów odwzorowań -IFSP taka, że (4.17) w j ... w 1 (x ) w m ... w j ... w 1 (x ) dla pewnych j m | S | . Jeżeli prawdopodobieństwo powrotu Fx , x , o którym mowa w definicji stanu chwilowego (definicja 2.42b), jest niezerowe, wówczas istnieje sekwencja 1 ,..., j , j | S | , taka, że w j ... w 1 (x ) x , czyli punkt x jest okresowy względem złożenia w j ... w 1 . Wówczas dla każdego punktu y zbioru E wygenerowanego przez omawiany algorytm istnieje punkt z E taki, że w i (z ) y i stąd W ( E ) E . Ponadto, algorytm zawsze generuje zbiór E spełniający E W ( E ) . Zatem, jeśli x jest okresowy dla pewnego złożenia w j ... w 1 odwzorowań -IFSP, to w rezultacie działania algorytmu otrzymuje się zbiór E W ( E ) . W takich okolicznościach, choć wynikowy zbiór E nie jest równy żadnemu z podzbiorów R k , to jednak na podstawie twierdzenia 4.13 przedstawionego w następnym punkcie, aproksymuje on oryginalny atraktor z dokładnością ograniczoną wartością diam d (C ) / 2(1 s ) . Jeżeli jednak prawdopodobieństwo powrotu Fx , x 0 , to punkt x nie jest okresowy względem żadnego ze złożeń odwzorowań -IFSP. Wówczas, woW oryginalnym rozwiązaniu przedstawionym przez Monro i Dudbridge’a [100] kolejka Q inicjowana jest środkami pikseli odpowiadających punktom stałym wszystkich odwzorowań wchodzących w skład IFS. Jednakże z punktu widzenia zagadnienia aproksymacji, wynik o takiej samej dokładności otrzymuje się, inicjując Q przy użyciu tylko jednego punktu stałego dowolnie wybranego odwzorowania IFS, przy czym w ogólnym przypadku zbiór aproksymujący będzie składał się z mniejszej liczby punktów niż zbiór otrzymany za pomocą algorytmu oryginalnego. 1 106 Aproksymacja na -siatkach bec równania (4.17), dla każdego złożenia tych odwzorowań jest on co najwyżej preokresowy. W takich okolicznościach, choć wynikowy zbiór E W i ( E ) dla każdego i N , to jednak niekoniecznie W ( E ) E . Na podstawie wniosku 2.47b, inkluzja E W i ( E ) zachodząca dla każdego i N implikuje jednak, że E zawiera przynajmniej jeden z nieprzywiedlnych zamkniętych podzbiorów R k . Stąd, na podstawie lematu 4.9 i definicji otoczeniowej odległości Hausdorffa (de diam d (C ) A dla dowolnego 0 . finicja 2.13) otrzymujemy, że N E , 2(1 s ) Z kolei, punkt początkowy x jest środkiem hipersześcianu, do którego należy punkt stały x f jednego z odwzorowań IFS, zatem na podstwie wniosku 4.7, dla dowolnej sekwencji 1 ,..., j indeksów odwzorowań -IFSP, d ( w j ... w 1 (x ), w j ... w1 (x f )) diam d (C ) , 2(1 s ) diam d (C ) przy czym w j ... w1 (x f ) A . Stąd, N A , E . Wobec tego, na 2(1 s ) podstawie definicji otoczeniowej odległości Hausdorffa, h( E , A ) diam d (C ) . 2(1 s ) Rys. 4.2. Rezultaty zastosowania algorytmu minimalnego rysowania do aproksymowania wybranych atraktorów układów IFS zawierających odwzorowania dowolnego typu. Rząd górny przedstawia aproksymacje atraktorów afinicznych IFS, zaś rząd dolny – aproksymacje atraktorów IFS składających się z odwzorowań nieliniowych (patrz dodatek A, pkt 6) Aproksymacja na -siatkach 107 Algorytm minimalnego rysowania może być z powodzeniem stosowany do aproksymowania atraktorów IFS składających się z odwzorowań zwężających dowolnego typu (zarówno afinicznych, jak i nieliniowych). Na rysunku 4.2 przedstawiono rezultaty zastosowania tego algorytmu do przykładowych IFS składających się z odwzorowań afinicznych oraz IFS składających się ze zwężających odwzorowań nieliniowych. 4.5. WYZNACZANIE MAKSYMALNEGO ZBIORU NIEZMIENNICZEGO DYSKRETNEGO OPERATORA HUTCHINSONA 4.5.1. Uwagi wstępne Na wstępie należy zauważyć, że na podstawie (4.15) R W (R ) . Jak pokazano jednak w punkcie poprzednim, w pewnych przypadkach mogą istnieć podzbiory E S niezmiennicze względem działania dyskretnego operatora Hutchinsona, które zawierają – oprócz stanów powracających – także stany chwilowe. Zatem pełny zbiór R stanów powracających nie jest w ogólnym przypadku nawiększym (w sensie inkluzji) zbiorem niezmienniczym tego operatora w kontekście przestrzeni stanów S. W niniejszym punkcie zajęto się wyznaczaniem takiego maksymalnego zbioru niezmienniczego, to jest zbioru Emax S takiego, że Emax W ( Emax ) oraz Emax E dla każdego E W ( E ) , (4.18a) ES. (4.18b) Dla dowolnego zbioru niezmienniczego względem dyskretnego operatora zachodzi następujące twierdzenie: Twierdzenie 4.13. Niech {w1 ,..., wN ; p1 ,..., pN } będzie układem IFSP spełniającym założenia twierdzenia 4.8, {w1 ,..., w N ; p1 ,..., pN } zaś odpowiadającym mu -IFSP na przestrzeni stanów S. Jeśli dla pewnego E S zachodzi E W ( E ) , to (a) E zawiera przynajmniej jeden z nieprzywiedlnych zamkniętych podzbiorów Rk ; diam d (C ) , gdzie A jest atraktorem oryginalnego IFS {w1 ,..., wN } . 2(1 s ) Dowód. (a) Ponieważ E W i ( E ) dla dowolnego i N , zatem tezę otrzymujemy na podstawie wniosku 2.47b oraz twierdzenia 2.45. (b) h( E , A ) 108 Aproksymacja na -siatkach (b) Na podstawie punktu (a) niniejszego twierdzenia, E R k , zaś na podstawie diam d (C ) A lematu 4.9, h(R k , A ) diam d (C ) / 2(1 s ) . Zatem N E , 2(1 s ) dla dowolnego 0 . Aby wykazać tezę, trzeba zatem pokazać, że diam d (C ) N A , E dla dowolnego 0 i skorzystać z definicji otocze2(1 s ) niowej odległości Hausdorffa (definicja 2.13). Ponieważ E W ( E ) , zatem dla każdego stanu x E , istnieje stan y E taki, że w i (y ) x dla pewnego i {1,..., N } . Stąd dla każdego k N , istnieje stan y k E oraz sekwencja 1 ,..., k indeksów odwzorowań IFS, takie że x w 1 ... w k (y k ) . Stąd, na podstawie wniosku 4.7, d (x , w 1 ... w k (y k )) diam d (C ) . 2(1 s ) Ponieważ jednak E jest skończony i stąd ograniczony, zatem dla każdego 0 , istnieje k ( ) N takie, że d ( w1 ... w k ( ) (y ), A ) s k ( ) d (y , A ) dla każdego y E niezależnie od sekwencji 1 ,..., k ( ) . Wobec tego, dla każdego x E , istnieje a A taki, że d (x , a) diam d (C ) . 2(1 s ) diam d (C ) E dla dowolnego 0 , co kończy dowód twierZatem N A , 2(1 s ) dzenia. Zakładając, że zbiór Emax jest wyznaczony, można zbiór aproksymujący atraktor zdefiniować jako A {C (m1 ,..., mn ) G : c(m1 ,..., mn ) Emax } (4.19) Twierdzenie 4.14. Zbiór A określony równością (4.19) aproksymuje odpowiadający mu atraktor IFS A z błędem 1 2 diam d (C ) 2s 1 s względem metryki Hausdorffa indukowanej przez metrykę d. Aproksymacja na -siatkach 109 1 Dowód. Z definicji (4.19) zbioru aproksymującego h( Emax , A ) diam d (C ) 2 oraz na podstawie twierdzenia 4.13b, h( Emax , A ) diam d (C ) / 2(1 s ) . Tezę twierdzenia otrzymuje się więc na podstawie nierówności trójkąta. W dwóch kolejnych podpunktach omawiane są metody wyznaczania zbioru Emax . 4.5.2. Iterowanie dyskretnego operatora Hutchinsona Pierwszy z omawianych algorytmów oparty jest na iteracyjnym zastosowaniu dyskretnego operatora Hutchinsona. Jak zauważono na wstępie punktu 4.4, operator ten na ogół nie jest operatorem zwężającym na przestrzeni H ( S ) z metryką Hausdorffa. Dlatego, w przeciwieństwie do oryginalnej ciągłej wersji operatora Hutchinsona, iteracyjne zastosowanie operatora dyskretnego do dowolnego zwartego podzbioru przestrzeni S w ogólnym przypadku nie gwarantuje, iż wygenerowany w ten sposób ciąg obrazów będzie zbieżny do jednego z punktów stałych tego operatora, w szczególności do maksymalnego zbioru niezmienniczego Emax . Jako pouczający przykład potwierdzający tę tezę można podać dyskretny operator Hutchinsona składający się tylko z jednego -zaokrąglenia, którego minimalny zbiór absorbujący zawiera komponent niebędący singletonem (por. punkt 4.3). W takim przypadku, wybierając – jako zwarty zbiór początkowy – dowolny punkt należący do obszaru przyciągania tego komponentu, w wyniku iterowania takiego opertora otrzyma się ciąg punktów, który co prawda począwszy od pewnej iteracji dotrze i pozostanie w tym komponencie, ale żaden z punktów tego ciągu nie będzie temu komponentowi równy. Pomimo to, jak pokazujemy poniżej, zbieżność ciągu generowanego przy użyciu iterowania dyskretnego operatora Hutchinsona do maksymalnego zbioru niezmienniczego Emax S jest gwarantowana, gdy iteracja zostanie zastosowana do dowolnego skończonego podzbioru U 0 S takiego, że U 0 Emax i U 0 W (U 0 ) . Niech U 0 będzie zdefiniowany jak wyżej oraz niech {U i }i 0 będzie ciągiem podzbiorów stanów S wygenerowanym poprzez iterowanie dyskretnego operatora Hutchinsona: U i 1 W (U i ) . Ponieważ Emax W ( Emax ) oraz U 0 Emax , zatem U i Emax dla każdego i N 0 . Ponadto, U 0 W (U 0 ) , zatem U 0 U1 ... U i ... . Ponieważ U 0 jest skończony, zatem istnieje U M Emax taki, że U M U M 1 W (U M ) dla pewnego M | U 0 \ U M | . Jednakże Emax jest największym zbiorem niezmienniczym względem dyskretnego operatora Hutchinsona, stąd U M Emax i zbiór ten otrzymywany jest w co najwyżej | U 0 \ Emax | iteracjach. 110 Aproksymacja na -siatkach Podobnie jak algorytm minimalnego rysowania, algorytm iterowania dyskretnego operatora Hutchinsona może być wykorzystywany do aproksymowania atraktorów IFS składających się z odwzorowań zwężających dowolnego typu. 4.5.3. Usuwanie tła Podobne podejście do wyznaczania maksymalnego zbioru niezmienniczego Emax przedstawiono w pracy (Stark [141]). Począwszy od dowolnego (skończonego) podzbioru E0 S takiego, że E0 Emax , zaprezentowany tam algorytm wyznacza iteracyjnie zagnieżdżony ciąg E0 E1 ... Ei ... podzbiorów poprzez odrzucanie stanów należących do aktualnie rozpatrywanego zbioru Ei nie posiadających przeciwobrazów w Ei dla żadnego z odwzorowań -IFSP. Innymi słowy, kolejne podzbiory sekwencji wyznaczane są zgodnie z regułą Ei 1 Ei W ( Ei ) , (4.20) gdzie E0 Emax . Ponieważ E0 Emax oraz Emax W ( Emax ) , zatem na podstawie reguły (4.20) Ei Emax dla każdego i N 0 . Niech teraz {U i }i 0 będzie ciągiem podzbiorów stanów takim, że U i 1 W (U i ) i U 0 S . Ponieważ U 0 Emax i z definicji zbioru stanów S (formuła (4.10)) U 0 W (U 0 ) , zatem na podstawie rozważań z poprzedniego podpunktu, istnieje M N 0 takie, że U k Emax dla każdego k M . Wobec tego, dla każdego k M , Emax U k Ek Emax . Stąd dla każdego k M , Ek Emax , czyli sekwencja (4.20) jest zbieżna do maksymalnego zbioru niezmienniczego. Ponadto, biorąc pod uwagę, iż rozważana sekwencja jest zagnieżdżona, zbiór Emax osiągany jest w co najwyżej | E0 \ Emax | krokach iteracji. Rozważania podsumowane zostaną algorytmem wykorzystującym dwa bufory U i E, który można zapisać w sposób następujący: procedure RemoveBackground() begin 1. E E0 , gdzie E0 dowolny podzbiór S taki, że E0 Emax ; U ; 2. 3. while | E | |U | do begin U E; 4. 5. E ; 6. for each y U do begin 7. for each i {1,, N } do begin 8. x w i (y ) ; 9. if x U then 10. E E {x } ; end for; end for; end while; end. Aproksymacja na -siatkach 111 Na rysunku 4.3 przedstawiono przykład zastosowania omówionego algorytmu do wyznaczania maksymalnego zbioru niezmienniczego aproksymującego paprotkę Barnsleya. Rys. 4.3. Kolejne kroki algorytmu usuwania tła zastosowanego do aproksymowania paprotki Barnsleya 4.6. PORÓWNANIE ALGORYTMÓW Pierwszy z omówionych algorytmów, algorytm oparty na funkcji charakterystycznej atraktora, umożliwia aproksymację atraktorów IFS na R n z dowolną dokładnością zależną jedynie od długości boku hipersześcianów -siatki, na której dokonywana jest aproksymacja. Algorytm ten dokonuje aproksymacji w cza- 112 Aproksymacja na -siatkach sie O( D n N M ) , przy zapotrzebowaniu pamięciowym O(M), gdzie oznacza czas potrzebny na wyznaczenie stałej Lipschitza złożenia odwzorowań IFS, D n jest liczbą hipersześcianów, dla których obliczana jest wartość funkcji charakterystycznej, N – liczbą odwzorowań układu IFS, zaś wartość M określona jest zależnością (4.5). Algorytm nadaje się do aproksymowania atraktorów afinicznych IFS, ale może być także zaadaptowany dla IFS składających się z odwzorowań nieliniowych. Znacznie wydajniejszym algorytmem w stosunku do algorytmu funkcji charakterystycznej atraktora jest zmodyfikowany algorytm adaptacyjnych odcięć. Dokonuje on bowiem aproksymacji w czasie O( D n N M ) z tą samą dokładnością, co ten pierwszy algorytm i przy tych samych wymogach pamięciowych. Dodatkowo, analogicznie jak oryginalny algorytm adaptacyjnych odcięć opisany w punkcie 3.2, także jego wersja „dyskretna” może zostać zaadaptowana do aproksymacji atraktorów IFS nieliniowych. Z kolei dyskretna wersja gry w chaos ma te same wady i zalety, co jej wersja oryginalna. Algorytm ten m.in. umożliwia wygenerowanie, w stosunkowo krótkim czasie i przy stałych wymaganiach pamięciowych, zbioru punktów dającego informację o globalnej geometrii atraktora, jednakże o dokładności aproksymacji będącej funkcją losową liczby iteracji algorytmu (por. podpunkt 3.3.3). Ze względu na probabilistyczny charakter dyskretnej gry w chaos, uzyskanie zbioru aproksymującego atraktor z dokładnością zależną od średnic hipersześcianów -siatki (twierdzenie 4.10) z prawdopodobieństwem 1 wymagałoby nieskończonej liczby iteracji. Warunek ten jest nie do spełnienia w rzeczywistych realizacjach tego algorytmu. Z punktu widzenia dokładności aproksymacji ten sam rezultat, który otrzymano by przy użyciu hipotetycznej, nieskończonej realizacji dyskretnej gry w chaos, można otrzymać w skończonym czasie przy wykorzystaniu algorytmu minimalnego rysowania. Autorską analizę tego algorytmu opartą na teorii łańcuchów Markowa zaprezentowano w punkcie 4.4. Jak pokazano, algorytm ten dokonuje aproksymacji atraktora IFS w czasie O( N | E |) , przy zapotrzebowaniu pamięciowym O(| E |) , gdzie | E | jest liczbą hipersześcianów -siatki wchodzących w skład zbioru aproksymującego. Ponadto, algorytm ten nadaje się (bez dokonywania żadnych modyfikacji) do aproksymowania atraktorów opisanych zarówno przez układy IFS zawierające odwzorowania afiniczne, jak i dowolne, zwężające odwzorowania nieliniowe na zwartym podzbiorze przestrzeni R n . W odróżnieniu od dokładności algorytmu funkcji charakterystycznej atraktora i dyskretnej wersji algorytmu adaptacyjnych odcięć, dokładność algorytmu minimalnego rysowania jest zależna zarówno od średnicy hipersześcianów -siatki, jak i maksymalnej stałej Lipschitza odwzorowań tworzących IFS. Niemniej, jak pokazano we wniosku 4.11, niedogodność tę łatwo wyeliminować, ustalając odpowiednią długość boku tych hipersześcianów w zależności od maksymalnej stałej Lip- Figury ograniczające – kule 113 schitza odwzorowań IFS. Co więcej, przy rozdzielczości -siatek stosowanych w praktycznych zastosowaniach grafiki komputerowej, warunek, o którym mowa we wspomnianym wniosku, jest zwykle spełniony. Zakres możliwych zastosowań algorytmu iterowania dyskretnego operatora Hutchinsona i algorytmu usuwania tła, jest taki sam, jak algorytmu minimalnego rysowania. Autorską analizę tych algorytmów opartą na teorii łańcuchów Markowa zaprezentowano w punkcie 4.5. Jak wykazano, algorytmy te dokonują aproksymacji atraktora z tą samą dokładnością, co algorytm minimalnego rysowania (twierdzenie 4.14). Jednakże złożoność obliczeniowa pierwszych dwu rozważanych algorytmów jest większa, aniżeli algorytmu minimalnego rysowania, bowiem wynosi ona O( NM D n) , gdzie D n jest liczbą hipersześcianów tworzących podzbiór -siatki, na którym wyznaczana jest aproksymacja, zaś M – liczbą hipersześcianów tego podzbioru nienależących do tej aproksymacji. Również większa jest złożoność pamięciowa tych algorytmów, bowiem wynosi ona O( D n) . Co więcej, aproksymacje te składają się na ogół z większej liczby hipersześcianów, niż ich odpowiedniki otrzymane za pomocą algorytmu minimalnego rysowania. Na podstawie powyższego porównania można zatem stwierdzić, że z punktu widzenia złożoności obliczeniowej oraz zakresu stosowalności, najlepszym z algorytmów aproksymacji opisanych w niniejszym rozdziale jest algorytm minimalnego rysowania. Stwierdzenie to jest istotne, gdyż algorytm ten wydaje się niedoceniany, bowiem stosunkowo rzadko jest wymieniany w literaturze – dotyczącej zarówno fraktali, jak i zagadnień grafiki komputerowej. 5. FIGURY OGRANICZAJĄCE – KULE 5.1. WPROWADZENIE W tym rozdziale będziemy zajmowali się układami IFS na przestrzeni zupełnej (X, dE), gdzie X = Rn lub X jest zwartym i wypukłym podzbiorem Rn , zaś dE metryką euklidesową. Mówiąc o kulach, w tym kulach zawierających (ograniczających) dany zbiór punktów, będziemy mieli na myśli domknięte kule w metryce euklidesowej. Przedstawione algorytmy można także zastosować do układów IFS zwężających na przestrzeni X wyposażonej w dowolną inną metrykę indukowaną przez normę wektorową na Rn . W tym celu oryginalny IFS należy sprowadzić do IFS zwężającego względem metryki euklidesowej przy użyciu techniki zaproponowanej pod koniec podpunktu 3.2.2. Zagadnienie wyznaczania najmniejszej kuli zawierającej dany zbiór punktów jest jednym z podstawowych problemów geometrii obliczeniowej. Choć problem 114 Figury ograniczające – kule znany jest niemalże od zarania tej dziedziny, dopiero całkiem niedawno (bowiem dopiero na przełomie lat dziewięćdziesiątych ubiegłego wieku) zaproponowano efektywne algorytmy jego rozwiązywania dla ogólnych skończonych zbiorów punktów (Megiddo [98, 99], Preparata i Shamos [120], Welzl [152]). W grafice komputerowej zakres zastosowań kul ograniczających zadane zbiory punktów jest bardzo szeroki. Wśród nich można wymienić tak podstawowe, jak: optymalne dopasowywanie obszaru wizualizacji do rozmiarów i położenia zbioru w przestrzeni, przyspieszanie obliczeń związanych z testowaniem widzialności (szybkie testy przecięcia w metodzie śledzenia promieni (Glassner [43], Lengyel [72])), hierarchiczne reprezentacje geometrii sceny i grafy sceny (Eberly [28]), wykrywanie obiektów przysłoniętych (Seculic [134]), wskazywanie wizualizowanych obiektów czy wykrywanie kolizji między obiektami (Eberly [28], Lengyel [72]). W przypadku atraktorów IFS, obok zastosowań wyżej wymienionych, dodatkowo dochodzą: szacowanie od góry średnicy atraktora jako średnicy kuli ograniczającej na potrzeby algorytmów aproksymacji opisanych w poprzednich rozdziałach, wyznaczanie przecięcia linii z atraktorem (rozdz. 7) oraz estymacja wektorów normalnych w punktach atraktora (rozdz. 8). Łatwo wykazać, że dla danego zwartego zbioru A X istnieje dokładnie jedna najmniejsza kula zawierająca ten zbiór (Welzl [152]). Ponadto, kula taka określona jest przez co najwyżej n 1 punktów zbioru A (Preparata i Shamos [120, s. 256], Welzl [152]). Innymi słowy, poszukiwana kula jest największą spośród wszystkich najmniejszych kul zawierających simpleksy o wierzchołkach w zbiorze A. Ogólnie, problem wyznaczanie najmniejszej kuli zawierającej zwarty (co najmniej dwupunktowy) zbiór punktów A X można rozłożyć na dwa następujące podproblemy: (a) wyznaczenie dla danego punktu c X najmniejszego promienia rmin (c) R , tak aby kula o środku w c i promieniu rmin (c) zawierała A: rmin (c) max d E (c, a) ; a A (5.1) (b) znalezienie optymalnego środka c min X minimalizującego długość promienia (5.1): rmin (c min ) min rmin (c) . (5.2) c X W przypadku skończonych zbiorów punktów, problem (a) może być rozwiązany w trywialny sposób w czasie liniowym poprzez przejrzenie wszystkich punktów zbioru A. Jednakże w przypadku zbiorów nieskończonych, takich jak atraktory IFS, takie podejście z oczywistych względów nie wchodzi w rachubę. W takich okolicznościach zwykle pozostaje jedynie szacowanie pożądanej wartości promienia. Problem (b) jest nie tylko trudny w przypadku zbiorów nieskończonych, ale jest on także nietrywialny w przypadku skończonych podzbiorów punktów płasz- Figury ograniczające – kule 115 czyzny. Jedną z przyczyn takiego stanu rzeczy należy zapewne upatrywać w tym, że choć równanie (5.2) nie nakłada żadnych ograniczeń na położenie punktu c, to jednak problem ten nie jest zadaniem optymalizacji ciągłej, lecz dyskretnej (Preparata i Shamos [120, s. 256]). Ponieważ promień (5.2) wyrażony jest w terminach metryki euklidesowej, zatem funkcja celu jest nieliniowa, co powoduje trudności1 w zastosowaniu do tego problemu znanych technik optymalizacji dyskretnej; patrz np. (Sysło i inni [145]). W przypadku atraktorów IFS algorytmy wyznaczania kuli zawierającej atraktor można podzielić na dwie kategorie. Pierwsza z kategorii obejmuje algorytmy pośrednie, to jest obliczające takie kule na podstawie specyfikacji IFS, bez potrzeby generowania zbioru aproksymującego atraktor. Do drugiej kategorii zaliczają się algorytmy bezpośrednie, dokonujące obliczeń na podstawie skończonego zbioru punktów aproksymującego atraktor lub skończonego pokrycia atraktora zbiorami o zadanej geometrii. Algorytmy te są zwykle adaptacjami znanych algorytmów z geometrii obliczeniowej. W kontekście dotychczas zaprezentowanego materiału bodajże najprostsze podejście do problemu wyznaczania kuli zawierającej atraktor IFS polega na zaprojektowaniu algorytmu opartego na twierdzeniu 2.19. W przypadku danego IFS {w1,..., wN} na (X, dE) oraz punktu c X , wspomniane twierdzenie gwarantuje, że kula o środku w punkcie c i promieniu r 1 max Lip( wi ) i 1,..., N 1 max Lip( wi ) max d E (c, x (fi ) ) , i 1,..., N (5.3) i 1,..., N (i ) f gdzie x jest punktem stałym odwzorowania wi, będzie zawierała atraktor tego IFS. Wobec tego, twierdzenie to dostarcza jedynie pewnego oszacowania wartości (5.1) z góry, pozostawiając jednak problem „optymalnego środka” (5.2) bez odpowiedzi. Z punktu widzenia równości (5.3) optymalnym środkiem (minimalizującym długość promienia r) będzie punkt c minimalizujący wartość max i 1,..., N d E (c, x (fi ) ) , to jest środek najmniejszej kuli zawierającej punkty stałe odwzorowań IFS. Punkt taki można znaleźć za pomocą znanych metod geometrii obliczeniowej; np. (Welzl [152]). Co więcej, biorąc pod uwagę fakt, że w przypadku rozważanego problemu liczba punktów stałych jest zwykle niewielka, do wyznaczenia tego punktu wraz z odpowiednim promieniem często można wykorzystać metodę naiwną polegającą na wyznaczeniu największej kuli spośród najmniejszych kul zawierających simpleksy o wierzchołkach w zbiorze punktów stałych. Środek ten można także szacować, często z dobrym skutkiem, przy użyciu środka masy (to jest średniej arytmetycznej) wspomnianych punktów stałych. Wyrafinowane przekształcenie problemu znajdowania najmniejszego koła zawierającego skończony zbiór punktów na płaszczyźnie do postaci umożliwiającej zastosowanie trójwymiarowego programowania liniowego, przedstawiono np. w Megiddo [98, 99]. 1 116 Figury ograniczające – kule Zgodnie z twierdzeniem 2.19, kula o promieniu (5.3) zawiera atraktor, ponieważ zawiera ona swoje obrazy przy odwzorowaniach IFS. Choć drugi z faktów jest warunkiem wystarczającym zachodzenia faktu pierwszego, to jednak nie jest warunkiem koniecznym. Dlatego promień obliczany za pomocą formuły (5.3) zwykle nie jest promieniem minimalnym w rozumieniu zależności (5.1). Często lepszego (i co najmniej nie gorszego) oszacowania promienia (5.1) dostarcza lemat 2.23. Należy bowiem zauważyć, że jeśli jako odwzorowanie zwężające na przestrzeni zupełnej – o jakim mowa w lemacie – będzie rozpatrywany operator Hutchinsona W na przestrzeni (H ( X ), h) , wówczas nierówności (2.13) przybiorą postać: 1 max Lip( wi ) i 1,..., N h( B, A ) (1 max Lip( wi )) 1 h( B,W ( B )) h( B, A ) , i 1,..., N 1 max Lip( wi ) i 1,..., N gdzie A jest atraktorem IFS, zaś B H ( X ) . Przyjmując za B singleton {c} oraz metrykę euklidesową jako metrykę na X, w rezultacie podstawień do powyższych nierówności otrzymuje się h({c}, A ) (1 max Lip( wi )) 1 max d E (c, wi (c)) i 1,..., N i 1,..., N 1 max Lip( wi ) i 1,..., N 1 max Lip( wi ) h({c}, A ) . i 1,..., N Ponieważ, na podstawie definicji 2.12, h({c}, A ) max{d E (c, a) : a A } , zatem na mocy pierwszej z powyższych nierówności kula o środku w c i promieniu r (1 max Lip( wi )) 1 max d E (c, wi (c)) i 1,..., N i 1,..., N (5.4) będzie zawierała atraktor A . Co więcej, na podstawie drugiej nierówności, promień ten będzie co najwyżej (1 max Lip( wi )) / (1 max Lip( wi )) razy dłuższy i 1,..., N i 1,..., N od promienia minimalnego w rozumieniu zależności (5.1). Ponieważ dla punktów stałych x (fi ) wi (x (fi ) ) max d E (c, wi (c)) max {d E (c, x (fi ) ) d E ( wi (x (fi ) ), wi (c))} i 1,..., N i 1,..., N max {d E (c, x (fi ) ) Lip( wi ) d E (x (fi ) , c)} i 1,..., N (1 max Lip( wi )) max d E (x (fi ) , c), i 1,..., N i 1,..., N zatem dla danego c, promień wyznaczony przy wykorzystaniu formuły (5.4) będzie nie większy od promienia wyznaczonego na podstawie formuły (5.3). Na rysunku 5.1 przedstawiono porównanie kół ograniczających otrzymanych przy wykorzystaniu obydwu oszacowań dla przykładowych atraktorów afinicznych IFS na R 2 . Choć zastosowanie drugiego z oszacowań daje zwykle dużo lepsze rezul- Figury ograniczające – kule 117 taty niż wykorzystanie pierwszego, to jednak rozmiary kul wyznaczanych w ten sposób znacznie odbiegają od rozmiarów kul minimalnych. Rys. 5.1. Przykładowe rezultaty wykorzystania oszacowań (5.3) (większe koła) i (5.4) (mniejsze koła) do wyznaczania kół ograniczających atraktory IFS na R2 (patrz dodatek A, pkt 7) Ponieważ w żadnym z dwóch opisanych wyżej podejść nie wykorzystuje się do obliczeń aproksymacji atraktora, dlatego obydwa zaliczają się do kategorii algorytmów pośrednich. W kolejnych podpunktach przedstawione zostaną inne algorytmy pośrednie, zaś rozdział zakończony zostanie dwoma algorytmami bezpośrednimi. 5.2. ALGORYTM ITERACYJNY Jeden z pierwszych algorytmów pośrednich wyznaczania kuli zawierającej atraktor IFS został zaproponowany w artykule (Hart i DeFanti [52]). 118 Figury ograniczające – kule Niech {w1,...,wN} będzie IFS na przestrzeni zupełnej (X, dE). Omawiany algorytm wyznacza w sposób iteracyjny ciąg {Bi }i 0 domkniętych kul Bi B (ci , ri ) . Każda następna kula ciągu obliczana jest na podstawie poprzedniej jako kula ograniczająca kule zawierające obrazy kuli poprzedniej przy odwzorowaniach IFS. W tym celu środek i promień kuli Bi 1 , i 0,1,..., , obliczane są jako: ci 1 1 N wm (ci ) , N m 1 (5.5a) ri 1 max {d E (ci 1 , wm (ci )) Lip( wm )ri } . (5.5b) m 1,..., N Początkowa kula B0 może być dowolna (autorzy algorytmu sugerują kulę jednostkową o środku w początku układu współrzędnych). Choć w cytowanym artykule tego formalnie nie wykazano (a co zostanie pokazane w dalszej części tego punktu), powyższy ciąg jest zbieżny do pewnej kuli B zawierającej atraktor IFS. Podstawową wadą omawianego podejścia jest jednakże to, że fakt zawierania się atraktora w kuli dotyczy jedynie kuli granicznej, natomiast algorytm nie gwarantuje uzyskania takiej kuli w skończonej liczbie iteracji. Niech f : X X będzie funkcją przybierającą, dla danego x, wartości równe prawej stronie zależności (5.5a), to jest f ( x) 1 N wm (x) . N m 1 (5.6) Ponieważ wm są zwężające względem metryki d E , ta zaś jest indukowana przez normę, zatem dla dowolnych x, y X d E ( f (x), f (y )) f (x) f (y ) E 1 N N (w 1 N wm (x) wm (y ) N m 1 m 1 E m (x) wm (y )) E 1 N Lip( wm ) d E (x, y ). N m 1 1 N Lip(wm ) 1 , a więc odwzorowanie f jest zwężające na przeN m 1 strzeni zupełnej (X, d E ). Wobec tego, na podstawie twierdzenia Banacha 2.6, f posiada dokładnie jeden punkt stały c i punkt ten jest granicą ciągu (5.5a). Zatem c jest środkiem kuli granicznej B . Podobnie można pokazać, że ciąg promieni (5.5b) zbiega do pewnego promienia granicznego lim ri r (Rice [127]). Ponieważ ci c oraz d E i wm, i m = 1,..., N, są ciągłe, zatem przechodząc do granicy w (5.5b) otrzymuje się Stąd Lip( f ) r lim max {d E (ci 1 , wm (ci )) Lip( wm )ri } i m 1,..., N max {d E (c , wm (c )) Lip( wm )r }. m 1,..., N Figury ograniczające – kule 119 Wobec tego kula B B (c , r ) o promieniu r max m 1,..., N d E (c , wm (c )) 1 Lip( wm ) (5.7) zawiera (na podstawie nierówności trójkąta) każdą z N kul B ( wm (c ), r ( m ) ) , gdzie r ( m ) r Lip( wm ) , m {1,..., N } . Ponieważ, z kolei, B ( wm (c ), r ( m ) ) wm ( B ) , zatem B W ( B ) i stąd B A . W szczególności, jeśli IFS składa się wyłącznie z odwzorowań afinicznych wm (x) L m x t m , gdzie L m Rnn i t m Rn , wówczas kulę B można wyznaczyć analitycznie, obliczając jej środek c jako punkt stały odwzorowania (5.6) poprzez rozwiązanie układu n równań liniowych 1 N 1 N I L c tm . (5.8) m N N m 1 m 1 Promień r obliczany jest następnie na podstawie wzoru (5.7). Ponieważ B W ( B ) , zatem promień r (5.7), podobnie jak promień wyznaczony na podstawie wzoru (5.3), jest na ogół dłuższy od promienia najmniejszej kuli o środku w c i zawierającej atraktor, czyli promienia rmin (c ) (5.1). Jednakże d (c , w (c )) max d E (c , wm (c )) max E m m 1,..., N . (5.9) m 1,..., N 1 Lip( wm ) 1 max Lip( wi ) i 1,..., N Dlatego r stanowi w ogólnym przypadku lepsze oszacowanie promienia rmin (c ) niż promień obliczony na podstawie wzoru (5.4) (a zatem również wzoru (5.3)), przy czym – podobnie jak ten ostatni – r jest co najwyżej (1 max Lip( wi )) / (1 max Lip( wi )) razy dłuższy od rmin (c ) . i 1,..., N i 1,..., N Ponadto, porównując wzór (5.8) ze wzorem (2.25b) można zauważyć, że w przypadku afinicznych IFS środek c jest równy wektorowi momentów pierwszego rzędu miary niezmienniczej generowanej przez IFS z równymi prawdopodobieństwami. Z punktu widzenia interpretacji mechanicznej, wektor ten utożsamiany jest ze środkiem masy o rozkładzie określonym tą miarą. Dlatego punkt c ma zwykle niewiele wspólnego ze środkiem najmniejszej kuli zawierającej atraktor, tj. optymalnym środkiem c min określonym zależnością (5.2). 5.3. OPTYMALIZACJA ŚRODKA Podejście zaproponowane w pracach (Rice [128], Edalat i inni [30]) stanowi niejako kontynuację metody przedstawionej w punkcie poprzednim, polegającą na próbie wyznaczenia „lepszego” środka kuli zawierającej atraktor, aniżeli punkt c . 120 Figury ograniczające – kule W tym celu oryginalny wzór na promień (5.7) został sparametryzowany względem punktów przestrzeni X i przybiera on formę funkcji r : X R o postaci: d E (c, wm (c)) . m 1,..., N 1 Lip( w ) m r (c) max (5.10) Wobec tego, dla każdego m {1,..., N } r (c) d E (c, wm (c)) Lip( wm )r (c) . Stąd na podstawie nierówności trójkąta, dla dowolnego c X , kula B (c, r (c)) zawiera każdą z N kul B ( wm (c), rm ) , rm Lip( wm )r (c) . Z kolei kule B ( wm (c), rm ) wm ( B (c, r (c))) , zatem B (c, r (c)) W ( B (c, r (c))) i stąd B (c, r (c)) A . Lemat 5.1. Niech f : X R będzie ciągła na zwartej przestrzeni (X, d). Wtedy istnieją punkty p, q X takie, że f (q ) f ( x) f ( p ) dla wszystkich x X . Dowód. (Rudin [131, s. 77]). Twierdzenie 5.2. Niech {w1,..., wN} będzie IFS na przestrzeni (X, d E ), gdzie X = Rn lub X jest zwartym podzbiorem Rn . Wtedy funkcja r określona równością (5.10) jest ciągła, posiada minimum globalne i minimum to należy do kuli B (x f , r (x f )) , gdzie x f jest punktem stałym dowolnego odwzorowania IFS. Dowód. Na podstawie wzoru (5.10) natychmiast można zauważyć, że funkcja r jest ciągła. Na mocy lematu 5.1, r osiąga minimum na B (x f , r (x f )) , bowiem kula B (x f , r (x f )) w przestrzeni metrycznej (X, d E ) jest zbiorem zwartym (wniosek 2.10). Ponadto dla każdego y R n \ B (x f , r (x f )) r (x f ) d E (y, x f ) r (y ) ponieważ x f A B (y , r (y )) , a zatem rozważane minimum jest minimum globalnym. W konsekwencji środek optymalny w rozumieniu omawianej metody to punkt minimalizujący wartość promienia (5.10), tj. punkt c min X , dla którego r (c min ) min r (c) . c X (5.11) W pracach (Dubuc i Hamzaoui [26], Rice [128]) zauważono, że zamiast oryginalnej funkcji r, zwykle wygodniej jest minimalizować funkcję r 2 : X R . Ponieważ występująca we wzorze (5.10) odległość wyrażona jest przy użyciu metryki euklidesowej, podejście takie umożliwia wyeliminowanie obliczania pierwiastka kwadratowego i zastąpienie go iloczynem skalarnym wektorów. W kon- Figury ograniczające – kule 121 sekwencji, oryginalny problem można przekształcić w, dogodniejszy dla obliczeń, równoważny problem wyznaczania minimum funkcji r 2 (c) max m 1,..., N m (c) m (c) (1 Lip( wm )) 2 , (5.12) gdzie m (c) c wm (c) . Ponadto, w przypadku afinicznych IFS zachodzi – istotne z punktu widzenia praktycznych problemów optymalizacji – następujące twierdzenie: Twierdzenie 5.3. Jeśli IFS na (Rn , d E ) składa się wyłącznie z odwzorowań afinicznych, to istnieje dokładnie jedno minimum globalne funkcji r określonej wzorem (5.10) oraz funkcja ta nie posiada minimów i maksimów lokalnych. Dowód. Dubuc i Hamzaoui [26] przedstawili prosty dowód, że przy powyższych założeniach zbiór rozwiązań rozważanego problemu minimalizacji tworzy domknięty zbiór wypukły oraz że zbiór ten jest singletonem, gdy r jest ściśle wypukła na Rn . Pełny dowód twierdzenia można natomiast znaleźć w pracy (Rice [127]). Należy zauważyć, że jeśli X Rn lub, ewentualnie, X jest zwartym i wypukłym podzbiorem Rn , to na podstawie twierdzenia 5.2 rozważany problem jest zagadnieniem optymalizacji ciągłej. Na pierwszy rzut oka może wydawać się to nieco zaskakujące, bowiem – jak odnotowano w podrozdz. 5.1 – problem znajdowania środka najmniejszej kuli zawierającej dany zbiór punktów (wzór (5.2)) należy do klasy zadań optymalizacji dyskretnej. Należy jednak pamiętać o tym, iż – podobnie jak miało to miejsce w metodzie Harta-DeFantiego – fakt zawierania się atraktora w kuli B (c, r (c)) o promieniu r(c), określonym wzorem (5.10), wynika z założenia, że kula ta zawiera kule B ( wm (c), rm ) , rm Lip( wm )r (c) , m = 1,..., N. Ponieważ jest to jedynie warunek wystarczający, ale nie konieczny, do zachodzenia tego faktu, punkt c min (5.11) w ogólnym przypadku nie jest tożsamy ze środkiem obiektywnie najmniejszej kuli zawierającej atraktor (tj. punktem c min zdefiniowanym równaniem (5.2)). Dotyczy to również samego promienia r (c min ) , którego długość w ogólności nie tylko nie jest równa długości promienia obiektywnie minimalnego rmin (c min ) , ale również zwykle przewyższa długość promienia rmin (c min ) (5.1), tj. promienia najmniejszej kuli o środku w punkcie c min i zawierającej atraktor. Jednakże, analogicznie jak w metodzie Harta-DeFantiego, dla każdego c X , promień r(c) jest co najwyżej (1 min Lip( wi )) (1 min Lip( wi )) razy dłuższy od promienia rmin (c) na podstawie nierówności (5.9) przepisanej dla punktu c. W pewnych prostych przykładach IFS możliwe jest obliczenie punktu c min analitycznie; patrz np. (Dubuc i Hamzaoui [26]), gdzie wykorzystano w tym celu mnożniki Lagrange’a. Jednakże w przypadku ogólnym konieczne jest zastosowanie odpowiedniej metody optymalizacji numerycznej (Press i inni [121]). Rice 122 Figury ograniczające – kule [128], w celu wyznaczania rozważanych punktów dla afinicznych IFS, wykorzystał wariant popularnej metody optymalizacji ciągłej zaproponowanej przez Neldera i Meada (tzw. Downhill Simplex Method) [103]. Przykładowe rezultaty zastosowania algorytmu optymalizacji środka i algorytmu iteracyjnego zaprezentowano na rys. 5.2. Rys. 5.2. Przykładowe rezultaty zastosowania algorytmu iteracyjnego (kolor niebieski) i algorytmu optymalizacji środka (kolor zielony) do wyznaczania kół ograniczających atraktory IFS na R2 (w przypadku, gdy jedno z kół nie jest widoczne, oba koła się pokrywają) 5.4. WYWAŻANIE ATRAKTORA Podobnie jak podejście opisane w poprzednim punkcie, metoda wyważania atraktora (ang. balancing the attractor), zaproponowana w pracy (Martyn [86]), Figury ograniczające – kule 123 także może być rozpatrywana jako próba ulepszenia metody Harta-DeFantiego, m.in. pod kątem wyznaczania „lepszego” środka kuli zawierającej atraktor. Metoda ta jest algorytmem heurystycznym, stosowanym do układów IFS składających się z odwzorowań afinicznych. Punktem wyjścia idei, na której opiera się omawiane podejście, jest – odnotowany już w punkcie 5.2 – fakt, że środkiem kuli granicznej iteracji Harta-DeFantiego jest wektor momentów pierwszego rzędu miary niezmienniczej IFSP generowanej przez równe prawdopodobieństwa. W konsekwencji, w odróżnieniu od metody przedstawionej w poprzednim punkcie, metoda wyważania atraktora poszukuje „lepszego” środka w dziedzinie wektorów momentów pierwszego rzędu miar IFSP, których nośnikiem jest dany atraktor. Ponadto, w cytowanej pracy przedstawiono wydajny sposób aproksymowania, z dowolną dokładnością, najkrótszego promienia kuli zawierającej atraktor, której środek należy do wspomnianej dziedziny. Niech A będzie atraktorem IFS {w1,...,wN} na przestrzeni zupełnej (X, dE). Jak odnotowano w poprzednim punkcie, promień r(c), c X , określony równością (5.10) jest co najwyżej (1 max Lip( wi )) / (1 max Lip( wi )) razy dłuższy i 1,..., N i 1,..., N od minimalnego promienia rmin (c) kuli o środku w punkcie c i zawierającej A . Na tej podstawie, wartością wpływającą na dokładność przybliżenia rmin (c) przez r(c) jest wartość max Lip( wm ) ; im mniejsza wartość maksymalnego współczynnika zwężania odwzorowań IFS, tym lepsze oszacowanie. Jednakże, jak zauważono w podpunkcie 3.2.2, dla danego 0 , zastosowanie algorytmu adaptacyjnych odcięć umożliwia wygenerowanie skończonego zbioru F złożeń f odwzorowań IFS takich, że Lip( f ) , przy czym F może być rozpatrywany jako układ IFS o tym samym atraktorze, co IFS oryginalny. Powyższe spostrzeżenie daje zatem podstawę do aproksymowania wartości rmin (c) od góry z dowolną dokładnością 0 przy wykorzystaniu wariantu algorytmu adaptacyjnych odcięć, jako r (c) max f F d E (c, f (c)) . 1 Lip( f ) (5.13) Ponieważ maksymalny współczynnik zwężania odwzorowań zbioru F (traktowanego jako układ IFS) nie przekracza wartości , zaś r (c) jest co najwyżej (1 max Lip( f )) / (1 max Lip( f )) razy dłuższy od rmin (c) , zatem przyjf F f F mując / (2 ) otrzymamy promień r (c) dłuższy od promienia rmin (c) o -krotność tego ostatniego. Dodatkowo zachodzi następujące twierdzenie: Twierdzenie 5.4. Niech {w1,...,wN} będzie afinicznym IFS na ( Rn , dE) z atraktorem A . Niech c conv( A ) oraz niech B (x, r ) będzie dowolną kulą zawierającą A . 124 Figury ograniczające – kule Wtedy dla dowolnego złożenia f wi1 ... wim , ik {1,..., N } , odwzorowań IFS spełniona jest nierówność d E ( f (c), c) d E ( wi1 ... wiq (x), c) r Lip( wi1 ... wiq ) , (5.14) dla każdego q {1,..., m} . Dowód. Z nierówności trójkąta mamy d E ( f (c), c) d E ( wi1 ... wiq (x), c) d E ( wi1 ... wiq (x), f (c)) . Dodatkowo, zarówno f wi1 ... wim , jaki i wi1 ... wiq , jako złożenia odwzorowań afinicznych, są ciągłe w sensie Lipschitza, zatem d E ( wi1 ... wiq (x), f (c)) Lip( wi1 ... wiq )d E (x, wiq1 ... wim (c)) (gdzie dla q = m, wiq1 ... wim jest odwzorowaniem identycznościowym). Z kolei, na podstawie punktu a) twierdzenia 2.21, otrzymujemy wiq1 ... wim (c) conv( A ) . Ponieważ conv( A ) jest najmniejszym zbiorem wypukłym zawierającym A , kule w metryce euklidesowej są zbiorami wypukłymi oraz przecięcie zbiorów wypukłych jest zbiorem wypukłym, zatem założenie B (x, r ) A implikuje B (x, r ) conv( A ) . Stąd wiq1 ... wim (c) B (x, r ) , a zatem d E (x, wiq1 ... wim (c)) r , co kończy dowód. Łatwo wykazać, że jeśli c jest wektorem momentów pierwszego rzędu dowolnej miary niezmienniczej generowanej przez IFSP, to c conv(spt( )) (Martyn [86]). Zakładając zatem, że współczynnik zwężania każdego złożenia f F spełnia Lip( f ) / (2 ) , na podstawie powyższego twierdzenia, dla każdego f F , f wi1 ... wim i każdego q {1,..., m} , spełniona jest nierówność d E ( f (c), c) (1 / 2)(d E ( wi1 ... wiq (x), c) r Lip( wi1 ... wiq )) , (5.15) 1 Lip( f ) gdzie x i r są odpowiednio środkiem i promieniem dowolnej kuli zawierającej atraktor, zaś c jest wektorem momentów pierwszego rzędu pewnej miary niezmienniczej IFSP. Wobec tego, jeśli wartość prawej strony nierówności (5.15) jest mniejsza od wartości d E ( g (c), c) / (1 Lip( g )) dla pewnego złożenia g F , to wszystkie złożenia f F rozpoczynające się od złożenia wi1 ... wiq nie mają wpływu na wartość maksimum (5.13) i jako takie mogą być pominięte w obliczaniu promienia r (c) . Jako rezultat powyższych spostrzeżeń otrzymujemy więc następujący algorytm obliczania długości promienia (5.13): Figury ograniczające – kule 1. 2. 3. 4. 5. 6. 7. 8. 125 procedure ComputeRMin( f ) begin for each i {1,, N } do begin g f wi ; if Lip( g ) / (2 ) then if d E ( g (c), c) / (1 Lip( g )) R then begin R d E ( g (c), c) / (1 Lip( g )) ; f max g ; end if; else if (1 / 2)(d E ( g (x), c) r Lip( g )) R then ComputeRMin( g ); end for; end. W przedstawionej procedurze R jest zmienną globalną przechowującą bieżącą wartość obliczanego promienia, c – zmienną globalną przechowującą wektor momentów pierwszego rzędu miary niezmienniczej, dla którego wykonywane są obliczenia, – dozwolonym błędem aproksymacji, zaś x i r są zmiennymi globalnymi reprezentującymi odpowiednio środek i promień dowolnej kuli zawierającej atraktor. Wynikowa długość promienia r (c) umieszczana jest w zmiennej R jako rezultat wykonania tej procedury dla f równego odwzorowaniu identycznościowemu i, w ogólnym przypadku, początkowej wartości zmiennej R równej zeru. Przy pierwszym wywołaniu procedury, zmiennej globalnej R przypisywana jest wartość zero. Natomiast promień r i środek x dowolnej kuli zawierającej atraktor (wykorzystywane w kroku 7 w celu optymalizacji obliczeń przy użyciu wyżej opisanej reguły) można wyznaczyć na podstawie wzoru (5.10), przyjmując za środek kuli na przykład wektor momentów pierwszego rzędu miary niezmienniczej generowanej przez równe prawdopodobieństwa IFSP. Ponieważ im mniejszy promień r, tym większa dokładność oszacowania wartości d E ( f (c), c) / (1 Lip( f )) dostarczanego przez prawą stronę nierówności (5.15), dlatego przy następnych wywołaniach procedury, tak jak ma to miejsce w opisanym niżej procesie wyważania atraktora, za r i x warto przyjąć promień i środek najmniejszej kuli z wyznaczonych dotychczas. Ponadto, obliczenia wartości promienia R (krok 5) dokonywane są na podstawie złożeń odwzorowań IFS należących do zbioru F . Ten ostatni zaś, dla danego IFS i błędu aproksymacji , pozostaje niezmienny we wszystkich wywołaniach procedury. Zatem, w celu dążenia do jak najszybszej eliminacji złożeń niemających wpływu na wartość maksimum (5.13), wartość początkowa zmiennej globalnej R dla kolejnych wywołań procedury może być określona przy użyciu dowolnego złożenia f z F , jako d E ( f (c), c) / (1 Lip( f )) . W przypadku, gdy punkt c zlokalizowany jest we względnie niewielkiej odległości od punktu, dla którego prowadzone były obli- 126 Figury ograniczające – kule czenia w poprzednim wywołaniu procedury, mając na uwadze eksploatację spójności przestrzennej, można uznać, że najlepszym kandydatem na rozważane złożenie odwzorowań jest złożenie konstytuujące maksimum (5.13) w poprzednim wywołaniu procedury. Złożenie to zapamiętywane jest w kroku 6 w zmiennej globalnej f max . Rys. 5.3. Koła ograniczające i rozkłady odpowiednich miar niezmienniczych IFSP w kolejnych krokach „wyważania” przykładowego atraktora IFS na R2. Wzrost stopnia koncentracji (gęstości) miary odwzorowano za pomocą kolorów od czerwieni do bieli. Kolorem zielonym oznaczono obszary atraktora o mierze bliskiej zera Sam proces wyważania atraktora afinicznego IFS {w1,...,wN} polega na minimalizacji wartości funkcji promienia r . Minimalizacja odbywa się względem wektorów momentów pierwszego rzędu miar niezmienniczych generowanych przez układy IFSP {w1,...,wN ; P}, gdzie P jest parametrem reprezentującym uporządkowany zbiór { p1 ,..., pN } prawdopodobieństw IFSP. Na podstawie równania (2.25b), wektor momentów pierwszego rzędu miary niezmienniczej określony jest całkowicie przez odwzorowania IFS i wartości przypisanych im prawdopodobieństw, zatem dla danego IFS, omawiany proces minimalizacji ma miejsce w dziedzinie parametru P. Ponieważ, na podstawie definicji 2.30, N p i 1 i 1 i pi (0, 1) , zatem zbiór wartości parametru P może być utożsamiany ze współrzędnymi barycentrycznymi punktów wewnętrznych ( N 1) -wymiarowego simpleksu rozpiętego na N wierz- Figury ograniczające – kule 127 Rys. 5.4. Rezultaty zastosowania algorytmu wyważania atraktora do wyznaczania kul ograniczających przykładowe atraktory IFS na przestrzeni R3 (patrz dodatek A, pkt 8) 128 Figury ograniczające – kule chołkach o współrzędnych (barycentrycznych) [1, 0,..., 0], [0, 1,..., 0],..., [0, 0,..., 1]. Ze względu na symplektyczną geometrię dziedziny optymalizacji, w przypadku omawianego zagadnienia minimalizacji wygodnie jest zastosować adaptację algorytmu Downhill Simplex Method (Nelder i Mead [103]), której pełny opis można znaleźć w cytowanej już pracy (Martyn [86]). Na rysunku 5.3 zaprezentowano rozkłady miar niezmienniczych oraz odpowiednie koła ograniczające otrzymane w kolejnych iteracjach „wyważania” przykładowego atraktora IFS na przestrzeni R 2 , a na rys. 5.4 – kule ograniczające obliczone przy użyciu omówionego podejścia dla wybranych atraktorów IFS na R 3 . Choć metoda jest heurystyczna, na ogół daje bardzo dobre rezultaty (bliskie wynikom optymalnym – zob. punkt 5.8) w niewielkiej liczbie iteracji. Ponadto, zamiast w dziedzinie prawdopodobieństw, opisany proces minimalizacji wartości funkcji promienia (5.13) może być dokonany względem punktów c należących do otoczki wypukłej atraktora (por. twierdzenie 5.4). Rozwiązanie takie będzie zatem udoskonaloną wersją algorytmu optymalizacji środka z punktu poprzedniego. 5.5. KOPERTY Interesujące podejście do problemu wyznaczania kul zawierających atraktory IFS zostało zaproponowane w artykule (Canright [17]). W odróżnieniu od metod opisanych w poprzednich punktach, idea algorytmu kopertowego polega na wyznaczeniu zbioru ograniczającego, nazywanego kopertą (ang. envelope), składającego się nie z jednej, ale N kul, gdzie N jest liczbą odwzorowań IFS. Niech A będzie atraktorem IFS {w1,...,wN} na przestrzeni zupełnej (X, dE). N Algorytm kopertowy wyznacza zbiór E B (x (fi ) , ri ) , gdzie x (fi ) A jest punki 1 tem stałym odwzorowania wi oraz ri Lip( wi ) max (dij rj ) , (5.16a) j 1,..., N j i dij d E (x (fi ) , x (f j ) ) , i, j {1,..., N } . Ponieważ dla dowolnego i {1,..., N } , d E (x (fi ) , y ) max(dij rj ) dla każdej i go y E \ B (x (fi ) , ri ) , zatem, na podstawie (5.16a), B (x (fi ) , ri ) wi ( E \ B (x (fi ) , ri )) , i = 1,..., N. Ponadto, B (x (fi ) , ri ) wi ( B (x (fi ) , ri )) . Wobec tego B (x (fi ) , ri ) wi ( E ) , i = 1,..., N, a zatem E W ( E ) i stąd E A . Gdy IFS składa się jedynie z dwóch odwzorowań, promienie ri, i =1, 2, mogą być obliczone algebraicznie. Rozwiązaniem pary równań (5.16a) jest wówczas Figury ograniczające – kule r1 Lip( w1 )(1 Lip( w2 )) d12 , 1 Lip( w1 ) Lip( w2 ) Lip( w2 )(1 Lip( w1 )) r2 d12 . 1 Lip( w1 ) Lip( w2 ) 129 (5.16b) W przypadku IFS złożonych z liczby odwzorowań większej niż dwa, rozwiązanie układu (5.16b) można wyznaczyć algorytmicznie. W cytowanej pracy [17] zaproponowano w tym celu dwa algorytmy. Algorytm iteracyjny wyznacza w m kolejnych iteracjach N ciągów {ri( k ) } , k = 1, 2,..., zgodnie z regułą ri( k 1) Lip( wi ) max(dij rj( k ) ) , j i i, j {1,..., N } , (5.17a) począwszy od wyrazów Lip( wi )(1 Lip( w j )) ri(1) max dij . j i 1 Lip( w ) Lip( w ) i j Zachodzi następujące twierdzenie: (5.17b) Twierdzenie 5.5. Dla każdego i {1,..., N } , ciąg {ri( k ) } zbiega do wartości ri określonej zależnością (5.16a) w co najwyżej N–2 iteracjach, tj. ri ri( N 1) . Dowód. Ponieważ każdy z N rozważanych ciągów jest monotonicznie rosnący oraz ograniczony odpowiednią wartością ri (tj. ri( k ) ri( k 1) ri ), zatem ciągi te są zbieżne. Co więcej, na podstawie zależności (5.16a) i (5.17a) granicą i-tego ciągu jest właśnie ri. Fakt dotyczący maksymalnej liczby iteracji wynika z analizy przedstawionej niżej, „bezpośredniej” wersji algorytmu. Dowód tego faktu został przedstawiony jako konsekwencja rozważań przeprowadzonych w dowodzie twierdzenia 5.6. Podstawą drugiego algorytmu, określanego w cytowanej pracy [17] jako algorytm bezpośredni1, jest odpowiednie przeskalowanie odległości dij względem współczynników zwężania i następnie wykorzystanie tych wartości do utworzenia nowego porządku („przeindeksowania” odwzorowań) w układzie IFS. Niech (1 Lip( wi ))(1 Lip( w j )) (5.18) Dij dij . 1 Lip( wi ) Lip( w j ) Nie należy mylić z kategorią „algorytmów bezpośrednich” wymienioną we wstępie niniejszego rozdziału. 1 130 Figury ograniczające – kule Nowe uporządkowanie odwzorowań wi w układzie IFS określone jest przez monotonicznie malejącą sekwencję maksimów przeskalowanych odległości Dik jako i k max Dik max D jl , i, j 1,..., N . (5.19a) k 1,..., N l 1,..., N Następnie, względem tak określonego porządku, wyznaczanych jest N wartości Ri, i 1,..., N . Dla i = 1, 2, Ri obliczane są zgodnie z prawymi stronami równości (5.16b), dla pozostałych zaś wartości i, Ri obliczane są kolejno na podstawie uprzednio obliczonych wartości Rj o mniejszych indeksach, jako: Ri Lip( wi ) max(dij R j ) , j i i 3,..., N . (5.19b) Twierdzenie 5.6. Wartości Ri wyznaczone przez algorytm bezpośredni są równe wartościom ri określonym równaniami (5.16a) dla układu IFS uporządkowanego zgodnie z porządkiem (5.19a). Dowód. Przed przystąpieniem do dowodu zauważmy, że w przypadku szczególnym, w którym wszystkie wartości Dij , i j , są równe, algorytm bezpośredni wyznaczy wartości Ri ri bez względu na kolejność ich określania. W przypadku przeciwnym, dla pewnych wartości i, promienie ri będą większe od ich oszacowań ri(1) danych zależnością (5.17b). Stąd, na podstawie zależności (5.16a), w ogólności Lip( wi ) i, j 1,..., N . (5.20) ri Dij , 1 Lip( wi ) Przejdźmy teraz do właściwego dowodu. Ponieważ dwa pierwsze promienie, R1 i R2 , wyznaczane są przy użyciu zależności (5.16b), zatem spełniają równania (5.16a) dla i, j = 1, 2. Do wykazania prawdziwości twierdzenia wystarczy zatem pokazać, że dla dowolnego m = 3, ..., N i każdego i m , Ri Lip( wi )(dim Rm ) . Stąd, na podstawie (5.19b), otrzymujemy tezę twierdzenia. Załóżmy dla dowodu indukcyjnego, że pierwsze m 1 promieni Ri spełnia równania (5.16a), a zatem i równanie (5.20), dla i, j 1,..., m 1 . Niech k będzie wartością indeksu j we wzorze (5.19b), dla którego osiągane jest maksimum po prawej stronie równości dla promienia Rm . Wtedy, na podstawie (5.20) oraz porządku (5.19a), Rk Lip( wk ) Dkm 1 Lip( wk ) i stąd Rk Lip( wk )((1 Lip( wm ))d km Lip( wm ) Rk ) Lip( wk )(d km Rm ) . Figury ograniczające – kule Podobnie, dla i k , i m , Lip( wi ) Lip( wi )(1 Lip( wm )) Ri Dim dim , 1 Lip( wi ) 1 Lip( wm ) 131 (5.21) bowiem Lip( wi ) 1 . Ponadto, z założenia indukcyjnego, Ri Lip( wi )(dik Rk ) , zatem nierówność (5.21) możemy przekształcić do postaci: Ri Lip( wi )((1 Lip( wm ))dim Lip( wm )(dik Rk )) Lip( wi )(d m Lip( wm )(d km Rk )) Lip( wi )(dim Rm ), co kończy dowód niniejszego twierdzenia. Zauważmy również, że na podstawie powyższych rozważań, algorytm iteracyjny wyznaczy przynajmniej dwa promienie określone zależnością (5.16a) w kroku początkowym oraz znajdzie przynajmniej jeden taki promień w każdym kroku iteracji. Wobec tego, algorytm iteracyjny wyznacza rozwiązanie w co najwyżej N 2 iteracjach, tak jak to wyrażono w tezie twierdzenia 5.5. Rys. 5.5. Koperty wyznaczone dla przykładowych atraktorów IFS na R2 132 Figury ograniczające – kule Podstawową wadą omawianego podejścia jest to, że rozmiary wynikowego zbioru E w ogólnym przypadku znacznie przekraczają rzeczywiste rozmiary atraktora. W szczególności sytuacja taka ma miejsce w przypadku, gdy jeden lub więcej punktów stałych odwzorowań IFS umiejscowiony jest na (lub w pobliżu) brzegu otoczki wypukłej atraktora. Na rysunku 5.5 zaprezentowano koperty wyznaczone dla przykładowych atraktorów IFS na R 2 . 5.6. PODEJŚCIE ADAPTACYJNE W odróżnieniu od dotychczas przedstawionych podejść, metoda zaproponowana w pracy (Martyn [81]) dokonuje obliczeń związanych z wyznaczeniem kuli zawierającej atraktor nie na podstawie samego układu IFS, ale skończonego (zwykle dużego) zbioru punktów należących atraktora. Metoda ta należy zatem do wymienionej w punkcie 5.1 kategorii algorytmów bezpośrednich. Opisywana metoda opiera się na ideach szacowania najmniejszej kuli zawierającej skończony zbiór punktów, które zostały uprzednio przedstawione w pracach (Ritter [129], Wu [156]). Do generowania skończonego zbioru punktów atraktora, na podstawie którego wyznaczana jest kula ograniczająca, wykorzystywany jest jeden z algorytmów aproksymacji atraktora opisanych w rozdz. 3. Niech dany będzie IFS {w1,..., wN} na przestrzeni zupełnej (X, dE), gdzie X R n lub X jest zwartym i wypukłym podzbiorem R n . Algorytm adaptacyjny składa się z dwóch etapów: etapu inicjującego układ IFS oraz etapu, w którym dokonywane są obliczenia kuli. Dla jasności wywodu rozpoczniemy od opisania etapu wyznaczania kuli, po czym zajmiemy się poprzedzającym go etapem inicjującym. Etap, w którym dokonuje się wyznaczenia kuli ograniczającej, jest adaptacją podejścia, które zaproponowano w (Ritter [129]) dla ogólnych skończonych zbiorów punktów w przestrzeni R n . W oryginalnej implementacji omawianej adaptacji, która została przedstawiona w (Martyn [81]), algorytm opiera się na algorytmie gry w chaos. Obliczenia dokonywane są podczas generowania skończonego zbioM ru {ai }i 1 punktów atraktora (tj. bez potrzeby przechowywania tego zbioru), gdzie a1 jest punktem stałym dowolnego odwzorowania IFS, zaś M jest na tyle dużą liczM bą, aby {ai }i 1 aproksymował atraktor z wystarczającą dokładnością. (W zastosowaniach w grafice komputerowej zwykle wystarcza w tym celu liczba M rzędu 105 (Martyn [81])). W przypadku afinicznych IFS, prawdopodobieństwa skojarzone z odwzorowaniami IFS określane są zgodnie z regułą (3.33); w przypadku przeciwnym dla prawdopodobieństw przyjmowane są równe wartości. M Na wstępie, w trakcie iteracyjnego generowania zbioru {ai }i 1 , spośród punk(k ) (k ) tów tego zbioru wyznaczanych jest n par punktów (a min , a max ) o odpowiednio najmniejszej i największej k-tej współrzędnej. Następnie spośród tych par wyk) k) bierana jest para (a min , a max ) , dla której d E (a min , a max ) max d E (a (min , a (max ) , i na k 1,..., n Figury ograniczające – kule 133 jej podstawie wyznaczana jest kula B (c0 , r0 ) o środku i promieniu odpowiednio równych: c0 (a min a max ) / 2, r0 d E (a min , a max ) / 2. (5.22) Ostatni krok wyznaczania kuli ograniczającej polega na iteracyjnym dopasoM wywaniu kuli tak, aby zawierała wszystkie wyrazy zbioru {ai }i 1 . Dokonujemy tego, rozpoczynając od kuli B (c0 , r0 ) , poprzez ponowne generowanie punktów ciągu przy jednoczesnym stosowaniu następującej reguły: jeśli punkt a i nie należy do bieżącej kuli B (c m , rm ) , to za bieżącą kulę przyjmowana jest najmniejsza kula B (c m 1 , rm 1 ) zawierająca kulę B (c m , rm ) i ten punkt, czyli kula o środku i promieniu określonych odpowiednio jako (rys. 5.6): 1 c m 1 ai (c m ai )(1 rm / d E (c m , ai )), 2 1 rm 1 (d E (c m , ai ) rm ). 2 (5.23) Rys. 5.6. Schemat progresywnego powiększania kuli w podejściu adaptacyjnym wyznaczania kuli ograniczającej atraktor IFS (wzory (5.23)) Jak trafnie zauważono w pracy (Wu [156]), jakość wyniku uzyskiwanego przy wykorzystaniu podejścia przedstawionego w (Ritter [129]) silnie zależy od kierunków, w których rozmiary zbioru są największe. Omawiany algorytm daje najlepsze wyniki w przypadku zbiorów, dla których kierunek maksymalnego wychylenia punktów jest równoległy do jednej z osi układu współrzędnych. W takich okolicznościach bowiem początkowa kula B (c0 , r0 ) jest określona przez punkty wyznaczające średnicę zbioru. Stąd stanowi ona najlepsze przybliżenie kuli minimalnej, które można uzyskać w pierwszym kroku opisanego etapu i, co za tym idzie, przyrost długości promienia podczas iteracyjnego dopasowywania kuli jest 134 Figury ograniczające – kule minimalizowany. W szczególności, jeśli średnica najmniejszej kuli zawierającej zbiór punktów jest równa średnicy tego zbioru oraz istnieje dokładnie jedna para punktów wyznaczających tę średnicę, to początkowa kula B (c0 , r0 ) jest równa tej najmniejszej kuli. Naturalną konsekwencją powyższej obserwacji jest zastosowanie – przed przystąpieniem do etapu wyznaczania kuli – do rozważanego zbioru odpowiedniego obrotu. W celu określenia tego obrotu, w pracy (Wu [156]) zaproponowano podejście statystyczne zaczerpnięte z analizy głównych składowych (Manly [78]), oparte na macierzy kowariancji. Macierz kowariancji C(A) dowolnego skończonego zbioru A {ai } M punktów ai [ai(1) ,..., ai( n ) ]T w układzie współrzędnych o wersorach {v1 ,..., v n } jest nieujemnie określoną macierzą symetryczną (Jakubowski i Sztencel [60, s. 87]) rozmiaru n×n o postaci: gdzie cov(a (1) , a (1) ) cov(a (1) , a ( n ) ) C( A) , ( ) (1) ( ) ( ) n n n cov(a , a ) cov(a , a ) (5.24) cov(a ( k ) , a ( l ) ) E[(a ( k ) E (a ( k ) ))(a ( l ) E (a ( l ) ))] (5.25a) M a ( k ) (l ) i i a k , l 1,..., n , E (a ( k ) ) E (a ( l ) ), (5.25b) M jest kowariancją1 współrzędnych punktów względem k-tego i l-tego wersora, zaś i 1 M E (a ( m ) ) a i 1 (m) i M , m 1,..., n , (5.25c) oznacza moment pierwszego rzędu współrzędnych punktów względem m-tego wersora. Poszukiwany obrót reprezentowany jest ortonormalną macierzą [u1 ,..., u n ]T , gdzie ui , i = 1,...,n, są wektorami własnymi macierzy kowariancji (5.24). Ponieważ C(A) jest macierzą symetryczną, wektory własne można wyznaczyć dowolną metodą rozwiązywania pełnego symetrycznego zadania własnego (Press i inni [121]). Ze względu na zwykle stosunkowo niewielki rozmiar tej macierzy2 preferowana jest tutaj metoda Jacobiego (Kiełbasiński i Schwetlick [66, s. 384 i n.]). 1 Dla k = m, cov(a ( k ) , a ( k ) ) D 2 (a ( k ) ) , czyli jest wariancją współrzędnych punktów względem k-tego wersora. W znanych zastosowaniach IFS w grafice komputerowej wymiar przestrzeni rzeczywistej zwykle nie przekracza liczby 10. 2 Figury ograniczające – kule 135 W przypadku ogólnym, w którym IFS składa się ze zwężających odwzorowań dowolnego rodzaju, macierz kowariancji może być wyznaczona na podstaM wie współrzędnych punktów ciągu {ai }i 1 zgodnie ze wzorami (5.25b) i (5.25c) podczas generowania tego ciągu przy użyciu algorytmu probabilistycznego. Na podstawie twierdzenia 3.7, rozkład punktów generowanych przez algorytm probabilistyczny aproksymacji atraktora określony jest przez miarę niezmienniczą generowaną przez IFS z prawdopodobieństwami. Zatem dla afinicznych IFS M i ciągu {ai }i 1 przy M , macierz kowariancji może być wyznaczona analitycznie na podstawie samego IFSP z prawdopodobieństwami (3.33), poprzez wykorzystanie wzorów (2.24) i (2.25) na momenty zwykłe pierwszego i drugiego rzędu miary niezmienniczej. Elementy macierzy kowariancji obliczane są jako cov(a ( k ) , a ( l ) ) mk ,l mk ml . Środek kuli otrzymanej opisaną metodą jest na ogół dobrym przybliżeniem środka optymalnego (5.2). Wadą tego podejścia jest dokonywanie obliczeń bezpośrednio na podstawie skończonej liczby punktów generowanych przez algorytm probabilistyczny aproksymacji atraktora. W rezultacie kula wynikowa jest zwykle jedynie pewnym przybliżeniem kuli zawierającej wszystkie punkty atraktora. Problem ten można rozwiązać, przynajmniej w teorii, zwiększając długość promienia wynikowej kuli o pewną wartość , wynikającą z dokładności aproksymacji generowanej przez algorytm probabilistyczny dla danego zbioru prawdopodobieństw i zadanej liczby punktów, przy zastosowaniu techniki opisanej w punkcie 3.3.3. Wyznaczenie pożądanej wartości (i to jedynie z pewnym prawdopodobieństwem) wymagałoby jednakże znacznie większego nakładu obliczeń, aniżeli wyznaczenie samej kuli. Powyższy problem można łatwo ominąć, dokonując prostej modyfikacji oryginalnego podejścia (Martyn [81]), polegającej na zastosowaniu – w miejsce algorytmu probabilistycznego aproksymacji atraktora – deterministycznego algorytmu adaptacyjnych odcięć omówionego w punkcie 3.2. W tym celu, najpierw wyznacza się dowolną kulę B (c 1 , r1 ) zawierającą atraktor przy użyciu jednej z metod opisanych we wprowadzeniu do niniejszego rozdziału. Punkty, na podstawie których dokonywane są obliczenia kuli wynikowej, generowane są następnie za pomocą algorytmu adaptacyjnych odcięć jako obrazy środka c 1 przy złożeniach odwzorowań IFS ze zbioru F dla średnicy diam(A ) szacowanej z góry przy użyciu średnicy kuli B (c 1 , r1 ) (czyli wartości 2r1 ). Przy powyższych założeniach, dla dane1 go złożenia f F , podzbiór f ( A ) atraktora zawiera się w kuli B f (c 1 ), . 2 Stąd, na podstawie (3.10), 1 A B f (c 1 ), : f F . 2 (5.26) 136 Figury ograniczające – kule Ponieważ kula B (c m , rm ) będąca wynikiem działania algorytmu adaptacyjnego zawiera zbiór { f (c 1 ) : f F } , zatem, na podstawie formuły (5.26) i nierówności trójkąta, poszukiwaną wartością , o którą należy zwiększyć promień rm, 1 tak aby kula B (c m , rm ) zawierała atraktor, jest wartość . 2 Przedstawiona metoda daje na ogół bardzo dobre rezultaty, które są często bliskie optymalnego rozwiązania. Na rysunku 5.7 przedstawiono koła początkowe oraz wynikowe koła ograniczające przykładowe atraktory IFS na R 2 wyznaczone przy użyciu opisanej metody. Rys. 5.7. Rezultaty zastosowania adaptacyjnej metody wyznaczania kół ograniczających przykładowe atraktory IFS na przestrzeni R2. Mniejsze kółka to koła początkowe (wzory (5.22)), zaś większe – koła wynikowe (w przypadku, gdy jedno z kół nie jest widoczne, oba koła się pokrywają) Figury ograniczające – kule 137 5.7. PUNKTY ROZPINAJĄCE Podstawowym problemem w bezpośrednim zastosowaniu znanych z geometrii obliczeniowej algorytmów wyznaczania najmniejszej kuli ograniczającej (Preparata i Shamos [120], Megiddo [98], Welz [152]) do zbioru punktów aproksymującego atraktor jest to, że w praktycznych zastosowaniach zbiory te składają się zwykle z ogromnej liczby punktów (rzędu miliona i więcej) nawet przy względnie niewielkiej dokładności aproksymacji. Ponieważ algorytmy te wymagają stałego dostępu do pełnego zbioru punktów1, należałoby w takich okolicznościach przechowywać w pamięci całą aproksymację atraktora. Co więcej, najszybszy znany algorytm wyznaczania najmniejszej kuli ograniczającej zbiór M punktów w przestrzeni R n (tj. zrandomizowany algorytm Welzla (Welzl [152])) działa w czasie oczekiwanym O( !M ) , gdzie n 1 (Seidel [135]). W konsekwencji obliczanie rozważanej kuli przy użyciu dowolnego algorytmu geometrii obliczeniowej zastosowanego do punktowej aproksymacji atraktora pociągałoby za sobą w praktyce nie tylko ogromne wymogi pamięciowe, ale również byłoby mało wydajne pod względem czasu obliczeń. Podejście zaproponowane w artykule (Martyn [93]) ma na celu ominięcie powyższej trudności w przypadku afinicznych IFS na R 2 . Algorytm ten można również łatwo uogólnić do wyznaczania najmniejszych kul zawierających atraktory IFS na przestrzeni R 3 . W zarysie, główną ideą leżącą u podstaw omawianego algorytmu jest wyznaczenie, na podstawie aproksymacji atraktora, pewnego niewielkiego zbioru punktów charakterystycznych określanych jako punkty rozpinające (ang. spanning points). Następnie, obliczenie koła zawierającego atraktor dokonywane jest przy użyciu algorytmu Welzla zastosowanego do tych punktów. W przypadku IFS na przestrzeni R 2 , algorytm punktów rozpinających wykorzystuje pokrycie atraktora domkniętymi prostokątami AAB (ang. Axis-Aligned Boxes), tj. prostokątami o bokach równoległych do osi kartezjańskiego układu współrzędnych. Prostokąty AAB określone są przez punkt środkowy c R 2 i wektor r [rx , ry ]T R 2 , rx , ry 0 , jako AAB (c, r ) { p R 2 :| x(p c) | rx i | y (p c) | ry } , gdzie x( . ) i y( . ) oznaczają odpowiednio współrzędną x i współrzędną y danego wektora. Wobec tego, długość boków prostokąta AAB (c, r ) wynosi odpowiednio 2rx i 2ry, zaś jego średnica w metryce maksimum jest równa Algorytmy te klasyfikowane są w geometrii obliczeniowej jako algorytmy off-line, w odróżnieniu od algorytmów on-line, to jest takich, których działanie polega na progresywnym poprawianiu bieżącego wyniku na podstawie nowych punktów pojawiających się na wejściu (Preparata i Shamos [120]). 1 138 Figury ograniczające – kule diam ( AAB (c, r )) 2 max (rx , ry ) . -pokryciem Cover ( A , ) atraktora A R 2 prostokątami AAB będzie na- zywana każda skończona rodzina { AAB (ci , ri )}iI , dla której AAB(c , r ) A i i iI oraz diam ( AAB (ci , ri )) AAB (ci , ri ) A , dla każdego i I . Mając dane pokrycie Cover ( A , ) , oznaczmy przez xmin i xmax minimalną i, odpowiednio, maksymalną współrzędną x punktów należących do tego pokrycia: xmin min{x(ci ri ) : AAB (ci , ri ) Cover ( A , )}, xmax max{x(ci ri ) : AAB (ci , ri ) Cover ( A , )}. Niech teraz K N będzie liczbą ze zbioru 1,..., xmax xmin / determinującą wybraną dopuszczalną liczbę par punktów rozpinających, na podstawie których dokonywane będą obliczenia koła zawierającego atraktor A . Przy pok) k) wyższych oznaczeniach, k-ta para punktów ekstremalnych p (min , p (max R R , k {0,..., K } , definiowana jest jako: k) (k ) T p (min [ xmin k , ymin ] , (k ) T k) p (max [ xmax k , ymax ] , (5.27a) gdzie1 x(c r ) xmin x(c r ) xmin (k ) inf y (ci ri ) : i i k lub i i k , ymin iI x(c r ) xmin x(c r ) xmin (k ) sup y (ci ri ) : i i k lub i i k , ymax iI (5.27b) xmax xmin K ( ), (5.27c) zaś ci , ri R 2 takie, że AAB (ci , ri ) Cover ( A , ) ; k-ty punkt ekstremalny będzie miał współrzędną y równą , jeśli zbiór współrzędnych y wierzchołków prostokątów pokrycia Cover ( A , ) , określony w jednym ze wzorów (5.27), będzie zbiorem pustym. 1 Zgodnie z powszechnie przyjmowaną konwencją inf i sup . Figury ograniczające – kule 139 Zbiór ( , ) punktów rozpinających skojarzony z atraktorem A określamy poprzez odrzucenie punktów ekstremalnych o współrzędnej y równej i formalnie definiujemy jako k) k) k) k) ( , ) {p (min : y (p (min ) }kK 0 {p (max : y (p (max ) }kK 0 . (5.28) Ideę punktów rozpinających dla przykładowej kolekcji prostokątów AAB przedstawiono na rys. 5.8. Rys. 5.8. Punkty rozpinające wyznaczone dla przykładowej kolekcji prostokątów AAB (wzory (5.27) i (5.28)). Prostokąty generujące punkty ekstremalne wyróżniono kreską pogrubioną Zachodzi następujące twierdzenie: Twierdzenie 5.7. Niech B (c , r ) będzie najmniejszym kołem zawierającym zbiór punktów rozpinających ( , ) skojarzony z atraktorem A R 2 . Wtedy oraz B (c , r ) A (5.29a) rmin r rmin 2 ( ) 2 , (5.29b) gdzie rmin jest promieniem najmniejszego koła zawierającego A . Dowód. W pierwszej kolejności pokażemy, że B (c , r ) A Niech a będzie dowolnym punktem atraktora A . Wtedy istnieje prostokąt AAB należący do pokrycia Cover ( A , ) taki, że a AAB . Zatem, z definicji punktów ekstremalnych (5.27) kwalifikowanych jako punkty rozpinające (5.28): oraz xmin k x(a) xmin (k 1) (k ) ( k 1) (k ) ( k 1) max( ymin , ymin ) y (a) min( ymax , ymax ) 140 Figury ograniczające – kule dla pewnego k {0,..., K } . Stąd a jest jednym z punktów czworokąta, którego k) k) k 1) k 1) wierzchołkami są punkty rozpinające p (min , p (max , p (min , p (max (rys. 5.9a). Ponieważ koło B (c , r ) zawiera wszystkie punkty rozpinające, zatem zawiera wspomniany czworokąt, a zatem i rozważany punkt a. Ponieważ a był dowolnym punktem atraktora, więc B (c , r ) A . Rys. 5.9. Ilustracja do dowodu twierdzenia 5.7 Następnie pokażemy, że zachodzą nierówności (5.29b). Nierówność po lewej stronie jest spełniona bezpośrednio na podstawie faktu wykazanego powyżej. Udowodnimy drugą z nierówności. B (c , r ) jest najmniejszym kołem zawierającym zbiór ( , ) oraz istnieje dokładnie jedno najmniejsze koło zawierające ten zbiór. Zatem do wykazania drugiej z nierówności wystarczy pokazać, że koło B (c min , rmin 2 ( ) 2 ) , gdzie cmin i rmin są odpowiednio środkiem i promieniem najmniejszego koła zawierającego A , zawiera zbiór ( , ) . Niech ( , ) \ B (c min , rmin ) . Wtedy ( , ) B (c min , rmin ) i na podstawie pierwszej nierówności B (c , r ) B (c min , rmin ) , a zatem r rmin 2 ( ) 2 . Niech teraz ( , ) \ B (c min , rmin ) oraz niech p ( , ) \ B (c min , rmin ) . Wtedy d (p, B (c min , rmin )) d E (p, a), a A , gdzie wartość po lewej stronie nierówności oznacza odległość punktu od zbioru indukowaną przez metrykę euklidesową. Z definicji punktów rozpinających (zob. rys. 5.9b): p ( , ), a A , d E (p, a) 2 ( ) 2 . Na tej podstawie i stąd d (p, B (c min , rmin )) 2 ( ) 2 d E (p, c min ) rmin d (p, B (c min , rmin )) rmin 2 ( ) 2 , a zatem p B (c min , rmin 2 ( ) 2 ) , co kończy dowód. Figury ograniczające – kule 141 Wobec tego, zamiast aproksymować najmniejsze koło ograniczające bezpośrednio na podstawie ogromnej liczby punktów tworzących aproksymację atraktora, można najpierw wyznaczyć zbiór punktów rozpinających i następnie obliczyć poszukiwane koło, stosując algorytm Welzla do tego zbioru. Na podstawie równości (5.28) i (5.27c), | ( , ) | 2( K 1) , gdzie K ( xmax xmin ) / , zatem liczba punktów rozpinających jest znikoma w stosunku do całkowitej liczby punktów zbioru aproksymującego atraktor z zadaną dokładnością. Ponadto, ponieważ , na podstawie (5.29b), błąd niesiony przez aproksymację najmniejszego koła zawierającego atraktor przez koło B (c , r ) zawiera się w granicach 0 r rmin 5 . W rezultacie liczba punktów rozpinających potrzebnych do obliczenia najmniejszego koła ograniczającego na przykład z dokładnością do 0,01 rozmiaru atraktora w poziomie jest rzędu 100. Rys. 5.10. Najmniejsze koła ograniczające dla przykładowych atraktorów IFS na R2 wyznaczone przy wykorzystaniu punktów rozpinających 142 Figury ograniczające – kule Pokrycie Cover ( A , ) i sam zbiór ( , ) można wydajnie wyznaczyć przy wykorzystaniu adaptacji algorytmu adaptacyjnych odcięć i dwuwymiarowej wersji metody obliczania prostopadłościanów AAB ograniczających podzbiory atraktora, która została opisana w punkcie 6.2.2 następnego rozdziału. Przykładowe rezultaty zastosowania omówionej metody do wyznaczania najmniejszych kół zawierających atraktory IFS na przestrzeni R 2 przedstawiono na rys. 5.10. Jak wspomniano na wstępie, metodę tę można uogólnić do wyznaczania najmniejszych kul zawierających atraktory afinicznych IFS na przestrzeni R 3 . W tym celu, w pierwszym kroku algorytmu wyznaczane są minimalne i maksymalne xmin i xmax oraz ymin i ymax punktów należących do pokrycia atraktora prostopadłościanami AAB (zob. punkt 6.2.2). Następnie prostokąt [ xmin , xmax ] [ymin , ymax ] dzielony jest na równomierną siatkę K2 kwadratów. Punkty rozpinające wyznaczane są na podstawie punktów ekstremalnych, które są obliczane wzdłuż trzeciej osi układu współrzędnych, w obszarach kwadratów siatki. Podobnie jak w przypadku dwuwymiarowym, kula ograniczająca atraktor IFS wyznaczana jest na podstawie zbioru punktów rozpinających za pomocą algorytmu Welzla. Na rysunku 5.11 zaprezentowano przykładowe rezultaty zastosowania tego algorytmu do wyznaczania najmniejszych kul ograniczających atraktory afinicznych IFS na przestrzeni R 3 . Rys. 5.11. Przykładowe rezultaty zastosowania algorytmu punktów rozpinających do obliczania najmniejszych kul ograniczających atraktory afinicznych IFS na R3 Figury ograniczające – kule 143 5.8. PORÓWNANIE ALGORYTMÓW W celu porównania jakości wyników otrzymywanych przy użyciu algorytmów omówionych w poprzednich punktach, na rys. 5.12 przedstawiono wykres obrazujący stosunek średnic zbiorów ograniczających, otrzymanych przy użyciu tych algorytmów, do średnicy najmniejszego koła ograniczającego otrzymanego przy wykorzystaniu metody punktów rozpinających. Zaprezentowane wyniki otrzymano dla zbioru dziewięciu atraktorów afinicznych IFS na R 2 , które posłużyły jako przykłady na rysunkach przedstawionych w niniejszym rozdziale. Rys. 5.12. Wykres obrazujący ilorazy średnic zbiorów ograniczających otrzymanych przy użyciu algorytmów opisanych w niniejszym rozdziale do średnicy minimalnego koła ograniczające uzyskanego metodą punktów rozpinających. Prezentowane wyniki dotyczą atraktorów IFS na R2, które zostały wykorzystane na poprzednich rysunkach rozdziału. Zastosowane w legendzie skróty oznaczają odpowiednio: Radius estm 1 – szacowanie promienia kuli przy użyciu wzoru (5.3), Radius estm 2 – szacowanie promienia kuli przy użyciu wzoru (5.4), Iterative – algorytm iteracyjny, Center optm – algorytm optymalizacji środka, Balancing – algorytm wyważania atraktora, Envelope – algorytm kopertowy, Adaptive – algorytm adaptacyjny Zaletą metod polegających na wyznaczaniu promienia kuli ograniczającej na podstawie wzorów (5.3) i (5.4) jest przede wszystkim prostota ich implementacji. Co więcej, przy założeniu, że wymiar przestrzeni jest ustalony, algorytmy te charakteryzują się niewielkim czasem obliczeń rzędu O(N), gdzie N jest liczbą 144 Figury ograniczające – kule odwzorowań wchodzących w skład układu IFS. Ponadto, algorytmy te są ogólne w tym sensie, że umożliwiają, bez żadnych modyfikacji, wyznaczanie kul ograniczających atraktory układów IFS składających się ze zwężających odwzorowań dowolnego typu (zarówno afinicznych, jak i nieliniowych). Niestety, jak widać na przedstawionym wykresie (dane Radius estm 1 i Radius estm 2), średnice kul wyznaczonych przy wykorzystaniu tych metod na ogół znacznie odbiegają od średnicy minimalnej kuli zawierającej atraktor. Jak widać na wykresie, pewną alternatywą dla tych metod jest algorytm „kopertowy” opisany w punkcie 5.5 (dane Envelope). Algorytm ten charakteryzuje się tym samym czasem obliczeń (twierdzenie 5.5), przy czym wyznaczane przez niego zbiory ograniczające (tj. koperty) mają na ogół mniejszą średnicę, niż kule otrzymywane przy wykorzystaniu tych metod. Niestety, pomimo, że koperty stanowią bardziej złożoną strukturę geometryczną niż pojedyncze kule, średnica tych zbiorów często znacznie odbiega od średnicy najmniejszej kuli zawierającej atraktor. Na ogół znacznie lepsze rezultaty można uzyskać przy wykorzystaniu algorytmu iteracyjnego (dane Iterative) opisanego w punkcie 5.2, przy czym dla afinicznych IFS i ustalonego wymiaru przestrzeni, algorytm ten charakteryzuje się tą samą złożonością obliczeniową, co algorytmy poprzednie. Pomimo to, jakość wyników uzyskiwanych przy użyciu tego algorytmu na ogół również stosunkowo mocno odbiega od wyniku optymalnego. Dlatego z punktu widzenia praktycznego wykorzystania kul ograniczających w różnych zagadnieniach grafiki komputerowej, zastosowanie rozważanego algorytmu jest często niewskazane. Poprawę jakości wyników dostarczanych przez algorytm iteracyjny otrzymuje się, poszukując „lepszego” środka kuli ograniczającej atraktor. Można tego dokonać, wykorzystując algorytm optymalizacji środka opisany w punkcie 5.3. Jak widać na wykresie (dane Center optm), wyniki otrzymywane przy użyciu tej metody są na ogół dobre (kule ograniczające często są bliskie kuli optymalnej). Niemniej, w celu poszukiwania „lepszego” środka, metoda ta angażuje algorytm optymalizacji numerycznej, co w konsekwencji czyni ją znacznie mniej wydajną od algorytmów omówionych do tej pory w niniejszym podpunkcie (czas obliczeń zależy od zastosowanego algorytmu optymalizacji). Z kolei, pewnym wariantem metody optymalizacji środka jest – zaproponowana przez autora w artykule (Martyn [86]) – metoda wyważania atraktora (punkt 5.4). Podobnie jak w przypadku tej pierwszej metody, „wyważanie” atraktora również opiera się na idei wyznaczania „lepszego” środka kuli ograniczającej, angażując w tym celu algorytm optymalizacji numerycznej. Jednakże optymalizacja dokonywana jest w tym przypadku w dziedzinie prawdopodobieństw przypisywanych odwzorowaniom układu IFS. Eksperymenty numeryczne pokazują, że metoda ta na ogół zbiega do rozwiązania w kilku iteracjach, co czyni ją zwykle bardziej wydajną od metody optymalizacji środka. Co więcej, algorytm wyważania atraktora stosuje lepsze oszacowanie promienia kuli ogranicza- Figury ograniczające – wielokąty i wielościany wypukłe 145 jącej niż metoda optymalizacji środka. W konsekwencji, wyniki otrzymywane przy użyciu tej metody są często nieco lepsze od wyników dostarczanych przez algorytm optymalizacji środka (dane Balancing). Niestety, główną wadą tej metody jest brak, jak dotychczas, jakichkolwiek uzasadnień teoretycznych jej działania, które dawałyby gwarancję jakości wyników uzyskiwanych za jej pomocą. W odróżnieniu od dotychczas porównanych algorytmów, które dokonują obliczeń na podstawie odwzorowań układu IFS (klasa algorytmów pośrednich), zaproponowany przez autora (Martyn [81]) algorytm adaptacyjny (punkt 5.6) wyznacza kule ograniczające atraktory IFS na podstawie skończonej liczby punktów aproksymujących atraktor. W oryginalnej implementacji jest to algorytm iteracyjny, który do wyznaczenia kuli ograniczającej atraktor potrzebuje zwykle więcej czasu niż algorytmy pośrednie (liczba iteracji jest proporcjonalna do liczby punktów zbioru aproksymacyjnego). Niemniej, jest on stosunkowo prosty w implementacji, zaś rozmiary kul ograniczających otrzymywanych przy jego użyciu na ogół niewiele odbiegają od rozmiarów kul minimalnych (dana Adaptive). Co więcej, podobnie jak metody poprzednie, algorytm ten może być zastosowany w przypadku IFS zawierających zwężające odwzorowania dowolnego typu. Zdecydowanie najlepszym algorytmem pod względem jakości otrzymywanych wyników jest przedstawiony przez autora (Martyn [93]) algorytm wykorzystujący punkty rozpinające (punkt 5.7). Algorytm ten pozwala na obliczanie, z dowolnie zadaną dokładnością, minimalnych kul ograniczających atraktory IFS w przestrzeniach R 2 i R 3 , przy czym w praktyce jego wydajność jest na ogół znacznie lepsza od wydajności algorytmu adaptacyjnego. Niestety, jak dotychczas, zastosowanie tego algorytmu ogranicza się do układów IFS składających się wyłącznie z afinicznych odwzorowań zwężających. 6. FIGURY OGRANICZAJĄCE – WIELOKĄTY I WIELOŚCIANY WYPUKŁE 6.1. WPROWADZENIE Wykorzystanie wielokątów i wielościanów wypukłych jako figur ograniczających w grafice komputerowej pokrywa się z zastosowaniami kul (w metryce euklidesowej), wymienionymi na wstępie poprzedniego rozdziału. Dodatkową zaletą wykorzystania w tym celu wspomnianych figur jest to, że na ogół lepiej one aproksymują powierzchnię otaczanego obiektu względem metryki Hausdorffa (czyli przylegają „ściślej” do danego obiektu) niż kule. Należy zauważyć, że wymieniona cecha jest jednym z dwóch podstawowych kryteriów oceny użyteczności da- 146 Figury ograniczające – wielokąty i wielościany wypukłe nej geometrii jako zbioru otaczającego; drugim jest „złożoność” tej geometrii rozpatrywana jako złożoność obliczeniowa i pamięciowa danego algorytmu opartego na figurach ograniczających. Często wybór odpowiedniej geometrii stanowi kompromis między obydwiema wymienionymi cechami (Akenine-Möller i Haines [1], Lengyel [72], Eberly [28]). Na przykład w metodzie śledzenia promieni, w ogólnym przypadku, im więcej ścian ma wielościan otaczający, tym lepiej przybliża ograniczany obiekt, jednakże kosztem większego nakładu obliczeń wyznaczania przecięcia promienia z tym wielościanem (Glassner [43]). Najczęściej wykorzystywanymi w grafice komputerowej wielokątami i wielościanami ograniczającymi są figury AAB, czyli, w ogólnym przypadku, prostopadłościany w przestrzeni R n o krawędziach równoległych do osi kartezjańskiego układu współrzędnych. Dodatkowo, obok ogólnych zastosowań figur ograniczających, w przypadku IFS figury AAB wykorzystywane są w algorytmie punktów rozpinających omówionym w poprzednim rozdziale (punkt 5.7), a także w zagadnieniu wyznaczania przecięcia półprostej z atraktorem (rozdz. 7). Niemalże równie często jak figury AAB, jako figury ograniczające w grafice komputerowej wykorzystywane są prostopadłościany skierowane. Dzięki dodatkowym stopniom swobody określonym przez transformację obrotu, prostopadłościany te zwykle lepiej ograniczają dany zbiór aniżeli figury AAB. Algorytmy obliczania obydwu rodzajów prostopadłościanów ograniczających atraktory IFS opisano w punkcie 6.2. Punkt 6.3 poświęcono zagadnieniu ograniczania atraktorów IFS przy użyciu wypukłych wielokątów i wielościanów. Obok wymienionych, standardowych zastosowań w grafice komputerowej, w przypadku IFS figury te wykorzystywane są w jednym z algorytmów estymacji wektorów normalnych w punktach atraktora, który został opisany w rozdz. 8. Podobnie jak w przypadku problemu wyznaczania kul ograniczających, w algorytmach wyznaczania wielokątów i wielościanów ograniczających można wyróżnić kategorię algorytmów pośrednich, które dokonują obliczeń na podstawie specyfikacji IFS, oraz kategorię algorytmów bezpośrednich, czyli obliczających figurę ograniczającą na podstawie skończonego zbioru punktów aproksymującego atraktor lub skończonego pokrycia atraktora zbiorami o zadanej geometrii. 6.2. PROSTOPADŁOŚCIANY W dwóch kolejnych podpunktach omówiono podejścia pośrednie i bezpośrednie do wyznaczania prostopadłościanów ograniczających atraktory IFS. W każdym z tych podpunktów, przegląd metod rozpoczęto od algorytmów obliczania prostopadłościanów AAB, by następnie zająć się przypadkiem ograniczających prostopadłościanów skierowanych. Metody obliczania tych ostatnich Figury ograniczające – wielokąty i wielościany wypukłe 147 opierają się bowiem na metodach wyznaczania prostopadłościanów AAB i polegają na sprowadzeniu rozważanego problemu do obliczania prostopadłościanu AAB w kartezjańskim układzie współrzędnych o osiach zgodnych z kierunkami, w których rozmiary atraktora są największe. Następnie dokonywane jest sprowadzenie wynikowego prostopadłościanu AAB do oryginalnego układu współrzędnych przy użyciu transformacji obrotu. Algorytmy wyznaczania skierowanych prostopadłościanów ograniczających polegają zatem na wprowadzaniu dodatkowego etapu, poprzedzającego obliczenia prostopadłościanu AAB, w którym wyznaczany jest obrót sprowadzający układ IFS (i co za tym idzie, sam atraktor) do odpowiedniego układu współrzędnych. Analogicznie do prostokątów AAB zdefiniowanych w punkcie 5.7, prostopadłościany AAB w R n można zdefiniować jako AAB (c, r ) { p R n :| p ( i ) c ( i ) | r ( i ) , i 1,..., n } , (6.1) gdzie c [c ,..., c ] R jest punktem środkowym prostopadłościanu, zaś r [r (1) ,..., r ( n ) ]T R n , r ( i ) 0 , wektorem wyznaczającym rozmiary tego prostopadłościanu względem poszczególnych osi kartezjańskiego układu współrzędnych. W szczególności średnica takiego prostopadłościanu w metryce maksimum wynosi (1) (n) T n diam ( AAB (c, r )) 2 || r || . (6.2) 6.2.1. Algorytmy pośrednie Algorytmy pośrednie wyznaczania prostopadłościanu AAB zawierającego atraktor IFS oparte są na twierdzeniu 2.19 lub lemacie 2.23, gdzie rozpatrywaną metryką jest metryka maksimum. Należy bowiem zauważyć, że metryka ta indukuje kule o geometrii hipersześcianu AAB. Niemniej, warunkiem koniecznym do zastosowania wspomnianych twierdzeń w przypadku omawianego zagadnienia jest to, aby IFS był zwężający właśnie względem metryki maksimum. W przypadku IFS zwężających względem dowolnej metryki indukowanej przez normę na R n spełnienie tego warunku nie stanowi jednak problemu. Jak bowiem pokazano w podpunkcie 3.2.2, takie układy IFS zawsze można sprowadzić do wymaganej postaci, stosując technikę zastępowania oryginalnych odwzorowań ich odpowiednimi złożeniami. W przypadku odwzorowań afinicznych zwężających w metryce euklidesowej proces zastępowania odwzorowań ich złożeniami kontynuowany jest dopóty, dopóki normy maksimum (3.30) macierzy części liniowych wszystkich odwzorowań układu IFS są mniejsze od jedności. Natomiast w przypadku układów IFS zawierających odwzorowania nieliniowe zwężające w metryce euklidesowej, poszukiwany IFS otrzyma się, stosując wspomnianą technikę dopóki współczynniki zwężania wszystkich odwzorowań IFS względem metryki euklidesowej będą mniejsze od wartości 1 / n (na podstawie nierówności (3.31) wynikowy IFS będzie zwężający w metryce maksimum). 148 Figury ograniczające – wielokąty i wielościany wypukłe Wobec tego, bez utraty ogólności rozważań, w dalszej części niniejszego podpunktu założono, że atraktor A jest opisany przez IFS {w1 ,..., wN } na zupełnej przestrzeni metrycznej ( X , d ) , gdzie X R n lub X jest zwartym i wypukłym podzbiorem R n , zaś d oznacza metrykę maksimum. Podobnie jak w przypadku algorytmów pośrednich wyznaczania kul ograniczających w metryce euklidesowej opisanych w punkcie 5.1, metoda wyznaczania o prostopadłościanu AAB opierająca się na twierdzeniu 2.19 wyznacza hipersześcian AAB (c,[r ,..., r ]T ) , gdzie 1 max Lip( wi ) i 1,..., N r max d E (c, x (fi ) ) , (6.3) i 1 max Lip( wi ) 1,..., N i 1,..., N przy czym x oznacza punkt stały odwzorowania wi . W celu minimalizacji wartości r, środek c należy określić jako punkt minimalizujący wartość max d (c, x (fi ) ) , czyli środek (w ogólnym przypadku niekoniecznie unikatowy) i 1,..., N najmniejszego prostopadłościanu AAB zawierającego punkty stałe odwzorowań IFS. Przykładowe wyniki zastosowania tej metody do afinicznych IFS na przestrzeni R 2 przedstawiono na rys. 6.1 (kwadraty oznaczone kolorem czarnym). Wykorzystanie lematu 2.23 w omawianym zagadnieniu (Martyn [86]) odbywa się również w analogiczny sposób, jak w przypadku kul ograniczających w metryce euklidesowej, i polega na określeniu poszukiwanej figury AAB jako hipersześcianu AAB (c,[r ,..., r ]T ) , dla którego 1 r (6.4) max d (c, wi (c)) . 1 max Lip( wi ) i 1,..., N (i ) f i 1,..., N Środek c wygodnie określić tak, jak w poprzednio opisanej metodzie. Rezultaty tej metody przedstawiono na rys. 6.1 (kwadraty oznaczone kolorem zielonym). Niezależnie od metod przedstawionych wyżej, w artykule (Chu i Chen [19]) zaproponowano1 podobną metodę określania hipersześcianu AAB ograniczającego atraktor IFS o odwzorowaniach afinicznych zwężających w metryce maksimum. Metoda ta polega na określeniu hipersześcianu AAB jako hipersześcianu o środku w początku układu współrzędnych i wartości r obliczanej jako n 1 max | ti( k ) | , r (6.5) i 1 max Lip( wi ) k 1 1,..., N i 1,..., N (k ) i gdzie t oznacza k-tą współrzędną wektora translacji odwzorowania wi . Ponieważ środek wynikowego hipersześcianu znajduje się w początku układu współrzędnych, zatem w celu dążenia do minimalizowania wartości r, w ogólnym przypadku pożądane jest (choć autorzy oryginalnej metody o tym nie wspominają) obliczenie 1 W oryginale autorzy przedstawili dowód zawierania się atraktora w zbiorze ograniczającym jedynie dla przypadku dwuwymiarowego. Jednakże zaproponowana metoda uogólnia się w naturalny sposób do przypadku n-wymiarowego. Figury ograniczające – wielokąty i wielościany wypukłe 149 wartości (6.5) w układzie współrzędnych o początku zlokalizowanym w pewnym punkcie „centralnym” c atraktora. Dokonamy tego poprzez wyznaczenie wartości (6.5) dla przekształconego układu IFS przy użyciu translacji opisanej wektorem c (twierdzenie 2.22); wynikowym hipersześcianem AAB zawierającym atraktor będzie wówczas hipersześcian o środku w punkcie c. Wzorem poprzednio omówionej metody, za punkt centralny c wygodnie jest przyjąć środek najmniejszego prostopadłościanu AAB zawierającego punkty stałe odwzorowań IFS. Rys. 6.1. Wyniki zastosowania algorytmów opisanych w punkcie 6.2 do wyznaczania kwadratów i prostokątów ograniczających atraktory afinicznych IFS na R2 (patrz dodatek A, pkt 7). Kwadraty o kolorach czarnym, zielonym i niebieskim odpowiadają rezultatom uzyskanym przy użyciu metod pośrednich, odpowiednio: oszacowania (6.3), oszacowania (6.4) oraz oszacowania (6.5). Kolorem czerwonym oznaczono prostokąty AAB otrzymane przy użyciu metody quasi-pośredniej wykorzystującej proporcję (6.6). Kolorem fioletowym oznaczono prostokąty skierowane wyznaczone metodą quasi-pośrednią opartą na macierzy kowariancji (5.6). Skierowane prostokąty o kolorze ciemnozielonym reprezentują wyniki uzyskane przy użyciu algorytmu bezpośredniego opisanego w podpunkcie 6.2.2 150 Figury ograniczające – wielokąty i wielościany wypukłe Ponieważ n max d (0, wi (0)) max ( max | ti( k ) |) max | ti( k ) | , i 1,..., N i 1,..., N k 1,..., n k 1 i 1,..., N zatem hipersześcian wyznaczony przy użyciu wzoru (6.4) będzie zwykle mniejszy (i co najmniej nie większy) od hipersześcianu wyznaczonego za pomocą wzoru (6.5). Jednakże, jak pokazali Chu i Chen [19], ten ostatni hipersześcian zawiera swoje obrazy przy odwzorowaniach IFS, czego nie może zagwarantować metoda poprzednia. Niemniej, na podstawie twierdzenia 2.19, hipersześcian wyznaczony przy użyciu wzoru (6.3) również zawiera swoje obrazy i, jak pokazują eksperymenty numeryczne, jest często mniejszy od hipersześcianu uzyskanego przy użyciu omawianej metody (por. punkt 6.4 oraz rys. 6.1 – kwadraty w kolorze niebieskim). Zastosowanie trzech dotychczas przedstawionych metod pośrednich ograniczone jest do wyznaczania przypadku szczególnego prostopadłościanu AAB, jakim jest hipersześcian AAB. Niemniej, w celu dążenia do minimalizacji objętości poszukiwanej figury AAB ograniczającej atraktor (i co za tym idzie, „ściślejszego” otaczania atraktora przez tę figurę) zwykle pożądane jest zniesienie wskazanego ograniczenia „równych krawędzi” prostopadłościanu wynikowego. Ograniczenie to jest bezpośrednią konsekwencją geometrii kuli indukowanej przez metrykę maksimum leżącą u podstaw działania tych metod. Pomimo to, każdą z tych metod można udoskonalić, tak aby w wyniku dawała prostopadłościany AAB o proporcjach określonych rozmiarami atraktora względem poszczególnych osi układu współrzędnych. Zakładając, że proporcje te są znane i określone wektorem [1, 2 ,..., n ] , w którym k-ty składnik jest stosunkiem rozmiaru atraktora względem k-tej osi układu współrzędnych do rozmiaru atraktora względem osi pierwszej, zamierzony cel osiągnie się, stosując dowolną z tych metod do układu IFS przekształconego (twierdzenie 2.22) przy użyciu skalowania opisanego macierzą diagonalną diag(1, 21 ,..., n1 ) . Wynikowym prostopadłościanem AAB ograniczającym atraktor oryginalnego IFS będzie wówczas prostopadłościan AAB (diag(1, 2 ,..., n )c,[r , 2 r ,..., n r ]T ) . W ogólnym przypadku IFS proporcje ograniczającego prostopadłościanu AAB można szacować na podstawie skończonego zbioru punktów wygenerowanego przy użyciu algorytmu probabilistycznego, przy czym możliwe są dwa podejścia. Pierwsze polega na określeniu rozważanych proporcji na podstawie rozmiarów atraktora w kierunkach poszczególnych osi układu współrzędnych, które są szacowane jako różnice między maksymalnymi i minimalnymi wartościami poszczególnych współrzędnych wygenerowanych punktów. W podejściu drugim adaptuje się techniki statystyczne analizy głównych składowych (Manly [78]) (por. punkt 5.6) i wyznacza poszukiwane proporcje na podstawie macierzy kowariancji (5.24) skończonego zbioru wygenerowanych punktów względem punktu c, jako Figury ograniczające – wielokąty i wielościany wypukłe k max i | ui( k ) | i 1,..., n max i | ui(1) | , 151 (6.6) i 1,..., n gdzie i 0 i ui [ui(1) ,..., ui( n ) ]T są, odpowiednio, i-tą wartością własną oraz i-tym wektorem własnym nieujemnie określonej macierzy symetrycznej (5.24). Ponieważ obydwa wymienione podejścia do określania proporcji prostopadłościanu opierają się na skończonym zbiorze punktów atraktora, zastosowanie dowolnego z nich w fazie obliczeń wstępnych wyznaczania prostopadłościanu ograniczającego skutkuje algorytmem quasi-pośrednim, sytuującym się między metodami pośrednimi a bezpośrednimi. Niemniej w przypadku atraktorów afinicznych IFS macierz kowariancji (5.24) może być wyznaczona bezpośrednio na podstawie samego układu IFS z prawdopodobieństwami (3.33), przy użyciu wzorów (2.24) i (2.25), zgodnie z zasadami opisanymi w punkcie 5.6 poprzedniego rozdziału. Przykładowe wyniki tej metody zaprezentowano na rys. 6.1 (prostokąty w kolorze czerwonym). Kolejnym krokiem ku minimalizacji objętości prostopadłościanu zawierającego atraktor IFS jest zniesienie restrykcji równoległości krawędzi prostopadłościanu do poszczególnych osi układu współrzędnych poprzez zastosowanie, jako figury ograniczającej, prostopadłościanu skierowanego. Niemniej, jak już wcześniej wspomniano, metody wyznaczania prostopadłościanów skierowanych stanowią rozszerzenie metod wyznaczania prostopadłościanów AAB, polegające na wprowadzeniu dodatkowego etapu inicjującego, w którym dokonywana jest odpowiednia transformacja obrotu układu IFS, aby kierunki maksymalnych rozmiarów atraktora pokrywały się z osiami układu współrzędnych. Obrót ten najłatwiej oszacować na podstawie macierzy kowariancji punktów atraktora względem środka c, jako ortonormalną macierz [u1 ,..., u n ]T , gdzie ui, i = 1,..., n, są wektorami własnymi macierzy kowariancji (por. punkt 5.6). Po dokonaniu obrotu i obliczeniu ograniczającego prostopadłościanu AAB, stosowny prostopadłościan skierowany zawierający oryginalny atraktor, otrzymuje się, dokonując obrotu wynikowego prostopadłościanu AAB przy użyciu transformacji opisanej macierzą [u1 ,..., u n ] . Uzyskane tą metodą skierowane prostokąty ograniczające dla przykładowych atraktorów afinicznych IFS na R 2 pokazano na rys. 6.1 (prostokąty w kolorze fioletowym). 6.2.2. Algorytmy bezpośrednie Wyniki uzyskane dzięki każdej z trzech metod z poprzedniego podpunktu można następnie progresywnie ulepszać, stosując techniki bezpośrednie. W artykule (Chu i Chen [19]) przedstawiono podejście do wyznaczania prostokąta AAB ograniczającego atraktor afinicznego IFS na przestrzeni R 2 . Rozpoczynając od 152 Figury ograniczające – wielokąty i wielościany wypukłe kwadratu C obliczonego na podstawie wzoru (6.5), metoda wyznacza obrazy C przy złożeniach odwzorowań IFS generowanych zgodnie z ideą leżącą u podstaw algorytmu adaptacyjnych odcięć (punkt 3.2). Wynikowy prostokąt AAB określany jest na podstawie ekstremalnych współrzędnych wierzchołków obrazów C obliczonych na najgłębszym dozwolonym poziomie rekursji. W rezultacie, wynikowym prostokątem jest najmniejszy prostokąt AAB zawierający pewne skończone -pokrycie atraktora obrazami kwadratu C, wygenerowane przy użyciu algorytmu adaptacyjnych odcięć. Ponieważ odwzorowania IFS są z założenia afiniczne, zatem obrazami kwadratu C są w ogólności równoległoboki, które autorzy omawianej metody wyznaczają poprzez zastosowanie danego złożenia odwzorowań IFS do każdego z 4 wierzchołków tego kwadratu. Poniżej przedstawiono udoskonaloną wersję tego podejścia, która umożliwia wydajne wyznaczanie prostopadłościanów AAB ograniczających atraktory afinicznych IFS na przestrzeniach R n . W odróżnieniu od poprzedniego rozwiązania, metoda wyznacza poszukiwane współrzędne ekstremalne na podstawie pokrycia atraktora A prostopadłościanami AAB o średnicach nieprzekraczających zadanej wartości 0 , to jest -pokrycia Cover ( A , ) (por. punkt 5.7). Wspomniane prostopadłościany są najmniejszymi prostopadłościanami AAB zawierającymi obrazy wi1 ...wik ( P ) prostopadłościanu AAB P A przy złożeniach odwzorowań IFS. Prostopadłościany te są wyznaczane bezpośrednio na podstawie danego złożenia odwzorowań za pomocą techniki zaproponowanej przez autora w pracy (Martyn [85]), bez potrzeby jawnego obliczania wspomnianych obrazów. Niech AAB (c0 , r0 ) A , c0 R n , r0 [r0(1) ,..., r0( n ) ]T R n , będzie prostopadłościanem AAB wyznaczonym przy użyciu dowolnej z metod pośrednich z poprzedniego podpunktu, A zaś – atraktorem afinicznego IFS {w1 ,..., wN } na R n . Na podstawie twierdzenia 2.22, atraktorem oryginalnego IFS przekształconego odwzorowaniem (6.7) (x) diag(1 / r0(1) ,...,1 / r0( n ) )(x c0 ) czyli IFS { w1 1 ,..., wN 1} , będzie zbiór ( A ) zawarty w hipersześcianie ( AAB (c0 , r0 )) AAB (0,[1,...,1]T ) o wierzchołkach p k [1,..., 1]T , k = 1,...,2n. Z kolei, obrazem hipersześcianu AAB (0,[1,...,1]T ) przy odwzorowaniu afinicznym f (x) L f x t f , L f [li , j ]in, j 1 , t f [t (1) ,..., t ( n ) ]T , jest w ogólności równoległościan Q o wierzchołkach q k (p k ) [q (1) ,..., q ( n ) ]T , gdzie q ( i ) li ,1 ... li , n t ( i ) , i 1,..., n . Stąd najmniejszym prostopadłościanem AAB ograniczającym równoległościan Q jest prostopadłościan AAB (c f , r f ) o środku w punkcie c f t f i wektorze r f [rf(1) ,..., rf( n ) ]T , gdzie n rf( i ) | li , j |, j 1 i 1,..., n . (6.8) Figury ograniczające – wielokąty i wielościany wypukłe 153 Co więcej, ponieważ Q f ( AAB (0,[1,...,1]T )) , zatem jeśli f jest odwzorowaniem postaci w 1 , gdzie w jest dowolnym odwzorowaniem afinicznym, to 1 (Q) w 1 ( AAB(0,[1,...,1]T )) i stąd 1 (Q) w( AAB(c0 , r0 )) , bo AAB (c0 , r0 ) ( AAB (0,[1,...,1]T )) . Zatem dla f w 1 , prostopadłościan 1 ( AAB(c f , r f )) AAB( 1 (c f ), L1r f ) (6.9a) jest najmniejszym prostopadłościanem AAB ograniczającym równoległościan w( AAB (c0 , r0 )) , przy czym na podstawie (6.2) i (6.7) diam ( AAB ( 1 (c f ), L1r f )) 2 max r0( i ) rf( i ) . i 1,..., n (6.9b) Wykorzystując powyższe informacje w algorytmie adaptacyjnych odcięć można, dla dowolnego 0 , efektywnie wyznaczać -pokrycia Cover ( A , ) atraktora A afinicznego IFS {w1 ,..., wN } , obliczając prostopadłościany AAB ograniczające podzbiory wi1 ... wik ( A ) atraktora bezpośrednio na podstawie złożeń odwzorowań przekształconego IFS {w1,..., wN } , wi wi 1 , i = 1,..., N. Zaprezentowana technika obliczania prostopadłościanów AAB ograniczających podzbiory atraktora ma szereg zastosowań. Między innymi umożliwia wydajne obliczenie punktów rozpinających (punkt 5.7), wydajne aproksymowanie przecięcia półprostej z atraktorem (punkt 7.2), a także efektywne rozwiązanie problemu będącego tematem niniejszego podpunktu. W celu zapobieżenia dokonywaniu przekształceń występujących we wzorze (6.9a) w każdym wywołaniu rekurencyjnym algorytmu adaptacyjnych odcięć, w przypadku omawianego zagadnienia, zamiast bezpośrednio wyznaczać poszukiwany prostopadłościan AAB ograniczający oryginalny atraktor A , wygodniej jest zastosować ten algorytm do wyznaczenia prostopadłościanu AAB zawierającego zbiór ( A ) . Na podstawie (6.9a) prostopadłościany AAB zawierające podzbiory zbioru ( A ) są obrazami odpowiednich prostopadłościanów zawierających podzbiory atraktora A . Stąd, stosownie do (6.9b), wyznaczając przy użyciu omawianej metody pokrycie zbioru ( A ) prostopadłościanami AAB (c f , r f ) , dla których rf( i ) 2r0( i ) , i 1,..., n (6.10) otrzymamy obraz -pokrycia Cover ( A , ) przy odwzorowaniu . Zatem najmniejszy prostopadłościan AAB (c , r ) zawierający rozważane pokrycie zbioru ( A ) jest obrazem przy odwzorowaniu poszukiwanego, najmniejszego prostopadłościanu AAB zawierającego -pokrycie Cover ( A , ) . 154 Figury ograniczające – wielokąty i wielościany wypukłe Wobec tego, poszukiwanym prostopadłościanem AAB jest prostopadłościan AAB (c min , rmin ) AAB ( 1 (c ), L1r ) . Ponieważ średnice (względem metryki maksimum) prostopadłościanów -pokrycia Cover ( A , ) nie przekraczają wartości , zatem średnica prostopadłościanu AAB (c min , rmin ) jest co najwyżej większa o wartość 2 od średnicy najmniejszego prostopadłościanu AAB zawierającego atraktor A . Jako podsumowanie przeprowadzonych rozważań, przedstawiona zostanie procedura wyznaczania wektorów współrzędnych ekstremalnych Min, Max R n obrazu pokrycia -pokrycie Cover ( A , ) przy odwzorowaniu : 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. procedure ExtremalCoordsACA( f, PrevBoxMin, PrevBoxMax ) begin for each i {1,, N } do begin Wyznacz bieżące złożenie odwzorowań g f wi , gdzie g (x) L g x t g ; Oblicz wektor rg zgodnie ze wzorem (6.8) na podstawie macierzy Lg ; CurBoxMin t g rg ; CurBoxMax t g rg ; // CurBoxMin max(PrevBoxMin, CurBoxMin) ; // CurBoxMax min(PrevBoxMax, CurBoxMax) ; 1 // rg (CurBoxMax CurBoxMin) ; 2 if rg [ / 2r0(1) ,..., / 2r0( n ) ]T then begin Min min(Min, CurBoxMin) ; Max max(Max, CurBoxMax) ; end if; else if CurBoxMin Min or CurBoxMax Max then ExtremalCoordsACA( g, CurBoxMin, CurBoxMax ); end for; end. Zmienne CurBoxMin i CurBoxMax oraz PrevBoxMin i PrevBoxMax oznaczają wektory współrzędnych ekstremalnych, odpowiednio: bieżącego prostopadłościanu AAB otaczającego zbiór g ( ( A )) i prostopadłościanu AAB z poprzedniego poziomu rekursji, czyli otaczającego zbiór f ( ( A )) g ( ( A )) . Wartością funkcji min (odpowiednio: max) użytej do wektorów jest wektor powstały poprzez zastosowanie skalarnej operacji min (odpowiednio: skalarnej operacji max) do poszczególnych par współrzędnych podanych argumentów. Podobnie, wektorowa wersja relacji ≤ jest spełniona, gdy wszystkie współrzędne pierwszego wektora są nie większe od odpowiednich współrzędnych wektora drugiego. Z kolei, wektor a jest w relacji z wektorem b (odpowiednio w relacji ) wtedy i tylko wtedy, gdy w wektorze a przynajmniej jedna współrzędna a ( i ) jest mniejsza (odpowiednio: większa) od od- Figury ograniczające – wielokąty i wielościany wypukłe 155 powiadającej jej współrzędnej b ( i ) wektora b. W wektorach Min i Max zapamiętywane są wartości najmniejszych i, odpowiednio, największych współrzędnych obrazu -pokrycia Cover ( A , ) przy odwzorowaniu . Sekcja procedury opatrzona znakiem // (linie 6–8) dokonuje obcięcia bieżącego prostopadłościanu względem prostopadłościanu z poprzedniego poziomu rekursji (wyznaczana jest część wspólna obydwu prostopadłościanów). Choć nie jest ona niezbędna do poprawnego działania procedury, to jednak może efektywnie wpłynąć na poprawienie zbieżności algorytmu. Należy bowiem zauważyć, że f ( ( A )) g ( ( A )) . Zatem jeśli PrevBox f ( ( A )) jest prostopadłościanem AAB z poprzedniego poziomu rekursji, zaś CurBox g ( ( A )) bieżącym prostopadłościanem AAB, to również PrevBox CurBox jest prostopadłościanem AAB ograniczającym zbiór g ( ( A )) , przy czym w ogólnym przypadku PrevBox CurBox CurBox . Stąd 1 ( PrevBox CurBox) jest prostopadłościanem AAB ograniczającym podzbiór 1 ( g ( ( A ))) wi1 ... wik ( A ) , g wi1 ... wik 1 , oryginalnego atraktora A . Poszukiwany prostopadłościan AAB (c min , rmin ) A , który aproksymuje najmniejszy prostopadłościan AAB zawierający A , otrzymamy wykonując powyższą procedurę dla argumentów f id , PrevBoxMin [1,..., 1]T , PrevBoxMax [1,...,1]T i następnie obliczając wektory c min i rmin na podstawie wektorów 1 (Min) i 1 (Max) jako: rmin ( 1 (Max) 1 (Min)) / 2 , c min 1 (Min) rmin . Podobnie jak w przypadku metod pośrednich, najmniejsze prostopadłościany skierowane zawierające atraktory IFS można oszacować, poprzedzając etap obliczeń najmniejszego prostopadłościanu AAB odpowiednim obrotem układu IFS. Obrót ten wyznaczany jest na podstawie macierzy kowariancji punktów atraktora, zgodnie z zasadami podanymi w punkcie 5.6. Wynikowy najmniejszy prostopadłościan AAB sprowadzamy następnie do poszukiwanego prostopadłościanu skierowanego ograniczającego oryginalny atraktor, stosując do prostopadłościanu AAB obrót odwrotny. Przykładowe wyniki zastosowania opisanej metody dla atraktorów afinicznych IFS na przestrzeń R 2 zaprezentowano na rys. 6.1 (prostokąty w kolorze ciemnozielonym). 6.3. WIELOKĄTY I WIELOŚCIANY 6.3.1. Programowanie liniowe W artykule (Lawlor i Hart [71]) zaproponowano interesujące podejście pośrednie do wyznaczania wielokątów wypukłych zawierających atraktory afinicznych IFS. Podejście to opiera się na programowaniu liniowym (Sysło i inni [145]). 156 Figury ograniczające – wielokąty i wielościany wypukłe Reprezentacja wielokąta wypukłego przyjęta w cytowanej pracy jest klasyczną reprezentacją przy użyciu półpłaszczyzn. Dany wielokąt P R 2 definiowany jest zatem jako część wspólna P Hs (6.11a) sS odpowiednich (domkniętych) półpłaszczyzn H s {x R 2 : n s x d s } (6.11b) 2 gdzie n s R jest wektorem normalnym skierowanym „na zewnątrz” półpłaszczyzny, d s R zaś – najmniejszą odległością (ze znakiem1) punktu 0 od brzegu półpłaszczyzny. Zawieranie się atraktora A układu IFS {w1 ,..., wN } w wielokącie P autorzy opierają na warunku P W ( P ) (czyli warunku wystarczającym do zawierania się A w danej figurze), gdzie W oznacza operator Hutchinsona. Ponieważ odS| wzorowania wi są afiniczne, zatem dla danego wielokąta o wierzchołkach {v m }|m 1 powyższe założenie jest równoważne wymaganiu, aby wi ( v m ) P dla wszystkich i = 1,...,N i m 1,...,| S | . Wobec definicji wielokąta (6.11) otrzymuje się zatem P A , jeśli tylko n s wi ( v m ) d s (6.12) dla wszystkich s S , i {1,..., N } i m 1,...,| S | . Innymi słowy, wielokąt będzie zawierał atraktor, jeśli obrazy każdego jego wierzchołka przy odwzorowaniach IFS będą należały do wszystkich półpłaszczyzn H s definiujących ten wielokąt. Z kolei, każdy wierzchołek v m jest przecięciem brzegów pewnych półpłaszczyzn H q i H p , q, p S . Zatem, na podstawie (6.11b), istnieje odwzorowanie :{1,...,| S |} I , I S S , (m) ( p, q) takie, że v m N1(m ) d ( m ) , (6.13) gdzie N ( m ) [n p , n q ]T i d ( m ) [d p , d q ]T . Stąd, dla ustalonych normalnych n s , s S , otrzymuje się – na podstawie (6.12) – zestaw warunków ograniczających programowania liniowego względem przemieszczeń d s , o postaci: n s (Li N p1,q d p , q t i ) d s , sS , ( p , q )I , i{1,..., N } , (6.14a) gdzie Li i t i oznaczają odpowiednio macierz części liniowej i wektor translacji odwzorowania wi . Aby zapewnić liniowość zagadnienia, zamiast minimalizacji pola poszukiwanego wielokąta (co prowadziłoby do problemu optymalizacji nieliniowej), przeprowadza się minimalizację sumy przemieszczeń d s , s S , hiperpłaszczyzn definiujących wielokąt P (d1 ,..., d|S | ) , czyli funkcji celu o postaci: f (d1 ,..., d|S | ) d s . sS 1 To jest, d s 0 wtedy i tylko wtedy, gdy 0 H s . (6.14b) Figury ograniczające – wielokąty i wielościany wypukłe 157 Normalne n s , s S , ustalane są jako wektory normalne krawędzi wielokąta foremnego, czyli jako wektory o równomiernym rozkładzie kierunków w przestrzeni. Niestety, jak trafnie zauważyli Lawlor i Hart [71], dla dowolnie ustalonej liczby | S | wierzchołków poszukiwanego wielokąta zawierającego atraktor, problem (6.14) może nie mieć żadnego rozwiązania. Innymi słowy, dla danego afinicznego IFS {w1 ,..., wN } może nie istnieć wielokąt P (d1 ,..., d|S | ) o zadanej z góry liczbie wierzchołków spełniający warunek W ( P (d1 ,..., d|S | )) P (d1 ,..., d|S | ) , to jest – leżący u podstaw omawianej metody – warunek wystarczający zawierania się atraktora IFS w tym wielokącie. W związku ze wskazanym problemem autorzy metody pokazują, że warunkiem wystarczającym dla istnienia rozwiązania rozważanego problemu programowania liniowego (przy równomiernym rozkładzie kierunków wektorów normalnych) jest to, aby liczba wierzchołków | S | poszukiwanego wielokąta spełniała nierówność |S | (6.15) 1 cos ( max Lip( wi )) i 1,..., N gdzie Lip( wi ) jest współczynnikiem zwężania względem metryki euklidesowej. Jak łatwo zauważyć, w ogólnym przypadku liczba wymaganych wierzchołków może być dowolnie duża i dąży ona do nieskończoności przy max Lip( wi ) 1 . i 1,..., N Omawiana metoda może być także stosunkowo łatwo uogólniona do obliczania wielościanów ograniczających atraktory afinicznych IFS na R 3 , poprzez odpowiednie przeformułowanie warunków ograniczających dla programowania liniowego. Równomierne kierunki wektorów normalnych n s , s S , półprzestrzeni definiujących poszukiwany wielościan, mogą zostać ustalone na podstawie wektorów normalnych ścian brył platońskich. Jednakże w celu zagwarantowania istnienia rozwiązania problemu programowania liniowego poprzez zapewnienie odpowiedniej liczby ścian wielościanu, autorzy sugerują zastosowanie podejścia sekwencyjnego obcinania wierzchołków danej bryły wejściowej o geometrii czworościanu lub sześcianu. Wielokąt (wielościan) P (d1 ,..., d|S | ) otrzymany w wyniku optymalizacji liniowej może być następnie poddany dalszemu przetwarzaniu przy użyciu metody bezpośredniej w celu zredukowania jego pola (objętości). Aby to osiągnąć, Lawlor i Hart [71] zaproponowali podejście polegające na przesuwaniu krawędzi (ścian) tej figury ku jej wnętrzu. Odpowiednie wartości przesunięć ustalane są na podstawie minimalnych odległości krawędzi (ścian) figury P (d1 ,..., d|S | ) od obrazów jej wierzchołków przy złożeniach odwzorowań IFS o stałej, zadanej z góry długości. Przedstawiony w cytowanej pracy algorytm opiera się na ideach algorytmu adaptacyjnych odcięć w wersji iteracyjnej (punkt 3.2.1) i wyznacza odpowiednią odległość oddzielnie dla każdej krawędzi (ściany) tej figury. Jednakże w celu 158 Figury ograniczające – wielokąty i wielościany wypukłe Rys. 6.2. Rezultaty zastosowania metody redukcji pola wielokąta ograniczającego, otrzymanego przy wykorzystaniu programowania liniowego do wyznaczania ośmiokątów ograniczających przykładowe atraktory afinicznych IFS na R 2 . Aby zagwarantować istnienie rozwiązania problemu programowania liniowego wyrażonego formułą (6.14), oryginalne układy IFS zmodyfikowano tak, aby wartość maksymalnego współczynnika zwężania odwzorowań układu spełniała nierówność (6.15) dla |S| = 8. W tym celu zastosowano adaptację algorytmu adaptacyjnych odcięć w wersji iteracyjnej (por. podpunkt 3.2.1) uniknięcia kosztownego obliczeniowo przekształcania każdego z | S | wierzchołków P (d1 ,..., d|S | ) w każdej iteracji algorytmu, zamiast wyznaczania wspomnianych przesunięć bezpośrednio na podstawie obrazów wi j ... wik ( P (d1 ,..., d|S | )) , przesunięcia te obliczane są na podstawie zastosowania odwzorowań odwrotnych do odpowiedniej prostej (płaszczyzny), na której leży krawędź (ściana) aktualnie analizowana. Ponadto, w celu przyspieszenia obliczeń (jednakże kosz- Figury ograniczające – wielokąty i wielościany wypukłe 159 tem zwiększenia złożoności pamięciowej) wykorzystano strukturę kopca, na który odkładane są obrazy prostych (płaszczyzn) generowane w kolejnych iteracjach. Kopiec uporządkowany jest rosnąco względem odległości bieżącego obrazu wi j ... wik ( P (d1 ,..., d|S | )) od analizowanej prostej (płaszczyzny). Przetwarzanie obrazów prostych (płaszczyzn) w kolejnych iteracjach wedle tego porządku (poprzez pobieranie bieżącego obrazu prostej lub płaszczyzny zawsze ze szczytu kopca) prowadzi zwykle do znacznego zredukowania obliczeń, ponieważ pierwszy znaleziony obraz prostej (płaszczyzny) przy złożeniu odwzorowań o maksymalnej dozwolonej długości wyznacza poszukiwaną wartość przesunięcia. Przykładowe rezultaty działania opisanej metody przedstawiono na rys. 6.2. 6.3.2. Odcinanie wierzchołków Główną wadą metody opisanej w poprzednim podpunkcie jest to, że stawia ona ograniczenie na minimalną liczbę wierzchołków generujących poszukiwany wielokąt (wielościan) zawierający atraktor danego układu IFS. W rezultacie, na podstawie nierówności (6.15), w ogólnym przypadku wynikowa figura ograniczająca może składać się z bardzo dużej liczby wierzchołków, dążącej do nieskończoności dla IFS zawierających odwzorowania o współczynnikach zwężania bliskich jedności. Jednakże, jak zauważono we wstępie do niniejszego rozdziału, wysoki stopień „złożoności geometrycznej” figury ograniczającej wpływa na ogół niekorzystnie na wydajność algorytmów bazujących na tych zbiorach. W konsekwencji, wielokąty (wielościany) ograniczające wyznaczane za pośrednictwem tej metody są często zbyt złożone, aby uznać je za przydatne do typowych zastosowań zbiorów ograniczających w grafice komputerowej1. Co więcej, wspomniana metoda wymaga podania a priori, jako jednej z danych wejściowych, wektorów normalnych krawędzi wielokąta (ścian wielościanu), które to wektory pozostają niezmienne przez cały czas działania algorytmu i są normalnymi do krawędzi wielokąta (ścian wielościanu) wynikowego ograniczającego atraktor. Ponieważ wybór kierunków normalnych odbywa się arbitralnie bez uwzględniania geometrii konkretnego atraktora, więc wierzchołki figury wynikowej mogą się znajdować w dużych odległościach od punktów atraktora. W konsekwencji, figura ta nie będzie otaczała atraktora na tyle „ściśle”, aby zakwalifikować ją jako figurę ograniczającą dobrej jakości w kontekście zastosowań tych zbiorów w grafice komputerowej. Podejście zaproponowane w pracach (Martyn [89], Prokop [122]) dla afinicznych IFS na przestrzeni R 2 i uogólnione do afinicznych IFS na przestrzeni R 3 w (Martyn [91], Prokop [123]) nie ma wyżej wymienionych wad. Umożliwia Co prawda, możliwa jest modyfikacja tej metody tak, aby generowała wielokąty (wielościany) o zadanej liczbie wierzchołków (ścian), jednak odbywa się kosztem znacznego zwiększenia liczby odwzorowań układu IFS. 1 160 Figury ograniczające – wielokąty i wielościany wypukłe ono wyznaczanie wielokątów (wielościanów) ograniczających o liczbie wierzchołków nieprzekraczającej z góry zadanej wartości. Ponadto, wynikowe figury ograniczające stanowią dobre przybliżenia najmniejszego zbioru wypukłego ograniczającego dany atraktor, czyli otoczki wypukłej atraktora. Stąd, metoda ta umożliwia osiągnięcie pożądanego kompromisu między „złożonością geometryczną” figury ograniczającej a stopniem dokładności aproksymowania „powierzchni” atraktora przez tę figurę. U podstaw omawianego podejścia do wyznaczania wypukłych figur ograniczających zbiory w R 2 leży następująca prosta obserwacja: Niech {v1 ,..., v K } będzie listą wierzchołków wielokąta wypukłego P R 2 takiego, że P zawiera dany zwarty zbiór S R 2 oraz każda krawędź ei v i v i 1 , i {1,..., K } , v K 1 v1 , posiada niepuste przecięcie z S: P S i ei S . Bez utraty ogólności rozważań możemy założyć, że wierzchołki v i , i = 1,...,K, uporządkowane są przeciwnie do ruchu wskazówek zegara, zaś każda z krawędzi ei v i v i 1 zorientowana jest od wierzchołka v i (początek ei) do wierzchołka v i1 (koniec ei). Ponadto, oznaczmy przez pO( i ) i pT( i ) punkty przecięcia ei S takie, że pO( i ) jest punktem znajdującym się najbliżej wierzchołka v i , zaś pT( i ) jest punktem najbliższym wierzchołka v i1 . Oczywiście pO( i ) i pT( i ) należą do brzegu conv( S ) otoczki wypukłej zbioru S oraz jeśli pO( i ) pT( i ) , to (domknięty) odcinek pO( i ) pT( i ) jest częścią tego brzegu między tymi punktami. Co więcej, pT( i ) v i1 wtedy i tylko wtedy, gdy pO( i 1) v i 1 , zatem w takim przypadku v i 1 conv( S ) (i nie istnieją inne punkty conv( S ) między pT( i ) i pO( i 1) ). W przypadku przeciwnym zachodzi następujące twierdzenie: Twierdzenie 6.1. Niech ei v i v i 1 i ei 1 v i 1 v i 2 będą następującymi po sobie krawędziami wielokąta P oraz niech pT( i ) v i1 . Niech Li 1 oznacza prostą zorientowaną od punktu pT( i ) do punktu pO( i 1) i przechodzącą przez te punkty. Ponadto, oznaczmy przez Qi 1 część brzegu conv( S ) między pT( i ) i pO( i 1) . Wtedy: (a) jeśli nie istnieją żadne punkty zbioru S na prawo od prostej Li 1 , wówczas pT( i ) pO( i 1) Qi 1 ; (b) w przypadku przeciwnym, 0 d (Qi 1 , Li 1 ) d ( v i 1 , Li 1 ) , gdzie odległości zbioru od zbioru i punktu od zbioru indukowane są przez metrykę euklidesową. Dowód. Patrz rys. 6.3. Wykorzystując powyższe informacje, można podzielić zbiór wierzchołków wielokąta P na dwa rozłączne podzbiory G i H. Do podzbioru H zaliczane są wierzchołki należące do conv( S ) , podczas gdy do podzbioru G – wierzchołki nienależące do conv( S ) , stąd zbiór G jest dopełnieniem zbioru H. Ponieważ Figury ograniczające – wielokąty i wielościany wypukłe 161 wierzchołki należące do H tworzą częściowe rozwiązanie problemu wyznaczania otoczki wypukłej zbioru S, nie można ich zastąpić żadnymi innymi „lepszymi” wierzchołkami w celu dążenia do minimalizacji rozmiarów wielokąta otaczającego zbiór S. W odróżnieniu jednakże od wierzchołków ze zbioru H, wierzchołki należące do zbioru G mogą być rozpatrywane jako kandydaci do usunięcia z listy wierzchołków wielokąta P i następnie zastąpienia ich – o ile zajdzie taka potrzeba – punktami znajdującymi się bliżej brzegu conv( S ) . Rys. 6.3. Ilustracja twierdzenia 6.1 Dla danego kandydata v i 1 G , wspomniana redukcja pola powierzchni wielokąta otaczającego zbiór S dokonywana jest przy użyciu prostej Li 1 wymienionej w twierdzeniu 6.1, zgodnie z następującymi dwiema regułami: 1. Jeśli nie istnieją żadne punkty zbioru S po prawej stronie prostej Li 1 , to na podstawie punktu (a) twierdzenia 6.1, punkty pT( i ) i pO( i 1) są końcami domkniętego odcinka należącego do conv( S ) i można nimi zastąpić punkt v i1 na liście wierzchołków wielokąta otaczającego zbiór S. Innymi słowy, dokonuje się w ten sposób „odcięcia” trójkąta pT( i ) v i 1pO( i 1) od wielokąta P. W wyniku operacji odcięcia, ze zbioru G usuwany jest wierzchołek v i1 , zaś do zbioru H dodawane są wierzchołki pT( i ) i pO( i 1) . 2. W przypadku przeciwnym, dokonuje się translacji prostej Li 1 w kierunku wierzchołka v i1 o wektor t i1 prostopadły do tej prostej, taki że nie istnieją żadne punkty zbioru S po prawej stronie prostej Li 1 t i 1 oraz prosta Li 1 t i 1 posiada niepuste przecięcie ze zbiorem S. Stosownie do punktu (b) twierdzenia 6.1, wielkość przesunięcia jest mniejsza od wartości d ( v i 1 , Li 1 ) . 162 Figury ograniczające – wielokąty i wielościany wypukłe Następnie wyznacza się punkty przecięcia vi1 i vi1 prostej Li 1 t i 1 odpowiednio z krawędzią ei i ei 1 , po czym zastępuje tymi punktami wierzchołek v i1 na liście wierzchołków wielokąta otaczającego zbiór S. Zatem, z geometrycznego punktu widzenia, tym sposobem od wielokąta P „odcinany” jest trójkąt vi 1 v i 1 vi 1 . Ponieważ punkt vi 1 ei leży bliżej wierzchołka v i1 niż punkt pT( i ) , zaś pT( i ) jest najbliższym punktem v i1 ze wszystkich punktów przecięcia conv( S ) ei , zatem vi1 nie należy do conv( S ) . Analogicznie, do conv( S ) nie należy także punkt vi1 . Stąd, w omawianym przypadku operacja odcięcia pozostawia zbiór H niezmienionym i oddziałuje ona jedynie na zbiór G tak, że wierzchołek v i1 zastępowany jest w tym zbiorze przez punkty vi1 i vi1 . Na podstawie powyższych rozważań można zaproponować następujący algorytm wyznaczania wielokąta ograniczającego o liczbie wierzchołków nieprzekraczającej zadanej wartości. Dla danego zwartego zbioru S w przestrzeni R 2 , w pierwszej fazie algorytmu, znajdujemy dowolny prostokąt P0 S , którego krawędzie mają niepuste przecięcie ze zbiorem S. Następnie, rozpoczynając od zdefiniowanych wyżej zbiorów H i G skonstruowanych na podstawie wierzchołków prostokąta P0 , wyznaczamy sekwencję wielokątów P0 P1 ... PM poprzez iteracyjne stosowanie operacji odcinania do wierzchołków znajdujących się w zbiorze G (rys. 6.4). Dążąc do minimalizacji rozmiarów poszukiwanego wielokąta ograniczającego w jak najmniejszej liczbie iteracji, w każdym kolejnym kroku algorytmu, z bieżącej zawartości zbioru G, do odcięcia wybiera się wierzchołek v k , dla którego d ( v k , Lk t k ) max d ( v i , Li t i ), i 1,...,|G | || t i || 0 . (6.16) W tym celu, do reprezentacji zbioru G warto wykorzystać kopiec uporządkowany względem wartości d ( v i , Li t i ) , i 1,...,| G | , z aktualnym wierzchołkiem v k (6.16) na szczycie (tj. w korzeniu) kopca. Innym możliwym kryterium wyboru wierzchołka do odcięcia ze zbioru G jest wybór wierzchołka trójkąta o największym polu spośród wszystkich bieżących trójkątów-kandydatów do odcięcia. Twierdzenie 6.2. Niech S będzie zwartym (być może nieskończonym) podzbiorem przestrzeni R 2 . Jeśli conv( S ) jest wielokątem o q wierzchołkach, to do obliczenia conv( S ) potrzeba co najwyżej O(q) operacji odcięcia wierzchołka. Dowód. Niech v i G , gdzie G jest zbiorem wierzchołków do odcięcia prostokąta P0 S . Ponieważ conv( S ) jest wielokątem o q wierzchołkach, istnieje co najwyżej m q 2 wierzchołków otoczki conv(S) między wierzchołkami pT( i 1) , pO( i ) conv( S ) . Podczas działania algorytmu, dla każdego wierzchołka v k conv( S ) , konstruowana jest co najwyżej jedna prosta odcinająca Lk t k Figury ograniczające – wielokąty i wielościany wypukłe 163 o niezerowym przesunięciu ( || t k || 0 ) zawierająca v k . Stąd, algorytm w trakcie swego działania wygeneruje co najwyżej m prostych o niezerowym przesunięciu w celu znalezienia wierzchołków conv(S) znajdujących się między punktami pT( i 1) i pO( i ) (reguła 2). Dodatkowo, wygeneruje on co najwyżej m 1 nieprzesuniętych prostych w celu stwierdzenia, że nie istnieją żadne inne wierzchołki między pT( i 1) i pO( i ) (reguła 1). Ponieważ | G | 4 , więc kończy to dowód. Rys. 6.4. Idea algorytmu iteracyjnego odcinania wierzchołków Na podstawie twierdzenia 6.2 ciąg wielokątów otaczających Pk S generowanych poprzez sekwencyjne stosowanie operacji odcięcia zmierza do otoczki wypukłej zbioru S, jeśli tylko jest ona wielokątem. Z kolei, otoczka wypukła danego zbioru jest najmniejszym zbiorem wypukłym zawierającym ten zbiór. Zatem z punktu widzenia przedstawionych w punkcie 6.1 założeń dotyczących pożądanego kompromisu między „złożonością geometryczną” figury ograniczającej a dokładnością aproksymowania „powierzchni” danego zbioru przez tę figurę, opisaną metodę należy uznać za zadowalającą. Jak pokazano w pracach (Strichartz i Wang [144], Kenyon i inni [65]), w przypadku atraktorów IFS założenie o skończonej liczbie wierzchołków otoczki wypukłej zbioru jest jednak na ogół niespełnione. Niemniej, w praktycznych zasto- 164 Figury ograniczające – wielokąty i wielościany wypukłe sowaniach atraktorów IFS w grafice komputerowej mamy zwykle do czynienia z aproksymacjami A tych zbiorów składającymi się ze skończonej liczby punktów (rozdz. 3 i 4). Co za tym idzie, otoczki wypukłe conv(A ) tych aproksymacji są w ogólności wielotopami1 oraz h(conv( A ),conv( A )) 0 , ponieważ h( A , A ) 0 przy 0 . Zatem z punktu widzenia realnych zastosowań fakt, że otoczka wypukła atraktora w przestrzeni R 2 na ogół nie jest wielokątem, nie ma zwykle znaczenia, bowiem może być ona aproksymowana z dowolną dokładnością przy użyciu wielokątów. Stąd przedstawiona metoda zachowuje swoje zalety także w przypadku ogólnym. Rys. 6.5. Rezultaty zastosowania algorytmu odcinania wierzchołków do wyznaczania wielokątów o maksymalnej liczbie krawędzi nieprzekraczającej liczby 8, ograniczających przykładowe atraktory afinicznych IFS na przestrzeni R 2 1 To jest, wielokątami w przypadku przestrzeni R 2 i wielościanami w przypadku przestrzeni R 3 . Figury ograniczające – wielokąty i wielościany wypukłe 165 Poszukiwane przesunięcie prostej odcinającej można obliczyć w czasie O(n), gdzie n jest liczbą punktów aproksymacji A atraktora, na przykład na podstawie punktów ekstremalnych tej aproksymacji. Punkty ekstremalne wyznaczane są przy użyciu niewielkiej modyfikacji algorytmu adaptacyjnych odcięć z zastosowaną metryką euklidesową, w podobny sposób, jak w algorytmie ExtremalCoordsACA przedstawionym w podpunkcie 6.2.2. Stosując takie podejście, przed wywołaniem procedury wyznaczania punktów ekstremalnych należy przekształcić układ odwzorowań IFS (twierdzenie 2.22) za pomocą obrotu sprowadzającego atraktor IFS do układu współrzędnych, w którym kierunek jednej z jego osi jest zgodny z kierunkiem wektora prostopadłego do rozważanej prostej. Po wyznaczeniu poszukiwanego wielokąta, w celu zagwarantowania zawierania się w nim atraktora A , należy dokonać dodatkowego, korekcyjnego przesunięcia krawędzi wielokąta „na zewnątrz” o wartość zależną od dokładności aproksymacji, z jaką dokonywane były obliczenia (por. podpunkt 6.3.3). Przykładowe rezultaty zastosowania algorytmu odcinania wierzchołków do wyznaczania wielokątów ograniczających atraktory afinicznych IFS na przestrzeni R 2 zaprezentowano na rys. 6.5. Rys. 6.6. Przykład zastosowania algorytmu odcinania wierzchołków do wyznaczania wielościanów wypukłych o 25 ścianach, ograniczających atraktory afinicznych IFS na przestrzeni R 3 166 Figury ograniczające – wielokąty i wielościany wypukłe Opisane podejście stosunkowo łatwo rozszerzyć do wyznaczania wielościanów ograniczających atraktory afinicznych IFS na przestrzeni R 3 (Martyn [91], Prokop [123]). Naturalnym uogólnieniem linii odcinających są w tym przypadku płaszczyzny odcinające. Aby zapewnić optymalny czas usuwania wierzchołków ze struktury danych opisującej figurę ograniczającą, w cytowanych pracach do reprezentowania wielościanów wykorzystano strukturę DCEL (ang. Double-Connected-Edge-List) (Preparata i Shamos [120, s. 15–17]). Wyniki zastosowania opisanego algorytmu do przykładowych atraktorów 3D zaprezentowano na rys. 6.6. 6.3.3. Owijanie atraktora Jak pokazano w poprzednim podpunkcie, zaprezentowany tam algorytm, obok wyznaczania wypukłych wielokątów (i wielościanów) ograniczających, umożliwia także aproksymowanie otoczek wypukłych atraktorów afinicznych IFS na przestrzeni R 2 w czasie O(qn) i z pamięcią O(q log n), gdzie q jest liczbą wierzchołków otoczki, n zaś liczbą punktów aproksymacji atraktora. Choć otoczki wypukłe, ze względu na ich (w ogólnym przypadku) stosunkowo dużą „złożoność geometryczną”, nie są zwykle figurami użytecznymi z punktu widzenia bezpośrednich zastosowań figur ograniczających w grafice komputerowej, to jednak umiejętność ich wyznaczania otwiera drogę do rozwiązywania wielu innych problemów z dziedziny geometrii obliczeniowej (Preparata i Shamos [120], de Berg i inni [23], O’Rourke [110]). Do istotnych zagadnień niniejszej pracy, które można rozwiązać za pomocą otoczki wypukłej, należy zaliczyć problem wyznaczania najmniejszego skierowanego prostokąta ograniczającego dany zbiór w przestrzeni R 2 oraz obliczanie średnicy takiego zbioru. Algorytm przedstawiony w pracy (Martyn [92]) przeznaczony jest do aproksymacji otoczek wypukłych atraktorów afinicznych IFS na przestrzeni R 2 . Podobnie jak algorytm z poprzedniego podpunktu, charakteryzuje się pesymistyczną złożonością obliczeniową rzędu O(qn) (przy wymaganiach pamięciowych rzędu O(log n)). W praktycznych zastosowaniach jest on jednak zwykle wydajniejszy obliczeniowo od tego pierwszego, bowiem, jak pokazują wyniki eksperymentalne zamieszczone w cytowanej pracy, dla „typowych” atraktorów IFS algorytm wyznacza otoczkę w czasie O(q n ) . Omawiany algorytm adaptuje znaną w geometrii obliczeniowej technikę „owijania zbioru” (ang. the gift-wrapping approach) w wersji zaproponowanej w (Akl [2]). Niech dany będzie afiniczny IFS {w1 ,..., wN } z atraktorem A na R 2 . Niech 0 określa najkrótszą dopuszczalną długość krawędzi poszukiwanego wielokąta wypukłego P ( ) aproksymującego otoczkę conv( A ) . Obliczenia rozpoczynają się od wyznaczenia – z dokładnością względem metryki euklidesowej – dwóch punktów ekstremalnych atraktora na podstawie punktów aproksymacji A . Figury ograniczające – wielokąty i wielościany wypukłe 167 Punkt p L , określany jako punkt najniższy, jest punktem ze zbioru A mającym najmniejszą współrzędną y. W przypadku, gdy istnieje więcej niż jeden taki punkt, wówczas spośród tych punktów wybierany jest punkt o największej współrzędnej x. Analogicznie, punkt p H , określany jako najwyższy, jest punktem o minimalnej współrzędnej x spośród podzbioru punktów aproksymacji A , których współrzędna y jest maksymalna. Łatwo zauważyć, że p L i p H są wierzchołkami otoczki conv( A ) . Następnie, rozpoczynając od punktu p L , algorytm iteracyjnie konstruuje sekwencje wierzchołków wielokąta P ( ) , które znajdują się między punktami p L i p H (tzw. prawy łańcuch) oraz p H i p L (tzw. lewy łańcuch). Wierzchołki prawego łańcucha obliczane są przeciwnie do ruchu wskazówek zegara w następujący sposób: Niech (a, b) oznacza kąt między wektorem ba i prostą przechodzącą przez punkt b i równoległą do osi X kartezjańskiego układu współrzędnych, mierzony przeciwnie do ruchu wskazówek zegara. Jeśli p jest nowo obliczonym wierzchołkiem wielokąta, to kolejny wierzchołek q wyznaczany jest jako ten punkt zbioru A , dla którego wartość (q, p) jest najmniejsza oraz d E (q, p) . W przypadku, gdy istnieje kilka takich punktów, wybierany jest spośród nich punkt najbardziej odległy od punktu p. Następnie p q i iteracja kontynuowana jest dopóty, dopóki d E (p, p H ) . Lewy łańcuch obliczany jest w sposób analogiczny od punktu p H do punktu p L w układzie współrzędnych kartezjańskich o przeciwnie skierowanych osiach (to jest w układzie współrzędnych obróconym o 180 względem układu oryginalnego). Dla dowolnych punktów q1 , q 2 A , porównanie wartości (q1 , p) i (q 2 , p) może być dokonane wydajnie bez potrzeby jawnego obliczania tych kątów przy wykorzystaniu podwojonej wartości pola trójkąta (p, q 2 , q1 ) ze znakiem1, to jest na podstawie wartości 2(p, q 2 , q1 ) x(q 2 p) y (q1 p) y (q 2 p) x(q1 p) , (6.17a) gdzie x(.) i y (.) oznaczają odpowiednio współrzędną x i współrzędną y danego wektora. Spełnione są następujące zależności (Preparata i Shamos [120, s. 106]): oraz (q 2 , p) (q1 , p) 2 (p, q 2 , q1 ) 0 (6.17b) (q 2 , p) (q1 , p) 2(p, q 2 , q1 ) 0 . (6.17c) Najniższy i najwyższy punkt atraktora obliczane są równolegle z dokładnością na podstawie pokrycia atraktora kołami o promieniach nie większych niż i środkach w zbiorze A , przy użyciu modyfikacji algorytmu adaptacyjnych odcięć o następującej postaci: Innymi słowy, jest to pole (ze znakiem) równoległościanu o krawędziach e1 pq1 i e 2 pq 2 i stąd obliczane jako det[e 2 , e1 ] . 1 168 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Figury ograniczające – wielokąty i wielościany wypukłe procedure LoHiPoints( f ) begin for each i {1,, N } do begin g f wi ; c g g (c) ; rg r Lip( g ) ; if rg then begin if y (c g ) y (p L ) or ( y (c g ) y (p L ) and x(c g ) x(p L ) ) then pL cg ; if y (c g ) y (p H ) or ( y (c g ) y (p H ) and y (c g ) y (p H ) ) then pH cg ; end if; else if y (c g ) rg y (p L ) or y (c g ) rg y (p H ) then LoHiPoints( g ); end for; end. gdzie c i r reprezentują odpowiednio środek i promień (domkniętego) koła zawierającego atraktor IFS. (Koło takie można wyznaczyć za pomocą jednego z algorytmów pośrednich opisanych w poprzednim rozdziale.) Poszukiwane punkty umieszczane są w zmiennych globalnych p L i p H i są one obliczane poprzez wywołanie powyższej procedury dla f = id i początkowej wartości zmiennych p L i p H równych odpowiednio [, ] i [, ] . Wierzchołki prawego łańcucha wielokąta P ( ) obliczane są również przy wykorzystaniu zasad algorytmu adaptacyjnych odcięć. W tym celu stosowany jest następujący algorytm, który wyznacza kolejny wierzchołek q sekwencji na podstawie ostatnio wyznaczonego wierzchołka p: 1. 2. 3. 4. 5. 6. 7. 8. 9. procedure WrapNextRVert( f ) begin for each i {1,, N } do begin g f wi ; t g g (c) p ; rg r Lip( g ) ; if rg then if || t g ||E then begin Area x(t g ) y (t new ) y (t g ) x(t new ) ; if Area 0 or ( Area 0 and || t g ||E || t new ||E ) then t new t g ; end if; Figury ograniczające – wielokąty i wielościany wypukłe 10. 11. 12. 13. else if || t g ||E rg then WrapNextRVert( g ); else begin Area x(t new ) y (t g ) y (t new ) x(t g ) ; 14. 15. if Area || t g ||2E rg2 rg t g t new then WrapNextRVert( g ); end else; end for; 169 end. gdzie, jak poprzednio, c i r reprezentują odpowiednio środek i promień koła zawierającego atraktor IFS. Nowy wierzchołek obliczany jest w formie wektora przesunięcia t new względem współrzędnych wierzchołka poprzedniego p, a zatem q p t new . Podobnie jak w algorytmie wyznaczania najniższego i najwyższego punktu atraktora, procedura WrapNextRVert rozpoczyna się od obliczenia, dla każdego odwzorowania wi, środka i promienia koła B ( g (c), rg ) zawierającego podzbiór g ( A ) , g f wi , atraktora (linie 1–4). Analogicznie jak w przypadku nowego wierzchołka q, współrzędne środka określane są w formie translacji względem wierzchołka p i zapamiętywane w zmiennej globalnej t g (linia 3). Jeśli długość promienia rg nie przekracza dozwolonego błędu aproksymacji (linia 5), to punkt g(c) aproksymuje podzbiór g ( A ) atraktora z zadaną dokładnością względem metryki Hausdorffa. Stąd punkt g(c) jest kandydatem na następny wierzchołek prawego łańcucha, o czym decyduje wynik porównania kątów ( g (c), p) i (p t new , p) opartego na zależnościach (6.17) (linie 7 i 8), po uprzednim sprawdzeniu warunku d E ( g (c), p) (linia 6). Jeśli punkt g(c) spełnia wskazane warunki, to jest uznawany za punkt o mniejszym kącie ( g (c), p) aniżeli dotychczas znaleziony najmniejszy kąt (p t new , p) i wektor translacji t g zastępuje bieżące przesunięcie t new (linia 9). Jeśli promień rg przekracza wartość , to koło B ( g (c), rg ) testowane jest pod względem zawierania potencjalnych punktów o kątach nie większych aniżeli dotychczas znaleziony najmniejszy kąt . Test (linie 10–14) opiera się na następującym twierdzeniu: Twierdzenie 6.3. Dla danych punktów p, q1 R 2 , (q1 , p) 0 , i koła B (c, r ) , istnieje należący do tego koła punkt q 2 taki, że (q 2 , p) (q1 , p) wtedy i tylko wtedy, gdy: (a) || c p ||2E r 2 lub (b) || c p ||2E r 2 i 2 (p, q1 , c) || c p ||2E r 2 r (q1 p) (c p) . 170 Figury ograniczające – wielokąty i wielościany wypukłe Dowód. Dla wykazania prawdziwości twierdzenia kluczowa jest interpretacja geometryczna nierówności zawartej w części (b). Niech p B (c, r ) Wtedy inf{(b, p) : b B (c, r )} 0 oraz !z B (c, r ), (z, p) inf{(b, p) : b B (c, r )} przy czym punkt z wyznaczony jest przez styczną do brzegu koła B (c, r ) przechodzącą przez p (rys. 6.7). Wobec tego, współrzędne punktu z mogą być wyrażone przy użyciu współrzędnych punktów c i p jako x(z ) s ( x(c) cos y (c)sin ) x(p), y (z ) s ( x(c)sin y (c) cos ) y (p), dla pewnego s 0 , gdzie sin || c p ||2E r 2 r i cos . || c p ||E || c p ||E Rys. 6.7. Ilustracja twierdzenia 6.3 Na podstawie powyższego i zależności (6.17), dla dowolnego q R 2 , (q, p) 0 , inf{(b, p) : b B (c, r )} (q, p) x(z p) y (q p) y (z p) z (q p) . Równoważność ta, po podstawieniu współrzędnych punktu z w drugiej nierówności i dokonaniu elementarnych przekształceń algebraicznych, przybiera postać znaną z części (b) twierdzenia: inf{(b, p) : b B (c, r )} (q, p) 2 (p, q, c) || c p ||2E r 2 r (q p) (c p). (6.18) Figury ograniczające – wielokąty i wielościany wypukłe 171 Zajmiemy się teraz właściwym dowodem. Niech spełnione będzie założenie zawarte w części (a) lub części (b) twierdzenia. Założenie || c p ||2E r 2 (które jest równoważne, że p B (c, r ) ) pociąga za sobą istnienie punktu q 2 , o którym mowa w twierdzeniu, w sposób oczywisty. Z kolei założenie prawdziwości założenia zawartego w części (b) gwarantuje istnienie punktu q 2 na podstawie równoważności (6.18). Załóżmy teraz odwrotnie, że rozważany punkt q 2 istnieje. Wtedy oczywiście p B (c, r ) lub p B (c, r ) . W tym drugim przypadku inf{(b, p) : b B (c, r )} (q 2 , p) ponieważ q 2 B (c, r ) . Dodatkowo (q 2 , p) (q1 , p) , zatem inf{(b, p) : b B (c, r )} (q1 , p) , co na podstawie równoważności (6.18) jest tożsame z nierównością zawartą w części (b) twierdzenia. W przypadku zachodzenia jednego z warunków, o których mowa w powyższym twierdzeniu, wspomniane punkty należą do koła B ( g (c), rg ) , a zatem zawarty w tym kole podzbiór g ( A ) atraktora również może takie punkty posiadać. W takich okolicznościach, w celu wykrycia tych potencjalnych punktów w podzbiorze g ( A ) , procedura WrapNextRVert wywoływana jest rekurencyjnie dla złożenia g odwzorowań IFS (linie 11 i 15). Rys. 6.8. Koncepcja działania algorytmu owijania atraktora 172 Figury ograniczające – wielokąty i wielościany wypukłe Kolejne wierzchołki p k (k = 1,2,...) prawego łańcucha wielokąta P ( ) wyznaczane są sekwencyjnie poprzez iteracyjne wywoływanie procedury WrapNextRVert dla argumentu f = id oraz wartości zmiennej globalnej p p k 1 , p 0 p L , i początkowej wartości zmiennej globalnej t new 0 . Iteracja kontynuowana jest dopóty, dopóki długość zwróconego wektora t new jest równa zeru, a więc gdy spełniona jest zależność d E (p k , p H ) . Koncepcję działania algorytmu zilustrowano na rys. 6.8. Sekwencja wierzchołków lewego łańcucha obliczana jest analogicznie, z tą różnicą, że kąty (q, p) wyznaczane są względem przeciwnie skierowanej osi X. W rezultacie implementacja odpowiedniej procedury jest niemalże identyczna z tą przedstawioną wyżej, z wyjątkiem linii 3, która dla wierzchołków lewego łańcucha powinna przyjąć postać: t g p g (c) . W twierdzeniu 6.5 pokazano, że wielokąt otrzymany za pomocą omawianego algorytmu aproksymuje otoczkę wypukłą atraktora z błędem nie większym niż zadana minimalna odległość między sąsiednimi wierzchołkami tego wielokąta. Do wykazania tego faktu potrzebny będzie następujący lemat: Lemat 6.4. Niech A, B H (R 2 ) . Wtedy d ( A, B ) d (conv( A), B ) . Dowód. Załóżmy dla dowodu nie wprost, że d ( A, B ) i d (conv( A), B ) . Druga z nierówności implikuje, że istnieje punkt c conv( A) taki, że dla każdego b B , || c b || . Jeśli jednak c conv( A) , to na podstawie lematu 2.20, 3 c i ai dla pewnych a1 , a 2 , a3 A i i 1 każdego b B , || c b || 3 i ai b i 1 3 i 1 i 1 , i 0 . Na tej podstawie, dla 3 3 i 1 i 1 i (ai b) i || ai b || max || ai b || , i 1,2,3 dla pewnych a1 , a 2 , a3 A . Wobec tego, istnieje a A takie, że dla każdego b B , || a b || . Z założenia jednak d ( A, B ) , a zatem dla każdego a A , istnieje b B taki, że || a b || . Otrzymaliśmy sprzeczność. Stąd d (conv( A), B ) . Twierdzenie 6.5. Wielokąt P ( ) aproksymuje otoczkę conv( A ) z błędem nie większym aniżeli wartość 2 względem metryki Hausdorffa, to jest h( P ( ),conv( A )) 2 . Dowód. W celu wykazania prawdziwości twierdzenia musimy pokazać, że d (conv( A ), P ( )) 2 i d ( P ( ),conv( A )) 2 (por. definicja 2.12). Wykażemy najpierw prawdziwość pierwszej nierówności. Łatwo pokazać, że dla dowolnych podzbiorów A, B, C H (R 2 ) , d ( A B, C ) max(d ( A, C ), d ( B, C )) Figury ograniczające – wielokąty i wielościany wypukłe 173 oraz jeśli A B , to d ( A, B ) 0 . Na tej podstawie d ( A , P ( )) d (( A \ P ( )) ( A P ( )), P ( )) d ( A \ P( ), P( )) . (6.19) Niech a A \ P ( ) . Wtedy istnieje punkt b A taki, że || a b ||E . Ponadto, na podstawie konstrukcji wielokąta P ( ) , d (b, P ( )) . Wobec tego istnieje punkt q P ( ) taki, że || b q ||E . Wykorzystując nierówność trójkąta, otrzymujemy zatem, że dla każdego a A \ P ( ) istnieje q P ( ) taki, że || a q ||E 2 . Stąd, d ( A \ P ( ), P ( )) 2 i dalej, na podstawie (6.19), d ( A , P ( )) 2 . Stąd d (conv(A ), P ( )) 2 na podstawie lematu 6.4. Teraz wykażemy, że d ( P ( ),conv(A )) 2 . Wykorzystując analogiczną argumentację jak w dowodzie pierwszej nierówności, otrzymujemy d ({pi }ih01 ,conv(A )) d ({pi }ih01 \ conv(A ),conv(A )) , (6.20) gdzie {pi }ih01 jest zbiorem wierzchołków wielokąta P ( ) . Niech p {pi }ih01 \ conv(A ) . Wtedy równocześnie p A na podstawie konstrukcji wielokąta P ( ) . Wobec tego istnieje punkt a A taki, że || a p ||E . Równocześnie jednak a conv(A ) . Na tej podstawie, dla każdego p {pi }ih01 \ conv(A ) istnieje a conv(A ) taki, że || p a ||E . Stąd, na podstawie (6.20), d ({pi }ih01 ,conv(A )) i dalej, wykorzystując lemat 6.4, otrzymujemy d (conv({pi }ih01 ),conv(A )) , ale conv({pi }ih01 ) P ( ) , co kończy dowód twierdzenia. Rys. 6.9. Korekcja krawędzi przybliżenia otoczki wypukłej w celu osiągnięcia całkowitego zawierania się atraktora w tym wielokącie 174 Figury ograniczające – wielokąty i wielościany wypukłe Na podstawie twierdzenia 6.5, dowolny punkt a A znajduje się co najwyżej w odległości 2 od P ( ) . Zatem w celu zagwarantowania całkowitego zawierania się atraktora w wielokącie ograniczającym, pożądany wielokąt otrzymuje się poprzez translację krawędzi wielokąta P ( ) „na zewnątrz” o wartość 2 , zgodnie z zasadą zobrazowaną na rys. 6.9. W praktyce wyznaczanie wierzchołków pk nowego wielokąta sprowadza się do rozwiązania układów dwóch równań liniowych postaci n m pk n m p k 2 , m = 1,2, gdzie n m są wektorami normalnymi krawędzi przyległych do wierzchołka p k wielokąta P ( ) . Na rysunku 6.10 przedstawiono aproksymacje otoczek wypukłych przykładowych atraktorów IFS na przestrzeni R 2 otrzymane przy wykorzystaniu algorytmu omówionego w niniejszym podpunkcie. Rys. 6.10. Przybliżenia otoczek wypukłych przykładowych atraktorów IFS na przestrzeni R 2 otrzymane przy wykorzystaniu algorytmu owijania atraktora Figury ograniczające – wielokąty i wielościany wypukłe 175 Jak wspomniano na wstępie niniejszego podpunktu, uzyskane przybliżenie otoczki wypukłej atraktora IFS może zostać wykorzystane do wyznaczenia aproksymacji najmniejszego, względem pola powierzchni, prostokąta skierowanego zawierającego atraktor. W tym celu należy wykorzystać, znany w geometrii obliczeniowej, algorytm „obracających się suwmiarek” (ang. rotating calipers) (Toussaint [147]).Algorytm ten opiera się na ważnym twierdzeniu Freemana-Shapiry (Freeman i Shapira [40]) stwierdzającym, że jedna z krawędzi takiego prostokąta jest współliniowa z jedną z krawędzi zawartego w nim wielokąta wypukłego, Rys. 6.11. Przykłady zastosowania algorytmu owijania atraktora wraz z algorytmem suwmiarek do wyznaczania średnic przykładowych atraktorów afinicznych IFS na R 2 oraz, zawierających te atraktory, najmniejszych (względem pola powierzchni) prostokątów skierowanych i umożliwia obliczenie tego prostokąta w czasie O(q), gdzie q jest liczbą wierzchołków wielokąta. Co więcej, algorytm ten może zostać łatwo przeformułowany, tak aby w wyniku dawał – również w czasie O(q) – prostokąty ograniczające o najmniejszej średnicy (Pirzadeh [118]). Ponadto, zastosowanie metody suwmia- 176 Figury ograniczające – wielokąty i wielościany wypukłe rek do wielokta przybliżającego otoczkę wypukłą atraktora umożliwia aproksymację w czasie O(q) średnicy atraktora (Martyn [92], Toussaint [147]), ponieważ średnica zbioru jest równa średnicy jego otoczki wypukłej (Preparata i Shamos [120]). Na rysunku 6.11 przedstawiono przykłady wykorzystania omówionej metody owijania atraktora wraz z algorytmem suwmiarek do aproksymowania najmniejszych prostokątów ograniczających atraktory oraz średnic tych atraktorów. 6.4. PORÓWNANIE ALGORYTMÓW W celu porównania wyników otrzymywanych przy użyciu algorytmów omówionych w poprzednich punktach, na rys. 6.12 przedstawiono wykres obrazujący stosunek pól zbiorów ograniczających, uzyskanych za pomocą tych algorytmów, do pola otoczki wypukłej wyznaczonej metodą owijania atraktora. Zaprezentowane wyniki dotyczą zbioru dziewięciu atraktorów afinicznych IFS na przestrzeni R 2 , które posłużyły jako przykłady na rysunkach przedstawionych w niniejszym rozdziale. Podobnie jak w przypadku zagadnienia kul ograniczających, główną zaletą metod pośrednich (i metod quasi-pośrednich) wyznaczania hipersześcianów i prostopadłościanów ograniczających jest przede wszystkim stosunkowo niewielka złożoność obliczeniowa. Dodatkowo, algorytmy te są ogólne w sensie typu odwzorowań wchodzących w skład układu IFS, bowiem umożliwiają wyznaczanie rozważanych zbiorów ograniczających atraktory zarówno afinicznych układów IFS, jak i IFS nieliniowych. Przy założeniu, że wymiar przestrzeni jest ustalony, metody wyznaczania hipersześcianów ograniczających na podstawie wzorów (6.3), (6.4) i (6.5) charakteryzują się czasem obliczeń rzędu O(N), gdzie N jest liczbą odwzorowań wchodzących w skład układu IFS. Niestety, jak widać na rys. 6.12 (dane: Estm 1, Estm 2 i Estm 3), rozmiary zbiorów ograniczających wyznaczonych przy wykorzystaniu tych podejść na ogół znacznie przekraczają rozmiary zbiorów uzyskanych innymi metodami. Zwykle lepsze wyniki uzyskuje się wyznaczając – zamiast hipersześcianów AAB – prostopadłościany AAB za pomocą – zaproponowanej przez autora w niniejszej pracy, metody quasi-pośredniej, opartej na proporcjach rozmiarów atraktora wzdłuż poszczególnych osi układu współrzędnych (dane AAB). Odbywa się to jednak kosztem zwiększenia nakładu obliczeń, które muszą być dodatkowo poświęcone na oszacowanie tych proporcji. Poprawę jakości wyników dostarczanych przez tę metodę otrzymuje się, stosując jej wariant służący do wyznaczania skierowanych prostopadłościanów ograniczających, który wykorzystuje macierz kowariancji punktów atraktora (dane Cov). Jak pokazano na rys. 6.12, znaczne lepsze wyniki, w stosunku do otrzymanych przy użyciu metod pośrednich i quasi-pośrednich, uzyskuje się za pomocą metod bezpośrednich (dane: Cov min, Caliper, Lin prog, Vertex cut). Ich zastosowanie Figury ograniczające – wielokąty i wielościany wypukłe 177 ogranicza się jednak do atraktorów afinicznych IFS i pociąga za sobą nieco większy nakład obliczeń, aniżeli w przypadku metod pośrednich. Rys. 6.12. Wykres obrazujący ilorazy pól zbiorów ograniczających otrzymanych przy użyciu algorytmów opisanych w niniejszym rozdziale do pola otoczki wypukłej uzyskanej metodą owijania atraktora. Prezentowane wyniki dotyczą atraktorów IFS na R2, które zostały wykorzystane na poprzednich rysunkach rozdziału. Zastosowane w legendzie skróty oznaczają odpowiednio: Estm 1 – szacowanie „promienia” kwadratu przy użyciu wzoru (6.3), Estm 2 – szacowanie „promienia” kwadratu przy użyciu wzoru (6.4), Estm 3 – szacowanie „promienia” kwadratu przy użyciu wzoru (6.5), AAB – metoda pośrednia wyznaczania prostokąta AAB przy wykorzystaniu proporcji (6.6), Cov – metoda pośrednia wyznaczania prostokąta skierowanego przy wykorzystaniu macierzy kowariancji, Cov min – metoda bezpośrednia wyznaczania prostokąta skierowanego wykorzystująca pokrycie atraktora (podpunkt 6.2.2), Caliper – metoda wyznaczania najmniejszych prostokątów skierowanych przy wykorzystaniu algorytmu owijania atraktora wraz z algorytmem suwmiarek, Lin prog – metoda oparta na programowaniu liniowym z podpunktu 6.3.1 (ośmiokąty ograniczające), Vertex cut – metoda odcinania wierzchołków z podpunktu 6.3.2 (ośmiokąty ograniczające) Z punktu widzenia ogólnych zastosowań figur ograniczających w grafice komputerowej, spośród metod bezpośrednich na szczególną uwagę zasługują metody opisane w podpunkcie 6.2.2, w przypadku których wykorzystuje się pokrycie atraktora prostopadłościanami AAB. Metody te pozwalają w sposób wydajny wyznaczać zarówno najmniejsze ograniczające prostopadłościany AAB, jak i ograniczające prostopadłościany skierowane. Najmniejsze prostopadłościany AAB wyznaczane są z dowolną zadaną dokładnością. Natomiast rozmiary ograniczających prostopadłościanów skierowanych zwykle niewiele odbiegają od rozmiarów najmniejszych pro- 178 Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora stopadłościanów skierowanych (por. dane Cov min i Caliper). Co więcej, jak pokazano na rys. 6.12, w przypadku atraktorów afinicznych IFS na przestrzeni R 2 pole powierzchni skierowanego prostokąta ograniczającego otrzymanego rozważaną metodą jest zwykle niewiele większe od pola powierzchni otoczki wypukłej atraktora oraz bliskie polu powierzchni ośmiokątów ograniczających wyznaczonych przy wykorzystaniu metody opartej na programowaniu liniowym i metody odcinania wierzchołków (dane Lin prog i Vertex cut). Cechy te powodują, że prostokąty i prostopadłościany wyznaczane rozważaną metodą na ogół wystarczają w przypadku większości standardowych zastosowań figur ograniczających w grafice komputerowej. Niemniej, w niektórych zastosowaniach pożądana jest dokładność przybliżenia geometrii atraktora przez figurę ograniczającą większa niż dokładność dana przez prostokąty i prostopadłościany. Porównanie jakości wyników otrzymywanych przy wykorzystaniu – zaproponowanej przez autora (Martyn [89, 91]) – metody odcinania wierzchołków (dane Vertex cut) z odpowiednimi wynikami uzyskiwanymi za pomocą konkurencyjnej metody opartej na programowaniu liniowym (dane Lin prog) pokazuje, że pierwsza z metod jest nieco lepsza. Dodatkowo, w odróżnieniu od drugiej metody, metoda odcinania wierzchołków umożliwia wyznaczanie wielokątów i wielościanów ograniczających o liczbie krawędzi lub ścian nieprzekraczającej z góry ustalonej liczby bez żadnych dodatkowych modyfikacji układu IFS. Niejako z założenia, najlepszym algorytmem pod względem jakości otrzymywanych wyników jest – przedstawiony w artykule (Martyn [92]) – algorytm owijania atraktora (podpunkt 6.3.3), który wyznacza, z zadaną dokładnością, otoczkę wypukłą atraktora. Co więcej, wyniki uzyskane przy użyciu tego algorytmu mogą zostać następnie wykorzystane do wyznaczania najmniejszego prostokąta skierowanego ograniczającego atraktor za pomocą algorytmu suwmiarek. Niestety, jak dotychczas, zastosowanie tego algorytmu ogranicza się jedynie do układów afinicznych IFS na przestrzeni R 2 . 7. WYZNACZANIE PRZECIĘCIA PÓŁPROSTEJ Z ATRAKTOREM I ODLEGŁOŚCI PUNKTU OD ATRAKTORA 7.1. WPROWADZENIE Zagadnienie testowania istnienia przecięć półprostych (czyli tzw. promieni – ang. rays) z obiektami sceny oraz zagadnienie wyznaczania takich przecięć należą do elementarnych i zarazem ważnych zagadnień grafiki komputerowej. Efektywne algorytmy realizujące te zadania stanowią niezbędny składnik podstawowych dla Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora 179 grafiki komputerowej problemów takich, jak choćby testowanie widzialności obiektów, oświetlanie i cieniowanie obiektów czy detekcja kolizji między obiektami. Zagadnienie „przecięcia promienia z obiektem” można sformułować w sposób ogólny w następującej postaci: Dla danego domkniętego zbioru S R n i półprostej R (o, d) {o t d : t [0, )} (7.1) o początku w punkcie o R n i wektorze kierunkowym d R n , wyznacz podzbiór przecięcia R (o, d) S spełniający warunek cond. W szczególności, w przypadku niepustego przecięcia R (o, d) S , warunek cond formułowany jest zwykle tak, że spełniony jest on jedynie wtedy, gdy: (a) jest singletonem składającym się z punktu R (o, d; tmin ) leżącego najbliżej punktu o (tzw. najbliższe przecięcie), tj. punktu półprostej, dla którego parametr tmin min{t [0, ) : R (o, d; t ) S } (test widzialności, generowanie mapy otoczeń i światła, unikanie kolizji); (b) jest singletonem składającym się z dowolnego punktu przecięcia (wyznaczanie obszarów znajdujących się w cieniu); (c) jest równy pełnemu zbiorowi R (o, d) S (wizualizacja wolumetryczna). Gdy zbiorem S jest atraktor IFS, rozważane zagadnienie może być rozwiązane jedynie ze skończoną dokładnością. W związku z tym należy zauważyć, że skończona dokładność otrzymywanych wyników nie jest w tym przypadku wadą, ale zaletą. Atraktory IFS są bowiem zwykle fraktalami, zaś n-wymiarowa miara Lebesgue’a fraktali jest na ogół równa zeru. Stąd wynikiem działania hipotetycznego idealnego algorytmu wyznaczania przecięcia półprostej z atraktorem byłby prawie zawsze (to jest z prawdopodobieństwem równym 1) zbiór pusty. Z punktu widzenia teorii prawdopodobieństwa bowiem, w takich okolicznościach zaistnienie niepustego przecięcia półprostej z atraktorem byłoby zdarzeniem elementarnym należącym do zbioru zdarzeń o zerowej mierze. Znane algorytmy rozwiązywania omawianego problemu opierają swe obliczenia na przybliżeniach atraktora przy użyciu skończonego pokrycia tego zbioru kolekcją figur euklidesowych o średnicach nieprzekraczających zadanej dokładności aproksymacji. Najprostsze podejście wykorzystuje w tym celu ograniczony, „kubiczny” podzbiór -siatki (tzw. wolumen) i jeden z algorytmów aproksymacji atraktora opisanych w rozdz. 4. W takim rozwiązaniu poszukiwany podzbiór przecięcia łatwo wyznaczyć, wykorzystując na przykład – stosowane w wizualizacji wolumetrycznej – techniki próbkowania przestrzeni wokselowej oparte na wariancie algorytmu Bresenhama (Foley i inni [37]). Reprezentacja wolumetryczna zbioru w przestrzeni R n charakteryzuje się jednak zapotrzebowaniem pamięciowym rzędu O( n ) . W rezultacie, wymogi pamięciowe opisywanego podejścia są duże nawet w przypadku stosunkowo niewielkiej dokładności aproksymacji. Ponadto, ze względu na zwykle skomplikowaną, „fraktalną topologię” atraktorów 180 Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora IFS, znaczny procent wokseli przechowywanego w pamięci wolumenu nie ma części wspólnej z atraktorem aproksymowanym przez ten wolumen (tzw. puste woksele). W kontekście rozważanego zagadnienia wyznaczania przecięcia półprostej z atraktorem woksele takie nic nie wnoszą do poszukiwanego rozwiązania. Wobec tego, przechowywanie w pamięci zawartej w nich informacji o „braku informacji o atraktorze” z tą samą dokładnością, co przechowywanie istotnej informacji o zajętości przestrzennej atraktora, z punktu widzenia ekonomii zarządzania zasobami pamięciowymi może być rozpatrywane jako marnotrawienie tych zasobów. W przypadku atraktorów na przestrzeni R 3 (odpowiednio: na przestrzeni R 2 ) pewnym remedium dla takiego stanu rzeczy może być przekształcenie oryginalnej reprezentacji wolumetrycznej atraktora w reprezentację wykorzystującą niezrównoważone drzewo ósemkowe (odpowiednio: drzewo czwórkowe) (Akenine-Möller i Haines [1]). W drzewie takim warunkiem koniecznym do tego, aby węzeł posiadał węzły potomne, jest istnienie niepustego przecięcia tego węzła z atraktorem. Główną cechą takiego podejścia jest to, że – podobnie jak oryginalna reprezentacja wolumetryczna atraktora – reprezentacja w postaci drzewa ósemkowego (lub czwórkowego) wyznaczana jest w fazie obliczeń wstępnych. Dlatego musi być ona obecna w pamięci podczas procesu poszukiwania przecięcia. W konsekwencji, choć rząd złożoności pamięciowej algorytmu wykorzystującego tę reprezentację jest stały (dla ustalonej dokładności aproksymacji), to jednak w praktyce jego zapotrzebowanie pamięciowe jest duże i niezależne od liczby punktów poszukiwanego przecięcia. W odniesieniu do większości zastosowań w grafice komputerowej, brak zależności wymogów pamięciowych od wyniku, charakteryzujący taki algorytm, rozpatrywany jest jako cecha niekorzystna. Należy bowiem zauważyć, że na ogół jedynie niewielka część pamiętanych wokseli przecinana jest przez daną półprostą, czego skrajnym przykładem jest przypadek braku przecięcia półprostej z aproksymacją atraktora. Jeśli natomiast zadaniem jest wyznaczenie pełnych zbiorów przecięcia dla wielu półprostych oraz znaczny ich procent posiada niepuste przecięcie ze zbiorem aproksymującym atraktor, to opisywane podejście często można uznać za akceptowalne. W grafice komputerowej z sytuacją taką (lub zbliżoną) mamy na przykład do czynienia w zagadnieniach wizualizacji wolumetrycznej. Niemniej, w przypadkach o wiele częściej spotykanych, w których wymagane jest wyznaczenie najbliższych lub dowolnych przecięć półprostych z atraktorem, zwykle lepszym wyborem jest zastosowanie w tym celu algorytmów adaptacyjnych opartych na dynamicznej strukturze aproksymującej atraktor. Podobnie jak drzewa ósemkowe i czwórkowe, wspomniana struktura ma postać drzewa figur ograniczających podzbiory atraktora. W odróżnieniu jednakże od tych pierwszych, poszczególne części tej struktury mogą być dynamicznie tworzone w mia- Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora 181 rę potrzeby i następnie usuwane bezpośrednio w procesie wyznaczania przecięcia, zgodnie z ideą algorytmu adaptacyjnych odcięć (punkt 3.2). Szczegółowemu omówieniu tych algorytmów poświęcono punkt następny niniejszego rozdziału. W bliskim związku z problemem przecięcia pozostaje zagadnienie obliczania odległości punktu od atraktora: d (p, A ) inf{d E (p, a) : a A } (7.2) dla danego p R i metryki euklidesowej d E (prawa strona wyrażenia). W grafice komputerowej problem ten występuje głównie w zagadnieniach wykrywania i unikania kolizji między obiektami sceny. Algorytmy wyznaczania odległości punktu od zbioru wykorzystywane są również w estymacji wektorów normalnych w punktach atraktora (punkt 8.4) oraz w niektórych metodach wizualizacji fraktali (podpunkt 9.1.5) (Hepting i inni [56]), (Hart i inni [53]). Ponieważ atraktor IFS składa się z nieskończonej liczby punktów1, wartość wyrażenia (7.2) w ogólnym przypadku może co najwyżej oszacowana z dołu z zadaną, skończoną dokładnością. Podobnie jak ma to miejsce w problemie przecięcia, algorytmy obliczania rozważanej odległości oparte są na strukturze drzewa opisującego hierarchiczne uporządkowanie podzbiorów atraktora. Drzewo takie można utworzyć w fazie obliczeń wstępnych (np. w przypadku atraktorów na przestrzeni R 3 i R 2 jako drzewo ósemkowe lub czwórkowe) na przykład na podstawie aproksymacji wolumetrycznej atraktora. Podejście takie obarczone jest jednak tymi samymi wadami dotyczącymi wymogów pamięciowych, jak wymienione przy okazji omawiania problemu przecięcia. Dlatego efektywne (zarówno pod względem pamięciowym, jak i obliczeniowym) metody rozwiązywania tego problemu wykorzystują – analogicznie jak wspomniane algorytmy wyznaczania przecięcia – drzewo dynamiczne, w którym poszczególne węzły są tworzone i usuwane w trakcie obliczania poszukiwanej odległości. Omówieniu tego zagadnienia poświęcono punkt 7.3. n 7.2. WYZNACZANIE PRZECIĘCIA PÓŁPROSTEJ Z ATRAKTOREM 7.2.1. Hierarchia figur ograniczających Jedną z ważniejszych metod przyspieszania obliczeń, które leżą u podstaw zapytań dotyczących relacji przestrzennych między obiektami geometrycznymi, jest technika polegająca na zastosowaniu pomocniczej struktury hierarchicznego uporządkowania figur ograniczających. Zgodnie z przyjmowaną w grafice komputerowej definicją, hierarchia figur ograniczających (ang. hierarchy of bounding voluWyjąwszy przypadki zdegenerowane, w których układ IFS składa się wyłącznie z odwzorowań o stałych Lipschitza równych zeru. 1 182 Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora mes) powstaje przez utworzenie drzewa, w którego węzłach przechowywane są figury ograniczające zgodnie z regułą, że figury znajdujące się węzłach potomnych zawierają się w figurze węzła-przodka. W poszczególnych liściach drzewa znajdują się zaś figury ograniczające właściwe obiekty będące przedmiotem analizy1. Hierarchia figur ograniczających definiuje zatem pomocniczą relację zależności przestrzennych między samymi obiektami oraz grupami tych obiektów. Odpowiednie wykorzystanie tej informacji pozwala na ogół w praktyce znacznie zredukować koszt obliczeniowy odpowiedzi na wspomniane zapytania. W szczególności, w przypadku zapytań dotyczących istnienia przecięcia półprostej ze skończonym zbiorem m obiektów geometrycznych, warunkiem koniecznym przecinania danego obiektu przez półprostą jest istnienie przecięcia z figurą ograniczającą znajdującą się w odpowiednim liściu hierarchii oraz z figurami ograniczającymi znajdującymi się we wszystkich węzłach-przodkach tego liścia. Stąd, jeśli półprosta nie przecina figury ograniczającej pewnego węzła-przodka, to nie ma potrzeby przeprowadzania testu przecięcia w odniesieniu do figur znajdujących się w węzłach potomnych. Wobec tego, zastosowanie hierarchii figur ograniczających dla tego typu zapytań pozwala zredukować minimalną wymaganą liczbę testów przecięcia z O(m) do O(log m) w przypadku istnienia przecięcia półprostej z obiektem zbioru (pierwszy napotkany liść hierarchii określa poszukiwane przecięcie) oraz z O(m) do O(1) w przypadku braku takiego przecięcia (półprosta nie przecina figury znajdującej się w korzeniu hierarchii) (Martyn [81]). 7.2.2. Drzewo figur ograniczających podzbiory atraktora Przedstawione w punkcie 7.2.1 idee mogą być z powodzeniem wykorzystane do rozwiązywania zagadnień dotyczących relacji przestrzennych określonych dla atraktorów IFS. W tym celu atraktor A układu IFS {w1 ,..., wN } rozpatrywany jest jako obiekt złożony ze skończonej liczby podzbiorów postaci wi1 ... wik ( A ) o odpowiednio małych rozmiarach. Rozkład atraktora na wskazane podzbiory jest naturalną konsekwencją samopodobnej struktury atraktorów IFS, która została przedstawiona w punkcie 3.2.1 (por. rys. 3.1). Z punktu widzenia konstruowanego drzewa figur ograniczających, wspomniane podzbiory postrzegane są jako niepodzielne, właściwe obiekty geometryczne, których figury ograniczające będą przechowywane w liściach drzewa. Ponieważ suma mnogościowa podzbiorów rozkładu atraktora jest równa atraktorowi, zatem suma mnogościowa figur ograniczających znajdujących się w węzłach-liściach zawiera atraktor. Ponadto, jeśli średnice rozważanych figur nie przekraczają pewnej wartości , to rodzina tych figur stanowi -pokrycie atraktora. Zatem w takich Cecha ta odróżnia hierarchię figur ograniczających od drzew ósemkowych/czwórkowych, bowiem w tych ostatnich figury znajdujące się w liściach drzewa mogą nie zawierać żadnych obiektów geometrycznych z analizowanej kolekcji. 1 Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora 183 okolicznościach, suma mnogościowa tych figur będzie aproksymowała atraktor z błędem nie większym niż względem metryki Hausdorffa. W literaturze przedmiotu istnieje kilka ogólnych strategii tworzenia hierarchii figur ograniczających (Akenine-Möller i Haines [1, s. 641]) dla obiektów geometrycznych, jednakże w przypadku atraktorów IFS najbardziej naturalnym podejściem jest metoda eksploatująca samopodobieństwo tych zbiorów na zasadach analogicznych do tych, które są podstawą dla algorytmu adaptacyjnych odcięć (punkt 3.2). Ogólna idea tworzenia drzewa figur ograniczających dla atraktorów IFS przedstawia się następująco: Niech B będzie figurą ograniczającą atraktor A IFS {w1 ,..., wN } przechowywaną w korzeniu drzewa. W klasycznym podejściu budowa drzewa odbywa się poprzez rekurencyjne wyznaczanie obrazów figury B przy złożeniach odwzorowań IFS zgodnie z regułami, w myśl których: w ęzeł drzewa jest liściem wtedy i tylko wtedy, gdy średnica przechowywanej w tym węźle figury wi1 ... wi j ( B ) jest nie większa niż określona dokładność aproksymacji 0 ; w przypadku przeciwnym, węzeł jest przodkiem N węzłów potomnych przechowujących figury wi1 ... wi j wi j1 ( B ) , i j 1 1,..., N . Proces tworzenia omawianego drzewa figur ograniczających zilustrowano na rys. 7.1. Rys. 7.1. Schemat tworzenia drzewa figur ograniczających atraktor IFS 184 Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora Należy zwrócić uwagę, że tak określone drzewo w ogólnym przypadku nie spełnia dokładnie przytoczonej w poprzednim podpunkcie definicji hierarchii figur ograniczających. Powyższe reguły nie gwarantują bowiem, że figura węzła-przodka będzie zawierała w całości figury ograniczające znajdujące się w węzłach potomnych. Jednakże, dla dowolnego podzbioru wi1 ... wik ( A ) atraktora, każda z figur ograniczających sekwencji {B, wi1 ( B ) , wi1 wi2 ( B ) ,..., wi1 wi2 ... wik ( B ) } wytyczającej ścieżkę od korzenia do węzła przechowującego figurę wi1 wi2 ... wik ( B ) zawiera ten podzbiór, bowiem B A wi1 ... wi j ( B ) wi1 ... wi j ( A ) wi1 ... wi j (W ( k j ) ( A )) wi1 ... wik ( A ) , j {1,..., k} gdzie W jest operatorem Hutchinsona skojarzonym z IFS. Wyznaczenie przecięcia półprostej z atraktorem za pomocą wyżej zdefiniowanego drzewa figur ograniczających sprowadza się do wyznaczenia przecięcia półprostej ze zbiorem figur ograniczających znajdujących się węzłach-liściach. Podczas przeszukiwania drzewa w głąb począwszy od korzenia, testowane są przecięcia półprostej z figurami ograniczającymi znajdującymi się w odwiedzanych węzłach. Warunkiem koniecznym dokonania testu przecięcia z figurą wi1 ... wi j wi j1 ( B ) jest istnienie niepustego przecięcia półprostej z figurą wi1 ... wi j ( B ) znajdującą się w węźle-przodku. W przypadku wykrycia niepustego przecięcia półprostej z figurą znajdującą się w węźle-liściu przyjmuje się, że półprosta przecina atraktor, zaś punkt przecięcia półprostej z figurą leżący najbliżej początku półprostej uznaje się za jeden z punktów przecięcia półprostej z atraktorem. Jak już zauważono, figury znajdujące się w liściach aproksymują atraktor z określoną dokładnością. Wobec tego, powyższy sposób określania punktów przecięcia jest przybliżeniem rzeczywistego przecięcia półprostej z atraktorem za pomocą punktów półprostej leżących od atraktora nie dalej, aniżeli zadana dokładność obliczeń . 7.2.3. Adaptacyjne wyznaczanie przecięcia – algorytmy wzorcowe Drzewo figur ograniczających podzbiory atraktora może być zbudowane w fazie obliczeń wstępnych poprzedzających właściwy proces wyznaczania przecięcia. Podejście takie wymaga jednakże przechowywania w pamięci całego drzewa podczas tego procesu, co zwykle nie jest rozwiązaniem opłacalnym z powodów podanych w punkcie 7.1. Co więcej, ponieważ liczba figur ograniczających znajdujących się w liściach drzewa jest zwykle bardzo duża nawet w przypadku stosunkowo niewielkiej dokładności aproksymacji, rozwiązanie takie jest kosztowne pod względem wymagań pamięciowych. Problem ten jest szczególnie widoczny w praktycznych zastosowaniach omawianego zagadnienia przecięcia, takich jak wizualizacja Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora 185 metodą śledzenia promieni, gdzie efektownie prezentująca się scena może składać się z dziesiątków lub nawet setek atraktorów; patrz np. (Martyn [82, 85]). Rys. 7.2. Adaptacyjne wyznaczanie przecięcia półprostej z atraktorem Rozwiązaniem powyższego problemu jest niejawne zastosowanie wskazanej struktury drzewa polegające na wybiórczym tworzeniu i usuwaniu figur ograniczających w trakcie procesu wyznaczania przecięcia, w porządku określonym przez algorytm przeszukiwania drzewa. Metoda ta została po raz pierwszy wykorzystana w artykule (Kajiya [62]) do wyznaczania przecięcia półprostej z rekurencyjnie zdefiniowanymi stochastycznymi powierzchniami fraktalnymi. Jej adaptacja dla przypadku atraktorów IFS przedstawia się następująco: figura wi1 ... wi j wi j1 ( B ) jest tworzona jedynie wtedy, gdy figura wi1 ... wi j ( B ) jest przecinana przez półprostą i średnica tej figury przekracza dozwolony błąd aproksymacji (oraz ewentualnie punkt przecięcia spełnia dodatkowe przesłanki wynikające z warunku cond narzuconego na poszukiwany podzbiór przecięcia); fi gura wi1 ... wi j wi j1 ( B ) jest usuwana, jeśli poddrzewo o korzeniu reprezentowanym przez tę figurę nie będzie już eksplorowane. 186 Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora W ten sposób, w dowolnej chwili działania algorytmu wyznaczania przecięcia, w zasobach pamięciowych przechowywana jest sekwencja figur ograniczających należących tylko do jednej ścieżki drzewa, która jest „rozwijana” jedynie wtedy, gdy wymaga tego proces przeszukiwania, po czym jest automatycznie usuwana po zakończeniu testowania tej części drzewa. Ideę algorytmu przedstawiono na rys. 7.2. W konsekwencji, przy założeniu, że koszt pamiętania figury ograniczającej jest stały, koszt pamięciowy wyznaczania przecięcia zostaje zredukowany z O(m) do O(log m) , gdzie m jest liczbą wszystkich figur ograniczających, które byłyby przechowywane w liściach utworzonego drzewa. Przy założeniu stałego kosztu obliczania figur ograniczających, pesymistyczna złożoność obliczeniowa podejścia wynosi O(m) . Jest ona zatem takiego samego rzędu, jak w przypadku podejścia naiwnego polegającego na testowaniu przecięcia półprostej ze wszystkimi figurami ograniczającymi, których suma mnogościowa aproksymuje atraktor z zadaną dokładnością. Jednakże – jak wskazano w punkcie 7.2.1 – zastosowanie drzewa charakteryzuje się mniejszą złożonością obliczeniową optymistyczną, która wynosi O(log m) . Dotychczasowe rozważania zostaną podsumowane wzorcowym algorytmem adaptacyjnego wyznaczania przecięcia półprostej R (o, d) z atraktorem IFS {w1 ,..., wN } : 1. 2. 3. 4. 5. 6. 7. 8. 9. procedure RayAttractorIntersection( f ) begin B f f ( B) ; if R (o, d) B f then begin pint R (o, d; tmin ) , gdzie tmin min{t : R (o, d; t ) B f } ; if diam( B f ) then begin if IntersectionCond( pint ) then ActualizeIntersection( , pint ); end if; else if ExploreCond( pint ) then for each i {1,..., N } do RayAttractorIntersection( f wi ) end if; end. gdzie B jest figurą ograniczającą atraktor IFS, zaś – dozwolonym błędem aproksymacji przecięcia. Poszukiwany podzbiór przecięcia umieszczany jest w zmiennej globalnej i obliczany jest poprzez wywołanie powyższej procedury dla argumentu f = id i początkowej wartości równej . Warunki logiczne IntersectionCond( pint ) i ExploreCond( pint ) oraz funkcja ActualizeIntersection( , pint ), występujące w liniach 5, 7 i 6, przybierają odpo- Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora 187 wiednie wartości w zależności od definicji wspomnianego w punkcie 7.1 warunku cond, określającego poszukiwany podzbiór przecięcia półprostej z atraktorem. W przypadku poszukiwania: (a) najbliższego przecięcia, warunki IntersectionCond( pint ) i ExploreCond( pint ) są spełnione wtedy i tylko wtedy, gdy d E (o, pint ) d (o, ) , zaś wartością funkcji ActualizeIntersection( , pint ) jest singleton {pint } ; (b) dowolnego przecięcia, warunek IntersectionCond( pint ) jest spełniony zawsze, warunek ExploreCond( pint ) jest spełniony wtedy i tylko wtedy, gdy , zaś wartością funkcji ActualizeIntersection( , pint ) jest singleton {pint } ; (c) pełnego przecięcia, warunki IntersectionCond( pint ) i ExploreCond( pint ) są spełnione zawsze, zaś wartością funkcji ActualizeIntersection( , pint ) jest zbiór {pint } . Całkowity czas wyznaczania zadanego podzbioru przecięcia uzależniony jest w znacznej mierze od szybkości, z jaką eliminowane są z dalszych przeszukiwań te ścieżki drzewa, których liście zawierają figury ograniczające nieprzecinane przez półprostą. Niech B f oznacza figurę ograniczającą podzbiór f ( A ) atraktora, gdzie f wi1 ... wi j jest danym złożeniem odwzorowań IFS. Im „ściślej” B f ograniN cza podzbiór f ( A ) , tym bardziej suma mnogościowa B j 1 f w j ograniczających figur potomnych B f w j wypełnia przestrzeń ograniczaną przez B f . Wobec tego, im lepiej B f przybliża f ( A ) , tym większa wartość prawdopodobieństwa N P R (o, d) B f w j | R (o, d) B f , j 1 czyli prawdopodobieństwa istnienia przecięcia półprostej przynajmniej z jedną z figur potomnych B f w j , j {1,..., N } , pod warunkiem istnienia przecięcia tej półprostej z B f . Natomiast decyzja o zaniechaniu przeszukiwania danego poddrzewa podejmowana jest na podstawie wykrycia braku przecięcia półprostej z figurą ograniczającą znajdującą się w korzeniu tego poddrzewa. Dlatego, im lepiej figury ograniczające przybliżają odpowiadające im podzbiory atraktora, tym wcześniejsza predykacja tych części drzewa, które nic nie wnoszą do wyniku. Ponadto, im „ściślej” figury B f1 i B f2 ograniczają odpowiadające im podzbiory f1 ( A ) i f 2 ( A ) atraktora, tym większe jest prawdopodobieństwo warunkowe P ( min u ( f1 w j ) min u ( f 2 w j ) | u ( f1 ) u ( f 2 )) , j 1,..., N gdzie j 1,..., N u ( f ) inf{t : R (o, d; t ) B f } . 188 Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora Innymi słowy, jeśli punkt najbliższego przecięcia półprostej z figury B f1 leży bliżej punktu o niż punkt najbliższego przecięcia półprostej z figurą B f2 , to prawdopodobieństwo zajścia analogicznego zdarzenia dla ograniczających figur potomnych będzie tym większe, im dokładniej figury B f1 i B f2 aproksymują otaczane przez nie podzbiory atraktora. Powyższa obserwacja stanowi „probabilistyczną” podstawę ulepszonej strategii eksploracji drzewa figur ograniczających w zagadnieniu wyznaczania najbliższego przecięcia półprostej z atraktorem. W proponowanym rozwiązaniu porządek, w jakim dokonywane są testy przecięcia, określony jest na podstawie odległości punktów przecięcia półprostej ze wszystkimi figurami ograniczającymi przecinanymi przez tę półprostą, które znajdują się w węzłach kończących dotychczas wygenerowane ścieżki drzewa. W danym cyklu algorytmu, spośród figur wybierana jest ta, której punkt przecięcia z półprostą leży najbliżej początku półprostej. Jeśli średnica tej figury nie przekracza zadanej dokładności aproksymacji (czyli zawierający ją węzeł jest liściem drzewa), to punkt przecięcia jest poszukiwanym „najbliższym przecięciem” półprostej z atraktorem. W przypadku przeciwnym, test przecięcia kontynuowany jest dla N figur potomnych tej figury. Te z nich, które są przecinane przez półprostą, dodawane są do zbioru figur, spośród których wybierana będzie „najbliższa” figura ograniczająca w następnym cyklu algorytmu. Zakładając, że poszukiwany punkt przecięcia istnieje, w świetle przedstawionych rozważań zaprezentowana strategia przeszukiwania drzewa pozwala zatem zwiększyć prawdopodobieństwo wyznaczenia tego punktu w optymalnym – dla zastosowanej struktury drzewa – czasie O(log m) . Algorytm realizujący tę strategię za pomocą struktury kopca (Kay i Kajiya [64], Haines [50]), wykorzystanej w celu aktualizowania porządku na bieżącym zbiorze figur ograniczających, można zapisać w sposób następujący: function NearestRayAttractorIntersection( ) : real begin 1. t NearestInt ; 2. if R (o, d) B f then begin 3. tCurInt min{t : R (o, d; t ) B} ; 4. Heap.put( tCurInt , id , B ); 5. while t NearestInt and Heap do begin 6. tCurInt , f , B f Heap.get( ); 7. if diam( B f ) then 8. t NearestInt tCurInt ; 9. else for each i {1,..., N } do begin 10. g f wi ; 11. Bg g ( B ) ; Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora 12. 13. 14. 15. end. 189 if R (o, d) Bg then begin tCurInt min{t : R (o, d; t ) Bg } ; Heap.put( tCurInt , g , Bg ); end if; end for; end while; end if; return t NearestInt ; Wynikiem działania powyższej funkcji jest wartość parametru t, która określa poszukiwany punkt w równaniu parametrycznym półprostej – tj. jako R(o,d;t); w przypadku braku istnienia przecięcia funkcja przybiera wartość . W kopcu Heap przechowywane są trójki tCurInt , g , Bg , gdzie tCurInt oznacza odległość punktu przecięcia półprostej z figurą Bg będącą obrazem figury B ograniczającej atraktor przy złożeniu g odwzorowań IFS. Kopiec uporządkowany jest względem pierwszego składnika trójek w porządku niemalejącym. Działania (metody) Heap.get i Heap.put oznaczają odpowiednio: operację pobrania trójki ze szczytu kopca i operację dodania trójki do kopca. Zastosowanie opisanej metody wiąże się jednak z pogorszeniem złożoności pesymistycznej, zarówno pamięciowej jak i obliczeniowej, w stosunku do złożoności charakteryzującej opisany poprzednio ogólny algorytm oparty na strategii przeszukiwania drzewa „w głąb”. W przypadku pesymistycznym bowiem, w kopcu będzie składowanych O(m) figur ograniczających, a więc rząd złożoności pamięciowej będzie w tym przypadku taki sam, jak w podejściu polegającym na przechowywaniu w pamięci całego drzewa figur ograniczających. W takich okolicznościach, ze względu na koszt operacji związanych z aktualizacją zawartości kopca1, rząd złożoności obliczeniowej algorytmu wyniesie O(m log m) . Warunkiem koniecznym dla zaistnienia przypadku pesymistycznego jest jednakże istnienie przecięć półprostej z O(m / N ) figurami będącymi bezpośrednimi przodkami figur znajdujących się w liściach drzewa figur ograniczających. Zatem sytuacja taka może mieć miejsce jedynie w bardzo szczególnym przypadku, w którym geometria atraktora IFS jest bliska w sensie metryki Hausdorffa pewnemu podzbiorowi punktów półprostej, dla której wyznaczane jest przecięcie z tym atraktorem. 7.2.4. Adaptacyjne wyznaczanie przecięcia a geometria figur ograniczających Koszt obliczeniowy algorytmów przedstawionych w poprzednim podpunkcie zależy głównie od kosztu wyznaczania obrazów początkowej figury B ograNależy pamiętać, że koszt obliczeniowy operacji dodania elementu do kopca oraz pobrania elementu ze szczytu kopca wynosi O(log m) . 1 190 Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora niczającej atraktor, kosztu wyznaczania średnic tych obrazów oraz kosztu testowania i wyznaczania punktu przecięcia półprostej z figurami ograniczającymi. Wymienione koszty z kolei zależą mocno od rodzaju wykorzystanych figur ograniczających. W artykule (Hart i DeFanti [52]), dotyczącym przypadku afinicznych IFS, jako figurę ograniczającą atraktor wykorzystano kulę (w metryce euklidesowej) oraz jej afiniczne obrazy – elipsoidy w roli figur ograniczających podzbiory atraktora. Rozwiązanie takie pociąga za sobą jednak wysokie koszty obliczeniowe związane z określaniem średnic elipsoid. Dla każdej tworzonej elipsoidy bowiem należy w tym celu wyznaczyć maksymalną wartość własną symetrycznej, nieujemnie określonej macierzy równania macierzowego elipsoidy o środku w początku układu współrzędnych (Trajdos [148], Martyn [81]); średnica elipsoidy jest równa podwojonej odwrotności pierwiastka kwadratowego z tej wartości. Ponieważ wyznaczanie wartości własnych wspomnianych macierzy jest kosztowne obliczeniowo (w cytowanej pracy [52] zastosowano w tym celu metodę Jacobiego – por. punkt 3.2.2), w rzeczywistych zastosowaniach podejście takie okazuje się wysoce nieefektywne. W pracy (Hepting i inni [56]), dla atraktorów afinicznych IFS, wykorzystano bardzo podobne podejście do przedstawionego wyżej, z tą różnicą, że zamiast elipsoid, jako figury ograniczające podzbiory atraktora zastosowano najmniejsze kule zawierające te elipsoidy. Dla danego złożenia wi1 ...wi j odwzorowań IFS, środek i promień takiej kuli obliczane są jako: ci1 ...i j wi1 ... wi j (c) (7.3a) ri1 ...i j r Lip(wi1 ... wi j ) (7.3b) gdzie c i r oznaczają odpowiednio środek i promień kuli zawierającej atraktor, zaś Lip(.) jest stałą Lipschitza odwzorowania względem metryki euklidesowej. Jednakże, jak pokazano w punkcie 3.2.2, obliczanie stałej Lipschitza odwzorowania afinicznego w(x) Lx t sprowadza się do wyznaczenia pierwiastka kwadratowego z maksymalnej wartości własnej symetrycznej, nieujemnie określonej macierzy LT L (por. równanie (3.27)). Zatem omawiane podejście ma tę samą wadę „niskiej efektywności obliczeń”, co podejście w którym wykorzystywane są elipsoidy. Niejako naturalnym usprawnieniem wydajności prezentowanych dotychczas podejść jest więc zastąpienie w równaniu (7.3b) kosztownej obliczeniowo stałej Lipschitza przez znacznie tańsze górne oszacowania tego współczynnika. W pracach (Martyn [81, 82]) autor wykorzystał w tym celu oszacowanie stałej Lipschitza przez normę Frobeniusa (3.28a) macierzy części liniowej odwzorowania afinicznego. Zastosowanie takiego podejścia powoduje pogorszenie zbieżności omawianego algorytmu wyznaczania przecięcia, jednakże – jak pokazano w punkcie 3.2.2 – w praktyce jest ono konkurencyjne nie tylko w stosunku do iteracyjnych metod Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora 191 numerycznych określania wartości własnych, ale również metod analitycznych polegających na wyznaczaniu tych wartości jako pierwiastków wielomianu charakterystycznego (w przypadku atraktorów na przestrzeniach o wymiarze nie większym niż cztery). Z kolei, w pracy (Traxler i Gervautz [149]) jako figurę ograniczającą atraktor afinicznego IFS wykorzystano prostopadłościan AAB, zaś do ograniczania podzbiorów atraktora – afiniczne obrazy tego prostopadłościanu, czyli równoległościany. W celu wyeliminowania stosunkowo kosztownych obliczeniowo operacji: jawnego wyznaczania równoległościanów wi1 ...wi j ( AAB ) i obliczania przecięć półprostej R(o,d) z tymi prostopadłościanami w każdym cyklu algorytmu, zastosowano technikę obliczania przecięć wyjściowego prostopadłościanu AAB z obrazami półprostej przy odwrotnych odwzorowaniach IFS: wij 1 ... wi1 1 ( R (o, d)) R ( wij 1 ... wi1 1 (o), Li 1j ...Li11d) , (7.4) gdzie Lik oznacza macierz części liniowej odwzorowania wik . Ze wzgledu na niski koszt obliczeniowy obliczania przecięcia półprostej z prostopadłościanem AAB (Glassner [43]), podejście takie jest znacznie bardziej efektywne obliczeniowo niż metody dotychczas omówione. Niestety, w wersji przedstawionej w pracy [149], nie umożliwia ono obliczenia (lub choćby oszacowania z góry) średnic równoległościanów ograniczających podzbiory atraktora (w cytowanej pracy testy przecięcia kontynuowane były dla zadanej a priori głębokości rekursji). Choć, jak pokazano w pracach (Martyn [80, 81]), podejście takie może zostać wzbogacone o ten element, to jednak odbywa się to kosztem znacznego zwiększenia nakładu obliczeń (porównywalnego z nakładem obliczeń charakteryzującym metody omówione powyżej). W podejściu zaproponowanym w pracach (Martyn [81, 85]) wykorzystano prostopadłościany AAB zarówno do ograniczania całego atraktora afinicznego IFS, jak i jego podzbiorów. Prostopadłościany ograniczające podzbiory atraktora wyznaczane są jako najmniejsze prostopadłościany AAB zawierające obrazy wi1 ...wi j ( AAB ) prostopadłościanu ograniczającego atraktor. Obliczanie prostopadłościanów dokonywane jest bezpośrednio na podstawie złożeń odwzorowań IFS, przy wykorzystaniu efektywnej metody przedstawionej w podpunkcie 6.2.2 niniejszej pracy. Ponieważ prostopadłościany te wyznaczane są explicite w postaci AAB (c, r ) zdefiniowanej równością (6.1), więc obliczanie ich średnic w trakcie procesu wyznaczania przecięcia półprostej z atraktorem nie nastręcza żadnych trudności, bowiem wynoszą one diam E ( AAB (c, r )) 2 || r ||E . Wobec tego, jeśli weźmie się dodatkowo pod uwagę – wspomniany już wcześniej – niski koszt obliczania przecięcia półprostej z prostopadłościanem AAB, wydajność takiego podejścia jest porównywalna z wydajnością poprzednio omówionej 192 Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora metody (Traxler i Gervautz [149]), przy czym nie ma ono wskazanej wady „trudności w obliczaniu średnic” charakteryzującej tę metodę. W odróżnieniu od dotychczas zaprezentowanych podejść dotyczących atraktorów afinicznych IFS, w artykule (Gröller [47]) przedstawiono wdrożenie idei adaptacyjnego wyznaczania przecięcia do przypadku atraktorów opisanych przez odwzorowania nieliniowe. W zaproponowanym tam podejściu, do otaczania zarówno atraktora, jak i jego podzbiorów, wykorzystano kule. W istocie rzeczy, jest ono uogólnieniem wyżej omówionej metody przedstawionej w pracy (Hepting i inni [56]). Kule ograniczające podzbiory atraktora obliczane są jako przybliżenia kul określonych wzorami (7.3), poprzez górne oszacowanie wartości Lip(wi1 ... wi j ) występującej w formule (7.3b), za pomocą iloczynu k Lip(w j 1 ij ) (por. twierdzenie 3.4). W cytowanej pracy (Gröller [47]) dodatkowo przedstawiono także inne podejście do figurę ograniczających, dotyczące układów IFS zawierających odwzorowania definiowane explicite na l ... m punktach węzłowych siatek „kubicznych” zadanych (skończonych) rozmiarów. Przy takiej reprezentacji odwzorowań, jako brzeg figury ograniczającej dany podzbiór wi1 ... wi j ( A ) atraktora wykorzystano powierzchnię obrazu siatki przy złożeniu wi1 ... wi j odwzorowań, zdefiniowaną przez obrazy brzegowych punktów węzłowych przy tym złożeniu. Jak słusznie wskazano we wspomnianej pracy, choć takie figury ograniczające zwykle znacznie lepiej aproksymują podzbiory atraktora aniżeli czynią to kule, to jednak ich zastosowanie pociąga za sobą znacznie bardziej kosztowne testy przecięcia z półprostą. To samo odnosi się także do kosztów wyznaczania średnic tych figur. W celu wyeliminowania kosztownych obliczeniowo operacji jawnego wyznaczania figur ograniczających podzbiory atraktora nieliniowego IFS oraz określania przecięcia półprostej z tymi figurami, w pracach (Gröller [48], Wonka i Gervautz [155]) wykorzystano – wspomnianą już wcześniej – technikę wyznaczania przecięć figury ograniczającej atraktor z obrazami półprostej przy złożeniach odwrotnych odwzorowań IFS. O ile jednak rezultatem zastosowania złożenia wij 1 ... wi1 1 odwzorowań afinicznych do półprostej R(o,d) jest zawsze półprosta (7.4), o tyle przekształcenie półprostej przy użyciu odwzorowań nieliniowych daje, w ogólnym przypadku, pewną krzywą. W cytowanych pracach, krzywe f i j...1 i1 R (o, d) , f i j...1 i1 wij 1 ... wi1 1 , generowane podczas adaptacyjnego wyznaczania przecięcia, przybliżane były łamanymi określonymi przez obrazy f i j...1 i1 (p k ) M wybranych punktów p k R (o, d) . Dodatkowo, w artykule (Wonka i Gervautz [155]) wprowadzono metodę szacowania błędu tego przybliżenia polegającą na wyznaczaniu odległości punktu f i j...1 i1 (p k 1 ) od odcinka f i j...1 i1 (p k ) f i j...1 i1 (p k 2 ) dla każdego k {1,..., M 2} . Jeśli, dla pewnego k, odległość ta przekraczała arbitralnie ustaloną wartość progową, to między punktami Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora 193 p k i p k 1 oraz p k 1 i p k 2 półprostej dodawane były nowe punkty, których obrazy uwzględniane były w nowym przybliżeniu krzywej przez łamaną. Proces ten był kontynuowany dopóty, dopóki łamana nie przybliżyła krzywej względem zadanej dokładności przybliżenia. Niestety, podobnie jak ma to miejsce w przypadku techniki przekształcania półprostej zastosowanej do atraktorów afinicznych IFS w pracy (Traxler i Gervautz [149]), tak i w przypadku atraktorów nieliniowych podstawową wadą takiego podejścia jest brak możliwości obliczania średnic figur ograniczających podzbiory atraktora. Dlatego w cytowanych pracach proces wyznaczania przecięcia dokonywany był dla ustalonego z góry drzewa złożeń odwzorowań IFS. 7.3. WYZNACZANIE ODLEGŁOŚCI PUNKTU OD ATRAKTORA Idea leżąca u podstaw metod obliczania odległości (7.2) punktu p R n od atraktora A IFS {w1 ,..., wN } polega na oszacowaniu minimum z odległości tego punktu od poszczególnych podzbiorów f i1 ...i j ( A ) wi1 ... wi j ( A ) , które tworzą rozkład atraktora na m podzbiorów o średnicach nieprzekraczających zadanej wartości 0 : d (p, A ) min{d (p, f i1 ...i j ( A )) : diam ( f i1 ...i j ( A )) i f i1 ...i j ( A ) A } . (7.5) Ponieważ średnica żadnego z podzbiorów f i1 ...i j ( A ) nie przekracza , więc odległości d (p, f i1 ...i j ( A )) mogą być oszacowane od dołu z błędem nie większym niż za pomocą nierówności d E (p, f i1 ...i j (a)) d (p, f i1 ...i j ( A )) d E (p, f i1 ...i j (a)) , (7.6) gdzie a A jest dowolnym punktem atraktora. Ponieważ f i1 ...i j (a) f i1 ...i j ( A ) oraz f i1 ...i j ( A ) stanowi -pokrycie atrakto- ra, zatem zbiór { f i1 ...i j (a)} aproksymuje atraktor z błędem nie większym niż względem metryki Hausdorffa. Wobec tego, oszacowanie wartości (7.5) za pomocą lewej strony nierówności (7.6) może zostać dokonane adaptacyjnie poprzez przeglądanie drzewa hierarchii podzbiorów atraktora przy użyciu nieznacznie zmodyfikowanego algorytmu adaptacyjnych odcięć, który został opisany w punkcie 3.2. W pracy (Hepting i inni [56]) przedstawiono implementację opisanego podejścia w postaci algorytmu iteracyjnego, który wykorzystuje listę do przechowywania danych dotyczących aktualnie rozpatrywanych podzbiorów atraktora. Podczas działania algorytmu, na liście składowane są trójki d f , f , D f , gdzie d f oznacza odległość punktu p R n od punktu f (a) , a ( A ) , należącego do pod- 194 Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora zbioru f ( A ) atraktora, D f zaś jest oszacowaną z góry średnicą tego podzbioru przy użyciu wartości diam( A )Lip( f ) . Działanie algorytmu rozpoczyna się od umieszczenia na liście trójki d E (p, a), id ,diam( A ) odnoszącej się do całego atraktora. Następnie algorytm w każdej iteracji: 1) zastępuje na liście każdą z trójek d f , f , D f N trójkami d f wi , f wi , D f wi , i = 1,…,N; 2) wyznacza z listy trójek wartość dtmpMin będącą najmniejszą wartością pierwszego składnika d f trójek; 3) porównuje wartość dtmpMin z najmniejszą dotychczas znalezioną odległością d min i jeśli dtmpMin d min , to d min dtmpMin (i ewentualnie a nearest f (a) , gdzie f jest drugim elementem trójki zawierającej dtmpMin ) ; 4) usuwa z listy wszystkie trójki, których wartości „średnic” D f są nie większe od zadanej dokładności 0 , a także te, dla których wartość d f D f jest większa od aktualnej wartości d min ; 5) jeśli lista nie jest pusta, powtarza powyższą sekwencję kroków począwszy od kroku 1. Dokonywane w kroku 4 wykluczenie z dalszego przetwarzania trójek, których wartości D f nie przekraczają wartości , jest konsekwencją zadanej dokładności algorytmu. Reprezentowane przez te trójki podzbiory mogą bowiem zawierać punkty leżące o co najwyżej bliżej punktu p niż „najbliższy” dotychczas znaleziony punkt atraktora (który może być przechowywany w kroku 3 w zmiennej a nearest na potrzeby innych algorytmów wykorzystujących tę procedurę – zob. punkt 9.1.5), którego odległość od p przechowywana jest w zmiennej d min . Natomiast usuwanie trójek, dla których wartość d f D f jest większa od wartości d min , wynika z faktu, iż reprezentowane przez te trójki podzbiory leżą dalej od punktu p niż wspomniany „najbliższy” dotychczas znaleziony punkt atraktora. Oszacowanie od dołu poszukiwanej odległości (7.5) z błędem nie większym niż otrzymuje się na podstawie wynikowej wartości d min , obliczając wartość wyrażenia max(0, d min ) . Optymistyczna złożoność pamięciowa i obliczeniowa przedstawionego algorytmu wynosi O(log m) , gdzie m jest liczbą podzbiorów tworzących rozkład atraktora na podzbiory o średnicach nieprzekraczających wartości . Natomiast w przypadku pesymistycznym, w którym wyznaczanych jest O(m) podzbiorów rozkładu atraktora, koszt obliczeniowy i pamięciowy jest rzędu O(m). Inne możliwe warianty implementacji przedstawionego podejścia obejmują wersję algorytmu iteracyjnego, w którym zamiast listy wykorzystuje się kopiec (na analogicznych zasadach, jak w algorytmie NearestRayAttractorIntersection opisanym w podpunkcie 7.2.3), oraz adaptację algorytmu adaptacyjnych odcięć w wersji rekurencyjnej. Estymacja wektorów normalnych w punktach atraktora 195 8. ESTYMACJA WEKTORÓW NORMALNYCH W PUNKTACH ATRAKTORA 8.1. WPROWADZENIE Jeżeli celem wizualizacji jest uzyskanie obrazów o pewnym stopniu realizmu, to proces wyznaczania punktów powierzchni obiektów postrzeganych przez obserwatora musi zostać wzbogacony o odpowiedni schemat wyznaczania barwy tych punktów. Schemat ten określany jest w grafice komputerowej mianem oświetlania i cieniowania (ang. lighting and shading). Barwa przypisywana danemu punktowi wyznaczana jest na ogół poprzez rozwiązanie tzw. równania oświetlenia, będącego formułą definiującą model oświetlania (ang. illumination model). Model oświetlania uwzględnia właściwości optyczne wizualizowanej powierzchni oraz wpływ źródeł światła i innych obiektów sceny na barwę rozważanego punktu. Na potrzeby realistycznej grafiki komputerowej stworzono kilka takich schematów (patrz np. (Hall [51, s. 63], Glassner [43, s. 121]) i, z wyjątkiem niektórych stosowanych w wizualizacji obiektów wolumetrycznych (np. Blinn [13], Kajiya i Von Herzen [63], Martyn [90]), ich wspólną cechą jest to, że jedynym z parametrów równania oświetlenia jest wektor normalny w cieniowanym punkcie. Znajomość wektorów normalnych w punktach powierzchni wizualizowanych obiektów jest również niezbędna do rozwiązywania problemów związanych z wyznaczaniem trajektorii ruchu obiektów dynamicznych, będącej rezultatem interakcji (kolizji) tych obiektów między sobą oraz z obiektami statycznymi. Do podstawowych zadań należy określenie kierunku, w którym będzie przemieszczał się obiekt na skutek zderzenia sprężystego z innym obiektem sceny, oraz trajektorii ruchu w przestrzeni ze statycznymi barierami (na przykład w trakcie przesuwania się obiektu wzdłuż ścian modelu reprezentującego obiekt architektoniczny – ang. sliding) (Lengyel [72]). W przypadku powierzchni gładkich, opisanych przez funkcje różniczkowalne, wektor normalny zdefiniowany jest w każdym punkcie powierzchni i jego wyznaczenie odbywa się poprzez obliczenie wektora gradientu funkcji w danym punkcie. Atraktory IFS są jednak na ogół fraktalami, a te ostatnie – pomijając pewne szczególne konstrukcje funkcji fraktalnych (np. Cochran i inni [20]) – są w ogólnym przypadku nieróżniczkowalne. W konsekwencji, wektory normalne w punktach „powierzchni” atraktora są na ogół niezdefiniowane – przynajmniej w klasycznym znaczeniu tego terminu. Co więcej, jak pokazują rozważania teoretyczne dotyczące lokalnych własności fraktali (Falconer [33, s. 6982], Mattila [97, s. 202214]), uogólnienie pojęcia płaszczyzny stycznej w punkcie zbioru fraktalnego (i co za tym idzie – wek- 196 Estymacja wektorów normalnych w punktach atraktora tora normalnego) oparte na teorii miary i na wykorzystaniu s-wymiarowej miary Hausdorffa, ma zastosowanie jedynie w przypadku stosunkowo wąskiej klasy zbiorów1. Na podstawie powyższego, z teoretycznego punktu widzenia zagadnienie wyznaczania normalnych w punktach atraktora należy uznać w ogólnym przypadku za problem źle postawiony. Niemniej – niejako wbrew uzasadnieniom teoretycznym – wychodząc naprzeciw potrzebom grafiki komputerowej, w literaturze przedmiotu zaproponowano kilka metod heurystycznych szacowania tych wektorów. Oczywiście, wobec braku jakiegokolwiek obiektywnego kryterium ocennego, miarą jakości tych oszacowań jest jedynie intuicja obserwatora bazująca na doświadczeniach wzrokowych kształtowanych oglądem obiektów świata rzeczywistego. Omówieniu tych metod poświecono kolejne punkty niniejszego rozdziału. 8.2. WYGŁADZANIE ATRAKTORA W przypadku metod omawianych w tym podpunkcie obliczenia opierają się na aproksymacjach podzbiorów atraktora IFS przy użyciu powierzchni gładkich, podobnie jak miało to miejsce w algorytmach wyznaczania przecięcia półprostej z atraktorem opisanych w poprzednim rozdziale. Metody te można podzielić na dwie kategorie: metody bezpośrednie – wyznaczające normalne dla podzbioru atraktora na postawie wektorów normalnych w odpowiednich punktach powierzchni gładkiej aproksymującej ten podzbiór; metody hierarchiczne – wyznaczające normalne dla podzbioru atraktora na podstawie sekwencji wektorów normalnych w odpowiednich punktach sekwencji powierzchni gładkich, które aproksymują ten podzbiór oraz jego nadzbiory, zgodnie z hierarchicznym uporządkowaniem podzbiorów atraktora. 8.2.1. Metody bezpośrednie Metody te należą do najstarszych sposobów szacowania normalnej w punkcie ogólnie rozumianej powierzchni fraktalnej. Pierwsze obrazy cieniowanych fraktali, uzyskane za pomocą metod bezpośrednich, zostały sporządzone przez R. Vossa i przedstawione jako ilustracje do książki B.B. Mandelbrota The frac1 Mowa tutaj o klasie tzw. zbiorów regularnych, tj. zbiorów składających się z punktów, w których gęstość względem s-wymiarowej miary Hausdorffa jest dobrze określona (pomijając podzbiór punktów zerowej miary Hausdorffa). Równoważna klasyfikacja zbiorów posiadających płaszczyzny styczne w punktach względem s-wymiarowej miary Hausdorffa oparta jest na pojęciu s-prostowalności zbioru; por. (Mattila [97, s. 204–212]). Estymacja wektorów normalnych w punktach atraktora 197 tal geometry of nature (Mandelbrot [76]). Metody te najlepiej sprawdzają się w odniesieniu do zagadnień związanych z wizualizacją realistyczną tzw. fraktalnych terenów, które w dzisiejszej grafice komputerowej czasu rzeczywistego aproksymowane są zwykle za pomocą siatek trójkątów; por. np. (Polack [119]). W takim rozwiązaniu wektory normalne mogą być wyznaczone jako wektory normalne odpowiednich trójkątów. (Do fraktalnych terenów będących atraktorami IFS metoda ta została zastosowana np. w pracach (Massopust [96], Wittenbrink [154])). Bardziej wyszukane rozwiązanie, mające na celu stworzenie u obserwatora iluzji gładkiej powierzchni, do wyznaczenia normalnej w punkcie trójkąta wykorzystuje interpolację dwuliniową wektorów skojarzonych z odpowiednimi wierzchołkami siatki, zaś wektory w wierzchołkach obliczane są jako znormalizowana średnia wektorów normalnych trójkątów współdzielących dany wierzchołek (ang. vertex normal averaging). Inne podejścia do szacowania wektorów normalnych w punktach terenów fraktalnych za pomocą metody bezpośredniej oparte są na aproksymacjach tych powierzchni za pomocą czworokątów, płatków Béziera (Fournier i inni [39]) i powierzchni sklejanych (Szeliski i Terzopoulos [146]). Idea szacowania wektorów normalnych jako normalnych w punktach powierzchni gładkich przybliżających podzbiory fraktala została następnie zastosowana w ogólnym przypadku atraktorów IFS w pracach (Hepting i inni [56], Gröller [47]). Do aproksymacji podzbiorów atraktora wykorzystano kule o odpowiednio małej średnicy, zaś wektory normalne wyznaczane były jako normalne w punktach ich powierzchni. Niestety, wykorzystanie tak wyznaczonych wektorów normalnych do cieniowania atraktora IFS daje często rezultaty niezadowalające. Jeśli bowiem średnica kul jest zbyt duża, to w obrazie atraktora widoczna jest geometria kolekcji sfer aproksymujących atraktor, która na ogół odbiega od wyobrażenia obserwatora o geometrii samego atraktora. Z kolei, cieniowanie atraktora przy użyciu wektorów normalnych, wyznaczonych na podstawie kul o średnicy bliskiej rozdzielczości urządzenia wyświetlającego, daje w wyniku obrazy o niskiej korelacji jasności między sąsiednimi elementami obrazu atraktora, co przez obserwatora odbierane jest na ogół jako niepożądany artefakt „szumu jasności” na powierzchni atraktora. Jak pokazano w artykule (Martyn [95]), znacznie lepsze rezultaty zastosowania omawianej idei można uzyskać, wykorzystując do przybliżania podzbiorów atraktora zamiast kul, wielościany aproksymujące otoczki wypukłe tych podzbiorów. Ponieważ otoczka wypukła jest zbiorem, który najlepiej oddaje geometrię danego podzbioru atraktora spośród wszystkich zbiorów wypukłych, zatem dzięki takiemu podejściu rozkład wektorów normalnych odzwierciedla „krzywiznę” powierzchni atraktora w sposób znacznie lepiej odpowiadający intuicji, aniżeli w przypadku zastosowania w tym celu kul lub jakichkolwiek innych, arbitralnie wybranych figur ograniczających. Na rysunku 8.1 przedstawiono aproksymacje 198 Estymacja wektorów normalnych w punktach atraktora przy użyciu wielościanów utworzone dla przykładowych atraktorów IFS. Wielościany te można wyznaczyć za pomocą algorytmu odcinania wierzchołków, który został przedstawiony w podpunkcie 6.3.2. Co więcej, w przypadku atraktorów afinicznych IFS, obliczenie tych wielościanów sprowadza się do zastosowania algorytmu do wyznaczenia wielościanu zawierającego atraktor i następnie obliczenia obrazów tego wielościanu przy odpowiednich złożeniach odwzorowań IFS definiujących aproksymowane podzbiory atraktora (twierdzenie 2.21). Rys. 8.1. Przykłady aproksymacji atraktorów układów IFS na przestrzeni R3 wykorzystujących przybliżenia otoczek wypukłych podzbiorów atraktora przez wielościany o określonej liczbie ścian Powyższe podejście może być również zastosowane do szacowania normalnych w punktach atraktora lub punktach zbioru punktowego aproksymującego atraktor (np. wyznaczonego przy wykorzystaniu jednego z algorytmów z rozdz. 3). W tym celu należy wyznaczyć wielościan o średnicy nieprzekraczającej zadanej wartości 0 , który ogranicza podzbiór atraktora zawierający dany punkt atraktora lub jego przybliżenia. W przypadku aproksymacji punktowej atraktora, wartość powinna być odpowiednio większa od dozwolonego błędu aproksymacji, tak aby wielościan zawierał również inne punkty tej aproksymacji. Wektor nor- Estymacja wektorów normalnych w punktach atraktora 199 malny w punkcie wyznaczany jest jako normalna do ściany wielościanu, która leży najbliżej tego punktu (jeśli najbliższa ściana nie jest określona jednoznacznie, wówczas wybierana jest dowolna ściana ze zbioru ścian najbliższych). Przykładowe rezultaty zastosowania tej metody przedstawiono na rys. 8.2. Rys. 8.2. Przykłady zastosowania metody szacowania normalnych w punktach atraktora na podstawie przybliżeń otoczek wypukłych podzbiorów atraktora wielościanami. Poszczególne punkty aproksymacji atraktora przedstawiono za pomocą kół zorientowanych prostopadle do oszacowanych normalnych Ponieważ wektory normalne uzyskiwane za pomocą metod bezpośrednich dla skończonego zbioru punktów mogą być obliczane w fazie poprzedzającej proces wizualizacji, metody te mogą być z powodzeniem wykorzystane w realistycznej wizualizacji aproksymacji punktowych atraktorów w czasie rzeczywistym przy użyciu procesorów graficznych (podpunkt 9.2.4). 200 Estymacja wektorów normalnych w punktach atraktora 8.2.2. Metody hierarchiczne Metody hierarchiczne mają na celu zwiększenie współczynnika korelacji wyznaczanych wektorów normalnych w sąsiadujących ze sobą punktach obrazu atraktora (lub jego aproksymacji) i, co za tym idzie, zredukowanie, powstającego w rezultacie cieniowania, artefaktu „szumu jasności” na powierzchni atraktora. Dodatkowo, ich wykorzystanie w kontekście cieniowania pozwala ukryć przed obserwatorem trywialną, „niefraktalną” strukturę powierzchni gładkich aproksymujących podzbiory atraktora. W konsekwencji, jeśli podzbiory atraktora są aproksymowane przez powierzchnie o średnicach zbliżonych do wielkości piksela, to cieniowany obraz atraktora oddaje złożony charakter geometrii atraktora, przy czym jednocześnie wywołuje, zgodne z intuicją, wrażenie „lokalnej ciągłości” rozkładu jasności w punktach postrzeganych przez obserwatora. Jak wskazano w poprzednim podpunkcie, cechy te są trudne do pogodzenia w przypadku zastosowania metod bezpośrednich. Wspólną cechą metod hierarchicznych jest to, że kierunek wyznaczanych przez nie wektorów normalnych jest zależny od lokalizacji punktu obserwacji. Niech p R n będzie punktem atraktora A IFS {w1 ,..., wN } należącym do figury ograniczającej Bi1 ...ik wi1 ... wik ( A ) , której średnica nie przekracza dozwolonego błędu 0 aproksymacji atraktora. Niech o R n będzie ustalonym punktem obserwacji. Wektor normalny n(p) w punkcie p obliczany jest na podstawie ważonej sumy wektorów normalnych n(xi0i1 ...i j ) w k 1 punktach xi0i1 ...i j (j = 0,...,k) powierzchni figur ograniczających Bi0 , Bi0i1 , Bi0i1i2 ,..., Bi0i1i2 ...ik . Punkt xi0i1 ...i j jest najbliższym (punktu o) punktem przecięcia bryły Bi0i1i2 ...i j z domkniętym odcinkiem op , zaś Bi0 oznacza figurę ograniczającą atraktor. W artykule (Hart i DeFanti [52]) zaproponowano trzy metody nadawania wag sumowanym wektorom normalnym. W przypadku metody wag stałych (ang. the constant weighting sum) nie wyróżnia się żadnego z sumowanych wektorów i oblicza wektor normalny w punkcie p jako k n(p) n(xi0 ...i j ) . (8.1a) j 0 W metodzie wag dolnoprzepustowych (ang. the low-pass weighting sum) wektorom normalnym przypisywane są wagi proporcjonalne do rozmiarów figur ograniczających i, tym samym, wyróżniane są wektory normalne w punktach powierzchni brył większych. Wektor normalny obliczany jest tutaj zgodnie z formułą: k n(p) diam( Bi0 ...i j )n(xi0 ...i j ) . j 0 (8.1b) Estymacja wektorów normalnych w punktach atraktora 201 Z kolei, w przypadku metody wag górnoprzepustowych (ang. the high-pass weighting sum) zmniejsza się rola wektorów normalnych brył większych, a jednocześnie zwiększa udział normalnych brył mniejszych: k n(p) (diam( Bi0 ) diam( Bi0 ...i j ))n(xi0 ...i j ) . (8.1c) j 0 Teoretycznie, jako figury ograniczające w wyżej opisanych metodach można zastosować dowolne zamknięte powierzchnie różniczkowalne prawie wszędzie. Jak pokazują jednak wyniki prezentowane w literaturze, najlepsze rezultaty wizualne otrzymywane są przy wykorzystaniu cieniowania atraktora na podstawie sum wektorów normalnych w punktach figur ograniczających o geometrii elipsoidy (Hart i DeFanti [52]) oraz kuli (Martyn [82]). Ponieważ wynikowe wektory normalne zależą od położenia punktu obserwacji, metod hierarchicznych nie stosuje się w realistycznej wizualizacji atraktorów w czasie rzeczywistym, gdzie wzajemne położenie punktu obserwacji oraz atraktorów ulega zmianom. Ze względu jednak na definicję sum (8.1), metody te świetnie koegzystują z algorytmami adaptacyjnego wyznaczania przecięcia półprostej z atraktorem (podpunkt 7.2.3) i, jako takie, wykorzystywane są z powodzeniem w wizualizacji atraktorów metodą śledzenia promieni. 8.3. WYKORZYSTANIE z-BUFORA Metoda przedstawiona w niniejszym punkcie wyznacza wektory normalne w punktach zbioru widocznych z określonego kierunku, na podstawie odwzorowania tego zbioru w z-buforze (buforze głębi) przy wykorzystaniu rzutowania równoległego prostokątnego. W oryginale (Norton [108]) metoda ta została zaproponowana w związku z problemem cieniowania trójwymiarowych projekcji zbiorów Julii opisanych przez odwzorowania kwaternionowe. Może być ona jednak również stosowana do dowolnego innego zbioru punktowego w przestrzeni R 3 , w tym i punktowych aproksymacji atraktorów IFS. W celu oszacowania wektora normalnego w punkcie p wizualizowanego zbioru na podstawie projekcji p tego punktu w z-buforze, porównywana jest wartość głębi z (p) z wartościami głębi najbliżej położonych projekcji innych punktów zbioru w z-buforze. Niech q będzie jedną z rozważanych projekcji najbliższych projekcji p w z-buforze. Wówczas wartość bezwzględna różnicy wartości głębi b z (p) z (q) podzielona przez odległość a między p i q w układzie współrzędnych z-bufora wykorzystywana jest do oszacowania tangensa kąta między przybliżeniem nq wektora normalnego n w punkcie p i kierunkiem rzu- 202 Estymacja wektorów normalnych w punktach atraktora towania d (rys. 8.3). Wektor nq obliczany jest na podstawie tg( ) w płaszczyź nie wyznaczonej przez wektory pq i d. Rys. 8.3. Schemat wyznaczania wektora normalnego na podstawie zawartości z-bufora Wektor normalny n w punkcie p wyznaczany jest poprzez uśrednienie znormalizowanych wektorów nqi obliczonych przy użyciu opisanej metody dla zbioru projekcji {qi }i 1,..., k najbliższych projekcji p w z-buforze. Zbiór najbliższych projekcji wyznaczany jest na ogół poprzez przeszukanie zawartości z-bufora wzdłuż osi X i Y układu współrzędnych z-bufora. Podstawową wadą omówionej metody jest to, że – niejako z założenia projektowego leżącego u podstaw pracy (Norton [108]) – ogranicza się ona do równoległego rzutowania punktów. Z punktu widzenia problemu cieniowania, konsekwencją tego faktu jest to, że może być ona jedynie stosowana do wyznaczania barwy punktów oświetlanych przy użyciu kierunkowych (równoległych) źródeł światła. W rezultacie, metody w przedstawionej wersji nie można wykorzystać do wyznaczania barwy punktów oświetlanych przy wykorzystaniu, powszechnie stosowanych we współczesnej grafice komputerowej, punktowych i stożkowych źródeł światła, czy też do symulowania efektu odbicia lustrzanego na powierzchniach zakrzywionych. Chociaż teoretycznie możliwe jest uogólnienie tej metody na inne rodzaje rzutów, w tym i rzutowanie perspektywiczne, to jednak skutkowałoby to znacznie większą ilością obliczeń. Ponadto należy zauważyć, iż poprawne zastosowanie przedstawionego podejścia wymusza generowanie i przechowywanie zawartości z-bufora oddzielnie dla każdego obiektu sceny, dla którego normalne wyznaczane są w opisany sposób. W konsekwencji, zastosowanie omawianej metody do wizualizacji scen zawierających nawet niewielką liczbę takich obiektów należy uznać za kosztowne, zarówno pamięciowo jak i obliczeniowo, nawet w kontekście możliwości dzisiejszego sprzętu graficznego. Oprócz składowania zawartości z-buforów, proces wizualizacji wymagałby bowiem co najmniej tylu Estymacja wektorów normalnych w punktach atraktora 203 przebiegów potoku graficznego, ile jest zbiorów punktowych w scenie, a następnie dodatkowego przebiegu, w którym generowany byłby obraz wynikowy na podstawie porównania zawartości z-buforów otrzymanych z przebiegów poprzednich. 8.4. METODA GRADIENTU FUNKCJI ODLEGŁOŚCI Metoda przedstawiona w artykule (Hart i inni [53]) polega na określaniu wektora normalnego w punkcie p danego zbioru A R n jako wartości gradientu1 funkcji odległości d : R n [0, ) d (x) inf {d E (x, a) : a A} (8.2) w tym punkcie. Ponieważ funkcja odległości na ogół nie jest dana w postaci analitycznej, poszczególne współrzędne ( i ) gradientu n(p) [ ( i ) ,..., ( i ) ]T w punkcie p są szacowane jako (i ) d (p (i )) d (p (i )) , (8.3) gdzie (i ) jest wektorem o i-tej współrzędnej równej i pozostałych współrzędnych równych zeru, 0 zaś jest arbitralnie ustaloną wartością odzwierciedlającą dokładność oszacowania. Metoda ta pierwotnie została zaproponowana w kontekście zagadnienia realistycznej wizualizacji trójwymiarowych projekcji zbiorów Julii opisanych przez odwzorowania kwaternionowe. Pomimo to, może być ona również z powodzeniem zastosowana do innych zbiorów punktowych, dla których możliwe jest obliczenie lub oszacowanie wartości funkcji (8.2). Metodę aproksymowania tej wartości dla atraktorów IFS przedstawiono w punkcie 7.3. W przypadku zastosowania podejścia gradientowego łącznie z tą metodą, wartość powinna przekraczać dozwolony błąd aproksymacji wartości funkcji odległości. Podstawową niedogodnością wykorzystania metody gradientowej do wyznaczania wektora normalnego w punkcie skończonej aproksymacji punktowej atraktora IFS jest duży nakład obliczeń rzędu O(m), gdzie m jest liczbą punktów aproksymacji. Koszt ten jest bezpośrednią konsekwencją złożoności obliczeniowej metody aproksymowania wartości funkcji odległości punktu od atraktora. Dlatego metoda ta nie może zostać wykorzystana do obliczania normalnych w punktach atraktora w trakcie procesu wizualizacji w czasie rzeczywistym. Wektory te jednak mogą być obliczone dla poszczególnych punktów aproksy1 W związku z zastosowaniem omawianego podejścia do zbiorów o geometrii fraktalnej należy jednak zauważyć, iż choć funkcja odległości jest ciągła, to jednak na ogół – podobnie jak same fraktale – jest nieróżniczkowalna. Co za tym idzie, rozważany gradient z matematycznego punktu widzenia jest nieokreślony; por. (Barnsley [9, s. 58–62]). 204 Estymacja wektorów normalnych w punktach atraktora macji w procesie poprzedzającym wizualizację i następnie zastosowane do cieniowania punktów atraktora w czasie rzeczywistym przy wykorzystaniu współczesnych procesorów graficznych. 8.5. REGRESJA LINIOWA Ostatnia z metod prezentowanych w niniejszym rozdziale jest adaptacją metody wykorzystywanej do rozwiązywania zagadnienia rekonstrukcji powierzchni na podstawie skończonego, niezorganizowanego zbioru punktów pochodzącego z akwizycji przy użyciu skanera 3D. Jako taka, metoda ta ma swoje korzenie w – popularnym w ostatnich latach – nurcie grafiki komputerowej określanej jako grafika punktowa (ang. point-based graphics) (Gross i Pfister [46]). Oryginalna metoda zaproponowana w artykule (Hoppe i inni [58]) polega na wyznaczeniu normalnej w punkcie p skończonej aproksymacji punktowej S R n oryginalnej powierzchni S , jako wektora normalnego płaszczyzny H stycznej do S w punkcie p. Płaszczyzna H szacowana jest na podstawie skończonego podzbioru k innych punktów qi S , i = 1,...,k, które znajdują się w arbitralnie ustalonym, bliskim otoczeniu punktu p. Jest ona obliczana jako płaszczyzna zawierająca punkt p i zorientowana w przestrzeni tak, aby leżała jak najbliżej punktów qi (rys. 8.4). Jako miarę odległości punktów od płaszczyzny zastosowano sumę kwadratów odległości d (qi , H ) tych punktów od płaszczyzny. Jeżeli przyjmie się za środek układu współrzędnych punkt p, to d (qi , H ) | n (qi p) | , gdzie n jest znormalizowanym wektorem normalnym płaszczyzny H. Stąd zagadnienie wyznaczania normalnej n w punkcie p jest zadaniem najmniejszych kwadratów zdefiniowanym jako problem minimalizacji: k min (n (qi p)) 2 . ||n|| 1 (8.4a) i 1 Rys. 8.4. Wyznaczanie wektora normalnego na podstawie oszacowania płaszczyzny stycznej w punkcie Niestety, ze względu na ograniczenie || n || 1 jest to problem optymalizacji nieliniowej, który w postaci danej formułą (8.4a) nie jest dogodny do obliczeń numerycznych. Niemniej, problem ten można sprowadzić do równoważnego (z punktu widzenia optymalizacji) zagadnienia minimalizacji funkcjonału o postaci: Estymacja wektorów normalnych w punktach atraktora k (n) n T (qi p)(qi p)T n . i 1 Macierz k (q i 205 (8.4b) p)(qi p)T jest macierzą symetryczną, zatem stosując rozkład i1 względem wartości własnych można ją przedstawić w postaci: k (q i 1 i p)(qi p)T U diag(1 ,..., n )U T , (8.5) gdzie U [u1 ,..., u n ] jest ortonormalną macierzą wektorów własnych ui, zaś 1 ... n – przynależnymi do tych wektorów, rzeczywistymi wartościami własnymi macierzy (8.5). Na tej podstawie łatwo zauważyć, że funkcjonał F (n) w dziedzinie wektorów jednostkowych osiąga minimum dla n u1 , czyli dla wektora własnego macierzy (8.5) skojarzonego z najmniejszą wartością własną 1 . Powyższa metoda została następnie udoskonalona w pracach (Pauly i inni [112], Gross i Pfister [46]) poprzez nadanie odpowiednich wag składnikom sumy (8.4a). Wartości wag określane są na postawie odległości danego punktu qi od punktu p, jako wartości funkcji Gaussa h (|| qi p ||) exp(|| qi p ||2 / h 2 ) , h R . W rezultacie, rozważany problem minimalizacji przybiera postać: k min (n (qi p)) 2 h (|| qi p ||) , ||n|| 1 (8.6) i 1 zaś jego rozwiązanie sprowadza się do wyznaczenia wektora własnego skojarzonego z najmniejszą wartością własną symetrycznej macierzy k (q i p)(qi p)T h (|| q i p ||) . (8.7) i1 Opisane podejścia mogą być w stosunkowo łatwy sposób adaptowane do szacowania wektora normalnego w punkcie p atraktora A (lub jego aproksymacji punktowej A ). Niech 0 będzie arbitralnie ustaloną liczbą definiującą wielkość otoczenia B (p, ) , które określa zbiór punktów qi B (p, ) A branych pod uwagę podczas wyznaczania normalnej. Na wstępie należy wyznaczyć skoń 1 czoną rodzinę F p, złożeń wi1 ... wim odwzorowań IFS, które określa 2 ją podzbiory atraktora wi1 ... wim ( A ) o średnicach nieprzekraczających war1 1 tości i mających niepuste przecięcie z kulą B p, . W ogólnym przy2 2 padku, podzbiory te najłatwiej oszacować przy użyciu prostej modyfikacji algorytmu wyznaczania wszystkich przecięć półprostej z atraktorem, wykorzystującego drzewo kul ograniczających podzbiory atraktora (podpunkt 7.2.3). Wspomnia- 206 Estymacja wektorów normalnych w punktach atraktora na modyfikacja polega na zastosowaniu – w miejsce oryginalnej półprostej – kuli 1 B p, i dokonywaniu adaptacyjnych testów przecięcia tej kuli z kulami znaj 2 dującymi się w węzłach drzewa. Macierz M zdefiniowana wzorami (8.5) lub (8.7) obliczana jest na podsta 1 wie punktów q f (xi ) , gdzie f F p, , zaś xi są punktami skończonej 2 sekwencji {xi }iK 0 wygenerowanej przy użyciu algorytmu probabilistycznego dla x 0 A (por. punkt 3.3). Obliczanie macierzy M może być dokonywane równolegle z generowaniem punktów wspomnianej sekwencji, poprzez zastosowanie iteracji M i M i 1 ( f (xi ) p)( f (xi ) p)T , i 0,..., K , f F ( p , / 2) dla macierzy (8.5) lub, odpowiednio dla macierzy (8.7), iteracji M i M i 1 f F ( p , / 2) ( f (xi ) p)( f (xi ) p)T h (|| f (xi ) p ||), i 0,..., K . W obydwu formułach, dla i = 0, M 1 oznacza macierz zerową. Wadą opisanego podejścia jest jego duży koszt obliczeniowy, który powoduje, że nie może ono być wykorzystane do obliczania wektorów normalnych bezpośrednio w trakcie procesu wizualizacji atraktorów w czasie rzeczywistym. Jednakże, podobnie jak w przypadku metody gradientowej, wektory normalne mogą być wyznaczone w fazie obliczeń wstępnych i następnie wykorzystywane w standardowy sposób do cieniowania atraktora w czasie rzeczywistym przy wykorzystaniu funkcjonalności potoku współczesnych akceleratorów graficznych. 8.6. PORÓWNANIE ALGORYTMÓW W celu porównania wyników otrzymywanych przy wykorzystaniu metod omówionych w niniejszym rozdziale, na rys. 8.5 zaprezentowano rezultaty wizualizacji odbicia rozproszonego światła białego w punktach aproksymacji atraktora IFS określanego popularnie jako dywan Sierpińskiego, usytuowanego w przestrzeni trójwymiarowej. Zastosowano model równoległego (kierunkowego) źródła światła o wektorze padania światła [1,1,1]T (w lewoskrętnym układzie współrzędnych). Intensywność odbicia światła obliczono przy wykorzystaniu modelu lambertowskiego (Foley i inni [37], Zabrodzki [157]), zastosowanego w kontekście wektorów normalnych oszacowanych w punktach aproksymacji przy użyciu poszczególnych podejść. Na rysunku 8.6 przedstawiono histogramy kosinusów kątów utworzonych przez wektory normalne i normalną płaszczyzny, której podzbiorem jest rozważany atraktor. Estymacja wektorów normalnych w punktach atraktora 207 Rys. 8.5. Wykorzystanie normalnych oszacowanych w punktach aproksymacji atraktora do obliczania odbicia rozproszonego światła emitowanego przez źródło kierunkowe. Metoda wykorzystująca otoczki wypukłe podzbiorów atraktora, metoda wykorzystująca zawartość z-bufora oraz metoda wykorzystująca regresję liniową dają w tym przypadku identyczny wynik, który został zobrazowany na wizualizacji a). Pozostałe wizualizacje odnoszą się odpowiednio do: b) metody „wygładzania” atraktora przy wykorzystaniu kul, c) metody wag stałych, d) metody wag dolnoprzepustowych, e) metody wag górnoprzepustowych, f) metody gradientu funkcji odległości 208 Estymacja wektorów normalnych w punktach atraktora Rys. 8.6. Histogramy kosinusów kątów utworzonych przez wektory normalne i normalną płaszczyzny, której podzbiorem jest atraktor IFS z rys. 8.5 (poszczególne wykresy odnoszą się do odpowiednich wizualizacji tego atraktora) Jak widać na rys. 8.6a, normalne wyznaczone przy użyciu metody wykorzystującej otoczki wypukłe podzbiorów atraktora, metody wykorzystującej regresję liniową i metody wykorzystującej zawartość z-bufora są identyczne i całkowicie zgodne z normalną płaszczyzny, na której zlokalizowany jest atraktor. W rezultacie, obliczona intensywność odbicia rozproszonego jest taka sama w każdym punkcie aproksymacji atraktora, czego wyrazem jest równomierny rozkład jasności na atraktorze w wizualizacji przedstawionej na rys. 8.5a. Jeśli za kryterium jakości wyników przyjąć kryterium oparte na – wyrażonym w podpunkcie 8.2.1 – postulacie „odzwierciedlania krzywizny powierzchni atraktora przez wektory normalne”, to, w świetle przedstawionych wyników, metody te należy uznać za najlepsze. Jak wskazano jednak w punkcie 8.3, metoda wykorzystująca zawartość z-bufora obarczona jest szeregiem ograniczeń, m.in. jej zastosowanie zawężone jest jedynie do Wizualizacja 209 przypadku rzutowania równoległego wizualizowanych zbiorów. Z kolei, metoda oparta na regresji liniowej charakteryzuje się dużym kosztem obliczeniowym, który jest znacznie większy od nakładu obliczeń dwóch pozostałych wymienionych metod. Stąd, w tej kategorii metod, metoda wykorzystująca otoczki wypukłe zaproponowana w pracy (Martyn [95]) wydaje się najlepsza. Zbliżone rezultaty daje również metoda wykorzystująca szacowanie gradientu funkcji odległości (rys. 8.5f i 8.6f). Niemniej, podobnie jak metoda wykorzystująca regresję liniową, metoda ta wymaga na ogół dużego nakładu obliczeń związanych z szacowaniem wartości funkcji odległości punktów od atraktora. Z punktu widzenia wspomnianego wyżej postulatu, pozostałe cztery metody dają znacznie gorsze wyniki (por. wykresy na rys. 8.6). Niemniej, należy zauważyć, iż wobec faktu nieróżniczkowalności obiektów fraktalnych i, co za tym idzie, formalnie nieokreślonych normalnych w punktach takich obiektów, postulat ten stanowi jedynie próbę wyrażenia z natury subiektywnej intuicji w obiektywnym języku matematyki. Jako taki, postulat ten nie jest bezwzględnie wiążący i w miarę potrzeb może być zastąpiony postulatem innym. Kryterium ocennym mogą być w szczególności wrażenia estetyczne płynące z percepcji wizualizowanych atraktorów cieniowanych przy użyciu normalnych uzyskanych za pomocą danej metody. Jeżeli przyjmie się taki punkt widzenia, wizualizacje zaprezentowane na rys. 8.5b–e będą prawdopodobnie uznane przez większość obserwatorów za bardziej atrakcyjne niż przedstawione na rys. 8.5a, f. Wybór odpowiedniej metody szacowania wektorów normalnych zależy zatem od kontekstu, w którym wektory te będą następnie wykorzystywane. 9. WIZUALIZACJA 9.1. ATRAKTORY W PRZESTRZENI 2D Zagadnienie wizualizacji atraktorów IFS będących podzbiorami przestrzeni dwuwymiarowej obejmuje metody obrazowania geometrii tych zbiorów oraz pośredniej informacji niesionej przez te zbiory i ich dopełnienia, a także informacji, która dotyczy specyfikacji IFS. Wybór odpowiedniej metody zależy zatem od określonego celu i przedmiotu wizualizacji. Jednym z możliwych ogólnych podziałów metod obrazowania atraktorów 2D jest podział na: • metody wizualizacji geometrii atraktora, ewentualnie wraz z dodatkową informacją zlokalizowaną na tym zbiorze, • metody wizualizacji informacji zawartej w dopełnieniu atraktora. 210 Wizualizacja Pierwsza grupa metod opiera się na algorytmach aproksymacji przedstawionych w rozdz. 3 i 4, wzbogaconych ewentualnie o schematy przypisywania poziomu jasności lub barwy punktom aproksymacji na podstawie wartości miary niezmienniczej, której nośnikiem jest atraktor, lub innych możliwych kryteriów, zwykle estetycznych. Na rysunku 9.1 przedstawiono diagram obrazujący zależności między algorytmami geometrycznymi i innymi zagadnieniami składającymi się na metody wizualizacji geometrii atraktora. Rys. 9.1. Wizualizacja geometrii atraktora 2D – diagram zależności między algorytmami składowymi. Zapis A B oznacza, że do rozwiązania problemu B konieczne jest rozwiązanie problemu A. W przypadku, gdy strzałka narysowana jest linią przerywaną, oznacza to, iż do rozwiązania problemu B ewentualnie może być konieczne rozwiązanie problemu A (w zależności od wykorzystanych algorytmów) Z kolei, wśród metod wizualizacji dopełnienia atraktora można wyróżnić metody obrazowania: • funkcji odległości punktu od atraktora, • czasu ucieczki, • funkcji potencjału. Metody obrazowania geometrii atraktora przedstawiono w podpunktach 9.1.19.1.4, zaś metodom wizualizacji dopełnienia atraktora poświęcono podpunkty 9.1.5–9.1.7. 9.1.1. Operator Hutchinsona a wizualizacja atraktorów i miar niezmienniczych Z punktu widzenia definicji 2.18 atraktora IFS opartej na właściwościach operatora Hutchinsona (2.10), które zostały ujęte we wniosku 2.17, za najbardziej elementarne podejście do wizualizacji tych zbiorów należy uznać meto- Wizualizacja 211 dy eksploatujące iterację tego operatora. W najprostszym zastosowaniu tych metod wizualizacja polega na zapaleniu pikseli reprezentujących poszczególne punkty zbioru aproksymującego atraktor, otrzymanego w rezultacie zastosowania jednego z wariantów algorytmu aproksymacji, które zostały przedstawione w punkcie 3.1. W związku z tym należy zauważyć, że proces aproksymacji atraktora odbywa się tutaj, niejako z założenia, w continuum liczb rzeczywistych1, zaś proces dyskretyzacji zbioru aproksymującego ma miejsce dopiero w momencie przedstawiania obrazu tego zbioru w dyskretnej przestrzeni pikseli w procesie wizualizacji. Odmienne podejście, w przypadku którego proces aproksymacji atraktora odbywa się bezpośrednio w dyskretnej przestrzeni obrazu (przestrzeni pikseli), polega na zastosowaniu metody opartej na iteracji dyskretnej wersji operatora Hutchinsona W (formuła (4.14)) opisanej w podpunkcie 4.5.2. Rozpoczynając od prostokątnej siatki I 0 m n zapalonych pikseli takiej, że I 0 W ( I 0 ) , w kolejnych iteracjach tworzona jest sekwencja binarnych obrazów I 0 , I1 ,..., I M o rozdzielczości mn pikseli, gdzie obraz I k 1 powstaje poprzez przekształcenie współrzędnych zapalonych pikseli poprzedniego obrazu I k przy użyciu operatora ~ W ; operację tę oznaczymy jako I k 1 W ( I k ) . Na podstawie rozważań przeprowadzonych w podpunkcie 4.5.2, rozważany ciąg obrazów zbiega w skończonej liczbie kroków do obrazu I M W ( I M ) , którego zapalone piksele aproksymują oryginalny atraktor IFS z dokładnością, o jakiej mówi twierdzenie 4.14. Opisany sposób wizualizacji (oraz jego modyfikacje w zakresie zawartości obrazu początkowego) stosowany jest często w celach edukacyjnych, aby zobrazować fakt zbieżności procesu iterowania operatora Hutchinsona do atraktora IFS2; (np. Barnsley [7, s. 86–87]). Metoda iteracji dyskretnego operatora Hutchinsona może zostać uogólniona do obrazowania miar niezmienniczych IFSP {w1,...,wN ; p1,..., pN}, których nośnikami są atraktory IFS. Jak pokazano w punkcie 2.4, miara taka jest granicą ciągu miar powstałego poprzez iteracyjne zastosowanie operatora Markowa do dowolnej unormowanej miary borelowskiej o zwartym nośniku spt (wniosek 2.32). Bezpośrednio z definicji operatora Markowa (formuła (2.16)) wynika, że obrazem miary przy tym przekształceniu jest miara M ( ) , będąca sumą N miar postaci pi wi# . Z kolei, z definicji 2.29 obrazu miary przy danym odwzorowaniu oraz definicji nośnika miary 2.26, wynika, że dla każdej z tych miar, nośnik spt( pi wi# ) wi (spt ) oraz, że miara wi# – podobnie jak miara – jest unormowana. 1 Oczywiście pomijając fakt skończonej precyzji liczb zmiennopozycyjnych. Należy zauważyć, iż nieco na wyrost, wziąwszy pod uwagę fakt, iż w rzeczywistości iteracji poddawana jest jedynie dyskretna wersja tego operatora. 2 212 Wizualizacja Rys. 9.2. Zastosowanie algorytmu stałej masy do wizualizacji przykładowej miary niezmienniczej IFSP – wyniki kolejnych kroków iteracji algorytmu. Wykorzystany IFSP to układ odwzorowań zamieszczony w dodatku A w punkcie 6 (pierwszy układ) wyposażony w prawdopodobieństwa [0,28, 0,33, 0,39] Na podstawie powyższych informacji, wykorzystanie idei iteracji dyskretnego operatora Hutchinsona do wizualizowania miary niezmienniczej IFSP sprowadza się do utworzenia sekwencji obrazów monochromatycznych I 0 , I1 ,..., I M o rozdzielczości m×n pikseli przyjmujących odpowiednie wartości w skali szarości, zgodnie z zależnością N I k 1 pi w i ( I k ) , (9.1) i 1 gdzie I 0 W ( I 0 ) jest obrazem o jednorodnej, niezerowej wartości wszystkich pikseli. Zapis w i ( I k ) oznacza utworzenie nowego obrazu o rozdzielczości m×n Wizualizacja 213 poprzez przekształcenie współrzędnych zapalonych pikseli obrazu I k odwzorowaniem w i i zakumulowanie wartości odpowiednich pikseli w obrazie w i ( I k ) . Operacje mnożenia przez wartość skalarną pi i sumowania są operacjami macierzowymi dokonywanymi na obrazach w i ( I k ) , interpretowanych jako macierze m×n określające wartości odpowiednich pikseli. W zależności od celu wizualizacji, wartości pikseli są zwykle interpretowane albo jako poziom jasności pikseli, albo jako indeks w pewnej zdefiniowanej palecie kolorów. Na rysunku 9.2 zaprezentowano wyniki uzyskane w kolejnych krokach opisanego algorytmu dla przykładowej miary niezmienniczej IFSP. Opisana wyżej metoda wizualizacji miary niezmienniczej została zaproponowana między innymi w (Barnsley [7, s. 352 i n.]), a także pod nazwą algorytmu stałej masy (ang. constant mass algorithm) w (Monro i Dudbridge [100]). W artykule (van Wijk i Saupe [151]) zaprezentowano implementację tej metody wykorzystującą elementarne operacje na teksturach, obecne w potoku graficznym API OpenGLa począwszy od wersji 1.1 (i realizowane sprzętowo niemalże w każdej karcie graficznej współczesnych komputerów osobistych). W cytowanej pracy [151] przedstawiono również proste rozszerzenie tej metody do generowania kolorowych obrazów atraktorów IFS w celach estetycznych. Rozszerzenie to polega na dokonywaniu iteracji (9.1) niezależnie dla każdej składowej koloru w modelu barw RGB. Każdemu z odwzorowań w i przypisywana jest zatem trójka prawdopodobieństw ( piR , piG , piB ) odnoszących się do poszczególnych składowych koloru, zaś rezultatem iteracji są aproksymacje trzech miar niezmienniczych, których wartości w danym pikselu określają barwę tego piksela. 9.1.2. Gra w chaos a metody wizualizacji – kolorowanie IFS i wykradanie kolorów W ogólnym ujęciu, zastosowanie algorytmu probabilistycznego aproksymacji (zarówno w wersji omówionej w punkcie 3.3, jak i punkcie 4.3) w zagadnieniu wizualizacji polega na zapalaniu pikseli będących dyskretną reprezentacją punktów sekwencji generowanej przez ten algorytm. W najprostszym rozwiązaniu, w którym piksele przybierają tylko dwie wartości (interpretowane jako informacja o zapaleniu lub zgaszeniu piksela), w wyniku otrzymuje się binarny obraz aproksymacji geometrii atraktora. Ze względu na prostotę implementacji, technika ta jest najbardziej popularną metodą wizualizacji atraktorów IFS na przestrzeni R 2 , powszechnie wykorzystywaną w celach edukacyjnych jako „naoczny” dowód poprawności algorytmu probabilistycznego (por. np. Barnsley [7], Pierański [117], Kudrewicz [70]). Rozszerzenie tego podejścia polega na obrazowaniu aproksymacji miary niezmienniczej IFSP niesionej przez atraktor. W tym celu szacowana jest wartość miary niezmienniczej poszczególnych pikseli interpretowanych jako podzbiory bore- 214 Wizualizacja lowskie przestrzeni R 2 i wartości te reprezentowane są w obrazie jako poziomy jasności pikseli w odpowiedniej skali szarości. Na podstawie twierdzenia 3.7, wartość miary niezmienniczej piksela, dla dostatecznie dużej liczby iteracji algorytmu probabilistycznego, może być aproksymowana jako stosunek liczby punktów wygenerowanej sekwencji należących do tego piksela (czyli reprezentowanych przez ten piksel) do całkowitej liczby punktów ciągu. Wobec tego, zastosowanie gry w chaos w omawianym celu polega na inkrementowaniu poziomu jasności pikseli „odwiedzanych” przez punkty sekwencji generowanej przez ten algorytm. W rezultacie otrzymywany jest obraz monochromatyczny będący swego rodzaju histogramem rozkładu miary niezmienniczej na dyskretnej reprezentacji atraktora. Obok zastosowań czysto edukacyjnych, metoda ta wykorzystywana jest do generowania fraktalnych tekstur oraz atrakcyjnych wizualnie, „pocieniowanych” obrazów fraktali dwuwymiarowych (np. Barnsley i inni [11], Barnsley [7]). Przykładowe obrazy miar niezmienniczych IFSP zlokalizowanych na kwadracie, które zostały uzyskane przy wykorzystaniu omówionej metody, zaprezentowano na rys. 9.3. Rys. 9.3. Uzyskane, za pośrednictwem algorytmu gry w chaos, obrazy przykładowych miar niezmienniczych IFSP zlokalizowanych na kwadracie. Prawdopodobieństwa od strony lewej do prawej, z góry na dół: [0,287, 0,216, 0,259, 0,238], [0,27, 0,19, 0,27, 0,27], [0,3125, 0,21875, 0,3125, 0,15625], [0,221, 0,26, 0,312, 0,207] Wizualizacja 215 Niemniej, przedstawione wyżej, liniowe odwzorowywanie „gęstości” miary niezmienniczej IFSP w pikselach w jasność tych pikseli bardzo często daje w wyniku obrazy o niskim poziomie jasności. Jak trafnie zauważono w artykule (Draves i Reckase [24]), przyczyną wspomnianego efektu jest to, że na ogół liczba pikseli o danej gęstości miary maleje wykładniczo w stosunku do wartości tej gęstości – liczba ta jest w przybliżeniu odwrotnie proporcjonalna do logarytmu gęstości. Ponieważ maksymalna gęstość miary w pikselach obrazu jest zwykle o wiele większa od średniej wartości tej gęstości, liniowe odwzorowanie gęstości w jasność skutkuje tym, że znaczna część obrazu atraktora ma niską jasność (obraz jest ciemny) – rys. 9.4a. Niejako naturalnym rozwiązaniem przedstawionego problemu jest – zaproponowane w cytowanej pracy – wykorzystanie, w miejsce odwzorowania liniowego, funkcji logarytmicznej i określanie jasności poszczególnych pikseli jako logarytmu wartości (gęstości) miary w tych pikselach. Zastosowanie takiego podejścia daje w wyniku obrazy, które często sprawiają wrażenie, iż atraktor jest strukturą trójwymiarową (rys. 9.4b), co powodowane jest tym, że części atraktora charakteryzujące się większą gęstości miary zdają się przysłaniać podzbiory o gęstości mniejszej. Podobnie jak algorytmy wizualizacji miary niezmienniczej opisane w poprzednim podpunkcie, obrazy generowane przy wykorzystaniu algorytmu probabilistycznego można wzbogacić o walor koloru. W najprostszym rozwiązaniu dokonuje się tego poprzez interpretowanie wartości skalarnych przechowywanych w pikselach jako indeksów kolorów w zdefiniowanej palecie kolorów. Inne rozwiązanie polega na równoczesnej wizualizacji trzech miar niezmienniczych niesionych przez atraktor, których trójki wartości dla poszczególnych pikseli interpretowane są jako barwy w przestrzeni barw RGB (lub innej). Bardziej wyszukany sposób generowania barwnych obrazów miar niezmienniczych został zaproponowany w artykule (Draves i Reckase [24]). Polega on na przypisaniu każdemu z N odwzorowań IFS pewnej barwy c(i) w przestrzeni RGB. Barwa bieżącego punktu p k wi (p k 1 ) wygenerowanego w k-tej iteracji gry w chaos określana jest jako c k (c( i ) c k 1 ) / 2 , gdzie i jest indeksem odwzorowania wylosowanego w k-tej iteracji algorytmu. Barwa c0 jest dowolnie ustaloną barwą początkową. Barwy punktów akumulowane są (addytywnie) w „odwiedzanych” przez te punkty pikselach. Po zakończeniu działania gry w chaos, wynikowa barwa piksela P(x, y) obrazu obliczana jest jako c( x, y ) log ( x, y ) / ( x, y ) , gdzie c( x, y ) jest sumą barw punktów, które „odwiedziły” piksel P(x, y), zaś ( x, y ) oznacza liczbę takich punktów. Efekt wykorzystania tego podejścia zobrazowano na rys. 9.4c. Ponadto, w cytowanej pracy zaproponowano wzbogacenie powyższej formuły wyznaczania barwy piksela o parametr 1 odpowiadający za korekcję gamma. Formuła określania barwy piksela uwzględniająca korekcję gamma ma postać c( x, y )(log ( x, y ))1/ / ( x, y ) . Wspomniany parametr umożliwia zwiększenie 216 Wizualizacja udziału w obrazie „ciemniejszych” części atraktora. Przykład zastosowania korekcji gamma zaprezentowano na rys. 9.4d. Rys. 9.4. Przykład wizualizacji miary niezmienniczej IFSP zlokalizowanej na atraktorze nieliniowego IFS: a) liniowe odwzorowanie miary w jasność pikseli, b) logarytmiczne odwzorowanie miary w jasność pikseli, c) „kolorowanie” miary, d) „kolorowanie” miary z korekcją gamma ( 2, 2 ) Łatwo zauważyć, że formuła c k (c( i ) c k 1 ) / 2 , przy użyciu której opisana metoda wyznacza barwę bieżącego punktu wygenerowanego przez grę w chaos, może zostać wyrażona jako podobieństwo na przestrzeni R 3 o postaci: 1 1 1 1 Ci ([ R, G , B ]T ) diag , , [ R, G , B ]T c( i ) . 2 2 2 2 Odwzorowanie to jest odwzorowaniem zwężającym o punkcie stałym c(i). Uogólnienie tej metody zostało przedstawione w książce (Barnsley [9, s. 325–327]) Wizualizacja 217 i określone jako kolorowanie IFS (ang. IFS colouring). Kolorowanie IFS opiera się na rozszerzeniu oryginalnego układu IFS {w1 ,..., wN } na przestrzeni R 2 z metryką d i o atraktorze A do przestrzeni R 2 C , C R 3 , poprzez wzbogacenie oryginalnych odwzorowań IFS w dodatkowe przekształcenia Ci : C C działające na trójwymiarowej przestrzeni barw RGB. W rezultacie otrzymuje się układ odwzorowań {( w1 , C1 ),...,( wN C N )} . W cytowanej pracy, jako przekształcenia Ci, zaproponowano przekształcenia afiniczne postaci: Ci ([ R, G , B ]T ) diag(ai , bi , ci )[ R, G , B ]T [ i , i , i ]T , (9.2) gdzie | ai |,| bi |,| ci | 1 . Tym sposobem odwzorowania Ci są zwężające na przestrzeni (C , d E ) , a zatem układ odwzorowań {C1 ,..., C N } jest IFS na tej przestrzeni i stąd posiada pewien atraktor C . Wobec tego, rozszerzony układ {( w1 , C1 ),...,( wN C N )} jest IFS na przestrzeni R 2 C z metryką max{d , d E } i również on posiada atraktor. Atraktor ten można interpretować jako wykres pewnej funkcji odwzorowującej C na A . Innymi słowy, każdemu punktowi należącemu do atraktora C przyporządkowany jest dokładnie jeden punkt atraktora A oraz każdemu punktowi należącemu do A przyporządkowany jest co najmniej jeden punkt należący do C . Pewne uogólnienie opisanej techniki kolorowania atraktorów IFS, w którym w miejsce odwzorowań (9.2) zastosowano odwzorowania afiniczne w ogólnej postaci, można znaleźć w pracach (Nikiel [104, 105]). Bardziej wyrafinowana metoda nadawania barwy punktom atraktora IFS polega na zastosowaniu techniki opisanej w (Barnsley [9]) i określanej jako wykradanie kolorów (ang. colour stealing). Dla danego atraktora A IFS {w1 ,..., wN } na przestrzeni R 2 , definiowany jest IFS {C1 ,..., C N } na przestrzeni R 2 oraz arbitralnie wybierany jest kolorowy obraz dyskretny C (np. pewna rzeczywista fotografia). Do układu IFS {C1 ,..., C N } stosowane są odpowiednie przekształcenia (zwykle skalowania i translacji), tak aby atraktor C układu {C1 ,..., C N } po przekształceniu zawierał się w siatce pikseli obrazu C rozpatrywanej jako podzbiór przestrzeni R 2 . W ten sposób powstaje pewne przyporządkowanie kolorów punktom atraktora C , poprzez określenie barwy danego punktu atraktora jako barwy piksela zawierającego ten punkt. Przypisanie barwy punktom oryginalnego atraktora A następuje poprzez zastosowanie algorytmu gry w chaos równocześnie do obydwu układów IFS. Począwszy od punktów a 0 A i c0 C generowane są dwie sekwencje {a k }kM 0 i {c k }kM 0 punktów należące do wspomnianych atraktorów, tak że a k w k (a k 1 ) i c k C k (c k 1 ) , gdzie k {1,..., N } jest indeksem odwzorowania IFS wylosowanym w k-tej iteracji algorytmu. Tym sposobem barwa punktu a k określana jest jako barwa punktu c k , która z kolei jest pobierana (używając oryginalnej nomenklatury: „wykradana”) z obrazu C . W związku z zastosowaniem obydwu przedstawionych metod przypisywania kolorów punktom atraktora rodzi się problem, jaką barwę nadać pikselowi, 218 Wizualizacja do którego przynależy więcej niż jeden punkt generowanej sekwencji i punkty te mają różne barwy. Jedno z najprostszych1 rozwiązań polega na zastosowaniu mieszania kolorów za pośrednictwem kanału . Bardziej wyszukane podejście, zaproponowane w (Barnsley [8]) (por. także (Barnsley [9, s. 336 i n.])), wykorzystuje w tym celu tzw. funkcję wierzchu (ang. the tops function). Podanie ścisłej definicji funkcji wierzchu wykracza poza zakres niniejszej pracy. Tutaj wystarczy jedynie powiedzieć, iż funkcja ta pozwala wyodrębnić „zewnętrzne warstwy” atraktora spośród części wspólnych „warstw” (podzbiorów atraktora) w1 ...w m ( A ) , k {1,..., N } , m N , na podstawie pewnego porządku liniowego na przestrzeni nieskończonych ciągów indeksów odwzorowań (czyli tzw. przestrzeni adresów) skojarzonych z punktami atraktora2. W praktyce, wykorzystanie funkcji wierzchu sprowadza się do szacowania jej wartości na podstawie ciągu indeksów odwzorowań IFS sprowadzających dany punkt trajektorii wygenerowanej przez grę w chaos do danego piksela. Załóżmy3, że a 0 wN (a 0 ) . Jeśli bieżący punkt a k w k ... w1 (a 0 ) generowanej sekwencji należy do piksela, wówczas sekwencja k ... 1 indeksów odwzorowań IFS porównywana jest z bieżącą sekwencją j ... 1 , j < k, pamiętaną dla tego piksela. Relacja porównywania sekwencji indeksów zdefiniowana jest przy wykorzystaniu wspomnianego wyżej porządku na przestrzeni adresów jako k ... 1 j ... 1 k ... k j 1 j ... 1 lub k i j i , (9.3) gdzie i min{m {0,..., j 1}: k m j m } , przy czym k ... 1 , gdzie oznacza pustą sekwencję indeksów. Jeśli nowa sekwencja k ... 1 jest większa niż zapamiętana j ... 1 , wówczas bieżąca barwa piksela zastępowana jest barwą punktu a k i dla piksela, w miejsce dotychczasowej sekwencji, pamiętana jest sekwencja k ... 1 . W przypadku przeciwnym, zarówno kolor piksela, jak i pamiętana dla niego sekwencja symboli nie ulega zmianom. Rezultatem zastosowania opisanej procedury są barwne obrazy atraktorów, które sprawiają wrażenie, iż atraktor składa się z „warstw”. W rzeczywistych im1 Jeszcze prostsze rozwiązanie przedmiotowego problemu podał M. Barnsley w związku z algorytmem kolorowania IFS, stwierdzając po prostu, iż nie trzeba się tym kłopotać, bowiem można określać barwę piksela jako barwę ostatniego punktu odwiedzającego ten piksel (Barnsley [9, s. 325]). 2 Adresem punktu a atraktora IFS {w1,...,wN} na przestrzeni X nazywany jest dowolny nieskończony ciąg indeksów 1 , 2 ... k ... ze zbioru {1,...,N} taki, że w1 w 2 ... w k ...( x) a dla każdego x X . Można pokazać, że z każdym punktem atraktora można skojarzyć co najmniej jeden adres (Barnsley [7, s. 122 i n.]). W związku z tym zauważmy, że powyższe założenie implikuje, iż adresem punktu w k ... w1 (a 0 ) wygenerowanego w k-tej iteracji algorytmu probabilistycznego jest k ... 1 N , gdzie N oznacza nieskończoną sekwencję symbolu N. 3 Wizualizacja 219 plementacjach, sekwencje indeksów, przechowywane dla poszczególnych pikseli, pamiętane są zwykle w postaci skróconej, ograniczonej z góry zadaną dopuszczalną liczbą indeksów (indeksy wykraczające poza tę granicę nie są pamiętane). Na rysunku 9.5a pokazano „warstwy” przykładowego atraktora wyznaczone na podstawie pojedynczych indeksów, na rys. 9.5b – efekt zastosowania metody kolorowania IFS wraz z wykorzystaniem funkcji wierzchu, a na rys. 9.5c – wynik zastosowania funkcji wierzchu wraz z metodą wykradania kolorów, które pobrano z fotografii zamieszczonej na rys. 9.5d. Rys. 9.5. Zastosowanie metody kolorowania IFS oraz metody wykradania kolorów z wykorzystaniem wartości funkcji wierzchu: a) uporządkowanie „warstw” wi ( A ) atraktora IFS względem przykładowego porządku na zbiorze indeksów odwzorowań, b) przykład zastosowania kolorowania IFS wykorzystującego wartości funkcji wierzchu, c) przykład zastosowania metody wykradania kolorów wykorzystującej wartości funkcji wierzchu, d) rzeczywista fotografia, z której pobrano barwy 9.1.3. Wykorzystanie algorytmu adaptacyjnych odcięć Wykorzystanie algorytmu adaptacyjnych odcięć do tworzenia binarnych obrazów geometrii atraktora odbywa się na analogicznych zasadach jak te, które leżą u podstaw zastosowania w tym celu algorytmu probabilistycznego. Obraz tworzo- 220 Wizualizacja ny jest przy wykorzystaniu algorytmu ACA zmodyfikowanego pod kątem aproksymacji atraktora na -siatce, który został opisany w punkcie 4.2. Binarne wartości przybierane przez poszczególne piksele obrazu odpowiadają usytuowaniu odpowiednich podzbiorów atraktora w przestrzeni obrazu i tym samym obraz ten stanowi wizualną reprezentację zbioru aproksymującego zdefiniowanego formułą (4.7). Algorytm adaptacyjnych odcięć może być również rozszerzony o możliwość obrazowania miary niezmienniczej IFSP zlokalizowanej na atraktorze A (Hepting i inni [56]). Ponieważ na podstawie wniosku 2.32, dla danego IFSP {w1,..., wN ; p1,..., pN}, miara niezmiennicza jest znormalizowana oraz jest punktem stałym operatora Markowa (2.16), zatem może zostać rozłożona na sumę N miar o postaci pi1 wi#1 o nośnikach spt( pi1 wi#1 ) wi1 ( A ) oraz całkowitej wartości pi1 wi#1 ( wi1 ( A )) pi1 , i1 1,..., N . Z kolei, każda miara składowa pi1 wi#1 jest sumą N miar: N N pi1 wi#1 pi1 wi#1 M ( ) pi1 wi#1 pi2 wi#2 pi1 pi2 wi#1 wi#2 , i2 1 i2 1 których nośniki spełniają spt( pi1 pi2 wi#1 wi#2 ) wi1 wi2 ( A ) , zaś całkowite wartości pi1 pi2 wi#1 wi#2 ( wi1 wi2 ( A )) pi1 pi2 , i2 1,..., N . Stosując powyższe rozumowanie, na podstawie indukcji otrzymuje się, iż w ogólności każda miara składowa pi1 ... pik wi#1 ... wi#k o nośniku spt( pi1 ... pik wi#1 ... wi#k ) wi1 ... wik ( A ) i całkowitej wartości pi1 ... pik wi#1 ... wi#k ( wi1 ... wik ( A )) pi1 ... pik jest sumą N miar: pi1 ... pik wi#1 ... wi#k N p ... p ik 1 1 i1 ik pik 1 wi#1 ... wi#k wi#k 1 . Nośniki tych miar spełniają spt( pi1 ... pik pik 1 wi#1 ... wi#k wi#k 1 ) wi1 ... wik wik 1 ( A ) , zaś ich całkowite wartości wynoszą pi1 ... pik pik 1 wi#1 ... wi#k wi#k 1 ( wi1 ... wik wik 1 ( A )) pi1 ... pik pik 1 , ik 1 1,..., N . Wobec tego, zastosowanie algorytmu adaptacyjnych odcięć do obrazowania miary niezmienniczej polega na akumulowaniu w odpowiednich pikselach całkowitych wartości miar składowych, których nośniki mają średnicę nie większą od dozwolonego błędu aproksymacji. Akumulowanie wartości miary w danym pikselu odbywa się poprzez inkrementację bieżącej wartości piksela o całkowitą wartość pi1 ... pim miary składowej pi1 ... pim wi#1 ... wi#m niesionej przez podzbiór atraktora wi1 ... wim ( A ) , który jest reprezentowany przez punkt przynależny do tego piksela. Wizualizacja 221 Należy zauważyć, iż otrzymywane w ten sposób obrazy miary niezmienniczej dają na ogół pełniejszy wgląd w rozkład tej miary, aniżeli obrazy otrzymane przy pomocy algorytmu probabilistycznego. Dotyczy to w szczególności podzbiorów atraktora, dla których wartość miary niezmienniczej jest relatywnie niewielka. Podczas gdy prawdopodobieństwo „trafienia” w taki podzbiór przez sekwencję generowaną przez algorytm probabilistyczny w skończonej liczbie kroków jest również odpowiednio niskie, algorytm adaptacyjnych odcięć „oszacuje” miarę tego podzbioru niezależnie od jej wartości. Podobnie jak w przypadku metod opisanych w poprzednich podpunktach, wartości przechowywane w pikselach mogą być interpretowane albo jako poziomy jasności, albo odwzorowane w odpowiednie indeksy w zdefiniowanej palecie kolorów. Na rysunku 9.6 przedstawiono wizualizacje przykładowych miar niezmienniczych IFSP zlokalizowanych na paprotce Barnsleya. Rys. 9.6. Przykłady zastosowania algorytmu adaptacyjnych odcięć do wizualizacji miar niezmienniczych IFSP zlokalizowanych na paprotce Barnsleya generowanych przez prawdopodobieństwa: [0,692, 0,15365, 0,15365, 0,0007], [0,784, 0,137, 0,0784, 0,0006] oraz [0,749, 0,099, 0,149, 0,003]. Stopień jasności barwy czerwonej (począwszy od ciemnej czerwieni do bieli) w punktach obrazu jest proporcjonalny do wartości miary w tych punktach. Barwą zieloną oznaczono piksele o wartości miary bliskiej zera Co więcej, wizualizacja przy wykorzystaniu algorytm adaptacyjnych odcięć może być również rozszerzona o, opisane w poprzednim podpunkcie, metody kolorowania atraktora, tj. kolorowanie IFS oraz wykradanie kolorów. 222 Wizualizacja Zastosowanie w omawianym algorytmie pierwszej z metod kolorowania jest trywialne i sprowadza się do generowania aproksymacji atraktora pięciowymiarowego układu IFS, powstałego poprzez rozszerzenie odwzorowań oryginalnego IFS o przekształcenie kolorów (9.2). Trzy ostatnie współrzędne punktów zbioru aproksymującego atraktor interpretowane są jako współrzędne barwy punktu w przestrzeni RGB. Równie łatwe jest wykorzystanie w algorytmie adaptacyjnych odcięć metody wykradania kolorów. Wyznaczanie barwy dla danego punktu aproksymacji atraktora A IFS {w1,...,wN} odbywa się w trakcie generowania zbioru aproksymującego atraktor, poprzez wyznaczanie tych punktów jednocześnie z generowaniem punktów atraktora C układu IFS {C1,...,CN} na przestrzeni R 2 , przy użyciu którego „wykradane” są kolory z obrazu C . Danemu punktowi wi1 ... wik (a 0 ) , a 0 A , aproksymacji przypisywana jest barwa piksela, do którego przynależy punkt Ci1 ... Cik (c0 ) , c0 C , w obrazie C . Obydwie metody przypisywania barw mogą być wzbogacone o technikę rozwiązywania konfliktu różnych barw punktów przynależnych do tego samego piksela, opartą na funkcji wierzchu. Analogicznie do rozwiązania wykorzystującego algorytm probabilistyczny, dla każdego piksela tworzonego obrazu należy składować sekwencje indeksów odwzorowań skojarzonych z punktami tworzonej aproksymacji. Bieżąca barwa danego piksela określana jest na podstawie porównania (9.3) bieżącej sekwencji zapamiętanej dla tego piksela z sekwencją indeksów i1 ...ik k ... 1 odwzorowań skojarzoną z nowym punktem wi1 ... wik (a 0 ) , a 0 wN (a 0 ) , który został wygenerowany przez algorytm i jest przynależny do tego piksela. 9.1.4. Inne metody wizualizacji geometrii atraktora Oprócz wyżej wymienionych, do obrazowania geometrii atraktora można również zastosować pozostałe algorytmy aproksymacji na -siatkach, opisane w rozdz. 4. Niemniej, w praktyce algorytmy te są wykorzystywane na potrzeby wizualizacji stosunkowo rzadko. Przyczyn takiego stanu rzeczy należy zapewne upatrywać w tym, iż algorytmy opisane w poprzednich podpunktach są na ogół bardziej wydajne obliczeniowo oraz podatne na rozszerzenia o różne warianty przypisywania barw punktom atraktora. W odniesieniu do wspomnianej wyżej niskiej wydajności obliczeń pozostałych algorytmów, pewnym wyjątkiem jest algorytm minimalnego rysowania (punkt 4.4), przy użyciu którego można uzyskać binarny obraz geometrii atraktora w czasie na ogół krótszym, aniżeli w przypadku zastosowania w tym celu metod opisanych w poprzednich podpunktach. U podstaw wydajności tego algorytmu leży jednak fakt, iż dla każdego piksela generuje on tylko jeden punkt zbioru aproksymującego atraktor. Dlatego m.in. algorytm ten nie może zostać rozszerzo- Wizualizacja 223 ny o możliwość obrazowania miary niezmienniczej zlokalizowanej na atraktorze ani też o – dające atrakcyjne efekty wizualne – metody przypisywania barwy tym punktom wykorzystujące funkcję wierzchu. Pomimo to, w pracy (Monro i Dudbridge [100]) zaproponowano metodę generowania monochromatycznych i kolorowych obrazów atraktorów opartą na algorytmie minimalnego rysowania. Metoda ta polega na określaniu jasności (lub barwy) piksela na podstawie szacowania średniej wartości pewnej funkcji fraktalnej (Barnsley [5], a także Massopust [96], Barnsley [7, s. 205 i n.]) przyjmowanej przez tę funkcję dla danego piksela. Niemniej, podejście to ograniczone jest jedynie do wizualizowania atraktorów o geometrii prostokąta, które są zdefiniowane przez układy IFS określające „rozbicie” prostokąta na siatkę mniejszych prostokątów (niekoniecznie równej wielkości). Stąd, generowane obrazy atraktorów są pewną formą obrazowania wartości przybieranych przez funkcję fraktalną na prostokącie. Z punktu widzenia ogólnych metod wizualizacji opisanych w poprzednich podpunktach, zakres zastosowań tego podejścia jest zatem bardzo wąski. 9.1.5. Wizualizacja funkcji odległości W odróżnieniu od metod przedstawionych w poprzednich podpunktach, metody wizualizacji oparte na funkcji odległości należą do grupy metod obrazowania dopełnienia atraktora. Na rysunku 9.7 przedstawiono diagram zależności między algorytmami geometrycznymi i innymi zagadnieniami składającymi się na te metody. Rys. 9.7. Wizualizacja funkcji odległości – diagram zależności między algorytmami składowymi (interpretacja oznaczeń jak na rys. 9.1) W najprostszej realizacji tej metody, dla każdego piksela tworzonego obrazu, aproksymowana jest wartość odległości (7.2) środka tego piksela od atrakto- 224 Wizualizacja ra przy wykorzystaniu algorytmu z punktu 7.3. Wartości te następnie odwzorowywane są albo w poziom jasności pikseli, albo w indeks w zdefiniowanej palecie kolorów. Przykłady wizualizacji otrzymanych omawianą metodą zaprezentowano na rys. 9.8. Wartości odległości można również utożsamiać z „wysokościami” punktów, interpretując tym samym -siatkę pikseli jako tzw. pole wysokości (ang. height field), które może być następnie wizualizowane w formie swoistego terenu w przestrzeni R 3 (Hepting i inni [56]). Rys. 9.8. Wizualizacja funkcji odległości przykładowych atraktorów IFS. Wartości funkcji odległości są odwrotnie proporcjonalne do jasności danej barwy, przekształcanej dodatkowo przy użyciu funkcji modulo. Punkty należące do atraktora przedstawiono przy użyciu wyróżnionego, jednolitego koloru Metodę tę można usprawnić pod względem wydajności obliczeń, poprzez wykorzystanie faktu ciągłości funkcji odległości rozpatrywanej, dla ustalonego atraktora IFS, jako funkcja d : R 2 [0, ) (Hepting i inni [56], Barnsley [9, s. 58–62]). Niech p new będzie środkiem piksela, dla którego należy wyznaczyć wartość funkcji odległości, p prev – środkiem sąsiedniego piksela, dla Wizualizacja 225 którego wartość ta została już obliczona, a nearest zaś – punktem atraktora takim, że d (p prev ) d (p prev , a nearest ) . (Punkt a nearest jest punktem atraktora najbliższym punktu p prev i może być on wyznaczony bez dodatkowego nakładu obliczeń przez algorytm aproksymowania wartości funkcji odległości – por. krok 3 wspomnianego algorytmu). Wówczas wartość d (p new , a nearest ) można uznać za dobre, wstępne oszacowanie poszukiwanej wartości d (p new ) . Wartość tę można zatem wykorzystać w algorytmie aproksymowania odległości jako wartość pierwszego elementu trójki inicjującej ten algorytm. Z kolei, punkt a nearest można uznać za dowolny punkt atraktora, na podstawie obrazów którego obliczane są wartości pierwszych elementów trójek, czyli, używając notacji zastosowanej w punkcie 7.3, odległości d f d (p new , f (a nearest )) . Zastosowanie takiego podejścia pozwala zatem na ogół na wcześniejsze wykrycie i odrzucenie z dalszego przetwarzania przez algorytm podzbiorów atraktora, od których punkt p new jest położony dalej, aniżeli aproksymowana wartość odległości d (p new ) . W celu dążenia do wykorzystania spójności przestrzennej obrazu, kolejne piksele tworzonego obrazu mogą być wybierane w porządku spiralnym (Hepting i inni [56]) lub, stosując bardziej wyrafinowane podejście, w porządku określonym przez krzywą z rodzaju krzywych wypełniających przestrzeń (np. krzywą Hilberta lub Peano; por. Skarbek [138]). Nieco inna metoda wykorzystania funkcji odległości w wizualizacji dopełnienia atraktora IFS adaptuje technikę obrazowania zbiorów Julii i Mandelbrota przedstawioną przez Y. Fishera w książce (Peitgen i Saupe [114]). W kontekście atraktorów IFS technika ta została wykorzystana w pracy (Hepting i inni [56]). Polega ona na rysowaniu w przestrzeni obrazu kół o promieniach proporcjonalnych do odległości środka koła od atraktora. Za stałą proporcji na ogół przyjmowana jest wartość 14 . Punkty znajdujące się wewnątrz narysowanego koła odrzuca się z dalszych rozważań i procedurę rysowania kół wywołuje się rekurencyjnie dla ośmiu nowych środków leżących na brzegu narysowanego koła. Rekurencja kontynuowana jest dopóty, dopóki promień koła jest mniejszy od ustalonej wartości 0 determinującej minimalną dopuszczalną odległość punktu od atraktora, poniżej której bieżący środek uznawany jest za jeden z punktów atraktora (koło wówczas nie jest rysowane). Wartość ustala się zwykle stosownie do rozmiarów piksela. Nowo narysowane koła „przykrywają” koła narysowane wcześniej, zaś procedura rekurencyjna rysowania kół uruchamiana jest w pętli dla każdego piksela, który nie należy do żadnego z dotychczas narysowanych kół ani do atraktora. W celu zwiększenia atrakcyjności tworzonego obrazu, wygenerowany w ten sposób obraz może również zostać wzbogacony o element cieniowania poprzez zastąpienie kół kulami, zdefiniowanie źródeł światła i następnie zastosowanie jednej z metod wizualizacji realistycznej (np. metody śledzenia promieni). 226 Wizualizacja 9.1.6. Wizualizacja czasu ucieczki Podobnie jak metody opisane w poprzednim podpunkcie, metody wizualizacji wykorzystujące ideę czasu ucieczki zaliczają się do grupy algorytmów obrazowania informacji zawartej w dopełnieniu atraktora. Najczęściej wykorzystywana metoda do wizualizacji czasu ucieczki atraktorów IFS polega na obliczaniu, dla każdego piksela tworzonego obrazu, wartości funkcji dyskretnego czasu ucieczki ETR : R 2 N 0 , zdefiniowanej formułą (4.1). Wyznaczone wartości mogą następnie zostać zinterpretowane jako poziomy jasności pikseli bądź odwzorowane w odpowiednie indeksy w przygotowanej palecie kolorów (zob. rys. 9.9). Diagram zależności między algorytmami geometrycznymi i innymi zagadnieniami składającymi się na tę metodę zaprezentowano na rys. 9.10. Rys. 9.9. Wizualizacja dyskretnego czasu ucieczki przykładowych atraktorów IFS przy wykorzystaniu trójkolorowej palety kolorów indeksowanej za pośrednictwem funkcji modulo Podobnie jak w przypadku obrazowania funkcji odległości, -siatka pikseli może być również potraktowana jako definicja pola wysokości i zobrazowa- Wizualizacja 227 na przy wykorzystaniu metod odpowiednich dla reprezentacji danych tego typu (Hepting i inni [56], Prusinkiewicz i Hammel [124]). Rys. 9.10. Wizualizacja czasu ucieczki – diagram zależności między algorytmami składowymi (interpretacja oznaczeń jak na rys. 9.1) Innym możliwym sposobem wizualizowania informacji dotyczącej funkcji czasu ucieczki jest obrazowanie indeksów sekwencji odwrotnych odwzorowań IFS wi1 1 , wi2 1 ,..., wim1 wyznaczających wartości tej funkcji dla punktów zbioru B (0, R ) \ A (czyli ETR (x) m na podstawie wim1 ... wi2 1 wi1 1 (x) B (0, R ) , gdzie m jest maksymalne) (Hepting i inni [56]). U podstaw omawianego sposobu obrazowania leżą tzw. odwzorowania indeksowe (ang. index maps) J k : B (0, R ) \ A {1,..., N } , definiowane jako J k (x) ik , gdzie ik jest wartością indeksu k-tego odwzorowania wspomnianej sekwencji odwzorowań. Przedmiotem wizualizacji są przeciwobrazy indeksów ze zbioru {1,...,N} przy odwzorowaniach indeksowych w zadanym przedziale parametru k. Przeciwobrazy te tworzą podział zbioru B (0, R ) \ A na obszary wskazujące, które z odwróconych odwzorowań IFS determinują czas ucieczki dla danego punktu tego zbioru. Na przykład dla N 3 , przeciwobraz J11 (3) jest obszarem, dla którego punktów pierwszym odwrotnym odwzorowaniem IFS sekwencji określającej czas ucieczki jest odwzorowanie w31 . Z kolei, w obrębie obszaru J11 (3) można zdefiniować N obszarów J11 (3) J 21 (i2 ) , i2 1,..., N , z których każdy określa punkty z czasem ucieczki determinowanym sekwencjami w31 , wi2 1 ,... . Przykład zastosowania omówionej metody do wizualizacji dopełnienia trójkąta Sierpińskiego został zaprezentowany na rys. 9.11a. Ponadto, funkcja dyskretnego czasu ucieczki może zostać zmodyfikowana, tak aby – zamiast całkowitych wartości – przybierała wartości ze zbioru [0, ] . Modyfikacja polega na wzbogaceniu oryginalnej definicji (4.1) o funkcję reszty res : B (0, R ) \ A [0,1) (ang. residual function) o postaci (Prusinkiewicz i Hammel [124]): gdy x 0; 0, res (x) (9.4) log R log || x || , w p.p.; 1 imax 1,..., N log || wi (x) || log || x || 228 Wizualizacja gdzie ||.|| oznacza normę euklidesową. Przy wykorzystaniu funkcji reszty, funkcja ciągłego czasu ucieczki (ang. the contiuous escape-time function) definiowana jest jako 0, gdy || x || R; CETR (x) res (x), gdy || x || R i || wi1 (x) || R, i {1,..., N }; (9.5) 1 max CET ( w1 (x)), w p.p. R i i 1,..., N Porównując powyższą definicję z definicją (4.1) łatwo zauważyć, że dla x B (0, R ) \ A , CETR (x) ETR (x) res (x) 1 . Ponadto można wykazać, że CETR jest funkcją ciągłą zarówno na przestrzeni R 2 \ A , jak i względem wartości parametru R (Hepting i inni [56]). Rys. 9.11. Wizualizacja dopełnienia trójkąta Sierpińskiego przy wykorzystaniu: a) odwzorowania indeksowego, b) funkcji średniej ważonej czasu ucieczki dla prawdopodobieństw [1/10, 2/10, 7/10] Proces obliczania wartości omówionych wyżej wariantów funkcji czasu ucieczki w poszczególnych pikselach tworzonego obrazu można usprawnić wykorzystując rekurencyjną naturę definicji tych funkcji, która znajduje wyraz w rekursji o postaci f (x) 1 max f ( wi1 (x)) . Jeśli wartość funkcji czasu ucieczki i 1,..., N została uprzednio obliczona dla piksela, do którego należy punkt wi1 (x) , to wartość tę można zastosować w powyższej formule do szacowania wartości czasu ucieczki max f ( wi1 (x)) . W celu dążenia do wykorzystania uprzednio obliczoi 1,..., N nych wartości zaleca się obliczanie wartości funkcji ucieczki dla poszczególnych pikseli w porządku spiralnym – począwszy od brzegu tworzonego obrazu, ku jego środkowi. W celu minimalizowania błędu wprowadzanego przez opisane podstawienie, w artykule (Hepting i inni [56]) zaproponowano wyznaczanie wartości funkcji czasu jedynie dla środków pikseli. Inne proponowane podejście pole- Wizualizacja 229 ga na obliczaniu wartości tej funkcji w wierzchołkach pikseli i szacowaniu wartości max f ( wi1 (x)) poprzez interpolację tych wartości uprzednio wyznaczonych i 1,..., N dla piksela zawierającego punkt wi1 (x) . Przykładowe wizualizacje ciągłego czasu ucieczki w postaci pól wysokości zaprezentowano na rys. 9.12. Rys. 9.12. Przykłady wizualizacji ciągłego czasu ucieczki atraktorów IFS w postaci pól wysokości Jako alternatywę dla usprawnienia przedstawionego wyżej, w artykule (Hepting i Hart [55]) przedstawiono wydajną obliczeniowo implementację wyznaczania wartości funkcji czasu ucieczki w pikselach tworzonego obrazu, dla układów IFS składających się z odwzorowań afinicznych. Do przechowywania wartości funkcji czasu ucieczki dla poszczególnych pikseli implementacja wykorzystuje tzw. bufory ucieczki (ang. the escape buffers), które z punktu widzenia grafiki komputerowej mogą być utożsamiane z buforami głębi (z-buforami). Ge- 230 Wizualizacja nerowanie obrazu odbywa się iteracyjnie, poprzez przetwarzanie elementów buforów ucieczki EB przy użyciu formuły EB (p) max{EB (p), wi1 ( EB (p)) 1} , i 1,..., N , gdzie wi1 ( EB (p)) oznacza aktualną wartość „niesioną” przez przeciwobraz elementu p bufora ucieczki przy odpowiednim odwzorowaniu układu IFS (przekształconego do układu współrzędnych bufora przy użyciu twierdzenia 2.22). Jeśli przeciwobraz ten nie zawiera się w zakresie współrzędnych bufora, to za wartość tę przyjmuje się zero. W zależności od tego, czy wizualizowane są wartości dyskretnego czy też ciągłego czasu ucieczki, elementy bufora ucieczki inicjalizowane są odpowiednio wartością zero lub wartościami funkcji reszty (9.4) (w drugim z przypadków funkcja reszty obliczana jest jedynie w odniesieniu do elementów należących do dziedziny tej funkcji; pozostałym elementom przypisywana jest wartość zero). Kolejny możliwy wariant wizualizowania informacji odnoszącej się do czasu ucieczki to obrazowanie średniego (oczekiwanego) zachowania się sekwencji punktów, które są generowane przez algorytm gry w chaos zastosowany do układu {w11 ,..., wN1 ; p1 ,..., pN } odwróconych odwzorowań IFS z prawdopodobieństwami. W tym celu wprowadza się tzw. funkcję średniej ważonej czasu ucieczki (ang. the weighed average escape-time function) AETR : R 2 \ A R , definiowaną jako (Hepting i inni [56]): AETR (x) gdzie: log R log || x m || pi1 ... pim1 m , log || x m 1 || log || x m || ( i1 ,...,im1 )S R ( x ) (9.6) x m wim1 ... wi1 1 (x) i x m 1 wim11 ... wi1 1 (x) , S R (x) zaś jest zbiorem skończonych sekwencji indeksów (i1 ,..., im 1 ) , i j {1,..., N } , takich, że || x m || R i || x m 1 || R . Na podstawie powyższej definicji łatwo zauważyć, że do wartości funkcji średniej ważonej czasu ucieczki mają wkład wszystkie możliwe „sekwencje ucieczki” danego punktu. Jest to zatem istotna różnica w stosunku do poprzednio omówionych funkcji czasu ucieczki, których wartości wyznaczane są na podstawie najdłuższej z takich sekwencji. Podobnie jak w przypadku funkcji (9.5), można pokazać, że funkcja średniej ważonej czasu ucieczki jest ciągła (Hepting i inni [56]). Przykład wizualizacji funkcji średniej ważonej czasu ucieczki dla układu IFSP opisującego trójkąt Sierpińskiego przedstawiono na rys. 9.11b. 9.1.7. Wizualizacja funkcji potencjału Metoda obrazowania dopełnienia atraktora opisana w niniejszym podpunkcie wykorzystuje pojęcia zaczerpnięte z elektrostatyki. Informacja będąca przedmio- Wizualizacja 231 tem wizualizacji to wartości s-potencjału w punktach dopełnienia atraktora IFS względem danego, hipotetycznego rozkładu ładunku elektrostatycznego na atraktorze. Przy założeniu, że rozkład ten opisany jest przez miarę na R 2 , funkcja s-potencjału s : R 2 [0, ) , s 0 , definiowana jest przy użyciu całki Lebesgue’a jako (Falconer [33])1: s ( x) || x a || s d (9.7) A gdzie ||.|| oznacza normę euklidesową wektora. W zagadnieniach wizualizacji atraktorów IFS jako miarę na ogół przyjmuje się albo rozkład równomierny, albo miarę niezmienniczą IFSP. Obliczanie wartości funkcji potencjału w celu wizualizacji dokonywane jest w przestrzeni obrazu (pikseli) na podstawie dyskretnej aproksymacji atraktora IFS (w przypadku równomiernego rozkładu ładunku na atraktorze) lub dyskretnej aproksymacji miary niezmienniczej IFSP (w przypadku rozkładu ładunku określonego miarą niezmienniczą). Aproksymacje te wyznaczane są w fazie obliczeń wstępnych przy użyciu metod opisanych w podpunktach 9.1.19.1.4. Na rysunku 9.13 przedstawiono diagram zależności między algorytmami geometrycznymi i innymi zagadnieniami składającymi się na metodę wizualizacji funkcji potencjału. Rys. 9.13. Wizualizacja funkcji potencjału – diagram zależności między algorytmami składowymi (interpretacja oznaczeń jak na rys. 9.1) W literaturze można również spotkać nieco inną definicję funkcji potencjału na R 2 w postaci: s (x) || x a ||1 d ; zob. (Hepting i inni [56]). 1 A 232 Wizualizacja W poszczególnych pikselach tworzonego obrazu wartości funkcji potencjału dla rozkładu równomiernego aproksymowane są przy użyciu sum (Hepting i inni [56]): s (p c ) 1 m || pc aic || s , m k 1 m gdzie {aic }i 1 jest zbiorem środków m pikseli a i , i = 1,...,m, tworzących dyskretm ną aproksymację atraktora, p c {aic }i 1 zaś środkiem piksela, dla którego wyznaczana jest rozważana wartość. Analogicznie, w przypadku rozkładu określonego miarą niezmienniczą IFSP wartość funkcji potencjału w poszczególnych pikselach tworzonego obrazu aproksymowana jest jako m s (p c ) (ai ) || p c aic || s , k 1 gdzie (ai ) jest przybliżoną wartością miary niezmienniczej piksela ai , odczytaną z dyskretnej aproksymacji { (ai )}im1 tej miary. W świetle definicji (9.7), metoda wizualizacji oparta na funkcji potencjału może być rozpatrywana jako swego rodzaju połączenie metody wizualizacji funkcji odległości z wizualizacją miary (w szczególności miary niezmienniczej IFSP), której nośnikiem jest atraktor. Przykłady wizualizacji funkcji potencjału dla trójkąta Sierpińskiego zaprezentowano na rys. 9.14. Rys. 9.14. Wizualizacja funkcji s-potencjału trójkąta Sierpińskiego: a) dla s = 2 i równomiernego rozkładu ładunku, b) rozkładu określonego miarą niezmienniczą IFSP generowaną przez wartości prawdopodobieństw [1/4, 5/12, 1/3]. Wartości funkcji potencjału odwzorowano przy użyciu palety kolorów indeksowanej za pośrednictwem funkcji modulo Wizualizacja 233 9.2. ATRAKTORY W PRZESTRZENI 3D 9.2.1. Uwagi wstępne Wizualizacja scen trójwymiarowych zawierających atraktory IFS jest zadaniem znacznie trudniejszym, aniżeli omówione w poprzednim punkcie analogiczne zagadnienie dotyczące podzbiorów przestrzeni dwuwymiarowej. Podobnie jak w przypadku wizualizacji klasycznych, gładkich powierzchni składających się na modele w wizualizowanej scenie 3D, trudności leżące u podstaw obrazowania trójwymiarowych obiektów fraktalnych mają źródło w ogólnie znanym problemie przedstawiania zawartości sceny trójwymiarowej przy użyciu medium z natury dwuwymiarowego (monitora, wydruku, fotografii itd.). Aby uzyskany dwuwymiarowy obraz informacji przestrzennej zawartej w scenie trójwymiarowej był czytelny dla widza, oprócz zastosowania rzutowania odpowiedniego dla celu wizualizacji, należy zwykle zmierzyć się z problemem testowania widzialności (ang. visibility testing), czyli nieuwzględniania w obrazie tych części obiektów, które są niewidoczne z danego punktu obserwacji z powodu zasłaniania przez inne obiekty znajdujące się w scenie. Obok testu widzialności, główną rolę w „kodowaniu” informacji przestrzennej w obrazie dwuwymiarowym gra barwa. Odpowiednie przypisanie barwy (i/lub jasności) elementom tworzonego obrazu umożliwia obserwatorowi nie tylko rozróżnianie poszczególnych obiektów sceny, ale przede wszystkim ekstrakcję informacji o względnych odległościach między obiektami oraz percepcję geometrii tych obiektów. Barwa punktów obrazowanych obiektów wyznaczana jest na ogół przy użyciu jednej ze znanych metod grafiki komputerowej, występujących w literaturze pod zbiorczą nazwą modelu oświetlania (ang. lighting model). Model oświetlania odzwierciedla wpływ światła i ewentualnie innych obiektów geometrycznych na barwę rozważanego punktu (m.in. na postawie właściwości optycznych skojarzonych z powierzchnią obrazowanego obiektu). Wizualizowanie obiektów trójwymiarowych przy wykorzystaniu modelu oświetlania, którego zadaniem jest przedstawienie interakcji światła z obiektami geometrycznymi zgodnie z prawami fizyki, w grafice komputerowej często określa się mianem wizualizacji realistycznej. Oprócz wymienionych, dodatkowym, ważnym czynnikiem ułatwiającym percepcję informacji przestrzennej jest możliwość interaktywnej zmiany punktu obserwacji oraz interaktywnego manipulowania obiektami sceny. Funkcjonalność taka jest nie tylko niezwykle istotna w zagadnieniach wizualizacji naukowej, ale również jest niezbędnym składnikiem aplikacji graficznych o charakterze czysto rozrywkowym, takich jak choćby gry komputerowe i gry wideo. Niestety, w przypadku atraktorów IFS bezpośrednie zastosowanie znanych metod wizualizacji scen trójwymiarowych jest zwykle niemożliwe, przede wszyst- 234 Wizualizacja kim dlatego że specyfikacje IFS opisują atraktory jako nieuporządkowane zbiory punktów. Informacja geometryczna w postaci niezorganizowanej chmury punktów jest zwykle – z punktu widzenia wspomnianych metod – „nienaturalna”. Potoki generowania obrazu będące podstawą popularnych metod obrazowania scen trójwymiarowych przeznaczone są bowiem na ogół do przetwarzania geometrii w postaci: reprezentacji brzegowych (siatki wielokątów), danych objętościowych (reprezentacja w postaci -siatki wokseli) czy funkcji uwikłanych opisujących powierzchnie gładkie (Glassner [43], Foley i inni [37], Zabrodzki [157]). Aby wykorzystać te metody do wizualizowania atraktorów IFS, należy więc zastosować odpowiednie modyfikacje, zarówno w zakresie samych algorytmów, jak i reprezentacji opisującej geometrię atraktorów. Modyfikacje te oparte są na algorytmach przedstawionych w poprzednich rozdziałach. Ich omówieniu poświęcono trzy następne podpunkty. 9.2.2. Zastosowanie metody śledzenia promieni do wizualizacji geometrii atraktorów IFS Śledzenie promieni jest jedną z podstawowych metod wizualizacji realistycznej. W podstawowej wersji, algorytm śledzenia promieni (ang. ray tracing) uwzględnia tylko jeden rodzaj promieni, mianowicie promienie pierwotne (nazywane również promieniami oka) (Foley i inni [37]). Drogi wytyczone przez te promienie mogą być rozpatrywane jako umowne ścieżki, po których światło odbite od obiektów sceny wędruje do oka obserwatora. Rozszerzając algorytm podstawowy o kategorię promieni wtórnych i algorytmiczne mechanizmy ich przetwarzania, uzyskuje się rekursywną metodę śledzenia promieni (Whitted [153], Glassner [43]). Nazwy zastosowane do obydwu kategorii promieni oddają charakter wiążącej je zależności: warunkiem koniecznym rekursywnego generowania i przetwarzania promieni wtórnych jest istnienie (niepustego) przecięcia promienia pierwotnego z jednym z obiektów wizualizowanej sceny. W grupie promieni wtórnych można z kolei dokonać podziału, ze względu na charakter zjawiska „badanego” przez promień, na promienie służące do wyznaczania cieni (promienie cienia) oraz promienie odbicia i załamania światła przez obiekt (rys. 9.15). Śledzenie promieni zalicza się do metod wizualizacji działających z precyzją obrazową (Foley i inni [37]), tzn. jej dokładność zdeterminowana jest przez parametry związane z tworzonym obrazem. W prototypowej wersji, w której przez każdy piksel tworzonego obrazu wysyłany jest tylko jeden promień pierwotny, parametrami tymi są rozdzielczość pionowa i pozioma obrazu. Jeśli cechę tę rozważać z punktu widzenia zachowania stopnia szczegółowości charakteryzującego definicję obiektu w jego obrazie powstałym w wyniku wizualizacji, to zależność ta pozostaje w ścisłym związku z rozmiarami pikseli względem układu współrzędnych sceny. Wizualizacja 235 Gdy następstwem zwiększenia stopnia szczegółowości charakteryzującego definicję obiektu jest większe zapotrzebowanie pamięciowe lub zwiększenie kosztu obliczeniowego wizualizacji, wówczas pożądane jest aby poziom detali zawarty w definicji nie był nadmiarowy. Sytuacja taka nie występuje, gdy obiekt jest zdefiniowany przy użyciu – naturalnego dla metody śledzenia promieni – wzoru w postaci uwikłanej: {x R 3 : f (x) 0} . Reprezentacja taka charakteryzuje się nieskończoną precyzją opisu, przy czym zadanie wyznaczania przecięcia promienia (półprostej) z obiektem rozwiązywane jest poprzez podstawienie formuły na półprostą w postaci parametrycznej (7.1) i rozwiązanie tak powstałego równania względem parametru. Rys. 9.15. Koncepcja metody śledzenia promieni Niestety, przypadek atraktorów IFS stanowi przykład występowania niedogodnego związku dokładności opisu obiektu z kosztem pamięciowo-obliczeniowym wizualizacji metodą śledzenia promieni. O ile bowiem układ IFS w zwięzły sposób definiuje atraktor z nieskończoną precyzją, o tyle wizualizacja omawianą metodą pociąga za sobą: albo potrzebę wygenerowania modelu pośredniego o wielomianowym zapotrzebowaniu pamięciowym, albo – w przypadku zastosowania adaptacyjnego wyznaczania przecięcia promienia z atraktorem opisanego w podpunkcie 7.2.3 – zależność między nakładem obliczeń a dokładnością otrzymywanych wyników. Wobec tego wskazane jest, aby dokładność obliczeń (dokładność aproksymacji atraktora) była taka sama, jak dokładność optymalna zdeterminowana parametrami wizualizacji. Dokładność tę określa się w literaturze grafiki komputerowej jako dokładność pikselową (ang. pixel-size accuracy), bowiem opiera się ona na wyznaczaniu minimalnej średnicy zbiorów aproksymujących podzbiory atraktora przecinanych przez promień jako odpowiedniej funkcji rozmiaru piksela 236 Wizualizacja w układzie współrzędnych sceny. Przez rozmiar piksela zwykle rozumie się jego średnicę względem metryki maksimum. W przypadku promieni pierwotnych i rzutowania równoległego minimalna średnica zbioru aproksymującego przecinanego przez promień jest niezależna od odległości punktu przecięcia od obserwatora i równa rozmiarowi piksela w układzie współrzędnych sceny. W przypadku promieni pierwotnych i rzutowania perspektywicznego minimalną średnicę zbioru aproksymującego przecinanego przez promień wyznacza się zwykle jako wartość funkcji (Hart i DeFanti [52], Barr [12]): PEye (t ) 2tg 2 t, max{h, } (9.8) gdzie t jest odległością punktu przecięcia od obserwatora, kątem pola widzenia, h i zaś, odpowiednio, rozdzielczością poziomą i pionową obrazu. W przypadku promieni cieni wysłanych z punktowego źródła światła minimalna średnica zbioru aproksymującego przecinanego przez promień dana jest wzorem (Hart i DeFanti [52]) PPointlight (t ) PPrev tshadowed t, (9.9) gdzie t jest odległością punktu przecięcia promienia cienia ze zbiorem aproksymującym od początku tego promienia, PPrev oznacza minimalną średnicę zbioru aproksymującego w cieniowanym punkcie powierzchni względem promienia poprzedniej generacji, tshadowed zaś jest odległością przecięcia promienia cienia z cieniowanym punktem od początku tego promienia. Ponieważ kierunkowe źródło światła może być rozpatrywane jako źródło punktowe położone w nieskończoności (Foley i inni [37]), w przypadku promieni cieni wysłanych z kierunkowego źródła światła minimalna średnica zbioru aproksymującego dana jest przez funkcję stałą: PDirlight (t ) PPrev . (9.10) Problem wyznaczania minimalnej średnicy zbioru aproksymującego w przypadku promieni odbitych i załamanych w rzutowaniu perspektywicznym jest zadaniem trudnym, bowiem wartość ta zależy od krzywizny powierzchni, na której następuje odbicie lub załamanie światła (Shinya i inni [136]). Aby wspomniane zjawiska mogły być uwzględnione w wizualizacji atraktorów IFS przy założeniu rozsądnego nakładu obliczeń, stosując metodę śledzenia promieni na ogół zakłada się, że powierzchnia odbijająca (załamująca) światło może być – w dostatecznie dużym otoczeniu punktu odbicia (załamania) – dobrze przybliżona przez wycinek płaszczyzny stycznej w tym punkcie. Wizualizacja 237 Dzięki zastosowaniu takiego kompromisu, funkcja określania minimalnej średnicy zbioru aproksymującego w przypadku promieni odbitych i rzutowania perspektywicznego może być aproksymowana przez funkcję liniową o postaci (Hart i DeFanti [52]): PReflection (t ) PPrev (t || o Prev e Reflected ||) , || o Prev e Reflected || (9.11) gdzie t jest odległością punktu przecięcia promienia odbitego, w którym wyznaczana jest minimalna wielkość zbioru aproksymującego, od początku tego promienia, o Prev – punktem początkowym promienia odbijanego (czyli promienia poprzedniej generacji), e Reflected zaś – „odbitym” punktem położenia obserwatora. Punkt e Reflected wyznaczany jest przy użyciu formuły e Reflected e 2 || n (e p) || n , gdzie e oznacza oryginalne położenie obserwatora w układzie współrzędnych sceny, p jest punktem powierzchni, w którym następuje odbicie, n zaś – wektorem normalnym w tym punkcie. W przypadku promieni odbitych i rzutowania równoległego formuła (9.11) upraszcza się do funkcji stałej o wartości PPrev . Pomimo zastosowania założenia o „lokalnej planarności” cieniowanej powierzchni, obliczanie minimalnej średnicy zbioru aproksymującego w przypadku promieni załamanych nadal pozostaje problemem nietrywialnym. Wynika to z nieliniowego charakteru zjawiska załamania światła na powierzchni, opisanego prawem Snella; por. np. (Glassner [43]). Jak pokazano jednak w (Martyn [81]), niezależnie od zastosowanego rzutowania, poszukiwana minimalna średnica na ogół może być stosunkowo dobrze przybliżana wartością PPrev . Wizualizacja atraktorów IFS metodą śledzenia promieni z dokładnością pikselową sprowadza się do zastąpienia w procedurze wyznaczania przecięcia półprostej z atraktorem (punkt 7.2.3) stałej dokładności aproksymacji , funkcją dokładności odpowiednią dla danego typu promienia (Hart i DeFanti [52], Martyn [82, 85]). W ten sposób atraktor IFS aproksymowany jest z lokalnie zmieniającą się dokładnością (zależną m.in. od położenia danego podzbioru atraktora względem początku promienia), tak aby obraz atraktora, obrazy jego cieni oraz ewentualne jego obrazy powstałe na skutek odbicia od powierzchni zwierciadlanych były aproksymowane na rzutni z dokładnością określoną rozmiarami pikseli. W celu zapobiegania artefaktom powodowanym ograniczoną gęstością próbkowania sceny przez promienie zaleca się, aby rozmiary figur ograniczających wyznaczanych w procedurze adaptacyjnego wyznaczania przecięcia były 238 Wizualizacja nie mniejsze od minimalnej średnicy zbioru aproksymującego w punkcie centralnym aktualnie badanej figury ograniczającej. Jeśli przypadek taki ma miejsce, to figura ograniczająca skalowana jest w odpowiednim kierunku (Martyn [81]). Na rysunku 9.16 zaprezentowano przykład zastosowania omawianej metody do wizualizacji atraktorów IFS z dokładnością pikselową. Jak łatwo zauważyć, zbliżanie punktu obserwacji do wizualizowanych modeli powoduje automatyczny wzrost stopnia szczegółowości, z jakim prezentowane są modele (przy powiększeniu okazuje się, że listki paprotki są zbudowane z listków mniejszych, zaś grubość łodygi pozostaje stała). Opisane podejście może być zatem utożsamiane z „fraktalną” odmianą techniki adaptacyjnego poziomu szczegółowości (LOD) (Luebke i inni [73], Eberly [28]), która w tym przypadku wykorzystuje – charakteryzujące obiekty fraktalne, w tym i atraktory IFS – samopodobieństwo. Rys. 9.16. Wizualizacja atraktorów IFS z dokładnością pikselową przy wykorzystaniu metody śledzenia promieni Wyznaczanie przecięcia atraktora z każdym promieniem z osobna charakteryzuje się dużą redundancją obliczeń, ponieważ im mniejsza różnica między wektorami kierunkowymi promieni o wspólnym początku, tym większe prawdopodobieństwo zaistnienia przecięć z tymi samymi figurami ograniczającymi odpowiednie podzbiory atraktora. W celu wykorzystania spójności przestrzennej (Foley i inni [37]), w pracach (Martyn [81, 85]) zaproponowano podejście Wizualizacja 239 polegające na śledzeniu nie jednego, ale grup promieni w pojedynczym wywołaniu procedury wyznaczania przecięcia promienia z atraktorem. Procedura ta funkcjonuje w tym przypadku na zasadzie „rekurencyjnego filtra”, przepuszczającego na niższy poziom drzewa figur ograniczających tylko te z promieni grupy, które przecinają bieżącą figurę ograniczającą. Podejście to zalecane jest jednak jedynie w odniesieniu do promieni pierwotnych i ich pochodnych promieni cieni; promienie następnych poziomów (tj. promienie odbite i załamane oraz ich pochodne promienie cieni) powinny być przetwarzane w standardowy sposób. Grupowe przetwarzanie tych ostatnich promieni na ogół nie daje żadnych korzyści, bowiem w następstwie procesu odbicia (załamania) na powierzchni zakrzywionej promieni pierwotnych o zbliżonych wektorach kierunkowych, generowane są promienie wtórne, których wektory kierunkowe zwykle różnią się w znacznym stopniu. W przypadku promieni pierwotnych, grupa promieni określana jest jako zbiór promieni próbkujących prostokątny obszar płaszczyzny rzutowania, zaś zbiór promieni cieni tworzony jest na podstawie punktów przecięcia grupy promieni pierwotnych z obiektami sceny. Ponadto, przetwarzanie zbioru promieni pierwotnych można dalej usprawnić, określając, w odniesieniu do każdego podzbioru promieni i figury ograniczającej obowiązujących w danym kroku procedury wyznaczania przecięcia, minimalne prostokątne obszary na powierzchni rzutni o bokach równoległych do krawędzi pikseli (Martyn [81]). Dla podzbioru promieni obszar określany jest jako najmniejszy prostokąt zawierający punkty przecięcia promieni z rzutnią, zaś dla figury ograniczającej najmniejszy prostokąt zawierający rzut tej figury na rzutnię (Foley i inni [37, s. 660], Ritter [130]). Zastosowanie takiego podejścia pozwala zwiększyć wydajność obliczania przecięcia podzbioru promieni z figurą ograniczającą poprzez zastosowanie prostego obcinania podzbioru promieni we współrzędnych obrazu. Test przecięcia z figurą ograniczającą dokonywany jest wówczas tylko w odniesieniu do tych promieni podzbioru, które przecinają część wspólną prostokątnych obszarów. Barwa punktów cieniowanych powierzchni atraktorów oraz innych potencjalnych obiektów sceny wyznaczana jest przy użyciu – powszechnie wykorzystywanego w metodzie śledzenia promieni – modelu oświetlenia, który uwzględnia wpływ światła otoczenia, lambertowskie odbicie rozproszone, odbłyski zwierciadlane oraz odbicie zwierciadlane i załamanie światła na powierzchni obiektów. Stosowne wzory można znaleźć na przykład w (Glassner [43], Foley i inni [37], Zabrodzki [157]). Z wyjątkiem wpływu światła otoczenia, do uwzględnienia wymienionych składników mających wkład do barwy cieniowanego punktu wykorzystany model oświetlenia wymaga znajomości wektora normalnego w tym punkcie. W pracach (Hart i DeFanti [52], Martyn [82, 85]) wektor normalny w cieniowanym punkcie atraktora obliczany był przy wykorzystaniu metody 240 Wizualizacja hierarchicznej wag górnoprzepustowych, która została opisana w punkcie 8.2.2 (formuła (8.1c)). Natomiast w pracach (Hepting i inni [56], Gröller [47, 48], Traxler i Gervautz [149], Wonka i Gervautz [155]) wykorzystano w tym celu metodę bezpośrednią „wygładzania” atraktora przy użyciu kolekcji kul lub elipsoid (podpunkt 8.2.1). Rys. 9.17. Obrazy scen zawierających atraktory IFS uzyskane przy wykorzystaniu metody śledzenia promieni Zastosowanie pełnej metody śledzenia promieni do wizualizowania atraktorów IFS może dawać atrakcyjne obrazy, charakteryzujące się wysokim stopniem realizmu (rys. 9.17). Niestety, ze względu na znaczny nakład obliczeń nierozerwalnie związanych z samym procesem wizualizacji, obrazowanie nie jest dokonywane w czasie rzeczywistym (nawet przy wykorzystaniu mocy obliczeniowej nowoczesnych kart graficznych). Diagram zależności między algorytmami geometrycznymi i innymi zagadnieniami składającymi się na wizualizację atraktorów IFS opisaną metodą przedstawiono na rys. 9.18. Wizualizacja 241 Rys. 9.18. Wizualizacja atraktorów IFS metodą śledzenia promieni – diagram zależności między algorytmami składowymi (interpretacja oznaczeń jak na rys. 9.1) 9.2.3. Obrazowanie miar niezmienniczych IFSP przy użyciu wizualizacji wolumetrycznej Metoda śledzenia promieni może być również dostosowana do wolumetrycznej wizualizacji miar niezmienniczych IFSP z dokładnością pikselową (Martyn [90]). W tym celu, w trakcie adaptacyjnego wyznaczania przecięcia promienia z atraktorem, obliczane są wartości miar podzbiorów atraktora zawartych w odpowiednich zbiorach ograniczających. Wyznaczane jest pełne przecięcie promienia ze zbiorem aproksymującym atraktor (rozdz. 7), zaś wartości miar określane są zgodnie z rekurencyjną regułą opisaną w podpunkcie 9.1.3. W rezultacie, dla danego promienia otrzymywana jest rodzina zbiorów ograniczających z przypisanymi wartościami miar i przecinanych przez ten promień. Wartości te interpretowane są w kategoriach optycznych za pośrednictwem odpowiednio zdefiniowanej funkcji (określanej zwykle jako funkcja transferu), jako współczynniki nieprzezroczystości poszczególnych zbiorów ograniczających. Jasność piksela przecinanego przez promień pierwotny wyznaczana jest jako odpowiednia suma ważona jasności poszczególnych zbiorów ograniczających rodziny zgodnie z równaniem zaproponowanym przez Blinna dla wizualizacji obiektów gazowych (Blinn [13], Ebert i inni [29]). Dodatkowo, w celu zawarcia w obrazie informacji o średniej 242 Wizualizacja gęstości miary niesionej przez poszczególne podzbiory atraktora, funkcja transferu może zostać rozszerzona o odpowiedni schemat odwzorowania średniej gęstości miary w kolor. Niestety, to podejście do wizualizacji charakteryzuje się bardzo dużym kosztem obliczeniowym, który skutecznie uniemożliwia obrazowanie miar niezmienniczych IFSP w czasie rzeczywistym. Główną przyczyną takiego stanu rzeczy jest to, że miara niezmiennicza jest aproksymowana na bieżąco dla każdego promienia w trakcie adaptacyjnego wyznaczania pełnego przecięcia promienia z atraktorem. Jeżeli weźmie się pod uwagę znaczną liczbę promieni wykorzystywanych do tworzenia obrazu, to wizualizacja miar niezmienniczych oparta na takim podejściu jest mało wydajna. Znacznie lepsza metoda polega na wyeliminowaniu aproksymowania miary niezmienniczej z procesu wizualizacji i wyznaczeniu jej wartości w fazie obliczeń wstępnych na -siatce wokseli w analogiczny sposób, jak opisano to w podpunkcie 9.1.3 dla przypadku miary w przestrzeni R 2 aproksymowanej na siatce pikseli. Dzięki temu miara niezmiennicza może być obrazowana przy użyciu adaptacji znanych technik bezpośredniej wizualizacji wolumetrycznej (ang. direct volume rendering) pól skalarnych. Co więcej, odpowiednia implementacja przy wykorzystaniu procesorów strumieniowych nowoczesnych kart graficznych umożliwia obrazowanie tych miar w czasie rzeczywistym. Jak już wspomniano, możliwość interaktywnej zmiany punktu obserwacji i manipulowania wizualizowanym obiektem jest istotnym czynnikiem wpływającym na percepcję cech przestrzennych tego obiektu i jako taka jest wysoce pożądana w wizualizacji naukowej. Poniżej przedstawiono metodę interaktywnej wizualizacji miar niezmienniczych IFSP wykorzystującą procesory graficzne, która została zaproponowana w artykule (Martyn [94]). Na rys. 9.19 zaprezentowano diagram zależności między algorytmami geometrycznymi i innymi zagadnieniami składającymi się na tę metodę wizualizacji. Rys. 9.19. Wizualizacja miar niezmienniczych IFSP na przestrzeni R3 w czasie rzeczywistym – diagram zależności między algorytmami składowymi (interpretacja oznaczeń jak na rys. 9.1) Wizualizacja 243 Wspomniana metoda opiera się na zmodyfikowanej wersji modelu oświetlania określanego jako model emiterów zmiennej gęstości (ang. varying density emitters) (Sabella [132]), zaadaptowanego w artykule (Martyn [94]) do wizualizacji miar fraktalnych. Model ten reprezentuje pole skalarne jako zbiór cząstek emitujących światło o natężeniu zależnym od gęstości przypisanej danej cząstce. Adaptacja tego modelu do wizualizacji miar niezmienniczych ma postać następującą: Niech r (t ) , t [0, ) , będą punktami promienia pierwotnego R (o, d) . Mając -siatkę w R 3 przechowującą w poszczególnych wokselach wartości [ x, y, z ] miary niezmienniczej IFSP, dla każdego piksela tworzonego obrazu wyznaczane są: 1) całkowita, tłumiona jasność emitowana przez piksel opisana całkami Lebesgue’a: t2 t B exp d 2 (r ( s )) d q (r (t )) ; t t1 1 2) maksymalna wartość [ x, y, z ] postrzegana przez piksel: M max [r (t )] ; t1 t t2 (9.12a) (9.12b) 3) najmniejsza wartość parametru t, dla której występuje maksymalna wartość [ x, y , z ] : D min{t : [r (t )] M } ; (9.12c) 4) barwa piksela obliczana w przestrzeni HSV poprzez odwzorowanie: wartości B w składową jasności V, wartości M w składową odcienia barwy H, wartości D w składową nasycenia S. W powyższych formułach t1 i t2 są wartościami parametru promienia takimi, że r(t1) i r(t2) są, odpowiednio, najbliższym i najdalszym punktem przecięcia promienia z wokselami zawierającymi niezerową wartość miary. Wykładnik q reguluje wkład w jasność podzbiorów atraktora o dużej mierze względem podzbiorów o małej mierze; większe wartości q akcentują w obrazie obecność obszarów charakteryzujących się relatywnie większą koncentracją miary, podczas gdy mniejsze wartości tego parametru intensyfikują obecność obszarów o większym stopniu rozproszenia miary. Wpływ wartości parametru q na poziom jasności odpowiednich podzbiorów atraktora zobrazowano na rys. 9.20. Obrazowanie aproksymacji miary niezmienniczej IFSP w czasie umożliwiającym interaktywną zmianę położenia i orientacji miary (lub obserwatora) dokonywane jest przy użyciu programowalnego potoku karty graficznej i dowolnego języka programowania jednostek przetwarzania wierzchołków i fragmentów1. 1 Określanych w literaturze odpowiednio jako shadery wierzchołków i shadery fragmentów. Niestety, jak dotychczas, anglojęzyczny termin „shader” nie doczekał się ogólnie przyjętego odpowiednika polskiego. W związku z używaną w niniejszym podpunkcie nomenklaturą przypomnieć należy, że mianem fragmenty określa się elementy składające się na reprezentację wielokąta po rasteryzacji. 244 Wizualizacja W tym celu, dane wolumetryczne pochodzące z aproksymacji miary przechowywane są – w zależności od możliwości karty – albo w teksturze trójwymiarowej, albo w trzech zestawach tekstur dwuwymiarowych. Proces wizualizacji odbywa się równolegle dla wszystkich pikseli tworzonego obrazu, w następujących trzech przebiegach potoku graficznego: 1) aproksymowanie jasności B (9.12a) w poszczególnych pikselach obrazu; 2) wyznaczenie maksimów M (9.12b) i ich odległości D (9.12c); 3) złożenie wyników otrzymanych w poprzednich krokach przy wykorzystaniu przestrzeni HSV, przekształcenie do przestrzeni RGB i wyświetlenie obrazu. Rys. 9.20. Wpływ wartości wykładnika q równania jasności (9.12a) na obrazowanie miary. Od strony lewej do prawej, z góry na dół: q = 1,2; 1,0; 0,8; 0,6 Rezultaty pierwszych dwóch przebiegów pośrednich przechowywane są w teksturach dwuwymiarowych, na podstawie których w ostatnim przebiegu tworzony jest obraz wynikowy. Poniżej przedstawiono zarys implementacji kolejnych przebiegów. Wyznaczanie jasności. Aproksymowanie wartości formuły (9.12a) równocześnie dla wszystkich pikseli obrazu może być zrealizowane przy użyciu – wykorzystywanych w bezpośredniej wizualizacji wolumetrycznej – metody przecinania tek- Wizualizacja 245 stury (ang. texture slicing) lub metody rzutowania promieni (ang. ray casting). Z kolei, przecinanie tekstury można zrealizować na dwa sposoby, mianowicie wykorzystując teksturę trójwymiarową lub trzy zestawy tekstur dwuwymiarowych. W metodzie przecinania tekstury trójwymiarowej (Cullip i Neumann [22], Cabral i inni [16]) zbiór danych aproksymujących miarę przekazywany jest do pamięci karty graficznej w postaci pojedynczej tekstury trójwymiarowej. Następnie, w procesie wizualizacji, z tekstury odczytywane są dane poprzez teksturowanie prostokątów równoległych do rzutni, które przecinają tę teksturę w określonych odstępach step wzdłuż osi widzenia w układzie współrzędnych obserwatora. Rozważane prostokąty są wizualizowane w porządku od najdalej położonych do najbliższych punktu obserwacji przy wykorzystania mechanizmu mieszania : Bi 1 i 1 (1 i 1 ) Bi . W równaniu tym Bi+1 i Bi oznaczają, odpowiednio, nową i poprzednią jasność step elementu bufora kolorów, zaś i 1 q [ x, y, z ] , gdzie diam(voxel) diam(voxel ) oznacza średnicę woksela w metryce euklidesowej, zaś q [ x, y, z ] reprezentuje, podniesioną do potęgi q, wartość miary odczytaną z tekstury przecinanej przez prostokąt i 1 . Dzięki sprzętowej implementacji mechanizmów teksturowania trójwymiarowego, obejmujących m.in. interpolację trójliniową danych zawartych w teksturze, proces ten może być dokonywany przy użyciu współczesnego sprzętu graficznego w czasie rzeczywistym. Niemniej, karty graficzne starszej generacji nie wspomagają teksturowania trójwymiarowego. W tym przypadku dane aproksymacji miary niezmienniczej należy przechowywać w pamięci karty graficznej przy użyciu trzech zestawów tekstur dwuwymiarowych (Mrowiec [101]). Każdy z zestawów składa się z tekstur „przecinających” oryginalne dane w odpowiednich odstępach wzdłuż jednej z trzech osi układu współrzędnych -siatki wokseli. Zawartość odpowiedniego zestawu tekstur odczytywana jest następnie przy użyciu prostokątów o orientacji zgodnej z orientacją tekstur. Prostokąty są wizualizowane w porządku od najdalej położonych do najbliższych punktu obserwacji przy wykorzystaniu mieszania . Aktualnie wykorzystywany zestaw tekstur wybierany jest na podstawie minimalnego kąta między wektorami normalnymi prostokątów i osią widzenia układu współrzędnych obserwatora. Główną wadą metody opartej na teksturach dwuwymiarowych w stosunku do metody wykorzystującej teksturę trójwymiarową jest trzy razy większe zapotrzebowanie pamięciowe tej pierwszej. Ponadto, metoda ta jest podatna na silne artefakty przestrzenne powodowane brakiem interpolacji trójliniowej obecnej w teksturowaniu trójwymiarowym. Niemniej, jak pokazano w pracy (Rezk-Salama i inni [126]), ta ostatnia wada może zostać usunięta poprzez zaimplementowanie interpolacji trójliniowej za pomocą mechanizmu łączników tekstur (ang. multi-texture combiners). 246 Wizualizacja Niewątpliwą zaletą powyższych metod jest prostota ich implementacji. Niestety, metody te charakteryzują się dużą liczbą zbędnych operacji dokonywanych na fragmentach, które nic nie wnoszą do obrazu wynikowego. Ten niekorzystny stan rzeczy powodowany jest często występującym efektem całkowitego tłumienia jasności obszarów dalej położonych od obserwatora przez obszary mu bliższe, a także generowaniem i przetwarzaniem fragmentów o zerowej mierze reprezentujących „puste” obszary przestrzeni. Co więcej, zastosowanie tych metod łącznie z rzutowaniem perspektywicznym skutkuje nierównym krokiem próbkowania danych aproksymujących miarę, który zmienia się z piksela na piksel, co zwykle prowadzi do widocznych artefaktów. Rozwiązanie niemające wymienionych wad, które jednocześnie charakteryzuje się wydajnością obliczeniową umożliwiającą wyznaczanie jasności wszystkich pikseli w czasie rzeczywistym, polega na równoległej implementacji techniki rzutowania promieni na programowalnym potoku karty graficznej (Krüger i Westermann [69], Martyn [94]). Implementacja ta opiera się na podejściu wieloprzejściowym potoku graficznego. Oryginalny zbiór danych reprezentujących aproksymację miary niezmienniczej przechowywany jest w teksturze trójwymiarowej. Dla podzbioru -siatki „niepustych” wokseli wyznaczany jest najmniejszy prostopadłościan o krawędziach równoległych do osi układu współrzędnych -siatki wokseli, który ogranicza ten podzbiór. Prostopadłościan ten kojarzony jest z teksturą przechowującą dane o mierze poprzez zapamiętanie współrzędnych tekstury każdego wierzchołka prostopadłościanu w jego atrybucie barwy. W pierwszych dwóch przejściach wyznaczane są początki i wektory kierunkowe promieni pierwotnych w układzie współrzędnych tekstury trójwymiarowej. W pierwszym przejściu dokonywana jest wizualizacja przednich (widocznych) ścian prostopadłościanu. Dzięki interpolacji barwy dokonywanej w procesie rasteryzacji przez kartę graficzną, barwy generowanych fragmentów reprezentują najbliższe punkty przecięcia promieni pierwotnych z wizualizowanym zbiorem danych współrzędnych tekstury. Rezultat zapamiętywany jest w dwuwymiarowej teksturze RGB (tekstura punktów wejściowych) o rozdzielczości odpowiadającej rozdzielczości tworzonego obrazu. Kierunki tych promieni wyznaczane są w drugim przejściu poprzez wizualizację tylnych (niewidocznych) ścian prostopadłościanu. W tym przejściu na karcie graficznej uruchamiany jest prosty program przetwarzania fragmentów, który dla każdego fragmentu pobiera odpowiednią daną z tekstury punktów wejściowych i oblicza znormalizowany wektor kierunkowy promienia na podstawie tej danej oraz barwy fragmentu (barwa interpretowana jest jako współrzędne najdalszego punktu przecięcia promienia ze zbiorem danych w układzie współrzędnych tekstury trójwymiarowej). Wektor kierunkowy oraz jego długość przed normalizacją zapamiętywane są w dwuwymiarowej teksturze RGBA Wizualizacja 247 (tekstura wektorów kierunkowych) o rozdzielczości odpowiadającej rozdzielczości tworzonego obrazu. W następnych przejściach dokonywana jest właściwa aproksymacja wartości jasności (9.12a) równolegle dla wszystkich promieni, rezultat zaś zapamiętywany jest w jednokanałowej teksturze dwuwymiarowej. Kroki całkowania wzdłuż promieni dokonywane są przy użyciu programu przetwarzania fragmentów. W każdym kroku całkowania, z tekstury trójwymiarowej pobierana jest trójliniowo zinterpolowana dana reprezentująca wartość miary niezmienniczej w niewielkim otoczeniu próbkowanego punktu. Współrzędne bieżącego punktu próbkowania w układzie współrzędnych tekstury trójwymiarowej wyznaczane są na podstawie początku i wektora kierunkowego promienia skojarzonego z przetwarzanym fragmentem (pobieranych z tekstury punktów wejściowych i tekstury wektorów kierunkowych) oraz określonej długości kroku całkowania. Proces przetwarzania danego fragmentu jest zatrzymywany, gdy punkt próbkowania znalazł się poza teksturą trójwymiarową lub nieprzezroczystość bieżącego zbioru próbek osiągnęła wartość maksymalną, tak że kolejne punkty próbkowania nic nie wniosą do wyniku końcowego. Próbkowanie dokonywane jest w pętli po m kroków na pojedyncze wywołanie programu przetwarzania fragmentów, zaś wyniki pośrednie przechowywane są w teksturze dwuwymiarowej. Między poszczególnymi wywołaniami programu próbkowania uruchamiany jest dodatkowo prosty program przetwarzania fragmentów, którego zadaniem jest wstrzymywanie procesu próbkowania fragmentów spełniających wyżej wymienione kryterium stopu. Fragment jest eliminowany z dalszego przetwarzania poprzez ustawienie jego głębokości w z-buforze na wartość maksymalną. W ten sposób, dzięki mechanizmowi wczesnego testu głębokości (ang. early z-test) implementowanemu w nowoczesnych kartach graficznych, fragmenty spełniające warunek zatrzymania zostaną odrzucone zaraz po etapie rasteryzacji, bez uruchamiania programu przetwarzania fragmentów, w którym dokonywane jest próbkowanie. Wyznaczanie maksimów i ich odległości. Maksymalne wartości aproksymacji miary (9.12b) postrzegane przez piksele oraz odległości (9.12c) tych wartości od obserwatora wyznaczane są równocześnie dla wszystkich pikseli w jednym przejściu potoku graficznego. Podobnie jak w przypadku wyznaczania jasności pikseli, stosowna implementacja może opierać się na metodzie rzutowania promieni. Należy jednak zauważyć, że wyznaczanie maksymalnej wartości miary postrzeganej przez dany piksel pociąga za sobą konieczność przejścia promienia próbkującego przez wszystkie przecinane przez niego woksele. Nie można zatem tutaj skorzystać z mechanizmu wczesnego zatrzymania próbkowania. Co więcej, do wyznaczenia tej wartości nie jest wymagana ani interpolacja trójliniowa danych teksutury, ani też, równy dla wszystkich pikseli, krok próbkowania tekstury trójwymiarowej. 248 Wizualizacja W tym przypadku rozsądnym rozwiązaniem jest zastosowanie podejścia bazującego na technice przecinania tekstury trójwymiarowej przy użyciu prostokątów. Odmiennie jednak od oryginalnego podejścia (Cullip i Neumann [22], Cabral i inni [16]), normalne prostokątów są zgodne nie z osią widzenia układu współrzędnych obserwatora, ale z jedną z osi układu współrzędnych tekstury na zasadach podejścia wykorzystującego trzy zestawy tekstur trójwymiarowych. Prostokąty wizualizowane są w porządku od najbliższego do najdalszego od obserwatora, a dzielące ich odległości określone na podstawie rozmiaru wokseli wzdłuż kierunku próbkowania tekstury trójwymiarowej przez prostokąty. Proces wizualizacji odbywa się przy wykorzystaniu prostego programu przetwarzania fragmentów, który dla każdego z generowanych fragmentów przekazuje do z-bufora wartość miary „odczytanej” przez fragment z tektury trójwymiarowej, zaś do jednokanałowej tekstury dwuwymiarowej – współrzędną głębokości fragmentu. Przed procesem wizualizacji z-bufor jest zerowany i ustawiany w tryb zapisu głębokości o większej wartości niż dotychczas zapisana w buforze. W ten sposób, dzięki sprzętowej implementacji algorytmu z-bufora, w teksturze zapamiętywane są wartości głębokości odpowiadające maksymalnym wartościom miary wokseli. Dodatkowo, należy wyłączyć mechanizm mieszania oraz interpolowania danych tekstury. Po procesie wizualizacji zawartość z-bufora kopiowana jest do jednokanałowej tekstury dwuwymiarowej. Kompozycja wyników pośrednich w przestrzeni HSV. Jako rezultat poprzednich kroków otrzymuje się trzy dwuwymiarowe tekstury jednokanałowe przechowujące wartości B, M i D dla poszczególnych pikseli. Na podstawie tych tekstur w ostatnim przejściu potoku graficznego tworzony jest obraz wynikowy. Aby to uczynić, zawartość poszczególnych tekstur odwzorowywana jest we współrzędne barwy w przestrzeni HSV przy użyciu odwzorowania liniowego cHSV :[ M , D, B ] [ H , S ,V ] . W celu przedstawienia maksymalnych wartości miary w „skali temperaturowej” barw, wspomniane odwzorowanie wykorzystuje jedynie połowę zakresu współrzędnej H, mianowicie, wartości te odwzorowywa4 7 ne są liniowo w interwał , mod 2 (to jest od niebieskiego, poprzez ma3 3 gentę, czerwień, do żółci). W ten sposób barwy ciepłe reprezentują duże wartości miary, zaś barwy zimne zarezerwowane są dla wartości małych. Następnie barwa z przestrzeni HSV przekształcana jest do przestrzeni RBG (zob. np. Foley i inni [37]) w celu wyświetlenia obrazu. Obraz wynikowy otrzymywany jest poprzez wizualizację prostokąta w układzie współrzędnych obrazu, zaś powyższe przekształcenia dokonywane są równolegle dla poszczególnych pikseli przy użyciu odpowiedniego programu przetwarzania fragmentów. Program ten, dla każdego fragmentu, odczytuje odpowiadające mu dane z tekstur i następnie dokonuje stosownych przekształceń w celu otrzymania barwy fragmentu w przestrzeni RGB. Wizualizacja 249 Na rysunku 9.21 przedstawiono przykładowe obrazy miar niezmienniczych IFSP otrzymane w wyniku interaktywnej wizualizacji miar niezmienniczych opisaną metodą. Rys. 9.21. Ramki z obrazowania miar niezmienniczych IFSP na przestrzeni R3 w czasie rzeczywistym przy wykorzystaniu metod bezpośredniej wizualizacji wolumetrycznej 9.2.4. Realistyczna wizualizacja geometrii atraktorów IFS w czasie rzeczywistym Sprzętowa implementacja potoku graficznego opartego na algorytmie z-bufora w połączeniu z mocą obliczeniową nowoczesnych kart graficznych pozwala na realistyczną wizualizację w czasie rzeczywistym scen charakteryzujących się bardzo wysokim stopniem złożoności geometrycznej. Bodajże najlepszym przykładem wykorzystywania możliwości współczesnego sprzętu graficznego są gry komputerowe i wideo czasu rzeczywistego. Wirtualne światy, w których ma miej- 250 Wizualizacja sce rozgrywka, bywają przedstawiane w sposób tak realistyczny, iż gracz może odnieść wrażenie, że uczestniczy w interaktywnym filmie, którego akcja toczy się w rzeczywistym świecie zobrazowanym przy wykorzystaniu tradycyjnych technik filmowych. Pomimo ogromnej wydajności obliczeniowej oferowanej przez nowoczesny sprzęt graficzny, jego zastosowanie do realistycznej wizualizacji w czasie rzeczywistym scen zawierających atraktory IFS stanowi wyzwanie. Choć atraktory IFS oferują duże możliwości w zakresie modelowania obiektów przypominających twory spotykane w naturze, literatura podejmująca temat ich wykorzystania jako modeli w realistycznej grafice czasu rzeczywistego jest niezmiernie uboga. Główną przyczyną takiego staniu rzeczy jest to, że wielopotokowa architektura współczesnych kart graficznych projektowana jest z myślą o przetwarzaniu geometrii w postaci dużych „paczek” trójkątów (ang. batches of triangles) składających się na reprezentację powierzchni wizualizowanych obiektów. W przeciwieństwie do popularnych reprezentacji brzegowych modeli wykorzystywanych w grafice czasu rzeczywistego, specyfikacje IFS opisują atraktory w postaci niezorganizowanych chmur punktów. Aby więc trójwymiarowe atraktory IFS mogły być obrazowane w sposób wydajny i jednocześnie atrakcyjny wizualnie przy wykorzystaniu mocy obliczeniowej współczesnego sprzętu graficznego, konieczne jest dostosowanie zbioru danych reprezentujących geometrię atraktora do mechanizmów sprzętowych składających się na potok karty graficznej. Jedną z nielicznych prac podejmujących problem realistycznej wizualizacji atraktorów IFS w przestrzeni R 3 w czasie rzeczywistym jest artykuł (Chen i Bi [18]). W cytowanej pracy atraktory reprezentowane są w postaci nieuporządkowanych, skończonych zbiorów punktów otrzymanych przy wykorzystaniu dowolnego algorytmu aproksymacji. W celu uwzględnienia oddziaływania źródeł światła na barwę wizualizowanych punktów a A atraktora zastosowano prosty model oświetlania postaci: num _ lights Li C (a) A D(a)T , 2 || a l i || i 1 gdzie D(a)T oznacza wierszowy wektor RGB współczynników odbicia rozproszonego w oświetlanym punkcie, Li i l i – kolor RGB i, odpowiednio, położenie i-tego, punktowego źródła światła, A zaś – kolor RGB światła otoczenia. W celu polepszenia percepcji głębi model oświetlania uzupełniono o efekt mgły, który zmniejsza intensywność światła docierającego do obserwatora w zależności od jego odległości od oświetlanego punktu, zgodnie z formułą C (a) t C (a) (1 t ) B, 1 1 t 1 || a o || , Wizualizacja 251 gdzie B jest barwą RGB tła, o – położeniem obserwatora, zaś współczynnikiem mgły definiowanym jako odległość, przy której intensywność światła zmniejsza się o połowę. W oryginale wizualizacja przy wykorzystaniu tej metody dokonywana była przy użyciu procesora ogólnego przeznaczenia (CPU), niemniej łatwo ją zaimplementować na programowalnym potoku nowoczesnego akceleratora graficznego. W tym celu zbiór punktów aproksymujących atraktor należy przekazać do pamięci karty graficznej przy użyciu mechanizmu bufora wierzchołków (ang. vertex buffer) i następnie wywołać odpowiednią funkcję rysowania zawartości bufora jako listy izolowanych punktów. Wizualizacja odbywa się za pomocą prostego programu przetwarzania wierzchołków, w którym dokonywane są obliczenia dotyczące wyznaczenia barwy tych punktów na podstawie powyższych wzorów. Niestety, choć metoda ta umożliwia wizualizację atraktorów w czasie rzeczywistym, to jednak z punktu widzenia dzisiejszych standardów realistycznej grafiki komputerowej, obrazy uzyskane za jej pomocą zwykle trudno uznać za akceptowalne. Główną przyczyną takiego stanu rzeczy jest to, że przedstawiony model oświetlania do wyznaczenia odbicia rozproszonego nie uwzględnia lokalnej geometrii (krzywizny) atraktora w otoczeniu oświetlanego punktu. Problem ten jednak łatwo rozwiązać, stosując zamiast tego modelu oświetlania, powszechnie wykorzystywany w grafice czasu rzeczywistego, model oparty na rozproszonym odbiciu lambertowskim (Foley i inni [37], Zabrodzki [157]). W modelu tym krzywizna powierzchni w punkcie reprezentowana jest wektorem normalnym, który dla atraktorów IFS można obliczyć w fazie poprzedzającej wizualizację za pomocą jednego z algorytmów przedstawionych w rozdz. 8. W artykule (Martyn [95]) zastosowano w tym celu metodę opartą na aproksymacji otoczek wypukłych podzbiorów atraktora (podpunkt 8.2.1). Innym dobrym kandydatem, choć charakteryzującym się większym nakładem obliczeń, jest algorytm wykorzystujący regresję liniową, który został opisany w punkcie 8.5. Mając wektor normalny w oświetlanym punkcie, model oświetlania może zostać, w miarę potrzeb, dodatkowo wzbogacony o wyznaczanie odbłysków zwierciadlanych obliczanych zgodnie z regułą Phonga lub Blinna. Wizualizowanie atraktorów IFS w postaci zbiorów izolowanych punktów okazuje się jednak na ogół nieodpowiednim podejściem w aplikacjach czasu rzeczywistego, w których punkt obserwacji oraz kierunek osi widzenia ulegają ciągłym zmianom, na przykład w wyniku przemieszczania się obserwatora po scenie. W takich okolicznościach występuje niekorzystny efekt migotania pikseli, powodowany temporalną nieciągłością odwzorowania danego punktu zbioru w dys- 252 Wizualizacja kretną przestrzeń pikseli1. Co więcej, atraktory IFS są na ogół skomplikowanymi topologicznie obiektami fraktalnymi o zerowej objętości, zatem ich aproksymacje punktowe wykazują tendencję do wypełniania obszarów przestrzeni w sposób rzadki. Podczas wizualizacji atraktorów w postaci skończonego zbioru izolowanych punktów cecha ta powoduje, że w dużym zakresie odległości od obserwatora obiekty te wydają się eterycznymi obiektami przezroczystymi, zaś w miarę zbliżania się obserwatora wykazują tendencję do zanikania na podobieństwo obiektów gazowych. W celu zniwelowania wyżej zasygnalizowanych artefaktów temporalnych, w pracy (Martyn [95]) zaadaptowano znaną technikę grafiki punktowej, polegającą na reprezentowaniu punktów zbioru aproksymującego za pomocą odpowiednio małych kół (ang. object-oriented circular splats) o wektorach normalnych zgodnych z normalnymi w punktach zbioru. Aby prawidłowo rasteryzować i rzutować taką reprezentację na ekran monitora w czasie rzeczywistym, w cytowanej pracy wykorzystano podejście zaproponowane w artykule (Pajarola i inni [111]). Metoda ta polega na przedstawianiu kółek przy użyciu odpowiednio teksturowanych trójkątów równobocznych. W tym celu wykorzystywana jest tekstura z kanałem przezroczystości , która przechowuje obraz koła. Tekselom należącym do koła przypisana jest dodatnia wartość współczynnika przezroczystości, zaś dla tekseli dopełnienia wartość ta jest równa zeru. Dzięki takiemu rozwiązaniu fragmenty teksturowanego trójkąta, które nie należą do koła, mogą zostać w sposób wydajny pominięte w wizualizacji przy wykorzystaniu – implementowanego w kartach graficznych – mechanizmu testowania przezroczystości (test ). W rezultacie, wizualizacja atraktorów IFS omawianą techniką sprowadza się do przekazania do karty graficznej bufora wierzchołków wypełnionego danymi o wierzchołkach i normalnych trójkątów i następnie wywołania odpowiedniej funkcji rysowania zawartości tego bufora jako listy trójkątów2. Proces wizualizacji odbywa się przy wykorzystaniu programu przetwarzania wierzchołków, w którym poszczególnym wierzchołkom przypisywane są odpowiednie współrzędne tekstury koła (rys. 9.22), oraz prostego programu przetwarzania fragmentów, w którym dokonywane jest teksturowanie. Reprezentowanie punktów aproksymacji atraktora IFS w postaci teksturowanych trójkątów, których pełna lista przekazywana jest następnie do karty graficznej przy wykorzystaniu funkcjonalności bufora wierzchołków, jest wy1 Innymi słowy, w następujących po sobie ramkach wizualizacji, poszczególne obrazy punktów mają tendencję do „przeskakiwania” z piksela na piksel w wyniku niewielkich zmian położenia punktu obserwacji lub kierunku widzenia. 2 Mechanizm generowania wierzchołków na poziomie potoku graficznego oferowany przez jednostkę shadera geometrii, obecną w kartach graficznych wspierających specyfikację Shader Model 4.0, umożliwia zastosowanie opisanej techniki do bufora wierzchołków wypełnionego danymi reprezentującymi jedynie punkty środkowe trójkątów oraz wektory normalne. Wizualizacja 253 starczające do wizualizacji scen zawierających kilka takich obiektów. Jednakże w przypadku, gdy opis sceny zawiera wiele różnych atraktorów IFS (np. kilkaset fraktalnych roślin pokrywających rozległy teren w grze komputerowej), wówczas może pojawić się problem niewystarczającej pamięci karty graficznej do przechowywania takiej liczby danych. Należy bowiem zauważyć, iż aby dokładność prezentowanych modeli atraktorów odpowiadała dzisiejszym standardom rozdzielczości generowania obrazu, pojedyncza reprezentacja atraktora powinna na ogół składać się z kilkudziesięciu tysięcy punktów. Co więcej, zastosowanie – zwykle niezbędnych do wizualizacji złożonych scen w czasie rzeczywistym – algorytmów adaptacyjnego poziomu szczegółowości (LOD) (Luebke i inni [73], Eberly [28]), które są oparte na przechowywaniu reprezentacji modelu dla różnych poziomów szczegółowości, dodatkowo powiększa tę liczbę. Ponieważ pamięć współczesnych kart graficznych nie przekracza zwykle wielkości 1 GB, na ogół nie będzie ona dostatecznie pojemna dla zastosowania opisanego podejścia do wizualizacji scen składających się wielu takich obiektów. W takich okolicznościach bufory wierzchołków będą przekazywane z pamięci RAM do pamięci karty graficznej w trakcie procesu wizualizacji. Ponieważ proces ten, z punktu widzenia czasu rzeczywistego, jest czasochłonny, zaistnienie takiej sytuacji spowoduje znaczne obniżenie wydajności generowania kolejnych ramek obrazu, czyniąc tym samym wizualizację w czasie rzeczywistym praktycznie niemożliwą. Rys. 9.22. Odwzorowanie współrzędnych tekstury koła na trójkąt równoboczny W celu zapobieżenia wyżej przedstawionemu problemowi w przypadku atraktorów afinicznych IFS, w artykule (Martyn [95]) zaproponowano wykorzystanie samopodobieństwa atraktorów w kontekście, realizowanej sprzętowo na 254 Wizualizacja nowoczesnych kartach graficznych1, funkcjonalności powielania geometrii (ang. hardware geometry instancing). W zamyśle projektowym, mechanizm ten został stworzony w celu wizualizowania wielu kopii tego samego modelu w pojedynczym wywołaniu funkcji API graficznego, tak aby redukować liczbę czasochłonnych odwołań do sterownika karty. Jako taki, mechanizm ten ma na celu przyspieszanie procesu wizualizacji. Niemniej, jeśli spojrzy się na wiele obrazów (kopii) tego samego obiektu przy pewnych odwzorowaniach jak na jeden złożony obiekt, na przykład las utworzony przez wiele instancji pewnego modelu drzewa, wówczas łatwo zauważyć, że mechanizm powielania geometrii umożliwia również zmniejszenie kosztów pamięciowych związanych z przechowywaniem takiego złożonego obiektu. Zamiast reprezentować przykładowy model lasu w postaci zbioru autonomicznych modeli drzew, omawiany mechanizm pozwala bowiem przechowywać w pamięci karty graficznej model lasu w postaci pojedynczego modelu drzewa oraz zbioru odpowiednich przekształceń. Proces wizualizacji dokonywany jest bezpośrednio na podstawie rozważanej reprezentacji, poprzez wywołanie odpowiedniej funkcji rysującej i zastosowanie prostego programu przetwarzania wierzchołków. Ponieważ koszty pamięciowe przechowywania przekształcenia są zwykle mniejsze od kosztów przechowywania modelu drzewa (do zakodowania ogólnego odwzorowania afinicznego w przestrzeni R 3 wystarcza 12 liczb zmiennopozycyjnych), korzyści płynące z wykorzystania funkcjonalności powielania geometrii jako metody redukcji zapotrzebowania pamięciowego są oczywiste. Rys. 9.23. Koncepcja reprezentowania atraktora IFS w terminach geometrii G powielonej i rozmieszczonej w przestrzeni zgodnie ze wzorcem P Wspomniany mechanizm implementowany jest w kartach graficznych, które są w pełni zgodne ze specyfikacją DirectX 9.0c i Shader Model 3.0 (np. akceleratory graficzne firmy NVidia począwszy od serii GeForce 6). 1 Wizualizacja 255 Ponieważ atraktory IFS są zbiorami samopodobnymi, obiekty te świetnie wpisują się w przedstawioną ideę powielania geometrii. Dowolny atraktor IFS można bowiem rozpatrywać jako obiekt złożony z przekształconych kopii danej geometrii G , które są rozmieszczone w przestrzeni zgodnie z pewnym wzorcem P (rys. 9.23). W implementacji wykorzystującej powielanie geometrii, geometria G reprezentuje zgrubną aproksymację całego atraktora, wyznaczoną przy wykorzystaniu jednego z algorytmów omówionych w rozdz. 3 i 4. Wzorzec P jest natomiast zdefiniowany przez transformacje, które przekształcają geometrię G do odpowiednich rozmiarów i lokalizacji w przestrzeni atraktora. W przypadku atraktorów afinicznych IFS transformacje te wyznaczane są przy wykorzystaniu algorytmu adaptacyjnych odcięć jako złożenia wi1 ... wik odwzorowań IFS o współczynnikach zwężania Lip( wi1 ... wik ) Lip( wi1 ... wik 1 ) . Wartość determinuje maksymalną średnicę przekształconych kopii geometrii G wykorzystywanych do konstruowania reprezentacji atraktora i, co za tym idzie, również liczbę transformacji tworzących wzorzec P . Na rysunku 9.24 przedstawiono diagram zależności między algorytmami geometrycznymi i innymi zagadnieniami składającymi się na opisaną metodę wizualizacji. Rys. 9.24. Realistyczna wizualizacja atraktorów IFS na przestrzeni R3 w czasie rzeczywistym – diagram zależności między algorytmami składowymi (interpretacja oznaczeń jak na rys. 9.1) Na podstawie powyższych rozważań, całkowita liczba wizualizowanych punktów zbioru reprezentującego atraktor jest równa liczbie punktów składających się na geometrię G pomnożonej przez liczbę transformacji NumTrans tworzących wzorzec P . Natomiast, zastosowanie mechanizmu powielania geometrii do przechowywania atraktora wymaga sizeof (P ) sizeof (G ) pamięci karty graficznej, 256 Wizualizacja gdzie sizeof(.) oznacza ilość pamięci potrzebnej do przechowywania danej reprezentacji. Wobec tego, zastosowanie opisanego wyżej podejścia do wizualizacji atraktorów IFS skutkuje sizeof (G ) NumTrans sizeof (P ) sizeof (G ) razy mniejszymi wymaganiami pamięciowymi, aniżeli wykorzystanie w tym celu metody opartej na wykorzystaniu pojedynczego bufora wierzchołków do przechowywania pełnej aproksymacji atraktora. W przypadku, gdy sizeof (P ) sizeof (G ) , stopień kompresji charakteryzujący reprezentację opartą na powielaniu geometrii wynosi co najmniej sizeof (G ) . 2 sizeof (P ) / NumTrans Przy tym założeniu, współczynnik kompresji dla atraktorów afinicznych IFS na przestrzeni R 3 opisanych przy wykorzystaniu liczb zmiennopozycyjnych wynosi co najmniej sizeof (G ) / (24 sizeof ( float )) . Natomiast, w przypadku gdy 1 sizeof (P ) sizeof (G ) , współczynnik ten wynosi co najmniej NumTrans . 2 W praktycznej implementacji opisanej metody w odniesieniu do atraktorów afinicznych IFS, każdy atraktor reprezentowany jest przy wykorzystaniu dwóch buforów wierzchołków. W pierwszym buforze przechowywane są punkty (wraz z wektorami normalnymi) reprezentujące geometrię G , zaś bufor drugi zawiera dane wzorca P , tj. macierze jednorodne reprezentujące odpowiednie złożenia afinicznych odwzorowań IFS. Macierze te zakodowane są w postaci trzech czterowymiarowych wektorów reprezentujących trzy pierwsze wiersze danej macierzy (pomijany jest ostatni wiersz postaci [0, 0, 0, 1]), przy czym w konkretnym API graficznym (takim jak np. Direct3D), wykorzystywane są w tym celu współrzędne tekstur. Opisany sposób reprezentowania i wizualizacji atraktorów IFS świetnie współgra z innymi metodami, które są powszechnie stosowane w grafice czasu rzeczywistego opartej na programowalnym potoku współczesnych kart graficznych. Na przykład, zastosowanie jednego z algorytmów adaptacyjnego poziomu szczegółowości (Luebke i inni [73], Eberly [28]) może być w prosty sposób realizowane dla atraktorów na podstawie kilku reprezentacji atraktora charakteryzujących się różnymi poziomach szczegółowości. Reprezentacje te otrzymuje się w łatwy sposób poprzez użycie geometrii G wygenerowanej dla różnych dokładności aproksymacji atraktora, zachowując przy tym niezmieniony wzorzec P . Z kolei, rzucanie cieni przez atraktory na obiekty znajdujące się w scenie (na przykład inne atraktory oraz „klasyczne” obiekty reprezentowane przez siatki trójkątów), w tym i efekt „samoprzysłaniania” (ang. self-shadowing), łatwo uzyskać poprzez wykorzystanie, powszechnie stosowanej m.in. w grach komputerowych, techniki opartej na mapach cieni (ang. shadow maps) (Luna [74]). Wizualizacja 257 Rys. 9.25. Ramki z wizualizacji w czasie rzeczywistym scen zawierających wiele atraktorów IFS przy wykorzystaniu mechanizmu powielania geometrii realizowanego za pomocą współczesnego sprzętu graficznego 258 Wizualizacja Rys. 9.25, cd. Na rysunku 9.25 przedstawiono rezultaty zastosowania opisanej metody w postaci kilku ramek uzyskanych z aplikacji demonstracyjnej zaimplementowanej Podsumowanie 259 przez autora. Program dokonywał wizualizacji sceny zawierającej ponad setkę atraktorów IFS, postrzeganej z punktu widzenia przemieszczającego się po tej scenie obserwatora. Obrazy generowane były z rozdzielczością 1680×1050, z próbkowaniem 8 próbek na piksel, ze średnią prędkością 50 ramek na sekundę przy wykorzystaniu przeciętnej – z punktu widzenia możliwości współczesnego sprzętu – klasy karty graficznej NVidia 8800 GT. 10. PODSUMOWANIE Od samego początku swego istnienia, geometria fraktalna była nierozerwalnie związana z grafiką komputerową. Obie dziedziny przenikając się wzajemnie, stymulowały swój rozwój. Z jednej strony grafika komputerowa była przyczynkiem do powstania fraktalnej geometrii, po czym stała się jej podstawowym narzędziem badawczym. Z drugiej strony, techniki fraktalne są od wielu lat powszechnie wykorzystywane do generowania interesujących, złożonych obrazów w grafice komputerowej, w tym do modelowania obiektów naturalnych na potrzeby realistycznej syntezy obrazów. Z punktu widzenia geometrii fraktalnej jedną z najbardziej popularnych metod opisywania obiektów fraktalnych są układy odwzorowań iterowanych (IFS). Obiekty opisywane przez tę reprezentację określane są w teorii IFS jako atraktory IFS. Układy IFS umożliwiają definiowanie, z zadaną dokładnością, teoretycznie dowolnych kształtów geometrycznych mających cechę ogólnie rozumianego samopodobieństwa geometrycznego. Co więcej, formuły te opisują definiowane geometrie na ogół w sposób niezwykle zwarty w rozumieniu kosztów pamięciowych związanych z przechowywaniem takich reprezentacji. Ponieważ samopodobieństwo jest jedną z podstawowych cech charakteryzujących fraktale oraz jest zauważalne (w wielu różnych postaciach) w geometrii bytów występujących w naturze, układy IFS stanowią potencjalnie bardzo dobry sposób reprezentacji takich obiektów w grafice komputerowej. Oprócz zastosowań w roli narzędzia służącego do definiowania geometrii, układy IFS umożliwiają także definiowanie szerokiej klasy samopodobnych miar fraktalnych i multifraktalnych. Znajdują zatem zastosowanie w geometrycznej teorii miary, teorii układów dynamicznych, a także w grafice komputerowej do generowania i reprezentowania fraktalnych tekstur i cieniowanych obrazów. Pomimo że jednym z głównych motywów powstania teorii IFS były jej potencjalne zastosowania w grafice komputerowej, to jednak sposoby wizualizowania obiektów definiowanych przy użyciu układów IFS są rozwinięte raczej połowicznie. O ile metody obrazowania atraktorów IFS na płaszczyźnie są stosunko- 260 Podsumowanie wo dobrze poznane, o tyle obrazowanie tych obiektów w przestrzeni trójwymiarowej, w szczególności w czasie rzeczywistym, jest zagadnieniem stosunkowo trudnym i w literaturze przedmiotu prawie nietkniętym. U podłoża takiego stanu rzeczy leży przede wszystkim fakt, że atraktory IFS są na ogół nieskończonymi i nieróżniczkowalnymi zbiorami punktowymi o fraktalnej, niezwykle skomplikowanej geometrii i topologii. Chociaż wspomniana „geometryczno-topologiczna” złożoność fraktali z punktu widzenia modelowania traktowana jest jako ich podstawowa zaleta, to jednak cechujące te zbiory nieskończony poziom szczegółowości i nieróżniczkowalność powodują, że bezpośrednie zastosowanie do obrazowania tych obiektów popularnych metod wizualizacji scen trójwymiarowych jest na ogół niemożliwe. W niniejszej rozprawie omówiono w sposób kompleksowy główne problemy pojawiające się przy wizualizacji obiektów opisywanych przy użyciu reprezentacji IFS. Do problemów tych należy zaliczyć: aproksymację aktraktorów, wyznaczanie figur ograniczających atraktory, wyznaczanie przecięcia półprostej z atraktorem oraz najmniejszej odległości danego punktu od atraktora, szacowanie wektorów normalnych w punktach atraktora. Rozwiązanie tych problemów stanowi niezbędny składnik wielu algorytmów wykorzystywanych w ogólnie rozumianej wizualizacji komputerowej. Celem podjętych prac badawczych było opracowanie i analiza metod rozwiązywania wyżej wymienionych zagadnień przy wykorzystaniu ujednoliconego aparatu matematycznego. Postawiono tezę, że rozwiązania te mogą zostać efektywnie znalezione w sposób automatyczny poprzez obliczenia numeryczne i, w konsekwencji, wizualizacja obiektów opisanych przez układy IFS, w tym wizualizacja realistyczna trójwymiarowych atraktorów IFS i miar niezmienniczych IFSP w czasie rzeczywistym, jest możliwa. Cel pracy został osiągnięty a teza uzasadniona. Poza tekstem niniejszej rozprawy oraz zaprezentowanymi w niej obrazami, dowodem na to są wizualizacje i animacje otrzymane przy wykorzystaniu omówionych algorytmów i współczesnego sprzętu graficznego, które zostały zamieszczone na załączonym do pracy dysku CD-ROM. Autor żywi nadzieję, że przedstawione w pracy rozwiązania i uwagi praktyczne przyczynią się zarówno do rozwoju zastosowań atraktorów IFS w grafice komputerowej (w szczególności jako modeli obiektów na potrzeby realistycznej syntezy obrazów w czasie rzeczywistym, w tym gier komputerowych i wideo), jak i rozszerzenia zbioru narzędzi badawczych w zakresie metod wizualizacji naukowej w samej geometrii fraktalnej. Oprócz całościowego ujęcia, opracowania i dyskusji przedstawionej problematyki wizualizacji atraktorów IFS, na oryginalny dorobek autora składają się: metoda wyznaczania momentów zwykłych pierwszego i drugiego rzędu miary niezmienniczej IFSP na przestrzeni R n (punkt 2.5 – uogólnienie rezultatów prezentowanych wcześniej w (Martyn [86, 87])); Podsumowanie 261 u ogólnienie algorytmu adaptacyjnych odcięć do aproksymacji, z zadaną dokładnością, atraktorów układów IFS zawierających odwzorowania nieliniowe (podpunkt 3.2.1); m etodyka numerycznego wyznaczania i szacowania stałych Lipschitza afinicznych oraz nieliniowych odwzorowań na potrzeby aproksymacji atraktorów IFS (podpunkt 3.2.2 – uogólnienie rezultatów prezentowanych wcześniej w (Martyn [81, 82, 85])); prosty dowód poprawności algorytmu gry w chaos dla nieskończonej liczby iteracji (podpunkt 3.3.2, (Martyn [83])); k onstruktywna analiza dokładności algorytmu gry w chaos dla skończonej liczby iteracji oraz, oparty na tej analizie, alternatywny dowód poprawności gry w chaos dla nieskończonej liczby iteracji (podpunkty 3.3.3 i 3.3.4 – rozszerzenie wyników prezentowanych wcześniej w (Martyn [84])); uogólnienie dyskretnej wersji gry w chaos do zwartych podzbiorów -siatek w przestrzeni R n oraz analiza poprawności i dokładności algorytmów aproksymacji atraktorów na -siatkach w przestrzeni R n , w szczególności oparta na teorii łańcuchów Markowa analiza algorytmów: minimalnego rysowania, iterowania dyskretnego operatora Hutchinsona oraz usuwania tła (rozdz. 4); a lgorytm wyważania atraktora do szacowania najmniejszej kuli zawierającej atraktor (punkt 5.4, (Martyn [86])); a daptacyjny algorytm szacowania najmniejszej kuli zawierającej atraktor oparty na momentach zwykłych pierwszego rzędu i macierzy kowariancji miary niezmienniczej IFSP (punkt 5.6 – rozszerzenie podejścia prezentowanego wcześniej w (Martyn [81])); a lgorytm aproksymowania najmniejszego koła zawierającego atraktor w przestrzeni R 2 metodą punktów rozpinających (punkt 5.7, (Martyn [93])); a lgorytm wyznaczania wielokątów i wielościanów wypukłych o zadanej liczbie krawędzi/ścian i zawierających atraktory, oparty na adaptacyjnym odcinaniu wierzchołków (podpunkt 6.3.2, (Martyn [89, 91])); a lgorytm aproksymowania otoczki wypukłej atraktora w przestrzeni R 2 metodą owijania atraktora (podpunkt 6.3.3, (Martyn [92])); w ydajny algorytm wyznaczania przecięcia półprostej z atraktorem oparty na hierarchii kul ograniczających wyznaczanych na podstawie normy Frobeniusa macierzy, a także wydajny algorytm wyznaczania tego przecięcia na podstawie hierarchii prostopadłościanów AAB (punkt 7.2.4, (Martyn [81, 82, 85])); a lgorytm szacowania wektora normalnego w punkcie atraktora przy wykorzystaniu aproksymacji otoczki wypukłej podzbioru atraktora (podpunkt 8.2.1, (Martyn [95])); m etody przyspieszania wizualizacji atraktorów IFS z dokładnością pikselową przy wykorzystaniu śledzenia promieni (podpunkt 9.2.2, (Martyn [81, 85])); 262 Podsumowanie w olumetryczne metody obrazowania miar niezmienniczych IFSP w przestrzeni R 3 , w tym wolumetryczna wizualizacja tych miar w czasie rzeczywistym przy wykorzystaniu programowalnego potoku graficznego (podpunkt 9.2.3, (Martyn [90, 94])); metoda realistycznej wizualizacji w czasie rzeczywistym scen zawierających setki atraktorów IFS przy wykorzystaniu programowalnego potoku graficznego i funkcjonalności sprzętowego powielania geometrii (podpunkt 9.2.4, (Martyn [95])). Jak już wspominano, problematyka obrazowania atraktorów IFS w przestrzeni trójwymiarowej poruszana jest stosunkowo rzadko – zarówno w literaturze grafiki komputerowej, jak i dotyczącej fraktali. Niemalże jedynym zagadnieniem podejmowanym w tym zakresie na przestrzeni ostatnich dwóch dekad był problem wizualizacji tych obiektów przy wykorzystaniu metody śledzenia promieni (Hart i DeFanti [52], Gröller [47], Wonka i Gervautz [155], Martyn [81, 82, 85]). Jak pokazują rezultaty prezentowane w cytowanych pracach, zaproponowane tam rozwiązania umożliwiają tworzenie fascynujących, „realistycznych” obrazów świata fraktali. Niestety, stosunkowo wysoki nakład obliczeń związanych bezpośrednio z samym procesem wizualizacji w praktyce skutecznie uniemożliwia zastosowanie tych sposobów generowania obrazów w czasie rzeczywistym – nawet przy wykorzystaniu współczesnego sprzętu graficznego. Zgodnie z wiedzą autora, jak dotychczas, jedyną pracą podejmującą skutecznie temat realistycznej wizualizacji atraktorów IFS na przestrzeni R 3 w czasie rzeczywistym jest artykuł (Martyn [95]). W ocenie autora, rezultaty otrzymane w ramach cytowanej pracy są niezwykle obiecujące. Dowodzą one bowiem, że specyfikacja IFS świetnie nadaje się jako forma reprezentacji złożonych modeli geometrycznych na potrzeby wizualizacji realistycznej, zaś sama wizualizacja może być dokonywana za pomocą współczesnego sprzętu graficznego w czasie rzeczywistym nawet w przypadku scen zawierających setki takich modeli, przy jednocześnie niewielkim obciążeniu zasobów pamięciowych. Cechy te czynią punktowe modele IFS konkurencyjnymi dla powszechnie dziś stosowanych w grafice czasu rzeczywistego technik „udawania” skomplikowanej, trójwymiarowej geometrii obiektów naturalnych (np. trawa czy drzewa lub ich części, takie jak korona) za pośrednictwem odpowiednich tekstur dwuwymiarowych z kanałem ; por. np. (Luna [74]). Co więcej, zauważalny w trakcie pisania niniejszej pracy skok wydajności jednostek shaderów geometrii w najnowszych kartach graficznych daje nadzieję, iż generowanie geometrii obiektów opisywanych IFS może być dokonywane, prawdopodobnie bez znaczącej utraty wydajności wizualizacji, dopiero na poziomie potoku renderingu karty graficznej bezpośrednio na podstawie specyfikacji IFS. Jeśli hipoteza ta jest prawdziwa, to z punktu widzenia danych przekazywanych do karty graficznej, wizualizacja obiektów IFS mogłaby się odby- Podsumowanie 263 wać na podobnych zasadach, jak ma to miejsce podczas wizualizowania prymitywu graficznego, jakim jest trójkąt. Należy pamiętać, że w tym przypadku karta graficzna sama generuje odpowiednią aproksymację trójkąta w procesie rasteryzacji na podstawie przekazanej do karty reprezentacji trójkąta w postaci trzech wierzchołków. Weryfikacja tej hipotezy stanowi jeden z kierunków badań, które autor ma zamiar podjąć w najbliższej przyszłości. Z punktu widzenia ewentualnych zastosowań w wizualizacji realistycznej, dodatkową, lecz nieporuszaną do tej pory w niniejszej pracy, zaletą zbiorów punktowych opisanych przy wykorzystaniu IFS, jest ich duża podatność na różnego rodzaju modyfikacje geometryczne, w tym tzw. morfing, czyli ciągłą metamorfozę geometryczną obiektów. Fakt ten ma istotne znaczenie przede wszystkim dla zagadnienia animacji obiektów przy wykorzystaniu metody ramek kluczowych (ang. keyframe animation), a także dla tworzenia różnego rodzaju interesujących efektów wizualnych w aplikacjach czasu rzeczywistego o charakterze rozrywkowym, np. grach komputerowych i wideo. Wspomniana „elastyczność” atraktorów IFS jest od wielu lat eksploatowana w różnego rodzaju prezentacjach możliwości i zalet IFS jako sposobu opisu geometrii na płaszczyźnie i zaowocowała kilkoma interesującymi podejściami do fraktalnej metamorfozy (np. Bowman [14], Burch i Hart [15], Martyn [87]). Jej wykorzystanie w realistycznej wizualizacji obiektów trójwymiarowych, w tym wizualizacji czasu rzeczywistego, jak do tej pory jest nikłe, ale z pewnością godne uwagi i warte dalszych badań. W bliskim związku z zagadnieniem przekształcania atraktorów IFS pozostaje problem modelowania trójwymiarowych obiektów przy wykorzystaniu układów IFS, w szczególności zagadnienie modelowania przy wykorzystaniu technik opartych na strategiach ewolucyjnych. Choć istniejące interaktywne systemy „hodowania” fraktali opisanych przez układy IFS na przestrzeni R 3 dają interesujące rezultaty (np. Żukowski [158]), to jednak systemy te opierają się na stosunkowo prostych metodach interpolowania odwzorowań IFS, które nie zachowują – istotnych z punktu widzenia modelowania – cech topologicznych obiektu, takich jak np. spójność (Burch i Hart [15]). Stworzenie odpowiedniego zaplecza algorytmicznego, które umożliwiałoby nakładanie różnego rodzaju ograniczeń na przeszukiwaną przez ewolucyjny system modelowania przestrzeń zbiorów opisywanych przez IFS, jest wysoce pożądane, a zarazem stanowi wyzwanie i otwarty obszar dla przyszłych badań. Wreszcie, interesujące i niemalże nietknięte przez badaczy pozostaje zagadnienie modelowania i wizualizacji realistycznej, w szczególności w czasie rzeczywistym, obiektów trójwymiarowych opisywanych przez różnego rodzaju uogólnienia układów IFS, przede wszystkim IFS ze zbiorami kondensacji (Barnsley [7]), IFS rekurencyjne (Barnsley i inni [10]) i hierarchiczne (Peitgen i inni [113]) oraz najnowszy produkt myśli Hutchinsona i Barnsleya – superfraktale (Barnsley [9]). Niektóre z metod i algorytmów przedstawionych w niniejszej pracy można zasto- 264 Dodatki sować bezpośrednio do rozwiązywania poszczególnych problemów związanych z wizualizacją tych obiektów, inne trzeba odpowiednio zmodyfikować, zaś niektóre problemy wymagają odrębnego potraktowania i jako takie wyznaczają potencjalne kierunki dalszych badań nad wykorzystaniem fraktali IFS w realistycznej grafice komputerowej. Dodatki A. ODWZOROWANIA I UKŁADY ODWZOROWAŃ WYKORZYSTANE W PRACY W niniejszym dodatku przedstawiono układy IFS i IFSP oraz inne odwzorowania wykorzystane w pracy. Przez diag(x) oznaczono macierz diagonalną R 2 2 o przekątnej składającej się z elementów wektora x, zaś przez rot ( ) – macierz R 2 2 opisującą obrót o kąt wyrażony w radianach. 1. Trójkąt Sierpińskiego (rys. 3.1): 1 1 1 w1 (x) diag , x , 0, 433 2 2 2 1 1 1 w2 (x) diag , x , 0, 433 2 2 2 1 1 T w3 (x) diag , x [0, 0, 433] 2 2 T T 2. Nieliniowe trójkąty Sierpińskiego (rys. 3.2): 3 f1 (x) SinY w1 (x), 2 3 f 2 (x) SinY w2 (x), 2 f 3 (x) w3 (x) 3 f1 (x) SinY w1 (x), 2 3 f 2 (x) SinY w2 (x), 2 3 f 3 (x) Sin w3 (x) 2 3 f1 (x) Sin w1 (x) 2 3 f 2 (x) Sin w2 (x) 2 3 f 3 (x) Sin w3 (x) 2 gdzie w1, w2, w3 odwzorowania opisujące trójkąt Sierpińskiego oraz SinY ([ x, y ]T , a ) [ x,sin(a y )]T Sin([ x, y ]T ) [sin( x),sin( y )]T . 3. Paprotka Barnsleya (rys. 3.5): 0,85 w1 (x) 0,04 0,15 w3 (x) 0, 26 0,04 0 x 0,85 1,6 0, 28 0 x 0, 24 0, 44 0, 2 0, 26 0 w2 (x) x 1,6 0, 23 0, 22 0,01 0 x w4 (x) 0,16 0 Dodatki 4. Niehiperboliczne IFSP (rys. 3.7): 1 w1 (x) , 2 T 5 , 2 p1 0,005 w2 (x) rot ( 2)x , p2 0,995 T 10 10 1 3 w1 (x) diag , x , , 47 47 2 2 p1 0,1 w2 (x) rot x, 6 p2 0,9 T 1 1 1 5 w1 (x) diag , x , , 8 8 2 2 1 1 1 w2 (x) diag , x , 8 8 2 p1 0,03 T 5 , 2 p2 0,03 T 1 1 7 w3 (x) diag , x 0, , 8 8 2 p3 0,03 w4 (x) rot x, 6 p4 0,91 1 1 1 w1 (x) diag , x , 4 8 2 T 5 , 2 p1 0,023 T 1 1 1 5 w2 (x) diag , x , , 8 3 2 2 p2 0,023 T 1 1 7 w3 (x) diag , x 0, , 8 8 2 p3 0,023 4 w4 (x) rot x, 9 p4 0,931 T 1 1 1 3 w1 (x) diag , x , , 4 4 2 2 T 1 1 1 w2 (x) diag , x , 2 4 2 3 , 2 1 1 w3 (x) diag , x 0, 4 2 T 5 , 2 w4 (x) diag (1, 1) rot x, 3 p1 0, 25 p2 0, 25 p3 0, 25 p4 0, 25 265 266 Dodatki 1 1 1 w1 (x) diag , x , 4 2 2 T 3 , 2 p1 0,143 T 1 1 1 3 w2 (x) diag , x , , 2 4 2 2 p2 0,143 T 1 1 5 w3 (x) diag , x 0, , 4 2 2 p3 0,143 w4 (x) diag (1, 1) rot x, 18 p4 0,571 5. Minimalne zbiory absorbujące i baseny przyciągania -zaokrągleń (rys. 4.1): T T 6 6 1 1 1 1 w(x) diag , x , , 10 10 2 2 2 2 T T 5 6 6 1 1 1 1 diag , x , , w(x) rot 180 10 10 2 2 2 2 T T 6 6 1 1 1 1 w(x) rot diag , x , , 6 10 10 2 2 2 2 T T 15 6 6 1 1 1 1 w(x) rot diag , x , , 18 10 10 2 2 2 2 T T 9 9 1 1 1 1 w(x) rot diag , x , , 6 10 10 2 2 2 2 T T 0,5 0,3 1 1 1 1 w(x) x , , 2 2 2 2 0,1 0, 4 6. Atraktory IFS i algorytm minimalnego rysowania (rys. 4.2): 0,577 0 0,0951 w1 (x) x 0,5893 0,577 0 0,577 0 0, 4413 w2 (x) x 0,7893 0,577 0 0,577 0 0,0952 w3 (x) x 0 0,577 0,9893 0 0,382 0,3072 w1 (x) x 0,619 0 0,382 0 0,382 0,6033 w2 (x) x 0, 4044 0 0,382 0 0,382 0,0139 w3 (x) x 0,382 0 0, 4044 0 0,382 0,1253 w4 (x) x 0,382 0 0,0595 Dodatki 267 0 0,382 0, 492 w5 (x) x 0,0595 0 0,382 0,67 0,02 0 w1 (x) x 10 0,18 0,81 0, 4 0, 4 w2 (x) x 0,1 0, 4 0 0,1 0 x w3 (x) 0, 44 0, 44 0, 44 0, 4 0.4 w4 (x) x 0,1 0, 4 f1 (x) Handkerchief (1, 2 Sin(1,3 w1 (x))) f 2 (x) Handkerchief (1, 4 Sin(1,3 w2 (x))) f 3 (x) Handkerchief (1,5 Sin(0,6 Spherical ( w3 (x)))) f1 (x) w1 (x) f 2 (x) w2 (x) f 3 (x) Blob( w3 (x), 1,3, 1,3, 7) f1 (x) Eyefish (0,8 Handkerchief (1, 2 Sin(1,6 w1 (x)))) f 2 (x) Fisheye (0,8 Handkerchief (1, 4 Sin(1,3 w2 (x)))) f 3 (x) Swirl (1,5 Sin(0,8 Spherical ( w3 (x)))) gdzie: w1, w2, w3 odwzorowania opisujące trójkąt Sierpińskiego, Sin([ x, y ]T ) [sin( x),sin( y )]T , Spherical (x) x / || x ||2 , Handkerchief ([ x, y ]T ) x [ x, y ]T sin arctg [ x, y ]T y x T ,cos arctg [ x, y ] y T , Blob([ x, y ]T , a, b, c) T x x x ab [ x, y ] b sin c arctg 1 cos arctg ,sin arctg , 2 y y y T Eyefish (x) 2 x / (1 || x ||) , Fisheye ([ x, y ]T ) 2 [ y, x]T / (1 || [ x, y ]T ||) , sin(|| x ||2 ) cos(|| x ||2 ) Swirl (x) x . 2 2 cos(|| x || ) sin(|| x || ) 268 Dodatki 7. Inne przykłady atraktorów afinicznych IFS na przestrzeni R2 (rys. 5.1 i rys. 6.1): • dragon 0,824074 0, 281482 1,88229 w1 (x) x 0,110607 0, 212346 0,864198 0,088272 0,520988 0,78536 w2 (x) x 8,095795 0, 463889 0,377778 • coral 0,307692 w1 (x) 0.461538 0,307692 w2 (x) 0,153846 0,531469 5, 401953 x 0, 293706 8,655175 0,076923 1, 295248 x 0, 447552 4,15299 0 0,545455 4,893637 w3 (x) x 7, 269794 0,692308 0,195804 • curly 0,18 0,18 113, 46 w1 (x) x 90,52 0,18 0,18 • • star 0 0, 255 0,3726 w1 (x) x 0,6714 0 0, 255 0 0, 255 0,1146 w2 (x) x 0, 2232 0 0, 255 0 0, 255 0,6306 w3 (x) x 0, 255 0 0, 2232 0,37 0.642 0,6356 x w4 (x) 0,642 0,37 0,0061 H-fractal 0,5 0, 4 77,5 w1 (x) x 15,5 0,5 0, 4 • 0,89 0,33 13,64 w2 (x) x 27, 28 0,33 0,89 0,5 0,3 46,5 w2 (x) x 15,5 0,5 0,3 plant 0,387 0, 43 0, 256 w1 (x) x 0, 43 0,387 0,522 0, 441 0,091 0, 4219 x w2 (x) 0,009 0,322 0,5059 0, 468 0,02 0, 4 w3 (x) x 0, 4 0,113 0,015 • twindragon 2 2 w1 (x) rot diag , x 4 2 2 2 2 3 T w2 (x) rot diag , [0, 55] 4 2 2 Dodatki • • 269 tree 0 0 w1 (x) x 0 0,5 0, 42 0, 42 0 x w2 (x) 0, 42 0, 42 0, 2 0, 42 0, 42 0 w3 (x) x 0, 42 0, 42 0, 2 0,1 0 0 w4 (x) x 0 0,1 0, 2 tree2 0,195 0, 488 0, 4431 w1 (x) x 0, 2452 0,344 0, 443 0, 462 0, 414 0, 2511 w2 (x) x 0,5692 0, 252 0,361 0,058 0,07 0,5976 w3 (x) x 0,0969 0, 453 0,111 0,035 0,07 0, 4884 x w4 (x) 0, 469 0,022 0,5069 0 0,637 0,8562 x w5 (x) 0,501 0 0, 2513 8. Przykłady atraktorów afinicznych IFS na przestrzeni R3 (rys. 5.4): • • fern 0 0 0 w1 (x) 0 0,18 0 x 0 0 0 0 0 0,85 0 w2 (x) 0 0,85 0,01027 x 1,76 0 0 0,85 0,1403 0,3357 0 0, 2 0 w3 (x) 0,1192 0, 2 0 x 0,88 0 0 0 0,3 0, 2 0,3357 0 0 w4 (x) 0,1192 0, 2 0 x 0,88 0 0 0 0,3 perturbed tetrahedron 0,1853 0 0,5 1,0462 w1 (x) 0,1667 0,3639 0,0962 x 0,8914 0 1, 2468 0,1555 0,5 0,042 0 0,5 1,6029 w2 (x) 0,1667 0,3639 0,0962 x 0,8914 0 0, 2826 0,5 0, 2382 270 Dodatki 0 0,5 0, 2273 0,5567 w3 (x) 0 0,3639 0,1925 x 0,8914 0 1,5294 0,0827 0,5 0 0,3214 0,383 0 w4 (x) 0 0,5 0 x 1, 2247 0,3214 0 0 0,383 • plant 0 0 0 w1 (x) 0 0,5 0 x 0 0 0 0 0 0 0 w2 (x) 0 0,5 0 x 0,8 0 0 0 0 0,383 0,3214 0 0, 2 w3 (x) 0,3214 0,383 0 x 5, 2 0 0 0 0,5 0,1915 0,1607 0, 433 0,1 w4 (x) 0,3214 0,383 0 x 5, 2 0,3317 0, 2783 0, 25 0,1732 0,1915 0,1607 0, 433 0,1 w5 (x) 0,3214 0,383 0 x 5, 2 0,3317 0, 2783 0, 25 0,1732 • dragon 0,5283 0, 4114 0, 2273 w1 (x) 0, 4698 0, 4698 0, 2418 x 0,0103 0,3317 0, 2273 0, 4114 0,5283 0, 2273 2, 2 w2 (x) 0, 4698 0, 4698 0, 2418 x 2,16 0,3317 0,0103 0,6244 2, 2 B. DYSK CD-ROM Do pracy załączono dysk CD-ROM zawierający ilustracje oraz wyniki działania przedstawionych w niej algorytmów. Na dysku zawarto prawie cały materiał wizualny przedstawiony w rozprawie (pominięto niektóre rysunki o charakterze technicznym), a także dodatkowe obrazy oraz około 20 animacji. Między innymi zamieszczono zapis interaktywnej wizualizacji miar niezmienniczych Bibliografia 271 IFSP na przestrzeni R3, a także zapis działania demonstracyjnej aplikacji graficznej realizującej interaktywną, realistyczną wizualizację w czasie rzeczywistym sceny 3D zawierającej wiele atraktorów IFS, oglądanych z perspektywy poruszającego się po tej scenie obserwatora. Materiał zgromadzony na dysku uporządkowany jest zgodnie z układem rozprawy i zorganizowany przy wykorzystaniu języka HTML. W celu zapoznania się z załączonymi przykładami obrazów i animacji należy wywołać plik index.html za pomocą przeglądarki internetowej, np. Internet Explorer lub Mozilla Firefox. Większość ilustracji może zostać powiększona poprzez wskazanie kursorem myszy na obrazek i naciśnięcie jej lewego przycisku. Animacje odtwarzane są w ten sam sposób. BIBLIOGRAFIA [1] Akenine-Möller T., Haines E.: Real-time rendering. 2nd ed. A K Peters, Wellesley, Massachusetts, 2002. [2] Akl S.G.: Two remarks on a convex hull algorithm. Information Processing Letters, 1979, 8, s. 108–9. [3] Alligood K.T., Sauer T.D., Yorke J.A: Chaos. An introduction to dynamical systems. Springer, New York, 2000. [4] Bachman G., Narici L.: Functional analysis. Dover Publications, 1998. [5] Barnsley M.F.: Fractal functions and interpolation. Constructive Approximation, 1988, 2, s. 303–329. [6] Barnsley M.F.: The desktop fractal design handbook. Academic Press, New York, 1989. [7] Barnsley M.F.: Fractals everywhere. 2nd ed. Academic Press, Boston, 1993. [8] Barnsley M.F.: Theory and application of fractal tops. In: Fractals in Engineering: New trends in theory and application. J. Lévy-Véhel, E. Lutton (red.), Springer, London, 2005, s. 3–20. [9] Barnsley M.F.: Superfractals. Cambridge University Press, Cambridge, 2006. [10] Barnsley M.F., Elton J.H., Hardin D.P.: Recurrent iterated function systems. Constructive Approximation, 1989, 5(1), s. 3–31. [11] Barnsley M.F., Jacquin A., Malassenet F., Reuter L., Sloan A.D.: Harnessing chaos for image synthesis. Computer Graphics, 1988, 22(4), s. 131–140. [12] Barr A.H.: Ray tracing deformed surfaces. Computer Graphics, 1986, 20(4), s. 287–296. [13] Blinn J.F.: Light reflection functions for simulation of clouds and dusty surfaces. Computer Graphics, 1982, 16(3), s. 21–28. [14] Bowman R.: Fractal metamorphosis: A brief student tutorial. Computers & Graphics, 1995, 19(1), s. 157–64. [15] Burch B., Hart J.: Linear fractal shape interpolation. Graphics Interface’97, 1997, s. 155–62. [16] Cabral B., Cam N., Foran J.: Accelerated volume rendering and tomographic reconstruction using texture mapping hardware. ACM Symp. on Volume Visualization, 1994, s. 91–98. [17] Canright D.: Estimating the spatial extent of the attractors of iterated function systems. Computers & Graphics, 1994, 18(2), s. 231–238. [18] Chen Y.Q., Bi G.: 3-D ifs fractals as real-time graphics models. Computers & Graphics, 1997, 21(3), s. 367–370. [19] Chu H.-T., Chen Ch.-Ch.: On bounding boxes of iterated function system attractors. Computers & Graphics, 2003, 27(4), s. 407–414. [20] Cochran W.O., Lewis R.R., Hart J.C.: The normal of a fractal surface. The Visual Computer, 2001, 17(4), s. 209–218. [21] Cormen Th.H., Leiserson Ch.E., Rivest R.L.: Wprowadzenie do algorytmów. WNT, Warszawa 1997. 272 Bibliografia [22] Cullip T.J., Neumann U.: Accelerating volume reconstruction with 3D texture hardware. Tech. Rep. TR93–027, University of North Caroline at Chapel Hill, 1993. [23] de Berg M., van Kreveld M., Overmars M., Schwarzkopf O.: Computational geometry – algorithms and applications. 2nd ed. Springer, New York 2000. [24] Draves S., Reckase E.: The fractal flame algorithm. http://flam3.com, 2003. [25] Dubuc S., Elqortobi A.: Approximations of fractal sets. J. Computational and Applied Mathematics, 1990, 29, s. 78–89. [26] Dubuc S., Hamzaoui R.: On the diameter of the attractor of an IFS. Manuscript, 1994. [27] Dyson F.: Characterizing irregularity. Science, 1978, 200(4342), s. 677–678. [28] Eberly D.H.: 3D game engine design. 2nd ed. Morgan Kaufmann Publishers, Amsterdam, 2007. [29] Ebert D.S., Musgrave F.K., Peachey D., Perlin K., Worley S.: Texturing & modeling. A procedural approach. 3nd ed. Morgan Kaufmann Publishers, Amsterdam, 2003. [30] Edalat A., Sharp D.W.N., While R.L.: Bounding the attractor of an IFS. Imperial College Research Report DoC 96/5, 1996. [31] Edgar A.G.: Measure, topology, and fractal geometry. Springer, New York 1990. [32] Elton J.: An ergodic theorem for iterated maps. Journal of Ergodic Theory and Dynamical Systems, 1987, 7, s. 481–488. [33] Falconer K.: Fractal geometry. Mathematical foundations and applications. John Wiley & Sons, Chichester 1990. [34] Falconer K.: Techniques in fractal geometry. John Wiley & Sons, Chichester 1997. [35] Feller W.: An introduction to probability theory and its application. Volume I. Third ed. John Wiley & Sons, New York 1963. [36] Fisher Y. (red.): Fractal image compression: Theory and application. Springer, New York 1995. [37] Foley J.D., van Dam A., Feiner S.K., Hughes J.F.: Computer graphics: Principles and practice. 2nd ed in C. Addison-Wesley, Boston 1990. [38] Forte B., Mendivil F.: A classical ergodic property for IFS: A simple proof. Ergodic Theory and Dynamical Systems, 1998, 18(3), s. 609–611. [39] Fournier A., Fussel D., Carpenter L: Computer rendering of stochastic models. Communications of the ACM, 1982, 25(6), s. 371–384. [40] Freeman H., Shapira R.: Determining the minimum-area enclosing rectangle for an arbitrary closed curve. Communications of the ACM, 1975, 18, s. 409–13. [41] Giles J.R.: Introduction to the analysis of metric spaces. Cambridge University Press, Cambridge 1987. [42] Giles J.R.: Introduction to the analysis of normed linear spaces. Cambridge University Press, Cambridge 2000. [43] Glassner A.S. (red.): An introduction to ray tracing. Academic Press, London 1989. [44] Golub G.H., Van Loan C.F.: Matrix computations. 2nd ed. Johns Hopkins, Baltimore 1989. [45] Goodman G.S.: A probabilist looks at the chaos game. In: Fractals in the fundamental and applied sciences. H.-O. Peitgen, J.M. Henriques i L.F. Penedo (red.), North-Holland, Amsterdam 1991, s. 183–224. [46] Gross M., Pfister H. (red.): Point-based graphics. Morgan Kaufmann Publishers, Amsterdam 2007. [47] Gröller E.: Modeling and rendering of nonlinear iterated function systems. Computers & Graphics, 1994, 18(5), s. 739–748. [48] Gröller E.: Nonlinear ray tracing: visualizing strange worlds. The Visual Computer, 1995, 11, s. 263–274. [49] Gutiérrez J.M., Iglesisas A., Rodríguez: A multifractal analysis of IFSP invariant measures with application to fractal image generation. Fractals. Complex geometry, patterns, and scaling in nature and society, 1996, 4(1), s. 17–27. Bibliografia 273 [50] Haines E.: Efficiency improvements for hierarchy traversal in ray tracing. In: Graphics gems II, J. Arvo (red.). Academic Press, Boston 1991, s. 267–272. [51] Hall R.: Illumination and color in computer generated imaginary. Springer, New York 1989. [52] Hart J.C., DeFanti T.A.: Efficient antialiased rendering of 3-D linear fractals. Computer Graphics, 1991, 25(4), s. 91–100. [53] Hart J.C., Sandin D.J., Kauffman L.H.: Ray tracing deterministic 3-D fractals. Computer Graphics, 1989, 23(3), s. 289–296. [54] Harte D.: Multifractals. Theory and applications. Chapman & Hall/CRC, Boca Raton 2001. [55] Hepting D., Hart J.C.: The escape buffer: Efficient computation of escape time for linear fractals. Proc. Graphics Interface ’95, 1995, s. 204–214. [56] Hepting D., Prusinkiewicz P., Saupe D.: Rendering methods for iterated function systems. In: Fractals in the fundamental and applied sciences. H.-O. Peitgen, J.M. Henriques i L.F. Penedo (red.), North-Holland, Amsterdam 1991, s. 183–224. [57] Herbison-Evans D.: Solving and cubics for graphics. In: Graphics gems V, A.W. Paeth (red.), Academic Press, Boston 1995, s. 3–15. [58] Hoppe H., DeRose T., Duchamp T., McDonald J., Suetzle W.: Surface reconstruction from unorganized points. Computer Graphics, 1992, 26(3), s. 71–78. [59] Hutchinson J.: Fractals and self-similarity, Indiana University Journal of Mathematics, 1981, 30, s. 713–747. [60] Jakubowski J., Sztencel R.: Wstęp do teorii prawdopodobieństwa. SCRIPT, Warszawa 2000. [61] Jarvis J.P., Shier D.R.: Graph-theoretic analysis of finite Markov chains. In: Applied mathematical modeling: A multidisciplinary approach. D.R. Shier, K.T. Wallenius (red.): Chapman & Hall/CRC, Boca Raton 1996. [62] Kajiya J.T.: New techniques for ray tracing procedurally defined objects. Computer Graphics, 1982, 17(3), s. 91–102. [63] Kajiya J.T., Von Herzen B.P.: Ray tracing volume densities. Computer Graphics, 1984, 18(3), s. 165–174. [64] Kay T.L., Kajiya J.T.: Ray tracing complex scenes. Computer Graphics, 1986, 20(4), s. 269–278. [65] Kenyon R., Li J., Strichartz R.S., Wang Y. Geometry of self-affine tiles II. Indiana University Mathematics Journal, 1999, 48, s. 25–42. [66] Kiełbasiński A., Schwetlick H.: Numeryczna algebra liniowa. Wprowadzenie do obliczeń zautomatyzowanych. WNT, Warszawa 1992. [67] Kincaid D., Cheney W.: Numerical analysis. Mathematics of scientific computing, 3th ed. Americal Mathematical Society, 2002. [68] Knuth D.E., Morris J.H., Pratt V.R.: Fast pattern matching in strings. SIAM Journal on Computing, 1977, 6(2), s. 323–350. [69] Krüger J., Westermann R.: Acceleration techniques for GPU-based volume rendering. Proceedings of IEEE Visualization ’03, 2003, s. 287–292. [70] Kudrewicz J.: Fraktale i chaos, Wyd. 3. WNT, Warszawa 1996. [71] Lawlor O.S., Hart J.C.: Bounding recursive procedural models using convex optimization. Proc. Pacific Graphics ‘03. [72] Lengyel E.: Mathematics for 3D game programming and computer graphics. 2nd ed. Charles River Media, Hingham, Massachusetts 2004. [73] Luebke D., Reddy M., Cohen J.D., Varshney A., Watson B., Huebner R.: Level of detail for 3D graphics. Morgan Kaufmann Publishers, Amsterdam 2003. [74] Luna F.D.: Introduction to 3D game programming with DirectX 9.0c: A shader approach. Worldware Publishing, Inc, 2006. [75] Maciejewski M.: Modelowanie roślin przy wykorzystaniu uogólnionych systemów funkcji iterowanych. Praca magisterska (pod kierunkiem T. Martyna), Politechnika Warszawska, Warszawa 2003. 274 Bibliografia [76] Mandelbrot B.B.: The fractal geometry of nature. W. H. Freeman and Co., New York, 1982. [77] Mandelbrot B.B.: Selected topics in mathematics, physics, and finance originating in fractal geometry. In: Thinking in patterns. M.M. Novak (red.), World Scientific, Singapore 2004, s. 1–33. [78] Manly T.F.J.: Multivariate statistical methods. Chapman & Hall, London, 1986. [79] Martyn T.: Fraktale i obiektowe algorytmy ich wizualizacji. Wydawnictwo Nakom, Poznań 1996. [80] Martyn T.: Wizualizacja atraktorów IFS metodą śledzenia promieni. Raport Badawczy II PW, 2/97, Warszawa 1997. [81] Martyn T.: Wizualizacja atraktorów afinicznych IFS metodą śledzenia promieni. Rozprawa doktorska, Politechnika Warszawska, Warszawa 1999. [82] Martyn T.: Efficient ray tracing affine IFS attractors. Computers & Graphics, 2001, 25(4), s. 665–670. [83] Martyn T.: An elementary proof for correctness of the chaos game for IFS and its hierarchical and recurrent generalizations. Computers & Graphics, 2002, 26(3), s. 505–510. [84] Martyn T.: On approximation accuracy of the chaos game’s finite-time activity. Computers & Graphics, 2002, 26(5), s. 753–764. [85] Martyn T.: An approach to ray tracing affine IFS fractals. In: Emergent nature. M.M. Novak (red.), World Scientific, Singapore 2002, s. 283–292. [86] Martyn T.: Tight bounding ball for affine IFS attractor. Computers & Graphics, 2003, 27(4), s. 535–552. [87] Martyn T.: A new approach to morphing 2D affine IFS fractals. Computers & Graphics, 2004, 28(2), s. 249–272. [88] Martyn T.: A method for numerical estimation of generalized Rényi dimensions of affine recurrent IFS invariant measures. In: Thinking in patterns. M.M. Novak (red.), World Scientific, Singapore 2004, s. 79–90. [89] Martyn T.: Convex containers of affine 2D IFS attractors. Tekst niepublikowany, arch. autora, 2006. [90] Martyn T.: A generative construction and visualization of 3D fractal measures. In: Complexus mundi. Emergent patterns in nature. M.M. Novak (red.), World Scientific, Singapore 2006, s. 103–112. [91] Martyn T.: Convex containers of IFS attractors. Seminarium Zakładu Grafiki Komputerowej 22.01.2008, Instytut Informatyki, Politechnika Warszawska, 2008. [92] Martyn T.: The attractor-wrapping approach to approximating convex hulls of 2D affine IFS attractors. Computers & Graphics, 2009, 33(1), s. 104–112. [93] Martyn T.: The smallest enclosing disc of an affine IFS fractal. Fractals. Complex geometry, patterns, and scaling in nature and society, 2009, 17(3), s. 269–281. [94] Martyn T.: Exploring the infinite-time behavior of the chaos game: Approximation and interactive visualization of 3D IFSP and RIFS invariant measures using PC graphics accelerators. Machine Graphics & Vision, 2010, 18(4), s. 453–476. [95] Martyn T.: Realistic rendering 3D IFS fractals in real-time with graphics accelerators. Computers & Graphics, 2010, 34(2), s. 167–175. [96] Massopust P.R.: Fractal functions, fractal surfaces, and wavelets. Academic Press, San Diego 1994. [97] Mattila P.: Geometry of sets and measures in Euclidean spaces. Fractals and rectifiability. Cambridge University Press, Cambridge 1999. [98] Megiddo N.: Linear-time algorithms for linear programming in R3 and related problems. SIAM J. Comput., 1983, 12(4), s. 759–776. [99] Megiddo N.: Linear programming in linear time when the dimension is fixed. J. of ACM., 1984, 31, s. 114–127. Bibliografia 275 [100] Monro D.M., Dudbridge F.: Rendering algorithms for deterministic fractals. IEEE Computer Graphics and Application, 1995, 15(1), s. 32–41. [101] Mrowiec S.: Graficzna analiza multifraktalna atraktorów RIFS 3D z wykorzystaniem wizualizacji wolumetrycznej wspomaganej sprzętowo. Praca magisterska (pod kierunkiem T. Martyna), Politechnika Warszawska, Warszawa 2004. [102] Musgrave F.K., Kolb C.E., Mace R.S.: The synthesis and rendering of eroded fractal terrains. Computer Graphics, 1989, 23(3), s. 41–50. [103] Nelder J.A. Mead R.: A simplex method for function minimization. Computer Journal, 1965, 7(4), s. 308–313. [104] Nikiel S.: True-colour images and iterated function systems. Computers & Graphics, 1998, 22(5), s. 635–540. [105] Nikiel S.: Iterated function systems for real-time image synthesis. Springer, London 2007. [106] Nikiel S., Goinski, A.: Generation of volumetric escape time fractals. Computers & Graphics, 2003, 27, s. 977–982. [107] Nikiel S., Steć P.: Rekurencyjny algorytm generacji systemów funkcji iteracyjnych. Metody i systemy komputerowe w badaniach naukowych i projektowaniu inżynierskim: II Krajowa Konferencja, Krakowskie Centrum Informatyki Stosowanej, Kraków 1999. [108] Norton A.: Generation and display of geometric fractals in 3-D. Computer Graphics, 1982, 16(3), s. 61–67. [109] Olano M., Hart J.C., Heidrich W., McCool M.: Real-time shading. A K Peters, Natic, Massachusetts 2002. [110] O’Rourke J.: Computational geometry in C. 2nd ed. Cambridge University Press, Cambridge 2003. [111] Pajarola R., Sainz M., Guidotti P.: Confetti: object-space point blending and splatting. IEEE Transactions on Visualization and Computer Graphics, 2004, 10(5), s. 598–608. [112] Pauly M., Keiser R., Kobbelt L.P., Gross M.: Shape modeling with point-sampled geometry. ACM Transactions on Graphics, 2003, 22(3), s. 641–650. [113] Peitgen H.-O., Jürgens H., Saupe D.: Chaos and fractals. New frontiers of science. 2nd ed. Springer, New York 2004. [114] Peitgen H.-O., Saupe D. (red.): The science of fractal images. Springer-Verlag, New York 1988. [115] Peruggia M.: Discrete iterated function systems. A K Peters, Wellesley, Massachusetts 1993. [116] Petersen K.: Ergodic theory. Cambridge University Press, Cambridge 1983. [117] Pierański P.: Fraktale. Od geometrii do sztuki. Ośrodek Wydawnictw Naukowych, Poznań 1992. [118] Pirzadeh H.: Computational geometry with the rotating calipers. M.Sc. thesis, School of Computer Science, McGill University, Montréal, Québec, Canada 1999. [119] Polack T.: Focus on 3D terrain programming. Premier Press, Cincinnati, Ohio 2003. [120] Preparata F.P., Shamos M.I.: Computational geometry – an introduction. Springer Verlag, New York 1985. [121] Press W.H., Flannery B.P., Teukolsky S.A., Vetterling W.T.: Numerical Recipes in C. 2nd ed. Cambridge University Press, Cambridge 1992. [122] Prokop J.: Tight bounding volumes for an IFS attractor. Praca inżynierska (pod kierunkiem T. Martyna), Politechnika Warszawska, Warszawa 2007. [123] Prokop J.: Approximation of convex hulls for an IFS attractor. Praca magisterska (pod kierunkiem T. Martyna), Politechnika Warszawska, Warszawa 2008. [124] Prusinkiewicz P., Hammel M.S.: Escape-time visualization metod for language-restricted iterated function systems. Proceedings of Graphics Interface’92, 1992, s. 213–223. [125] Prusinkiewicz P., Sandness G.: Koch curves as attractors and repellers. IEEE Computer Graphics and Applications, 1988, 8(6), s. 26–40. 276 Bibliografia [126] Rezk-Salama C., Engel K., Bauer M., Greiner G., Ertl T.: Interactive volume rendering on standard PC graphics hardware using multi-textures and multi-stage rasterization. Graphics Hardware 2000, 2000, s. 109–118. [127] Rice J.: Spatial bounding of self-affine iterated function system attractor sets. Technical Report TCD-CS-96-1, Dept. Computer Science, Trinity College, Dublin, Ireland 1996. [128] Rice J.: Spatial bounding of self-affine iterated function system attractor sets. Graphics Interface’96, 1996, s. 107–115. [129] Ritter J.: An efficient bounding sphere. In: Graphics gems. A.S. Glassner (red.), Academic Press, Boston 1990, s. 201–205. [130] Ritter J.: A simple ray rejection test. In: Graphics gems. A.S. Glassner (red.), Academic Press, Boston 1990, s. 201–205. [131] Rudin W.: Podstawy analizy matematycznej. PWN, Warszawa 1998. [132] Sabella P.: A rendering algorithm for visualizing 3D scalar fields. Computer Graphics, 1988, 22(4), s. 51–61. [133] Schwarze J.: Cubic and quartic roots. In: Graphics gems. A.S. Glassner (red.), Academic Press, Boston 1990, s. 404–407. [134] Seculic D.: Efficient occlusion culling. In: GPU Gems. R. Fernando (red.), Addison-Wesley, Boston 2004, s. 404–407. [135] Seidel R.: Backwards analysis of randomized geometric algorithms. In: New trends in discrete and computational geometry. Algorithms and combinatorics. Vol. 10. J. Pach (red.), Springer, Berlin 1993, s. 37–68. [136] Shinya M., Takahashi T., Naito S.: Principles and application of pencil tracing. Computer Graphics, 1987, 21(4), s. 45–54. [137] Skarbek W.: On correctness of algorithms for approximation of IFS fractals. Machine Graphics & Vision, 1992, 1(3), s. 555–560. [138] Skarbek W.: Metody reprezentacji obrazów cyfrowych. Akademicka Oficyna Wydawnicza PLJ, Warszawa 1993. [139] Skarbek W.: Notatka dołączona do recenzji rozprawy doktorskiej (Martyn [81]), 1999. [140] Skarbek W.: Notatka w recenzji wydawniczej manuskryptu tej pracy, 2011. [141] Stark J.: Iterated function systems as neural networks. Neural Networks, 1991, 4, s. 679–690. [142] Stępień C.: Self-congruent plant model and IFS models. Proceedings of the 10th IEEE International Conference on Methods and Robotics, 2004, s. 189–194. [143] Stępień C.: An IFS-based method for modeling horns, seashells and other natural forms. Computers & Graphics, 2009, 33(4), s. 576–581. [144] Strichartz R.S., Wang Y.: Geometry of self-affine tiles I. Indiana University Mathematics Journal, 1999, s. 48:1–23. [145] Sysło M.M., Deo N., Kowalik J.S. Algorytmy optymalizacji dyskretnej. Wyd. 3. PWN, Warszawa 1999. [146] Szeliski R., Terzopoulos D.: From splines to fractals. Computer Graphics, 1989, 23(3), s. 51–60. [147] Toussaint G.T.: Solving geometric problems with the rotating calipers. Proceedings of IEEE MELECON’83, Athens, Greece 1983. [148] Trajdos T.: Matematyka. Część III. WNT, Warszawa 1993. [149] Traxler C., Gervautz M.: Efficient ray tracing of complex natural scenes. In: Fractal Frontiers. M.M. Novak, T.G. Dewey (red.), World Scientific, Singapore 1997, s. 431–442. [150] Van Loocke Ph.: Polygon-based fractals from compressed iterated function systems. Computer Graphics, 2010, 30(2), s. 34–44. [151] van Wijk J.J., Saupe D.: Image-based rendering of iterated function systems. Computers & Graphics, 2004, 28(6), s. 937–943. [152] Welzl E. Smallest enclosing disks (balls and ellipsoids). In: New results and new trends in computer science. H. Maurer (red.), Springer Verlag, New York 1991, s. 359–370. Summary 277 [153] Whitted T.: An improved illumination model for shaded display. Communications of the ACM, 1980, 23(6), s. 343–349. [154] Wittenbrink C.M.: IFS fractal interpolation for 2D and 3D visualization. Proceedings of Visualization 95, 1995, s. 77–84. [155] Wonka P., Gervautz M.: Ray tracing of nonlinear fractals. WSCG Plzen Proceedings, 1998, s. 424–431. [156] Wu X.: A linear-time simple bounding volume algorithm. In: Graphics gems III. D. Kirk (red.), Academic Press, Boston 1992, s. 301–306. [157] Zabrodzki J. (red.): Grafika komputerowa – metody i narzędzia. WNT, Warszawa 1993. [158] Żukowski M.: Zastosowanie algorytmów genetycznych do interakcyjnego modelowania fraktali IFS. Praca magisterska (pod kierunkiem T. Martyna), Politechnika Warszawska, Warszawa 2004. GEOMETRIC ALGORITHMS FOR VISUALIZATION OF FRACTALS OF ITERATED FUNCTION SYSTEMS Summary The monograph is devoted to the presentation and analysis of the methods and algorithms to solve some fundamental problems which appear in computer visualization of fractal objects described by iterated function systems (IFS), namely IFS attractors and IFSP invariant measures. The discussed topics cover: the approximation of the mentioned objects, including their approximation on rectangular lattices, the determination of convex sets of a given geometry to bound IFS attractors, including bounding discs and balls, as well as bounding polygons and polyhedrons; the determination of the ray-attractor intersection and the computation of the distance between a given point and the attractor; the estimation of the normal vector at attractor points; visualization of attractors and invariant measures in 2D and 3D space. The majority of the algorithms are presented in the form of a pseudo-code that should be comprehensible to any reader familiar with a procedural programming language. Providing efficient algorithms to solve the mentioned problems makes it possible to perform, amongst others, realistic visualization of the IFS attractors and IFSP invariant measures in realtime with a modern graphics adaptor. Moreover, the implementation of adequate algorithms allows visualization to be done with the aid of existing graphics applications. They can also serve as an indispensable ingredient for visualization of the considered objects by means of popular graphics APIs, such as OpenGL and Direct3D. In particular, they can be used as modules extending the functionality of existing game and physics engines. The scope of potential applications of the issues we deal with in the monograph is very broad and ranges from scientific visualization, entertainment (computer and video games) to modern art. The main goal of this work is to collect and systematize the solutions scattered so far in relevant literature focused on computer graphics as well as concerned with fractals and mathematics, including results obtained by the author and published in his individual papers. Some of the results, obtained previously both by the author and other researches, have been generalized and updated in the monograph, while some of them have been presented in a form restricted to the context of the monograph’s theme. Keywords: fractal, IFS attractor, iterated function system, geometric algorithms, computer graphics, visualization SPIS TREŚCI Stosowane oznaczenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1. Wstęp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.1. Geometria fraktalna a wizualizacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2. Układy odwzorowań iterowanych. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.3. Cel, zakres i teza pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4. Układ pracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2. Podstawy teoretyczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1. Pojęcia podstawowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2. Zupełność, zwartość i twierdzenie Banacha o odwzorowaniu zwężającym . . . . . . . . . . . 2.3. Układ odwzorowań iterowanych i atraktor IFS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4. Układ odwzorowań iterowanych z prawdopodobieństwami i miara niezmiennicza . . . . 2.5. Momenty zwykłe pierwszego i drugiego rzędu miary niezmienniczej IFSP . . . . . . . . . . 2.6. Elementy teorii łańcuchów Markowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 15 17 20 26 29 32 3. Aproksymacja – algorytmy ogólne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1. Iterowanie operatora Hutchinsona. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Algorytm adaptacyjnych odcięć . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1. Opis i analiza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2. Wyznaczanie stałych Lipschitza odwzorowań . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3. Gra w chaos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1. Opis algorytmu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2. Analiza w przypadku nieskończonej liczby iteracji . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3. Analiza w przypadku skończonej liczby iteracji . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.4. Alternatywny dowód poprawności algorytmu w przypadku nieskończonej liczby iteracji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4. Porównanie algorytmów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 36 39 40 45 58 58 59 67 81 83 4. Aproksymacja na -siatkach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 4.1. Czas ucieczki i funkcja charakterystyczna atraktora. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 4.2. Zmodyfikowany algorytm adaptacyjnych odcięć . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.3. Układ -IFSP i dyskretna gra w chaos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.4. Algorytm minimalnego rysowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.5. Wyznaczanie maksymalnego zbioru niezmiennicznego dyskretnego operatora Hutchinsona . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 4.5.1. Uwagi wstępne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 4.5.2. Iterowanie dyskretnego operatora Hutchinsona . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4.5.3. Usuwanie tła . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 4.6. Porównanie algorytmów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 5. Figury ograniczające – kule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 5.1. Wprowadzenie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 5.2. Algorytm iteracyjny. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 5.3. Optymalizacja środka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 5.4. Wyważanie atraktora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 5.5. Koperty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 5.6. Podejście adaptacyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 5.7. Punkty rozpinające . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 5.8. Porównanie algorytmów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 280 Spis treści 6. Figury ograniczające – wielokąty i wielościany wypukłe . . . . . . . . . . . . . . . . . . . . . . . . . . 145 6.1. Wprowadzenie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 6.2. Prostopadłościany . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 6.2.1. Algorytmy pośrednie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 6.2.2. Algorytmy bezpośrednie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 6.3. Wielokąty i wielościany . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 6.3.1. Programowanie liniowe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 6.3.2. Odcinanie wierzchołków . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 6.3.3. Owijanie atraktora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 6.4. Porównanie algorytmów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 7. Wyznaczanie przecięcia półprostej z atraktorem i odległości punktu od atraktora . . . . 178 7.1. Wprowadzenie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 7.2. Wyznaczanie przecięcia półprostej z atraktorem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 7.2.1. Hierarchia figur ograniczających. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 7.2.2. Drzewo figur ograniczających podzbiory atraktora . . . . . . . . . . . . . . . . . . . . . . . . 182 7.2.3. Adaptacyjne wyznaczanie przecięcia – algorytmy wzorcowe . . . . . . . . . . . . . . . . 184 7.2.4. Adaptacyjne wyznaczanie przecięcia a geometria figur ograniczających. . . . . . . . 189 7.3. Wyznaczanie odległości punktu od atraktora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 8. Estymacja wektorów normalnych w punktach atraktora . . . . . . . . . . . . . . . . . . . . . . . . . 195 8.1. Wprowadzenie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 8.2. Wygładzanie atraktora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 8.2.1. Metody bezpośrednie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 8.2.2. Metody hierarchiczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 8.3. Wykorzystanie z-bufora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 8.4. Metoda gradientu funkcji odległości . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 8.5. Regresja liniowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 8.6. Porównanie algorytmów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 9. Wizualizacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 9.1. Atraktory w przestrzeni 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 9.1.1. Operator Hutchinsona a wizualizacja atraktorów i miar niezmienniczych . . . . . . . 210 9.1.2. Gra w chaos a metody wizualizacji – kolorowanie IFS i wykradanie kolorów . . . 213 9.1.3. Wykorzystanie algorytmu adaptacyjnych odcięć . . . . . . . . . . . . . . . . . . . . . . . . . . 219 9.1.4. Inne metody wizualizacji geometrii atraktora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 9.1.5. Wizualizacja funkcji odległości. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 9.1.6. Wizualizacja czasu ucieczki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.1.7. Wizualizacja funkcji potencjału . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 9.2. Atraktory w przestrzeni 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.1. Uwagi wstępne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.2.2. Zastosowanie metody śledzenia promieni do wizualizacji geometrii atraktorów IFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 9.2.3. Obrazowanie miar niezmienniczych IFSP przy użyciu wizualizacji wolumetrycznej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.2.4. Realistyczna wizualizacja geometrii atraktorów IFS w czasie rzeczywistym . . . 249 10. Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Dodatki. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Summary. Geometric algorithms for visualization of fractals of iterated function systems . . . . . 277