Fuzzy logika v agentním rozhodování

From Simulace.info
Revision as of 22:07, 12 June 2019 by Turd01 (talk | contribs) (Fuzzy logika v práčkach Samsung)
Jump to: navigation, search


Úvod

L.A. Zadeh

Fuzzy Logika vznikla v kontexte teórie Fuzzy množín, ktorú prvý krát predstavil L. A. Zadeh v roku 1965. Fuzzy množina priradí stupeň členstva (reálne číslo z intervalu [0,1]) elementom vesmíru, pričom fuzzy logika vzniká až priradením stupňov pravdy k týmto vesmírnym elementom. Vzťahuje sa na rodinu viachodnotových logík, takže je určená na modelovanie logických úvah s neurčitými alebo nepresnými údajmi. Stanovuje, že hodnota pravdy (v tomto prípade pravdivostný stupeň) logicky zloženého návrhu (napr. "Peter je bohatý a Ivan je vysoký.") je určená pravdivosťou jeho komponentov, inak povedané, nepočíta iba s 2 možnými hodnotami pravdy. [1].

Pri použití Fuzzy logiky na štandardnej škále oboru hodnôt [0,1] potom :

  • "úplná nepravda" je reprezentovaná hraničnou hodnotou 0
  • "úplná pravda" je reprezentovaná hraničnou hodnotou 1
  • "čiastočná pravda" je reprezentovaná všetkými ostatnými hodnotami (nazývané aj stredné stupne pravdy)

Viac o agentoch sa môžete dočítať v kapitole na to určenej. Pre nás bude užitočná najmä podkapitola o Deliberatívnych agentoch, v ktorej sa píše aj o teórií BDI, ktorá tvorí sofistikovaný prístup k architektúre agenta a skladá sa z troch základných pojmov :

  • Beliefs(domnienky)
  • Desires(túžby)
  • Intentions(zámery)

Na základe týchto 3 faktorov, a teda domnienok, túžob a prianí agent uvažuje o svete a teda o svojom rozhodovaní, ktorému je tento učební text venovaný.


Fuzzy logika z každodenného života

Pre lepšie pochopenie fuzzy logiky si uvedieme 2 príklady z bežného života:

  • spotrebič, ktorý fuzzy logiku využíva
  • činnosť, pri ktorom fuzzy logiku využívame automaticky bez toho, aby sme si vôbec uvedomovali, že sa nejaké rozhodovanie v mozgu uskutočňuje.

Fuzzy logika v práčkach Samsung

Slovo FUZZY použité ako značka práčky Samsung a graf znázorňujúci procesy a ich následnosť

Ahoj vs. Dobrý deň

Ľudia by sa podľa veku mohli deliť na viacero kategórií. Pre jednoduchosť si ich rozdelíme iba do dvoch kategórií - starí a mladí. Podľa etikety slušného správania starí ľudia mladím zväčša tikajú a mladí naopak starím vykajú. Existujú samozrejme aj výnimky, napríklad vnúčata dnes bežne svojím starím rodičom tikajú. Alebo si niekedy medzi sebou vykajú aj dvaja mladí ľudia keď napríklad vybavujú nejakú formálnu záležitosť. Ľudia dodržujúci zásady slušného správania by sa teda mali správať podľa nejakého vzoru etického správania, čo je príkladom fuzzy rozhodovania a priradenia (prekonvertovania) množín možných vstupov (stretnutí) s rozličnými vlastnosťtami (starý vs. mladý, stretnutie v krčme vs. stretnutie v banke, blízka vs. cudzia osoba, ...) na množinu možných výstupov (dobrý deň, ahoj, nazdar, ...).

Návrh modelu

Pre jednoduchosť si fuzzy logiku vysvetlíme iba na základe jednej vlastnosti - veku (tá sa samozrejme môže meniť na základe určenia priorít, to ale komplikuje vysvetlovanie a táto komplikácia je vysvetlená v kapitole nižšie). Neberieme teda do úvahy žiadne iné vlastnosti agentov, ktoré by mohli zmeniť ich správanie.

FuzzyAgesAndGreetings.png

Samozrejme, výsledná matica pozdravov nie je finálna, no ak by fuzzy logika obsahovala iba jedinnú premennú vek a 3 ľudí vo veku 10, 40 a 60 rokov, mohla by vyzerať nejak podobne. Dôležitý je predovšetkým výpočet faktoru veku, ktorý je v tomto prípade počítaný ako podiel vek/X, kde X = 100 (tieto hodnoty môžeme vidieť na obrázku vyššie a je iba na nás, čo dosadíme za X).

Čo teda vieme z modelu vyčítať:

  • 2 kategórie: Starí a Mladí s hraničným bodom delenia 50 (limit)
  • prirodzená úcta k starším (mladší ľudia starším ľuďom vykajú)
  • množinu vstupov ľudí {10,40,50} obsahujúcich vlastnosť veku
  • množinou pozdravov {"Dobrý deň", "Ahoj"}

Výsledná fuzzy množina a možné rozšírenie úlohy

Ak by sme teda zaradzovali daných ľudí len do 2 kategórií na základe jedného pravidla, ktoré by spočívalo v porovnávaní faktoru veku s konštantou limit, dostali by sme maticu 3x2 možných pozdravov. Nie je teda vôbec doležité, ako nastavíme konštantu limit, pri jej zmene sa iba zmenia určené pozdravy, nie však počet prvkov matice a teda všetky možné kombinácie stretnutí majú vždy jasne danú reakciu z oboch strán.

Pri stretnutí dvoch rovesníkov som trochu načŕtol možné rozšírenie úlohy, keď som neurčil, či bude pozdrav Ahoj" alebo "Dobrý deň". Samozrejme, ak platia pravidlá vyššie (pri dvoch malých chlapcoch som si ale dovolil spraviť výnimku, málokedy vidíme zdraviť sa ich pozdravom "Dobrý deň"), pri stretuntí dvoch 40 by mal byť pozdrav "Ahoj" (keďže obaja spĺňajú podmienku "mladosti") a dvoch 60 ročných pánov v klobúku "Dobrý deň".

Výnimka však potvrdzuje pravidlo a v prípade 10 ročného kráľa by sme aj 60 ročného starca videli pozdraviť ho pozdravom "Dobrý deň"(ak tam samozrejme nie sú ďalšie pravidlá, ktorú môžu túto logiku upravovať, ako napríklad príbuzenský vzťah a podobne). Možnosť voľby z dvoch pozdravov pri 40 a 60 ročných mužoch teda malo načŕtnuť pointu fuzzy logiky a možnosti jej rozšírenia, aj keď táto možnosť výberu sa vyskytne až po zaradení ďalších pravidiel.

Úlohy na precvičenie Fuzzy logiky

3 úlohy na záver (odpovede sa nachádzajú úplne dole ako posledná kapitola):

1. Ako by vyzeral výsledný počet možných výstupov, ak by sme do množiny pozdravov v príklade vyššie pridali pozdrav "Nazdar"?
2. Aké by mohli byť ďalšie vlasnosti, ktoré by menili faktor veku?
3. Ako by vyzeral pozdrav pri stretnutí 60 ročného starca (zmena faktoru veku z príkladu vyššie), ak do modelu pridáme nasledujúce vlasnosti :
3.a) Hodnosť kráľa znásobuje súčasný váhu 100 krát?
3.b) Hodnosť kňaza znásobuje súčasný váhu 20 krát?
3.c) O koľko rokov kňaz začne oslovovať kráľa "Dobrý deň"?

Fuzzy logika v agentovo-orientovaných počítačových hrách [2]

Prevedenie možného použitia fuzyy logiky v známej arkádovej hre BattleCity. Kružnice znázorňujú rôzne vstupy, na základe ktorých sa agenti rozhodujú o svojej ďalšej akcii

Umelá inteligencia v počítačových hrách sa vďaka rastúcim požiadavkám hráčov musí neustále zlepšovať. Inteligentní agenti môžu spolu s fuzzy logikou vylepšiť najdôležitejší prvok hier - interakciu. Agenti ponúkajú lepšie možnosti flexibilnej interakcie v rámci architektúry herného dizajnu, pričom fuzzy logika umožňuje lepšie kontrolovať správanie pre vytvorenie najrôznejších foriem umelých inteligencií.

Porovnanie s inými technikami

Vo svete hier neznamená fuzzy kontrola iba ďalšiu metódu pre správanie agentov. Kontrolovanie agentov pomocou fuzzy logiky je zárukou generovania "správneho" správania. Toto prirodzené správanie agentov potom pomáha zvyšovať vnímanú zložitosť a dôveryhodnosť virtuálneho prostredia. V porovnaní s niektorými inými technikami návrhu inteligentných systémov sú systémy založené na fuzzy pravidlách jednoduché na návrh aj implementáciu. Klasické rule-based systémy pritom často nedokážu dosiahnuť prirodzenosť, akú ponúkajú fuzzy systémy, pričom tie spotrebujú omnoho nižšie výpočtové náklady.

Fuzzy rule-based systémy

Systémy založené na fuzzy pravidlách sa vo všeobecnosti skladajú z 4 komponentov:

  • fuzzifier konvertuje sparsované vstupy z klienta do fuzzy množín
  • základňa pravidiel (rule-base) uchováva všetky vzťahy medzi vstupmi a očakávanými výstupmi v kolekcií IF-THEN pravidiel
  • uvažujúca jednotka použije vstupy a aplikuje na nich konkrétne pravidlá
  • defuzzifier prekonvertuje výsledok rozhodovania a sparsované výstupy pošle späť na klienta

V prípade viacerých vstupov sú fuzzy pravidlá väčšinou prepojené logickým spojením (konektorom) AND, pričom rule-base musí pokrývať každú možnú kombináciu všetkých výrazov z definičného oboru vstupnej premennej. Táto požiadavka úplnosti ale vedie k tzv. rule explosion problém-u, kde pre systém s n vstupmi, ktorý má každý m možných stavov potrebujeme celkovo m^n pravidiel! Toto pravidlo výbuchu predstavuje vážny problém a komplikuje implementovanie fuzzy kontrolovania vďaka vysokým nárokom na CPU zdroje. Combs navrhol URC (Union Rule Configuration) na zmiernenie tohto problému, kedy sa zložitosť výpočtu zníži na m*n pravidiel.

Zhrnutie

Zdroje

  1. Cintula, Petr, Fermüller, Christian G. and Noguera, Carles, "Fuzzy Logic", The Stanford Encyclopedia of Philosophy (Fall 2017 Edition), Edward N. Zalta (ed.), Dostupné z : https://plato.stanford.edu/archives/fall2017/entries/logic-fuzzy/
  2. Li, Yifan & Musilek, Petr & Wyard-Scott, L. (2004).Fuzzy logic in agent-based game design. 734 - 739 Vol.2. 10.1109/NAFIPS.2004.1337393. Dostupné z : https://www.researchgate.net/publication/4092875_Fuzzy_logic_in_agent-based_game_design

3. https://www.samsung.com/in/support/home-appliances/what-is-fuzzy-logic-in-a-washing-machine/

Odpovede

1. Nezmenil by sa. Pri 1 pravidle sú odpovede jednoznačné, takže matica bude mať rovnaký počet výstupov aj v prípade, ak by množina s pozdravmi obsahovala iba 1 prvok.
2. Príbuzenský vzťah, hierarchické postavenie (môže sa týkať napríklad štátnej moci alebo aj postavenia vo firme), miesto stretnutia atď.
3.a) Starec by pozdravil chlapca kráľa "Dobrý deň". [(hodnosť kráľa)100 * 0.1 = 10 > 0.6]
3.b) Starec kňaz by pozdravil chlapca kráľa "Ahoj". [ (hodnosť kráľa)100 * 0.1 = 10 < 12 = 0.6 * 20 (hodnosť kňaza)]
3.c) Starec kňaz pozdraví chlapca kráľa pozdravom "Dobrý deň" o 3 roky [100 * 0.13 = 13 > 12.6 = 0.63 * 20]