Prírodou inšpirované algoritmy

študijné materiály pre projekt mobilnej triedy umelej inteligencie

Späť ku kurzom triedy
Obsah
Počítačové simulácie
Popis systému Swarm
Programová realizácia Swarmu
Tutoriál
Aplikácie
Literatúra a linky
O tejto kapitole



Ostatné kapitoly
Swarm
RePast
LEM
SDML
Eos
DDLab


Tutoriály
 Celulárne automaty
 Morfogenéza
 Simulátory
 Evolučné algoritmy
 Chaos
 Roboty
 Rôzne


Programová realizácia Swarmu

Knižnice

Programovo je systém Swarm realizovaný ako súbor knižníc v Objective C (objektovo orientovaný jazyk vychádzajúci z jazyka C) alebo v Jave s grafikou založenou na Tcl/Tk. Tieto knižnice obsahujú triedy opakovane použiteľných komponentov pre vytváranie modelov a analýzu, zobrazovanie a kontrolu experimentov nad týmito modelmi.

Distribuuje sa buď v podobe zdrojového kódu, alebo ako skompilované knižnice pre jednotlivé podporované platformy. V súčasnosti existujú verzie pre

X-Windows/Unix (Linux, SunOS, HP/UX, SGI Irix, MachTen/68k, Solaris) a Windows 9x/2000/XP .

Systém Swarm je súborom knižníc vzájomne spolupracujúcich tried. Základom distribúcie sú nasledujúce knižnice:

defobj podpora programovania Objective C v štýle Swarmu - obsahuje štandardné konvencie pre vytváranie objektov a alokáciu zdrojov, spracovanie chýb a podporu ladenia
collections knižnica súborov (= rozličné objekty, ktoré "zhromažďujú" iné objekty) - obsahuje základne typy ako pole, zoznam, množina, mapa kľúčov s operáciami nad nimi ako napríklad porovnávanie prvkov a ich zotriedenie. Swarm v Jave nepoužíva collections. Nahrádza ho java.util Collections
activity vykonávací mechanizmus rozvrhov - poskytuje základ dynamickej simulácie, zabezpečuje, aby sa aktivity vykonávali v správnom čase a v správnom poradí
objectbase základná trieda pre simulované objekty (agenti) - zaobaľuje základné vlastnosti objektového modelu Swarmu a definuje mechanizmus sond
space knižnica priestorového prostredia (momentálne sú podporované najmä 2D priestory) - napríklad celulárne automaty, difúzny priestor, mriežka
random objektovo orientovaná knižnica pozostávajúca z dvoch častí, ktorými sú algoritmy generátorov pseudonáhodných čísel (v súčasnosti je ich implementovaných 36) a transformácie meniace výstup generátorov do simulovaných distribúcií (uniformná, normálna, exponenciálna, gamma, bernoulliho, boolova)
simtools súbor negrafických nástrojov - napríklad ukladanie a načítavanie premenných do a zo súborov, Quicksort
simtoolsgui nástroje pre interaktívne graficky orientované simulácie ako napríklad widgety pre kontrolný panel a sondy
gui knižnica objektov grafického rozhrania - obsahuje napríklad graf, raster, tlačidlá, formulár, paletu
analysis objekty na spracovanie dát - nástroje pre zjednodušenie práce so zobrazovaním hodnôt a ich distribúcií a na meranie vlastností ako napríklad priemer a entropia

Okrem základných knižníc distribúcie Swarmu existujú aj knižnice vytvorené užívateľmi. Z nich stoja za zmienku najmä dve vytvorené J.J. Merelom:

ga genetické algoritmy - jedinci sú reprezentovaní binárnymi reťazcami fixnej dĺžky
neuro neurónové siete - implementované sú dopredná sieť s hebbovým a s konkurenčným učením, Kohonenova samorganizačná mapa a spojitá rekurentná sieť

Knižnice majú dve hlavné funkcie vyplývajúce z ich objektovej povahy. Knižnice sú po prvé súbormi tried, ktoré možno použiť priamou inštanciáciou. Pre mnohé objekty (najmä vysoko technické ako napr. dátová štruktúru rozvrhu) je pravdepodobné, že používateľ bude používať triedy bez zmien. Druhým spôsobom použitia je odvádzanie podtried, špecializáciou konkrétnych tried pre potreby modelu.

Widgety

Grafické užívateľské rozhranie je v súčasnosti v Swarme riešené použitím Tcl/Tk. To je zaobalené do knižničných objektov v Objective C resp. Java, ktoré sú jednoducho začleniteľné do vlastných aplikácií.

Kontrolný panel - základný ovládací prvok simulácie bežiacej v grafickom prostredí, vzniká automaticky po zadefinovaní GUI ObserverSwarmu.
  • start - začiatok behu simulácie
  • stop - prerušenie vykonávania
  • next - posun simulácie o 1 diskrétny krok
  • save - uloženie parametrov
  • quit - ukončenie programu
  • Sonda - umožňuje počas behu programu prístup k hodnotám premenných objektov aj k ich metódam cez dialógové okno, pričom sa dá nakonfigurovať, ktoré hodnoty sú prístupné. Je možné takisto pristupovať aj k zdedeným inštančným premenným a metódam.
    Histogram - stĺpcový škálovateľný graf s popisom veličín pre zobrazovanie distribúcií
    Graf funkcie - graf zobrazujúci časový priebeh jednej alebo viac premenných plus ich popis. Počas behu programu umožňuje zväčšovať zvolené oblasti grafu.
    Graf - zobrazenie matematického grafu obsahujúceho uzly a hrany s príslušným popisom
    Raster - zobrazenie hodnôt dvojrozmerného poľa do okna

    Hore
    Kontakt: Marek Bundzel