odwzorowanie Hutchinsona | stosowany algorytm | opis programu | pliki Atractors.xml

Atraktory odwzorowań Hutchinsona

Rysunek w głównym oknie programu nie ma nic wspólnego z odwzorowaniami Hutchinsona, ma natomiast drobny związek z Hutchinsonem. Otóż John E. Hutchinson jest matematykiem australijskim, rysunek natomiast przedstawia skałę Uluru (Ayers Rock) – położoną w północnej Austalii świetą górę Aborygenów.

Definicja odwzorowania Hutchinsona i jego atraktora

Dziedziną każdego odwzorowania Hutchinsona jest rodzina $\Gamma$ wszystkich podzbiorów płaszczyzny.
Załóżmy, że odwzorowania $f_1, … ,f_k: \mathbb{R}^2\,\rightarrow\,\mathbb{R}^2$ są afiniczne. Wyznaczają one odwzorowanie Hutchinsona $H$ określone wzorem: $H(D)=f_1(A) \cup … \cup f_k(A)$ dla każdego zbioru $D \in \Gamma$.
Przykład:


Mając odwzorowanie Hutchinsona $H$ oraz zbiór $D_0 \in \Gamma$ możemy skonstruować ciąg zbiorów:
$D_1 = H(D_0), … ,D_{n+1} = H(D_n),…$
Zastąpimy rodzinę $\Gamma$ wszystkich podzbiorów płaszczyzny, rodziną $\Delta$ zwartych (tzn. domkniętych i ograniczonych) podzbiorów płaszczyzny. Jeśli zbiór $D \in \Delta$, to również zbiór $H(D) \in \Delta$.
Rodzinę $\Delta$ możemy wyposażyć w metrykę (tzw. metryka Hausdorffa), możemy zatem pytać o zbieżność ciągu zbiorów: $D_0,\,D_1=H(D_0),\,D_2=H(D_1),…$
Można pokazać, (Twierdzenie o odwzorowaniu zbliżającym), że przy pewnych założeniach o odwzorowaniach afinicznych $f_1,…,f_k$ (założenia te są spełnione przez odwzorowania z powyższego przykładu): Opisany wyżej zbiór A nazywamy atraktorem odwzorowania Hutchinsona.
Dla odwzorowania Hutchinsona opisanego w przykładzie atraktorem jest równoboczny trójkąt Sierpińskiego.

Algorytm

Rysowanie atraktora odwzorowania Hutchinsona jako granicy ciągu zbiorów wymaga dużo zasobów komputera (pamięć i liczba wykonywanych operacji). W praktyce (w tym programie również) stosowany jest algorytm probabilistyczny:

Opis programu

Przy pomocy programu można: Dołączony do programu plik resources/Atractors.xml zawiera opisy siedmiu atraktorów: trójkąt Sierpińskiego, drzewo, paprotka Barnsleya, kryształek, pięciokąt Sierpińskiego, smok Heighwaya i kwadrat. Programem można te opisy częściowo edytować: Opisy zawarte w pliku konto_użytkownika/Atractors.xml można w pełni edytować, można je też programowo usuwać.

Budowa pliku Atractors.xml

Przykładowy plik:
<?xml version="1.0" encoding="ISO-8859-2"?>
<Atractors>
  <Atractor>
    <Title>Trójkąt Sierpińskiego</Title>
    <Limits></Limits>
    <Color>#ff0000</Color>
    <Map>
      <Matrix>0.5;0.0;0.0;0.0;0.5;0.0</Matrix>
      <Probability>0.333</Probability>
    </Map>
    <Map>
      <Matrix>0.5;0.0;0.5;0.0;0.5;0.0</Matrix>
      <Probability>0.333</Probability>
    </Map>
    <Map>
      <Matrix>0.5;0.0;0.5;0.0;0.5;0.5</Matrix>
      <Probability>0.333</Probability>
    </Map>
  </Atractor>
</Atractors>
Pewne polskie litery wymagają bardziej skomplikowanego zapisu:
<Title><![CDATA[Śnieżynka]]></Title>