Prírodou inšpirované algoritmyštudijné materiály pre projekt mobilnej triedy umelej inteligencie |
||
Fuzzy logikaFuzzy logika patrí do rodiny neštandardných logík, ktoré pre odvodzovanie využívajú neurčitosti. Ku každému výroku systém najprv určí mieru istoty pomocou funkcie príslušnosti (membership function) - napríklad pre oranžovú farbu dá funkcia príslušnosti, či ide o červenú "skôr áno", a pre modrú "skôr nie". Hodnote "áno" zodpovedá vo fuzzy logike obvykle číslo 1, hodnote "nie" číslo 0. 0,5 potom znamená "neviem". Funkcia príslušnosti pre výrok "jednotka ja nebezpečná" pre Civilization priradí hodnoty jednotlivým jednotkám takto:
Počítač si tak vezme nepriateľského, alebo svojho panáka a zistí, ako je nebezpečný. Mierou nebezpečnosti je práve číslo z intervalu nula až jedna a tieto čísla sa používajú pre výpočet formou fuzzy logiky. Počítač tak vyhodnotí výroky, či "je ľudský oponent silný", "má veľké rezervy", "hraje agresívne", "práve útočí" - a potom začne usudzovať v systéme fuzzy pravidiel, ktorý vyzerá napríklad takto:
Počítač prejde celou sieťou fuzzy pravidiel a vyvodí z nich hodnoty záverov - "zaútoč", "bráň saˇ", "expanduj výrobu", "vyrábaj ťažké jednotky", "vyrábaj lietadlá" a podobne. Vyriešia nezhody medzi spolu kontradiktívnymi (protichodnými) závermi - napríklad "zaútoč" a "bráň sa" a zisti, ktorý získal väčšiu váhu - napríklad pokiaľ mu vyjde "zaútoč=0,8" a "bráň sa = 0,3", začne útočiť. Zaujímavý je prípad, keď mu v oboch prípadoch vyjde zhruba to isté - to znamená, že situácia je nejasná a mal by vyčkávať. Pokiaľ spolu závery neprotirečia, môže ich pochopiteľne realizovať zároveň. Fuzzy logika je rýchla a jednoduchá; nedajú sa od nej čakať zázraky, ale vytvára variabilné správanie jednotiek, ktoré je vítané hlavne v reltime stratégiách, alebo akčných hrach. Využívajú napríklad Battlecruser 3000 AD, Civilization: Call To Power, Close Combat či SWAT 2. |
||
Kontakt: Marek Bundzel |