Next: Úprava algoritmu pro náhodnou
Up: Deterministický algoritmus
Previous: Deterministický algoritmus
Stejně jako v minulém případě, i zde použijeme zápis algoritmu pomocí
pseudokódu:
1. vyber inicializační množinu bodů X0
2. for i=1 to (maximální počet iterací) do
3. for k=1 to N do
4. pro každý bod
do
5.
6. endfor k
7. endfor i
8. end.
V prvním bodě náhodně vybereme množinu bodů. Bod může být jeden, protože
po první aplikaci transformací se tato množina zvětší.
Druhý bod představuje smyčku, která se provede tolikrát, kolik je
zadaných iterací. Zde poznamenejme, že počet iterací v tomto algoritmu
může být menší než počet iterací v předchozím algoritmu. Zatímco v
předchozím algoritmu se s každou iterací vygeneroval pouze jeden bod, v
tomto algoritmu se bodů vygeneruje více a jejich počet dokonce
exponenciálně stoupá.
V třetím bodu je smyčka, která se provede pro každou transformaci, které
tvoří IFS systém. Tato smyčka, na rozdíl od předchozího algoritmu, je
deterministická, proto je celý algoritmus deterministický.
Ve čtvrtém a pátém bodu se na každý bod z množiny aplikují všechny
transformace. Nové body se vloží do nové množiny, zatímco stará
množina se zruší.
Tento algoritmus generuje výsledný fraktál rychleji, protože pro
vykreslení potřebuje méně iterací než je tomu u předchozího algoritmu.
Velkou nevýhodou je spotřeba paměti. Pro každou iteraci se generuje nová
množina bodů. Tato množina se s každou iterací exponenciálně zvětšuje.
Jestliže má IFS systém pouze dvě transformace a začínáme s jedním
počátečním bodem, budou potom v množině po první iteraci body dva, po
druhé iteraci body čtyři atd. Pro větší počet transformací je samozřejmě
tento růst ještě prudčí.
Tato vlastnost se musí obejít buď tím, že nastavíme relativně malý počet
iterací, nebo omezíme velikost množiny Xi.
Next: Úprava algoritmu pro náhodnou
Up: Deterministický algoritmus
Previous: Deterministický algoritmus
Tisnovsky Pavel
1999-05-30