Prírodou inšpirované algoritmy

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

Späť ku kurzom triedy
Obsah
Interaktívna väzenská dilema
Iteračná väzenská dilema
Veľký Axelrodov turnaj
Evolučne stabilné stratégie
2D applet
Prehľad 1D appletov na webe
Prehľad 2D appletov a programov na webe



Ostatné kapitoly
Freemanove K modely
Umelé imunitné systémy
Biomimicry - Biomimetics
Umelé chémie
Chemické vlny
DNK počítače
Artificial Music
Memetika
Artificial Life Games
Artificial Art
Väzenská dilema


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


2D applet

Návod k appletu

  1. Nastavenie žiadaného počtu hráčov v matici NxN
  2. Nastavenie konštanty zodpovednej za inicializáciu zrádzajúcich hráčov v prípade výberu náhodnej inicializácie
  3. Výber spôsobu inicializácie
    1. Náhodná inicializácia s využitím premennej podiel zradcov
    2. Inicializácia jedného zrádzajúceho hráča uprostred
    3. Inicializácia zrádzajúcich ľubovoľným naklikaním
  4. Výber susedského okolia použitého pri výpočtoch
  5. Nastavenie výplatnej matice

Popis tlačidiel

Štart/Pauza/Pokračuj: Spusti zastaví a následne pokračuje od posledného kroku v spojitom vykresľovaní matice hráčov s ich stratégiami v závislosti od nastavených parametrov.

Graf: Vykreslí priebeh zmeny početnosti stratégií v jednotlivých krokoch.

Krok: Umožňuje krokovať vykreslenie matice hráčov vždy po jednom cykle.

Nastav: Toto tlačidlo umožňuje spustenie experimentu s novou inicializáciou pri súčasnom uchovaní pôvodných parametrov predošlého experimentu alebo s novými parametrami v prípade že ich používateľ zmenil. V prípade bezprostredného použitia tlačidla Reset sa význam tlačidla nastav stráca.

Reset: Nastaví defaultne hodnoty pri všetkých parametroch.

Popis základného výpočtu v applete

Štvorcová matica NxN hráčov sa podľa zvoleného postupu nainicializuje na stratégiu spolupracuj alebo zrádzaj. V prípade náhodnej inicializácie sa používa tisícina zadanej konštanty. Všetci hráči v každom kole hrajú so svojimi susedmi. Okolie si vyberá užívateľ pred spustením programu. Každý hráč zastúpený políčkom v mriežke získava na základe hry suseda a hodnôt výplatnej matice určitý počet bodov. Tieto body sa pre každého hráča v danom kole spočítajú. Tento súčet nazvime skóre. Následne sa celkovo získané skóre hráča porovnáva s výškou skóre u jeho susedov. Samotný hráč do ďalšieho kola preberá najúspešnejšiu stratégiu zo svojho okolia. V prípade, že jeho skóre je najvyššie, ponechá si vlastnú stratégiu. V prípade, že existujú dvaja susedia s rovnakou (najvyššou) výškou skóre, ale s rôznymi stratégiami, hráč preberie stratégiu od suseda, ktorý je v danom cykle skôr porovnávaný. Okrajové bunky sú prepojené na opačné konce riadkov a stĺpcov. Akoby sme nad mriežkou vytvorili anuloid.

Postup pri vypočítavaní skóre

príklad neumanovského okolia

Skóre sa vypočítava na základe výplatnej matice. Nech je v tomto našom príklade takáto.

príklad neumanovského okolia

Pri hre s prvým hráčom nezískava prostredný hráč žiadne body, pretože jeho stratégia spolupracuj v prípade protihráčovej zrady prináša nulové bodové ohodnotenie. Pri hre s druhým hráčom získava hráč 2 body, keďže aj súperova stratégia je spolupracuj a to pri danej výplatnej matici prináša obom zisk dvoch bodov. Takto hrá každý hráč so svojim susedom. Na záver sa získane body zrátajú. Súčtom môže byť celé alebo reálne kladné číslo v závislosti od výplatnej matice a nazývame ho skóre.

Výber stratégie do nasledujúceho kola

Výber stratégie

V prvej a druhej mriežke je naznačený postup pri prechádzaní neumanovským a moorovým okolím pri všetkých výpočtoch. Na zvyšných obrázkoch je vyjadrené skóre a príslušná stratégia použitá v prebiehajúcom kole. V prvom prípade sa prostredný hráč do ďalšieho kola rozhodne pre stratégiu zrádzaj, keďže je táto v danom kole najúspešnejšia. Na druhom obrázku je znázornená situácia, keď najvyššie získané skóre patrí nášmu hráčovi. Ponechá si teda vlastnú stratégiu spolupracuj. V poslednom prípade získali dvaja hráči rovnaké, najvyššie skóre. Červená osmička je však prvá v poradí, a tak sa náš prostredný hráč rozhodne prebrať stratégiu spolupracuj.

Zmena alebo zotrvanie pri istej stratégií sa prejavuje farbami.

    Ak hráč:
  • nespolupracuje a nespolupracoval, farba je modrá,
  • spolupracuje a spolupracoval, farba je červená,
  • spolupracuje a nespolupracoval, farba je zelená,
  • nespolupracoval a spolupracuje, farba je žltá.


V tomto applete boli použité časti zdrojových kódov uverejnených na
http://www.xs4all.nl/~helfrich/prisoner.

Applet si vyžaduje Java JRE 5.0, ktorú si možno stiahnuť z
http://java.sun.com/j2se/1.5.0/download.jsp

Hore
Kontakt: Marek Bundzel