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


Floyi - applet

ALife

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

Algoritmus floiov sa od algoritmu boidov líši v dvoch základných bodoch. U floiov nie je možné nastavovanie zorného uhlu. Jedinec vidí všetko okolo seba v uhle 360 stupňov. Z toho vyplýva aj rozdielne správanie jedincov. Pohyb nie je taký jednoznačný ako u boidov. Druhým veľkým rozdielom je to, že v applete nie je možné nastavovanie váh jednotlivých pravidiel pohybu. Algoritmus floyiov nepočíta vážený priemer všetkých pravidiel, ale berie do úvahy vždy iba jedno pravidlo.

Ovládanie Appletu:

  • Rýchlosť: Ovládanie rýchlosti appletu od 5% do 100%.
  • Počet jedincov: Ovládanie počtu jedincov od 2 do 50.
  • Model prostredia: Možnosť voľby prostredia medzi toroidom (keď jedinec príde na koniec zobrazovacej plochy 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
    • Vzdialenosť dohľadu: Vzdialenosť, na ktorú jedinec vidí ostatných jedincov kŕdľa a na akú je schopný spozorovať votrelca. U votrelca je to vzdialenosť, na ktorú je schopný spozorovať domáceho jedinca.
    • Kolízna vzdialenosť: Definuje vzdialenosť, ktorú si od seba jedince 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.
    • Zrýchlenie: Zrýchlenie jedinca.
    • Počiatočná rýchlosť: Určuje počiatočnú rýchlosť pri štarte appletu.
    • Odrazová rýchlosť: Rýchlosť pri odraze od okrajov okna , v ktorom sa pohybujú.
    • Max. počet votrelcov: Maximálny počet votrelcov na ploche.

      Pomocou týchto vlastností sa dá nastaviť rôzne správanie jedincov a tým aj správanie celého kŕdľa. Ak je kolízna vzdialenosť malá, kŕdeľ bude zomknutejší. Naopak ak je kolízna vzdialenosť veľká, jedince sa budú snažiť o väčší odstup a teda kŕdeľ sa zväčší. Podobne je to so vzdialenosťou dohľadu. Ak je väčšia, jedince sa skôr uvidia a teda sa skôr zoskupia do kŕdľa. Naopak ak je menšia budú sa vyskytovať samostatný jedinci, ktorí sa budú pohybovať nezávisle na kŕdli.

      Medzi vlastnosťami floyiov a boidov existuje určitá analógia. Kolízna vzdialenosť je ekvivalent 1. pravidla u boidov. Je to diskrétna zóna, do ktorej si jedinec nepustí ostatných jedincov. Ak nájde jedinec v okolí kolíznej vzdialenosti "cudzích" jedincov snaží sa pohnúť v smere opačnom od ich centra. Podobná analógia existuje aj medzi Vzdialenosťou dohľadu a pravidlom 3 u boidov. Táto hodnota určuje veľkosť okolia, v ktorom sa vypočítava centrum, a jedinec sa ho snaží dosiahnuť. Okno Vlastnosti však neobsahuje ekvivalent k 2. pravidlu u boidov a taktiež nie je možné nastavovanie hodnôt váh jednotlivých pravidiel. Najväčšiu prioritu má lovenie votrelca, potom udržiavanie si dostatočného odstupu od ostatných jedincov a najmenšiu prioritu má zjednotenie smeru letu a držanie sa v kŕdli, ktoré sú realizované jedným pravidlom.

      Rovnaké pravidlá s rovnakou prioritou platia aj pre správanie votrelcov. Avšak iba do momentu, kým nie sú odhalení domácimi jedincami. Vtedy sa stáva najprioritnejším útek v smere opačnom k pohybu domáceho jedinca, ktorí spozoroval votrelca a ostatné pravidlá sa do úvahy neberú.

  • Štandardné nastavenia: Nastaví predvolené hodnoty prostredia a jednotlivých jedincov.
  • Prekážka: Vloženie prekážky kliknutím ľavého tlačidla myši na plochu. Zmena veľkosti prekážky sa robí pomocou metódy drag and drop pravým tlačidlom (Stlačíme tlačidlo Prekážka. Prejdeme na zobrazovaciu plochu a tam po stlačení pravého tlačidla a pohybovaním myši zvolíme požadovanú veľkosť prekážky. Po pustení tlačidla môžeme s prekážku posúvať po ploche.).
  • 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í.
  • Reštart: Odstránenie prekážok z plochy a náhodné rozmiestnenie a nasmerovanie jedincov.
  • Pridať: kliknutím na tlačítko sa do appletu pridá jeden votrelec. Opätovným kliknutím sa pridá ďalší. Toto je možné opakovať, až kým v applete nebude maximálny možný počet votrelcov, ktorý sa dá nastaviť v okne Vlastnosti.
  • Odobrať: Po kliknutí sa náhodne odstráni jeden votrelec.
Zdrojový kód Applet-u

Hore
Kontakt: Marek Bundzel