Prírodou inšpirované algoritmy

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

Späť ku kurzom triedy
Obsah
Abstrakt
Pravidlá života
Vyvíjajúci sa floyi
Implementácia v Jave
Prehľad appletov
Floyi - applet
Individuálni Floyi - applet
Vyvíjajúci sa Floyi - applet
Súperiaci floyi - applet
Aquarium - applet
O tejto kapitole



Ostatné kapitoly
Výpočtové schopnosti celulárnych automatov
Celulárne automaty - úvod
Samoreprodukujúce sa celulárne automaty
Kryštálove výpocty
HAL
Boidi
Floyi
Aplikácie celulárnych automatov
CAPOW
LIFE - Hra života
Fredkinov biliardový automat


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


Individuálni Floyi - applet

Applet je vytvorený pomocou vlákien - každý jedinec je jedno vlákno. Preto môže byť beh appletu pri voľbe veľkého počtu jedincov a vysokej rýchlosti trhaný, nepravidelný a v tom prípade treba jednu z hodnôt znížiť (je to spôsobené tým, že s počtom jedincov časová náročnosť kvadraticky narastá). Rýchlosť pohybu jedincov závisí od výkonu počítača, na ktorom je applet spustený.

iFloyi vyzerajú ako obyčajní Floyi, ale majú základné rozdiely: Kým obyčajní Floyi sú všetci rovnakí a zdieľajú rovnaké vlastnosti, iFloyi môžu mať individuálny charakter. Ich vlastnosti sú definované chromozómom. Každý iFloy má svoj chromózom. V tomto applete môžete priradiť rôzne vlastnosti rôznym iFloyom a vidieť rozdiel v ich správaní.

Ovládanie appletu:

  • Rýchlosť: Ovládanie rýchlosti appletu od 1% do 100%.
  • Počet jedincov: Ovládanie počtu jedincov od 2 do 50. Ak je let jedincov pozastavený a bude zmenený počet jedincov, let sa opäť obnoví (názov tlačidla sa zmení z Pokračovať na Pauza). Zmenou počtu jedincov strácame individuálne nastavenia vlastností jedincov, ktoré sme pred tým nastavili každému jedincovi zvlášť. Pri zmene počtu jedincov sa populácia znovu inicializuje a tým získava vlastnosi populácie. Vlastnosti populácie sú hodnoty všetkých vlatností, ktoré sú nastavené pri spustení appletu alebo pri stlačení tlačidla Štandartné nastavenia. Vlastnosti populácie môžeme zmeniť aj tak, že ich zmeníme v sekcii Vlastnosti a aplikujeme po zvolení možnosti Všetci na všetkých iFloyov, čiže na celú populáciu.
  • Model prostredia: Možnosť voľby prostredia medzi toroidom (keď jedinec príde na koniec zobrazovacej plochy - akvária - vyjde z druhej strany) a ohraničenou plochou (pri náraze sa jedinec mierne spomalí a otočí sa v náhodnom smere). Použitím voľby Ohraničený sa dosiahne reálnejšia simulácia.
  • Vlastnosti: Po kliknutí na tlačítko sa zobrazí nové okno, v ktorom sa nastavujú všetky vlastnosti jedincov a prostredia.
    • Faktor slobodnej vôle: čím je faktor vyšší tým sa jedinci správajú samostatnejšie a nelipnú tak na skupine. Toto je všeobecná vlastnosť aplikovaná na všetkých jedincov.
    • Počet susedov: Počet susedov, s ktorými jedinci udržujú kontakt. Snažia sa nevzdialiť od svojich susedov. Toto je všeobecná vlastnosť aplikovaná na všetkých jedincov.
    • Aplikovať na Floya č.: Vybratie jedinca, na ktorého sa majú individuálne vlastnosti aplikovať. Zvolením možnosti Všetci sa aplikuje nastavenie vlastností na všetkých iFloyov.
    • Farba Floya: Nastavenie farby zvoleného jedinca. Zvolením červenej farby sa iFloy premení na votrelca. Ak je iFloy votrelcom neplatia pre neho nastavenia vlastnosí ale automaticky sa mu priradia prednastavené vlastnosti votrelca, ktoré sa ovplyvniť nedajú.
    • Zrýchlenie: Zrýchlenie jedinca.
    • Lipnutie k stredu: Funguje len pri ohraničenom móde. Čim je číslo väčšie, tým sa budú jedinci viac držať pri strede akvária.
    • Kolízna vzdialenosť: Definuje vzdialenosť, ktorú si od seba jedinci udržiavajú aby nedošlo ku kolízii. Táto vzdialenosť sa nedodržiava pri strete jedincov s votrelcom.
    • Maximálna rýchlosť: Maximálna rýchlosť pohybu jedinca.
    • Odrazová rýchlosť: Rýchlosť pri odraze od okrajov akvária, v ktorom sa pohybujú.

      iFloyi vyzerajú ako štandardní Floyi, ale sú v jednej základnej veci odlišní. Kým štandardní Floyi sú všetci rovnakí resp. rovnakého druhu a zdieľajú rovnaké vlastnosti, iFloyi môžu mať individuálny charakter. Každý iFloy má vlastné črty, definované samostatným chromozómom. Ak pridelíme jednému iFloyovi nervóznu a energickú črtu (vysoká rýchlosť a zrýchlenie), celá skupina začne byť zmetená a neorganizovaná. IFloy s pomalou a lenivou črtou bude zaostávať. Ak je viac iFloyov premenených na votrelcov pridelením červenej farby, všetci takto označení iFloyi budú napádaní. iFloyi, si stále zvolia agresívne správanie, kým iFloyi, ktorí boli pridelením červenej farby premenení na votrelcov zvolia útek. Ak premeníme väčší počet iFloyov na votrelcov pridelením červenej farby, ostatní iFloyi sa zdajú zmätení a nenapádajú ich efektívne.

  • Štandartné nastavenia: Nastaví predvolené hodnoty prostredia a jednotlivých jedincov.
  • Pauza: Zastavenie letu jedincov (názov tlačidla sa zmení z Pauza na Pokračovať). Opätovným stlačením tlačidla sa pohyb jedincov obnoví.
  • Pridať: Kliknutím na tlačítko sa premení nultý jedinec na votrelca.
  • Odobrať: Po kliknutí sa votrelec premení opäť na nultého jedinca populácie. Jeho farba sa zmení na farbu populácie a vlastnosti bude mať tie, ktoré mal pred premenou na votrelca. Farba populácie je štandartne nastavená na čiernu ale dá sa zmeniť v sekcii Vlastnsoti ak po nastavení farby zvolíme možnost aplikovať ju na všetkých iFloyov.

Správanie:

Pomocou comboboxu môžeme nastaviť vopred nadefinované správanie celej populácie. Vopred nadefinované máme 4 druhy správania:

  • Štandartné správanie
  • Pokojné správanie
  • Aktívne správanie
  • Zúrivé správanie

Túto zmenu správania nám zapríčiňujú hodnoty vlastností, ktoré sú nastavené celej populácii rovnako. Tieto hodnoty sa dajú zmeniť po stlačení tlačidla Vlastnosti. Hodnoty týchto vlastnsotí obsahuje nasledujúca tabuľka.

Tabuľka správania

Obsahuje hodnoty vlastností populácie prislúchajúce k typom správania.

  Štandartné Pokojné Aktívne Zúrivé
Kolízna vzdialenosť 200 200 200 100
Zrýchlenie 0,3 0,05 0,6 0,9
Lipnutie k stredu 0,1 0,05 0,2 0,4
Max. rýchlosť 5 3 5 10
Odrazová rýchlosť 0,8 0,5 0,8 2
Faktor slobodnej vôle 0,05 0,05 0,05 0,05
Počet susedov 2 2 2 2

Tento applet vznikol obmenou programu, ktorý vytvoril Ariel Dolan.

Zdrojový kód appletu.

Hore
Kontakt: Marek Bundzel