Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
||||||
AlgoritmyFraktályJedným zo spôsobov, ako sa jednoduchým spôsobom zostavia komplikované štruktúry, je vytváranie geometrických útvarov iterovaním. Takto vygenerované útvary nazývame fraktály. Ako prvý ich obsiahlo popísal B. Mandelbrot. Ich výpočet (matematická "spätná väzba" (Pickover,1986)) spočíva v skladaní funkcie samej so sebou:
Gaston Julia ako jeden z prvých zistil, že za určitých podmienok takáto iterácia dáva zaujímavé, až prekvapujúce výsledky. Prvou podmienkou je definovať iteračnú funkciu na množine komplexných čísel. Pre každý bod z komplexnej roviny je možné vytvoriť postupnosť čísel
Táto postupnosť môže buď konvergovať alebo divergovať v závislosti od konkrétneho bodu roviny. Ak oblasti konvergencie a divergencie odlišne zobrazíme, prekvapí nás komplexnosť a krása obrazcov, ktoré získame. AlgoritmusJedným zo spôsobov, ako tento výpočet implementovať na počítači, je vziať počiatočnú hodnotu (súradnice bodu z určitého výrezu komplexnej roviny) a vykonávať iteráciu, pokým funkčná hodnota nepresiahne stanovený prah Keď C. A. Pickover so svojim spolupracovníkom pripravoval program na preskúmanie iteračných metód získali obrázky podivne odlišné od tých, ktoré už boli publikované. Čoskoro zistili, že urobili v algoritme malú chybu, konkrétne v teste konvergencie (ohraničenosti) skúmaného bodu. Iterácia síce skončila, keď absolútna hodnota funkčnej hodnoty prekročila prah. No bod sa vykreslil bielou farbou len vtedy, keď veľkosť jeho reálnej a zároveň imaginárnej zložky presiahla daný prah. Zápis algoritmu: (podľa (Pickover,1990) a (Pickover ,1987))
Podľa tohoto algoritmu som naprogramoval jednoduchý Java applet (zdrojový kód) a program PBIO v C++ pod MS-DOS-om. Algoritmus vlastne generuje modifikované Juliove množiny (pretože Vďaka spomínanej chybe v algoritme boli vygenerované obrázky zobrazené s množstvom detailov už pri malom počte iterácií Príklady iteračných funkcií:
u je komplexná konštanta. Jej zmenou sa mení tvar biomorfu. V literatúre (aj v nasledujúcom obrázku) sa používa namiesto písmena u grécke mí , prípadne aj iný znak.
História sa opakuje ...O pravdivosti tohoto výroku asi nemusím nikoho presviedčať, i keď zároveň platí: "Nevstúpiš dvakrát do tej istej rieky". Mne sa pri tvorbe programu na generovanie biomorfov podarilo históriu zopakovať ... Aj mne sa totiž podarilo urobiť v algoritme chybu. Môj program sa od Pickoverovho odlišoval tiež v teste konvergencie - namiesto logickej spojky OR som do podmienky dal operátor AND.
Výsledky programu síce neboli až také prekvapivé ako v prípade pána Pickovera, ale obrazce sa od očakávania odlišovali. Najvýraznejším rozdielom sú oveľa kratšie "brvy". Dá sa tiež pozorovať väčšia detailnosť. Zopár obrázkov, ktoré som vytvoril, je v galérii modifikovaných biomorfov. |
||||||
Kontakt: Marek Bundzel |