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  Rnn 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 }i1 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
n0
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 }iN1 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 }iN1 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 ,..., n1  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 ,..., n1  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  Rnn oznacza macierz identycznościową, Li  Rnn 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(Bk1) 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 ...im1 ) ,
(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
m0
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 }iN1 , 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 }iN1 na X z metryką euklidesową dE. Wtedy A jest także atraktorem IFS {wi }iN1 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 }iN1 .
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 }iN1 .
| 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 nn , 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 }iN1 na (X, e). Niech d  e . Ponieważ wi są zwężające
na (X, e), zatem algorytm adaptacyjnych odcięć uruchomiony dla {wi }iN1 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 }iN1 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 }iN1 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  Rnn , 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 nn , 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 w1  ...  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 , w1  ...  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 ,
w1  ...  w M  w p  ...  w1 ( 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  ...  w1 ( 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 w1  ...  w k ( A ) o średnicach nie większych niż  . Zatem punkt a należy przynajmniej do jednego z podzbiorów w1  ...  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 w1  ...  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( w1  ...  w k ( A ))  
oraz a  w1  ...  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  ...  w1 ( x0 ), w m  ...  w1 ( y0 )) 
m
 Lip ( w m  ...  w1 ) 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 ...imim1  f i0i1 ...im  wim1 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
p1  ...  p L ,
(3.41)
gdzie pi 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  )) ,
aS
(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}  .
 aD i 1

 aD i 1

Na podstawie nierówności Boole’a otrzymujemy
L


 L

 L

P   {Yi  a}    P  {Yi  a}   D   P  {Yi  a} 
aD
 aD i 1
 aD  i 1

 i 1

i stąd
 L

P ({a  D, 0  i  L, Yi  a})  1   P  {Yi  a}   D .
(3.45)
aD
 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} ,
aD
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}) .
aD
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 , mS / ~ ,
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 , mS / ~ .
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 ) 

mS / ~
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)
m0
k
1   pk , m
m0
oraz P|a| (| a |)  1 . Wobec tego
| a |1
| a |1
m0
m0
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 }iN1 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 {wik 1}k 1
taki, że
k  N, wik 1  ...  wi1 1 (x)  A .
Jeśli x  A , to dla każdego ciągu {wik 1}k 1 zachodzi:
r  0, k  N, wik 1  ...  wi1 1 (x)  B (0, r ) ,
czyli trajektoria punktu x określona ciągiem odwzorowań {wik 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 wi1 (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 }iN1 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( wi1 (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 }iN1 są odwracalne, to, dla pewnej sekwencji {wim1}km 1 ,
wik 1  ...  wi1 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 }iN1 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 }iN1 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 ...im1 ) ,
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 {w1 ,..., 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ś {w1 ,..., 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 , w1 (x 0 ))  d ( w1 (x 0 ), x 1 ) .
d (x1 , w1 (x 0 ))  d ( w1 (x 0 ), w1 (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 ( w1 (x 0 ), x 1 )  d ( w1 (x 0 ), w 1 (x 0 ))  diam d (C ) ,
2
bo w 1 (x 0 ) jest środkiem hipersześcianu, do którego należy w1 (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 , w1 (x i ))  d ( w1 (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  si2
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ś {w1 ,..., 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  ...  w1 )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  ...  w1 (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
2s
  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 {w1 ,..., 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)
m0
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  ...  w1 (x f )) 
diam d (C )
,
2(1  s )

diam d (C ) 
przy czym w j  ...  w1 (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)
ES.
(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, {w1 ,..., 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 ( w1  ...  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 )
2s
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  Rnn 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, wiq1  ...  wim (c))
(gdzie dla q = m, wiq1  ...  wim jest odwzorowaniem identycznościowym). Z kolei, na podstawie punktu a) twierdzenia 2.21, otrzymujemy
wiq1  ...  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 wiq1  ...  wim (c)  B (x, r ) , a zatem d E (x, wiq1  ...  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 , r1 ) 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 , r1 ) (czyli wartości 2r1 ). 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 )}iI , dla której
 AAB(c , r )  A
i
i

iI
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


iI










 x(c  r )  xmin 
 x(c  r )  xmin 
(k )
 sup  y (ci  ri ) :  i i
 k lub  i i
 k ,
ymax




iI 





(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,  21 ,...,  n1 ) . 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 ), L1r 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 ), L1r 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,..., wN } , 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 ), L1r ) . 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)
sS
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  N1(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 , sS , ( 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 .
sS
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 i1 (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 i1 . 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 i1
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 i1 . 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 i1
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 i1 , 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 i1 o wektor t i1 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 vi1 i vi1 prostej Li 1  t i 1 odpowiednio z krawędzią ei i ei 1 , po czym zastępuje tymi punktami wierzchołek v i1 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 vi 1 v i 1 vi 1 . Ponieważ punkt vi 1  ei leży bliżej wierzchołka v i1
niż punkt pT( i ) , zaś pT( i ) jest najbliższym punktem v i1 ze wszystkich punktów
przecięcia conv( S )  ei , zatem vi1 nie należy do conv( S ) . Analogicznie,
do conv( S ) nie należy także punkt vi1 . 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 i1 zastępowany jest w tym zbiorze przez punkty vi1 i vi1 .
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 }ih01 ,conv(A ))  d ({pi }ih01 \ conv(A ),conv(A )) ,
(6.20)
gdzie {pi }ih01 jest zbiorem wierzchołków wielokąta P ( ) . Niech
p {pi }ih01 \ 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 }ih01 \ conv(A ) istnieje a  conv(A ) taki, że || p  a ||E   . Stąd, na podstawie (6.20), d ({pi }ih01 ,conv(A ))   i dalej, wykorzystując lemat 6.4, otrzymujemy d (conv({pi }ih01 ),conv(A ))   , ale conv({pi }ih01 )  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 pk
nowego wielokąta sprowadza się do rozwiązania układów dwóch równań liniowych postaci n m  pk  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 j1 ( 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 j1 ( 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 j1 ( 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 j1 ( 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:
wij 1  ...  wi1 1 ( R (o, d))  R ( wij 1  ...  wi1 1 (o), Li 1j ...Li11d) ,
(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 wij 1  ...  wi1 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  wij 1  ...  wi1 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. 6982], Mattila [97, s. 202214]), 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 {qi }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
i1
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)
i1
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 }iK 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.19.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 mn 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)
w1  ...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  ...  w1 (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 w1  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  ...  w1 (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 wi1 1 , wi2 1 ,..., wim1 wyznaczających wartości tej funkcji dla punktów zbioru B (0, R ) \ A (czyli ETR (x)  m na podstawie wim1  ...  wi2 1  wi1 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 J11 (3) jest obszarem, dla którego punktów
pierwszym odwrotnym odwzorowaniem IFS sekwencji określającej czas ucieczki jest odwzorowanie w31 . Z kolei, w obrębie obszaru J11 (3) można zdefiniować N obszarów J11 (3)  J 21 (i2 ) , i2  1,..., N , z których każdy określa punkty
z czasem ucieczki determinowanym sekwencjami w31 , wi2 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 || wi1 (x) ||  R, i {1,..., N }; (9.5)
1  max CET ( w1 (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 ( wi1 (x)) . Jeśli wartość funkcji czasu ucieczki
i 1,..., N
została uprzednio obliczona dla piksela, do którego należy punkt wi1 (x) , to wartość tę można zastosować w powyższej formule do szacowania wartości czasu
ucieczki max f ( wi1 (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 ( wi1 (x)) poprzez interpolację tych wartości uprzednio wyznaczonych
i 1,..., N
dla piksela zawierającego punkt wi1 (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), wi1 ( EB (p))  1} ,
i  1,..., N , gdzie wi1 ( 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 {w11 ,..., wN1 ; 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 ... pim1  m 
,
log || x m 1 ||  log || x m || 
( i1 ,...,im1 )S R ( x )


(9.6)
x m  wim1  ...  wi1 1 (x) i x m 1  wim11  ...  wi1 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.19.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 )}im1 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 odwzorowywa4 7 
ne są liniowo w interwał   ,   mod 2 (to jest od niebieskiego, poprzez ma3 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  
ab 
 [ 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

Podobne dokumenty