Fakulta informačních technologií. Zbyšek Gajda



Podobné dokumenty
Gramatická evoluce a softwarový projekt AGE

1. Úvod do genetických algoritmů (GA)

Jana Dannhoferová Ústav informatiky, PEF MZLU

Fraktály. Kristina Bártová. Univerzita Karlova v Praze 9.prosince

Genetické algoritmy. Vysoká škola ekonomická Praha. Tato prezentace je k dispozici na:

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

NEXIS 32 rel Generátor fází výstavby TDA mikro

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6

SPECIFICKÝCH MIKROPROGRAMOVÝCH ARCHITEKTUR

Genetické algoritmy a jejich praktické využití

Genetické programování

Počítačové zobrazování fraktálních množin. J. Bednář*, J. Fábera**, B. Fürstová*** *Gymnázium Děčín **SPŠ Hronov ***Gymnázium Plasy

Genetické programování 3. část

Genetické algoritmy. Informační a komunikační technologie ve zdravotnictví

5.5 Evoluční algoritmy

Masarykova univerzita. Fakulta informatiky. Evoluce pohybu

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

Evoluční výpočetní techniky (EVT)

Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi

Práce s velkými sestavami


Geneticky vyvíjené strategie Egyptská hra SENET

Tento materiál byl vytvořen vrámci projektu. Inovace ve vzdělávání na naší škole V rámci OP Vzdělávání pro konkurenceschopnost

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA INFORMAČNÍCH TECHNOLOGIÍ. Uživatelská příručka k programu FloodFilling Art

ANALYTICKÉ PROGRAMOVÁNÍ

programování formulářů Windows

Využití ICT techniky především v uměleckém vzdělávání. Akademie - VOŠ, Gymn. a SOŠUP Světlá nad Sázavou

Editor pro vizualizaci interiérů bytů

SOFTWARE NA ZPRACOVÁNÍ MRAČEN BODŮ Z LASEROVÉHO SKENOVÁNÍ. Martin Štroner, Bronislav Koska 1

Obsluha měřicích zařízení kontaktní metody

MAPA VÝZKUMNÉHO A APLIKAČNÍHO POTENCIÁLU ČESKA. Mzdová atraktivita zaměstnání ve výzkumu a vývoji

6. Kde v DNA nalézáme rozdíly, zodpovědné za obrovskou diverzitu života?

8. téma: Prostorové aspekty veřejných financí (fiskální federalismus, fiskální decentralizace, místní finance)*) **) VIII **)

Vyplňování souvislé oblasti

Staré mapy TEMAP - elearning

Přehled novinek Revit 2014

Konfigurace řídicího systému technikou Hardware In The Loop

Autodesk Inventor Professional 9

PROPUSTNOST ŽELEZNIČNÍ DOPRAVY

2. RBF neuronové sítě

GIS Geografické informační systémy

M I S Y S - W E B. Intranet řešení systému MISYS. Verze Příručka uživatele

Ostatní portálové aplikace

Digitální učební materiál

7. Analýza pohybu a stupňů volnosti robotické paže

Implementace A* algoritmu na konkrétní problém orientace v prostoru budov

spsks.cz Část druhá - Praxe Technologie řízení robotického ramena Zpracováno v rámci projektu CZ.1.07/3,2, 10/ financovaného z fondů EU

Pokročilé metody fotorealistického zobrazování

Geografické informační systémy #10

MINISTERSTVO DOPRAVY ČR ODBOR POZEMNÍCH KOMUNIKACÍ ZPOMALOVACÍ PRAHY TECHNICKÉ PODMÍNKY. Schváleno MD - OPK č.j... s účinností od

2. Konceptuální model dat, E-R konceptuální model

Laserový skenovací systém LORS vývoj a testování přesnosti

Navrženy v 60. letech jako experimentální optimalizační metoda. Velice rychlá s dobrou podporou teorie

Fraktální geometrie. Topologická a fraktální dimenze. Vypracovali: Jiří Thoma Jiří Pelc Jitka Stokučová

Animace a geoprostor. První etapa: Animace 3. přednáško-cvičení. Jaromír Landa. jaromir.landa@mendelu.cz Ústav informatiky PEF MENDELU v Brně

IVA ŽLÁBKOVÁ, LUBOŠ KRNINSKÝ

Úvod do programování v jazyce Java

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Tento materiál byl vytvořen vrámci projektu. Inovace ve vzdělávání na naší škole V rámci OP Vzdělávání pro konkurenceschopnost

Věda a výzkum. Univerzitní informační systém. Svazek 4. Slovenská zemědělská univerzita v Nitře

Elektronická spisová služba

Patenty. 1. Spuštění modulu Patenty. 2. Popis prostředí a ovládacích prvků modulu Patenty

TVORBA VÝROBNÍ DOKUMENTACE CV

Analytické programování v C#

Počítačová gramotnost II Mgr. Jiří Rozsypal aktualizace

Teorie množin. kapitola 2

Nástroj WebMaker TXV první vydání Únor 2009 změny vyhrazeny

Změny ve verzi o proti verzi

ŠKODA AUTO VYSOKÁ ŠKOLA

Perspektiva jako matematický model objektivu

Obrázek 6.14: Prohlížec nápovedy

Porovnání obsahu normy ISO 230-1:2012 a ČSN ISO 230-1:1998

Toto zadání je podepsané děkanem a vedoucím katedry, po obhajobě).

Ostatní portálové aplikace

Laboratorní měření 1. Seznam použitých přístrojů. Popis měřicího přípravku

INTELIGENTNÍ SNÍMAČE

Manuál k aplikaci SDO PILOT v.0.2

: visi progress. expert na konstrukci střižných nástrojů

INTEGRACE IS DO STÁVAJÍCÍ HW A SW ARCHITEKTURY

GIS Geografické informační systémy

MAPOVÉ OKNO GSWEB. Nápověda. Pohyb v mapovém okně Výběr v mapovém okně. Panel Ovládání Panel Vrstvy. Tisk Přehledová mapa Redlining Přihlásit jako

IMPLEMENTACE AUTOMATIZOVANÉHO MĚŘENÍ HRTF V MATLABU

MapleCloud a jeho použ ití. Vladimír Žák

Mechanika s Inventorem

10. FRAKTÁLY. Cíl Po prostudování této kapitoly budete znát. Výklad Soběpodobnost. 10. Fraktály

1. Dříve než začneme Trocha historie nikoho nezabije Co budete potřebovat Microsoft versus zbytek světa...

Ostatní portálové aplikace

KONSTRUKČNÍ NÁVRH HYDRAULICKÉHO LISOVACÍHO ZAŘÍZENÍ PRO VÝUKOVÉ ÚČELY SVOČ FST 20010

MATURITNÍ PRÁCE dokumentace

Obsah. Zelinka: UI v problémech globální optimalizace BEN technická literatura 3

1. Problematika účetních výkazů a jejich aktualizace

1 Úvod do kompilátorů

Matematika kr sy. 5. kapitola. V hoda pr ce s grupami

3. Linková vrstva. Linková (spojová) vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl

ŢELVÍ GRAFIKA VE VISUAL BASIC

Marek Laurenčík. Excel. práce s databázemi a kontingenčními tabulkami

9. Úvod do teorie PDR

RNDr. Martin Pivokonský, Ph.D.


Filtrace snímků ve frekvenční oblasti. Rychlá fourierova transformace

Transkript:

Vysoké učení technické v Brně Fakulta informačních technologií ROČNÍKOVÝ PROJEKT Zbyšek Gajda květen 2004

Abstrakt Předkládaná práce se zabývá evolučním uměním. K tomu jsou využity techniky genetického programování, které umožňuje generovat a modifikovat syntaktický strom. Takovýto vygenerovaný syntaktický strom je pak přetransformován, s využitím znalostí o fraktálech a dynamických systémech v komplexní rovině, v obraz s fraktálem. Pro interakci s umělcem slouží grafické uživatelské rozhraní zobrazené ve webovém prohlížeči. Klíčová slova Evoluce, evoluční algoritmy, genetické programování, syntaktický strom, evoluční návrh, fraktál, fraktál v komplexní rovině, grafické uživatelské rozhraní. Poděkování Rád bych na tomto místě poděkoval vedoucímu svého ročníkového projektu Ing. Lukáši Sekaninovi, Ph.D. za jeho cenné rady a za zapůjčenou literaturu. Prohlášení Prohlašuji, že jsem tuto práci vypracoval samostatně pod vedením Ing. Lukáše Sekaniny, Ph.D. a že jsem uvedl všechny literární prameny a publikace, ze kterých jsem čerpal. V Brně dne 11. května 2004 Zbyšek Gajda

Obsah 1 Úvod 2 2 Evoluční návrh 3 2.1 Biologická evoluce................................ 3 2.2 Evoluční algoritmy................................ 3 2.2.1 Genetické algoritmy........................... 3 2.2.2 Genetické programování......................... 4 2.2.3 Evoluční strategie............................ 6 2.2.4 Evoluční programování......................... 6 2.3 Evoluční návrh.................................. 6 2.3.1 Evoluční umění.............................. 7 3 Fraktály 8 3.1 Úvod do teorie fraktálů............................. 8 3.2 Typy fraktálů................................... 9 3.2.1 L-systémy................................. 10 3.2.2 Systém iterovaných funkci (IFS).................... 10 3.2.3 Dynamické systémy........................... 10 3.2.4 Nepravidelné (náhodné) fraktály.................... 11 4 Systém Gefra 12 4.1 Popis systému................................... 12 4.2 Způsob implementace.............................. 12 5 Závěr 15 A Uživatelská příručka 18 B Ukázky vygenerovaných obrázků 20 1

Kapitola 1 Úvod Před několika lety se obecně počítače při návrhu používali jen jako náhrada rýsovacího prkna. V současnosti se však začíná prosazovat návrh s využitím poznatků o evoluci. Návrhář už nemusí své návrhy vymýšlet a pak je přenášet do počítače, návrhář dnes může nechat nový návrh vymyslet přímo počítač, podle pravidel stanovených návrhářem. Pak už záleží jen na návrháři či cílové skupině, jestli se mu návrh líbí nebo nelíbí. Překládaná práce se zabývá evolučním uměním, které je jedno z odvětví evolučního návrhu, a jeho implementací do systému zobrazitelného na webové stránce. Systémy evolučního návrhu s oblibou a téměř výhradně využívají pro evoluci tzv. evoluční algoritmy, které principy evoluce dobře popisují a využívají. K návrhu obrazů s fraktály bylo výhodně použito konkrétně genetické programování. Algoritmy toto typu pracují obecně se syntaktickým stromem, s jehož vhodnou definicí se dá fraktál nejlépe popsat. Takovýto syntaktický strom se pak dá s využitím poznatků o dynamických systémech zobrazit jako obraz s fraktálem. K uplatňování evolučních principů poslouží návrháři grafické uživatelské rozhraní implementované v jazyce, který umožňuje interakci přímo z webové stránky. 2

Kapitola 2 Evoluční návrh Kapitola o evolučním návrhu přibližuje především různé evoluční algoritmy, které se v oblasti evolučních návrhů mohou uplatnit. 2.1 Biologická evoluce V přírodě jedinci jedné populace mezi sebou soutěží o přežití a o možnost reprodukce na základě toho, jak jsou přizpůsobeni prostředí, ve kterém žijí. V průběhu mnoha generací se mění struktura dané populace na základě Darwinovy teorie o přirozeném výběru, tj. že přežívají jen ti nejpřizpůsobenější jedinci. Reprodukcí nejpřizpůsobenějších jedinců (jedinců, kteří přežili do reproduktivního věku) vznikají jedinci s vysokou pravděpodobností k přežití. Do reprodukce navíc vstupuje nahodile mutace, která nahodile ovlivňuje (pozitivně či negativně) genetický materiál populace jedinců. 2.2 Evoluční algoritmy Evoluční algoritmy jsou jedny ze základních optimalizačních metod založených na Darwinově evoluční teorii. Jako jejich hlavní výhoda bývá často označována schopnost produkovat kvalitní řešení v relativně krátké době, a to i v případě značné rozlehlosti vstupních parametrů a výstupních řešeních. Proto evoluční algoritmy nacházejí uplatnění v nejrůznějších optimalizačních problémech. Evoluční algoritmy můžeme obecně rozdělit na čtyři hlavní skupiny: genetické algoritmy, genetické programování, evoluční strategie a evoluční programování. 2.2.1 Genetické algoritmy Genetický algoritmus (GA) patří mezi základní stochastické optimalizační algoritmy s výraznými evolučními rysy. V současnosti je GA pravděpodobně nejpoužívanější evoluční 3

algoritmus a to především v oblasti hledání řešení vysoce multimodálních funkcí. Algoritmus vymyslel v 70. letech John Holland se záměrem vysvětlit adaptivní procesy přirozených systémů, a navrhnout inteligentní systémy založené na těchto procesech. Základní principy GA jsou obdobou všeobecných principů evoluce. Jedinec je v GA zakódován do chromozomu, jako např. bitový řetězec, kde každý bit představuje jeden gen. Nad chromozomem je definován operátor mutace (v angl. mutation). Tento operátor náhodně vybere gen z chromozomu a změní jej. Dále je nad dvěma chromozomy definován operátor kříženi (v angl. crossover). Operátor křížení typicky náhodně vybere pozici ve dvou chromozomech, tzv. bod křížení (v angl. crossover point), v této pozici jsou chromozomy rozděleny na dvě části, levou a pravou. Levé části jsou ponechány beze změny a pravé části jsou mezi sebou zaměněny. Poté jsou levé části a pravé části k sobě opět připojeny. Obrázek 2.1: Chování operátoru mutace nad chromozomem. Obrázek 2.2: Chování operátoru křížení nad chromozomy. Svislá čára označuje bod křížení. Na počátku je nahodile vygenerována populace. Jedinci populace jsou ohodnoceni tzv. fitness funkcí, která vrací hodnotu v rozmezí 0 až 100, kde větší hodnota znamená větší fitness, větší schopnost přežít. Jedinci prochází selekčním tlakem, tj. jedinci s vhodnou fitness (větší něž stanovená mez) jsou vybíráni jako kandidáti pro reprodukci. Tento proces se nazývá selekce. Užitím operátorů křížení a mutace jedinců s přijatelnou fitness je vytvořena nová populace (stará populace zaniká), dochází k tzv. reprodukci. Proces selekce a reprodukce se opakuje dokud není získán jedinec s požadovanými vlastnostmi. 2.2.2 Genetické programování Genetické programování (GP) je speciální formou genetického algoritmu, kde jsou chromozomy pevné délky nahrazeny složitějšími strukturami syntaktickými stromy proměnné 4

délky. GP vymyslel na přelomu 80. a 90. let John Koza, který se pokoušel vytvořit počítačový program, který by uměl vyvinout počítačové programy. Chromozom u GP, jak již bylo zmíněno dříve, je reprezentován syntaktickým stromem (viz. obr.2.3). Uzly u chromozomu představují unární, binární či ternární operace a listy terminální symboly. Takový chromozom může představovat aritmetický výraz, funkci nebo program. Obrázek 2.3: Příklad jedince v genetickém programování. Nad chromozomem je definován operátor mutace. Tento operátor náhodně vybere podstrom, odstraní jej, a místo něj vygeneruje nový podstrom. Dále je nad dvěma chromozomy definován operátor křížení. Operátor křížení vybere náhodně dva podstromy, každý z jiného chromozomu, a ty se mezi sebou zamění. Šrafovaně vyznačený pod- Obrázek 2.4: Chování operátoru mutace nad chromozomem. strom se smaže a nahradí novým. Obrázek 2.5: Chování operátoru křížení nad chromozomy. Zakroužkované uzly se vymění i se svými podstromy. 5

GP programování podobně jako GA pracuje ve třech fázích. V první fázi probíhá inicializace počáteční populace, ve které jsou generováni jedinci na základě omezující podmínek, např. maximální čí minimální počet uzlů. V druhé fázi dochází k selekci a k reprodukci. Ve třetí fázi je vybrán nejlepší program. Selekce Selekce jedince probíhá na základě jeho fitness (vhodnosti). Vhodnost se v GP vyjadřuje jako schopnost řešit daný problém. J. Koza uvádí čtyři druhy vhodnosti 1 : Raw fitness, Standardized fitness, Adjusted fitness a Normalized fitness. Pro reprodukci mohou být vybíráni kandidáti pomocí tří způsobů 2 : Fitness proportionate selection, Tournament selection a Random selection. 2.2.3 Evoluční strategie Evoluční strategie (ES) patří mezi první úspěšné stochastické metody. ES vynalezli v Německu v 60. letech Bienert, Rechenberg a Schwefel. ES vychází stejně jako GA ze všeobecných představ přirozeného výběru, avšak na rozdíl od GA je její přístup vágnější. Její proměnné nejsou reprezentovány binárně, ale jako reálné hodnoty. Nejznámější ES je strategie (1+1) jeden rodič a jeden potomek. Používá jediný operátor mutaci a pouze jedno řešení v populaci s maximálně dvěma jedinci (rodič a potomek). 2.2.4 Evoluční programování Evoluční programování (EP) patří mezi stochastické optimalizační algoritmy, které mohou být chápány jako jednoduché zobecnění horolezeckého algoritmu 3. Přestože jsou si EP a ES blízké, byly vyvinuty nezávisle v 60. letech Lawrencem Fogelem. Algoritmus byl původně vyvinut pro předpovídání nových stavů a událostí. K tomu byly použity konečné automaty. Na rozdíl od GP, algoritmus EP používá jen operátor mutace. Princip soutěžení spočívá ve výběru jen nejlepších rodičů a potomků. Z každého vybraného jedince se vyrobí nový potomek do další populace. 2.3 Evoluční návrh Evoluční návrh má své kořeny v počítačové vědě, návrhu a evoluční biologii. Je to skupina evolučních výpočtů, která rozšiřuje a kombinuje CAD a analytický software, a využívá ideje biologické evoluce. Užívání evolučních výpočtů pro návrh začalo z rozličných důvodů v 80. letech. Návrháři optimalizovali určité části svých návrhů užitím evoluce, umělci užívali evoluci pro generování esteticky příjemných forem, architekti vyvíjeli nové plány budov, počítačoví vědci vyvíjeli morfologie a řídící systémy pro umělý život (v angl. artificial life). Dnes 1 Funkce fitness pro GP podrobněji uvádí J. Koza [3]. 2 Způsoby selekce u GP jsou podrobněji uvedeny [3]. 3 Podrobněji jsou horolezecké algoritmy rozebrány v [4]. 6

můžeme rozdělit evoluční návrh na čtyři hlavní kategorie 4 : evolutionary desing optimisation, creative evolutionary design, evolutinary art (evoluční umění) a evolutionary artificial life forms. 2.3.1 Evoluční umění Evoluční umění je pravděpodobně nejúspěšnější komerční užití evolučního návrhu [2], ačkoli akademický výzkum v této oblasti je menší něž v ostatních oblastech evolučního návrhu. Většina systémů evolučního umění je si velice podobná. Všechny generují na začátku počáteční náhodnou populaci vzorků (např. obrázky). Umožňují návrháři (umělci) nastavit fitness jedinců populace podle jejich estetického cítění. Populace jedinců takového systému bývá malá (okolo 10 jedinců), aby mohla být posouzena umělcem velmi rychle. Uživatelské rozhraní je většinou jednoduché, skládající se z mřížky jedinců populace, kterým nastavuje umělec fitness klikáním myší. Obrázek 2.6: Příklad stolu vyvinutého systémem evolučního umění. Obrázek převzat z [2]. Různé zdroje informací o evolučním umění jsou přístupné, z web stránek: http://evonet.lri.fr/, EvoNet, sekce EvoArt, http://www.genarts.com/karl, Karl Sims, GenArts, Inc. a http://www.gaga.demon.co.uk/evoart.htm, Evolutionary Art Using Cartesian Genetic Programming. Systém Sarte umožnující evoluční návrh barevných obrazů je přístupný z URL: http://ass.cis.vutbr.cz/art/galerie/. 4 Kategorie evolučního návrhu jsou popsány v [2]. 7

Kapitola 3 Fraktály Fraktály jsou překrásné a fascinující konstrukce nekonečných a složitých struktur. Pojem fraktál je odvozen s latinského slovesa frangere, což v překladu znamená rozlámat, vytvořit nepravidelné úlomky. Fraktál je geometricky nepravidelný útvar, ze kterého po jeho rozdělení vznikne několik soběpodobných 1 útvarů. Fraktály jsou tedy matematické útvary, jejichž detailní struktura se nemění v závislosti na přiblížení či zvětšení. Podrobněji se fraktálům věnují [9, 10, 12]. 3.1 Úvod do teorie fraktálů Pro přiblížení teorie fraktálů je nezbytné osvětlit několik pojmů, které se v souvislosti s fraktály vyskytují. Geometricky hladké útvary Geometricky hladká tělesa (bod, křivka, plocha, prostor), která jsou známa z klasické geometrie lze charakterizovat podle určitého počtu parametrů (např. délka, plocha, objem). Tyto parametry můžeme určit i pro složitější útvary jako Bézierova nebo Fergasonova křivka. U každého útvaru můžeme určit velikost dimenze (počet rozměrů) danou celým číslem. Tuto dimenzi nazýváme topologickou. Nekonečně členité útvary Nekonečně členité útvary jsou útvary, pro které topologická dimenze nedostačuje. Bývají to útvary, se kterými se setkáváme v přírodě (např. mraky, stromy, hory). Známým příkladem je délka pobřeží ostrova (např. Velké Británie). Tímto problémem se zabýval Richardson a Mandelbrot. Richardson zjistil, že délka pobřeží je závislá na délce tyče, kterou pro měření používáme, a odvodil vztah: K = N e D, kde K je délka pobřeží, N je počet úseček nutných k aproximaci a e je délka úsečky (tyče). Délka pobřeží je závislá na konstantě D. Souvislost této konstanty a Hausdorffovy dimenze dokázal až Mandelbrot. 1 Soběpodobnost bude vysvětlena později. 8

Soběpodobnost Kterákoliv část fraktálu je přesnou kopií původního motivu. Vyskytuje se pouze u čistě matematických struktur, nebot v přírodě jsme omezeni fyzikálními zákony. Soběpříbuznost Kterákoliv část je si velice podobná s původním tělesem. Vyskytuje se v přírodě (např. mraky, kořeny stromu, hory). Hausdorffova dimenze Topologická dimenze, např. hladké křivky, je rovna jedné. Existují však křivky, které v rovině zabírají více místa (např. délka pobřeží ostrova). Při měření délky takovýchto křivek se zmenšujícím měřítkem se stává jejich délka nekonečná, kdežto u hladké křivky její délka ovlivněna měřítkem není. Pro takový druh křivek by byla potřeba dimenze mezi 1 a 2. Hodnota této dimenze udává, s jakou rychlostí délka těchto křivek roste do nekonečna nebo též míru nepravidelnosti. Takovéto neceločíselné dimenzi se říká fraktální nebo Hausdorffova. Atraktor Atraktor je množina bodů v prostoru, která odpovídá ustálenému stavu. Atraktorem může být bod nebo nějaký opakující se cyklus. Při zkoumání atraktoru byl objeven třetí typ traktoru tzv. podivný atraktor. Každý takovýto atraktor je fraktálem. Matematická definice Matematická definice fraktálu dle Benoita Mandelbrota zní: Fraktál je množina, jejíž hodnota Hausdorffovy dimenze přesahuje hodnoty dimenze topologické. 3.2 Typy fraktálů Kvůli systematičnosti se po určitém čase začaly rozlišovat jednotlivé typy fraktálů. Jednotlivé typy se od sebe liší jak vhodností k řešení určitého okruhu problémů, tak i způsobem vytváření (generování). Fraktály můžeme obecně rozdělit na čtyři skupiny: L-systémy, systém iterovaných funkcí (IFS), dynamické systémy a nepravidelné fraktály. 9

3.2.1 L-systémy L-systémy (Lindenmayerovy systémy) jsou skupinou fraktálů definovaných pomocí přepisovacích gramatik. Želva (kreslící zařízení, použité v programovacím jazyce LOGO) je definováno stavem a akcemi, které má provádět. Stav je složen s polohy a orientace želvy. Želva čte a provádí řetězec příkazů. Fraktály pak vznikají s použitím rekurze. Těmto fraktálům se někdy říká graftály. Nejznámějšími fraktály v této skupině jsou Kantorovo diskontinuum, vločka Kochové a Sierpinského trojúhelník. 3.2.2 Systém iterovaných funkci (IFS) Systém iterovaných funkcí (IFS) je generativní metodou tvoření fraktálů. U této metody generování se používají tzv. afinní transformace (posun, rotace, zmenšení). Opakovaným aplikováním afinních operací vždy na celý obrazec vznikne fraktální struktura. Tato metoda je vhodná jak pro generování fraktálů tak i pro tzv. fraktální kompresi obrazu. Nejznámějším fraktálem v této kategorii je Barnsleyho kapradina. 3.2.3 Dynamické systémy Dynamický systém je matematický model, který je závislý na nějaké proměnné (např. času). Dynamický systém vychází z počátečních podmínek a je jimi determinován. Typickým příkladem jsou dynamické systémy v komplexní rovině. Nejčastěji se u bodů v komplexní rovině sleduje únik od atraktoru v závislosti na počtu iterací. Dojde-li k úniku bodu, vybarví se tento bod úměrně počtu iterací. Takto vznikají velmi atraktivní fraktály např. Juliovy množiny nebo Mandelbrotova množina. Juliovy množiny Juliovy množiny objevily během druhé světové války dva francouzští matematikové Gaston Julia a Pierre Fatou. Juliovy množiny jsou dány iteračním výrazem z n+1 = z 2 n + c, (3.1) a zvolenou komplexní konstantou c, která určuje Juliovu množinu. Pro každý bod z v komplexní rovině, pak iterací výrazu (3.1), kde počáteční z 0 je nastaveno souřadnicím bodu v komplex. rovině, zjistíme, zda bod konverguje k nule či ne. Takový bod je bud uvnitř či vně Juliovy množiny. V praxi bývá nastaven maximální počet iterací. Zda-li číslo konverguje k nule či nikoliv, zjistíme na konci výpočtu tak, že když je jeho vzdálenost od počátku menší než 2, je uvnitř množiny. Se zvětšujícím se maximálním počtem iterací získáme detailnější strukturu Juliovy množiny 2. Mandelbrotova množina Mandelbrotovu množinu objevil v roce 1979 Benoit Mandelbrot, jako jakýsi katalog Juliovým množin. Tímto katalogem byla množina v komplexní rovině, která popisovala v každém svém bodě Juliovu množinu. 2 Podobně jako u měření délky ostrova se zmenšující se délkou tyče. 10

Obrázek 3.1: Příklad zobrazení Juliovy množiny. Obrázek 3.2: Zobrazení Mandelbrotovy množiny. Mandelbrotova množina je vytvářena podobně jako Juliova na základě stejného vztahu (3.1). Liší se však počátečními podmínkami pro každý bod v komplexní rovině. U Mandelbrotovy je z 0 rovno počátku a c odpovídá pozici v komplexní rovině. Z výše uvedeného vyplývá, že zatímco Mandelbrotova množina je pouze jedna, Juliovým množin je nekonečné množství. 3.2.4 Nepravidelné (náhodné) fraktály Nepravidelné fraktály jsou soběpříbuzné. Tyto fraktály umožňují lepší popis přírodních objektů, protože přidávají do fraktální geometrie prvek náhody. Náhodný fraktál může být vytvořen třeba posouvání středního bodu. Příkladem těchto fraktálů je Brownův pohyb. 11

Kapitola 4 Systém Gefra Název systému Gefra je odvozen ze slovního spojení genetické fraktály. Je to systém určený k evolučnímu návrhu obrazů s fraktály s využitím operátorů genetického programování. Syntaktický strom (výraz) představuje genotyp a obraz s fraktálem představuje fenotyp. Tento systém patří do kategorie evolučního umění. 4.1 Popis systému Při spuštění systému je vygenerováno několik jedinců populace, kteří jsou znázorněni jako obrazy s fraktály. Návrhář (umělec) vybírá obrazy, jejichž rysy se mu líbí a které by chtěl mít v další generaci. Návrhář provádí selekci populace. Vybraní jedinci jsou odlišení od ostatních jedinců zvýrazněným okrajem. Vyvoláním akce Generate jsou vybraní jedinci reprodukováni (zkopírováni) do další generace a zbytek populace jedinců je generován křížením vybraných jedinců. Dále umělec může jedince pozměnit mutací nebo místo něj vygenerovat nového náhodného jedince. Pokud umělec není spojen z celou generací, vygeneruje akcí New zcela novou populaci jedinců. Umělec může, kromě uplatňování genetických operací, měnit způsob vykreslování fraktálů. Může měnit jak maximální počet iterací (parametrem Iterations), tak barevnou paletu (výběrovou lištou Colormap) a v neposlední řadě i podmínku úniku bodu v komplexní rovině od atraktoru (výběrovou lištou Escape). Kombinací těchto parametrů umělec získá zajímavé tvary i z původně nepříliš zajímavého fraktálu. Změny se uplatňují akcí Refresh. Systém umožňuje také změnu přiblížení fraktálu, a tím nalezení nejzajímavější oblasti ve zkoumaném fraktálu. Jak systém vypadá je patrné z obrázku 4.1. 4.2 Způsob implementace Systém byl naimplementován v jazyce Java (konkrétně ve verzi Java 2 SDK, Standard Edition 1.4.2), což přineslo nemalé výhody. Především schopnost zobrazení tzv. appletu, klientské aplikace, přímo na webové stránce, aniž by byl zatížen webový server. Další nespornou výhodou je nezávislost na zobrazovací platformě, tedy program pracuje pořád 12

Obrázek 4.1: Applet systému Gefra. stejně, nezávisle na použitém hardware a software. Programovací jazyk Java je objektově orientovaný, umožňuje dědění, polymorfismus, čehož bylo využito při implementaci syntaktických stromů. A v neposlední řadě má Java definovaný Garbage Collector, který výrazně urychluje vývoj, zvyšuje stabilitu a nepřímo snižuje velikost kódu. Genetické programování Systém k evolučnímu návrhu využívá technik genetického programování. Chromozom je tvořen syntaktickým stromem, který je implementován s využitím rekurze. Základním stavebním prvkem syntaktického stromu je třída GefraNode (pozn. třída Node je již standardně rezervována). Ze třídy GefraNode jsou odvozeny třídy NodeLeaf, NodeUnary a NodeBinary. Nad třídami NodeUnary a NodeBinary jsou implementovány funkce pro pro přidávání, pro získávání a pro generování podstromů. Ze tříd NodeLeaf, NodeUnary a NodeBinary jsou pak odvozeny konkrétní třídy (např. NodeZ, NodeSin, NodeAdd) definující vyhodnocení podstromů a sebe sama. Speciální třídou je třída NodeRoot, odvozená od NodeUnary, nad kterou jsou definovány genetické operátory jako generování, mutace a křížení. Instance této třídy charakterizuje konkrétní syntaktický strom. Příklad hierarchie tříd syntaktického stromu je znázorněna na obrázku 4.2. 13

Obrázek 4.2: Hierarchie tříd syntaktického stromu. Obrazy s fraktály Implementované fraktály jsou typu dynamické systémy, konkrétně dynamické systémy v komplexní rovině. Fraktály jsou zobrazovány podobně jako Juliovy množiny (nebo Mandelbrotova množina), liší se však od něj počátečními podmínkami, tak i použitým výrazem pro výpočet úniku od atraktoru. Použitý výraz je získaný jako výsledek genetických operací nad syntaktickým stromem. Takovýto syntaktický strom využívá jen operací nad komplexními čísly, které jsou bezpečné (nepoužívají se nebezpečné operace dělení). Počáteční podmínky jsou pro každý bod nastaveny tak, aby v každém bodě bylo z 0 a c rovno souřadnicím bodu v komplexní rovině. Touto úpravou se zamezí setrvání bodu v počátku (např. při z n+1 = z n c) a hledání konstanty c. Obraz získaný takovouto úpravou však neztrácí na atraktivitě. Dalších úprav výsledného obrazu bylo docíleno použitím různých barevných map, tak i použitím jiných podmínek úniku bodu od atraktoru, než jsou implicitně u Juliových množin použity. Tuto vlastnost umožňují třídy odvozené od tříd Colormap a Escape. Obraz s fraktálem je tak tvořen souhrnem vlastností jako jsou souřadnice, přiblížení, rozlišení, iterační výraz, maximální počet iterací, barevná mapa a podmínky úniku. Grafické uživatelské rozhraní Grafické uživatelské prostředí bylo implementováno s požitím knihoven AWT a JFC Swing, ktere jsou součástí platformy Java2SE. Tyto knihovný umožňují definovat grafické prvky (např. tlačítka, ikony, roletové menu), jejich vzhled a chování. 14

Kapitola 5 Závěr Zpracování syntaktického stromu definovaného rekurzí a obecně generování obrazů s fraktály je na výkon náročná operace. Rychlost vykreslování je závislá na struktuře syntaktického stromu, tak i na maximálním počtu iterací. Proto je vhodné zpočátku mít nastavenou hodnotu maximálního počtu iterací na malou konstantu a po nalezení zajímavého obrazu tuto hodnotu zvýšit a aplikovat ji. Při hledání zajímavého obrazu dochází po několika generacích k viditelné degeneraci genetické výbavy populace, proto je výhodné v takovém případě využít operace mutace a nebo rovnou nahradit nějakého zdegenerovaného jedince zcela novým. Rozšířením v návaznosti na tento projekt je možné implementovat evoluční návrh barevných map, které by mohly být použitý při generování obrazů s fraktály. Dále je možné implementovat ukládání a načítání populace jedinců, jako i ukládání a načítání jedinců samotných. To by však znamenalo určitá omezení, nebot webový applet standardně neumožňuje manipulovat ze systémem souborů. Implementovaný systém generoval docela hezké a zajímavé obrazy s fraktály, o čemž se může čtenář přesvědčit z přiložených výsledků v dodatku B. 15

Literatura [1] Corne, D., Bentley, P.: Creative Evolutionary Systems, Morgan Kaufmann, 2001. [2] Bentley, P.: Evolutionary Design By Computers, Morgan Kaufmann, 1999. [3] Koza, J.: Genetic Programming of Computer by Means of Natural Selections., Morgan Kaufmann, 1992. [4] Kvasnička, V., Pospíchal, J., Tiňo, P.: Evolučné algoritmy, STU Bratislava, 2000. [5] Jakšík, O.: Nástroje pro genetické programování [Ročníkový projekt], FIT VUT Brno, 2003. [6] Schwarz, J.: Aplikované evoluční algoritmy [Studijní materiály], FIT VUT Brno, 2004. [7] Müller, T.: Evoluční návrh filtru, FEL ČVUT Praha, 2002. [8] Sejnoha, P.: Sarte Dokumentace. Dokument je dostupný na URL: http://ass.cis.vutbr.cz/art/dokumentace.html. [9] Tišnovký, P.: Fraktály. Dokument je dostupný na URL: http://www.fit.vutbr.cz/ tisnovpa/fract/uvod.html. [10] Wegner, T., Tyler, B.: Fractal Creations, The Waite Group Press, 1993. [11] Scháněl, P., Hrušková, J.: Frakrály. Dokument je dostupný na URL: http://lide.uhk.cz/home/fim/student/fshrusj1/www/grafika/. [12] Hinner, M.: Jemný úvod do fraktálů. Dokument je dostupný na URL: http://www.penguin.cz/ mhi/math/fraktaly/. [13] efg s Computer Lab: Complex Numbers and Functions. Dokument je dostupný na URL: http://homepages.borland.com/efg2lab/mathematics/complex/ [14] Herout, P.: Učebnice jazyka Java, Nakladatelství Kopp, České Budějovice, 2000. [15] Eckel, B.: Thinkig in Java, second edition, Prentice Hall, Inc., 2000. [16] Campione, M., Walrath, K., Huml, A.: The Java(TM) Tutorial, Addison-Wesley Pub Co, 2000. Dokument je dostupný na URL: http://java.sun.com/docs/books/tutorial/index.html. 16

[17] Walrath, K., Campione, M.: The JFC Swing Tutorial, Addison- Wesley Pub Co, 1999. Dokument je dostupný na URL: http://java.sun.com/docs/books/tutorial/uiswing/index.html. [18] Sun Microsystems, Inc.: Java 2 SDK, Standard Edition, Documentation. Dokument je dostupný na URL: http://java.sun.com/j2se/1.4.2/docs/index.html. 17

Dodatek A Uživatelská příručka Systém Gefra funguje ve webovém prohlížeči (obr. A.1) s pluginem Java2SE (Java Virtual Machine) verze 1.4.2. Obrázek A.1: Systém Gefra jako applet ve webovém prohlížeči Mozilla/Galeon. Ovládání systému je intuitivní. Kromě změny maximálního počtu iterací, která musí být zadána z klávesnice, je většina operací určena s pomocí polohovacího zařízení (myší). Akční tlačítko je standardně u myši levé. Vyjímkou je přiblížení, vzdálení a výběr jedinců populace v sekci Selections, kde je levé tlačítko myši určeno pro přiblížení, pravé tlačítko myši určeno pro vzdálení a střední tlačítko myši určeno pro výběr. Stiskem tlačítka New se vytvoří nová populace. Stiskem tlačítka Generate se vygeneruje 18

další populace křížením jedinců (minimálně 2), kteří byly již dříve vybráni. Stiskem tlačítka Refresh se uplatní provedené změny v nastavení. Tyto akční tlačítka jsou v sekci Tools. Změnou parametru Iterations se nastaví maximální počet iterací. Výběrem z lišty Colormap se nastaví barevná mapa. Výběrem z lišty Escape se nastaví podmínka úniku bodu od atraktoru. Grafické prvky pro změny jsou v sekci Settings. Pod každým vygenerovaným obrazem je speciální menu, kterým se vyvolávají akce jen pro příslušný obraz. Těmito akcemi jsou Refresh pro uplatnění změn, View pro zobrazení zvětšeniny, New pro vytvoření nového jedince a Mutate pro mutaci jedince. V sekci Informations jsou zobrazeny informace o počtu generací (populací). 19

Dodatek B Ukázky vygenerovaných obrázků Selekce a křížení Viz tabulka B.1. Mutace Viz tabulka B.2. Různé barevné mapy Viz tabulka B.3. Různé podmínky úniku bodu od atraktoru Viz tabulka B.4. Vliv maximálního počtu iterací na výsledný obraz Viz tabulka B.5. Přiblížení obrazu s fraktálem Viz tabulka B.6. Různé obrazy s fraktály získané systémem Gefra Viz tabulka B.7. 20

Tabulka B.1: Ukázka postupné selekce a křížení (vybraní jedinci jsou s vyznačeným okrajem.) 21

Tabulka B.2: Ukázka postupné mutace jedince představujícího obraz s fraktálem. Tabulka B.3: Barevné mapy (zleva doprava): Spectrum, Spectrum16, Greyscale a Zebra. 22

Tabulka B.4: Podmínky úniku bodu od atraktoru (zleva doprava): Circle, Square, Strip a Half-plane Tabulka B.5: Vliv různého počtu iterací u barevné mapy Spectrum (zleva doprava): 8, 16, 32 a 64 23

Tabulka B.6: Přiblížení obrazu s fraktálem (zleva doprava): x1, x1.5, x2.25, x3.375, x5.0625 a 7.59375 24

Tabulka B.7: Obrazy s fraktály získané systémem Gefra. 25