|
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 |
|