phpRS            

Dnešní datum: 31. 10. 2014   | Hlavní stránka | Seznam rubrik | Kniha návštěv |  
  Hlavní menu
Hlavní stránka
Seznam rubrik
Fotogalerie
Kniha návštěv
Stáhněte si
Odkazy
Ankety
TOP 15Boží dar

  Reklama


  Rubriky

  Poslouchám na síti


Spusť přehrávač


Spusť přehrávač


  Informace o webu
Všehochuť aneb od každého trochu

Content © 1991-2010 Slávek Rydval

View Slávek Rydval's profile on LinkedIn

Vytvořeno pomocí phpRS a Texy!

RSS kanál

Odborné články

* Základy fuzzy logiky

Vydáno dne 12. 07. 2005 (30911 přečtení)

Fuzzy logika se poprvé objevila v roce 1965 v článku, jehož autorem byl profesor Lotfi A. Zadeh. Tehdy byl definován základní pojem fuzzy logiky a to fuzzy množina. Slovo fuzzy znamená neostrý, matný, mlhavý, neurčitý, vágní. Odpovídá tomu i to, čím se fuzzy teorie zabývá: snaží se pokrýt realitu v její nepřesnosti a neurčitosti.

V klasické teorii množin prvek do množiny buďto patří (úplné členství v množině) nebo nepatří (žádné členství v množině).

Fuzzy množina je množina, která kromě úplného nebo žádného členství připouští i členství částečné. To znamená, že prvek patří do množiny s jistou pravděpodobností (stupeň příslušnosti). Funkce, která každému prvku universa přiřadí stupeň příslušnosti se nazývá funkce příslušnosti.

Proč je vlastně fuzzy logika tak důležitá?

Jednak je potřeba pracovat s vágními daty a jednak používání přesných popisů nás vede k idealizování skutečností reálného světa a tedy k odklonu od reality.

Striktní popis vede k popisu skutečnosti pouze pomocí dvouprvkové množiny {0,1}. Pokud problém nelze jednoznačně určit, rozkládá se na menší podproblémy, ale za cenu místa a opět lze použít jen dvouprvkovou množinu. V případech, kdy je již nemožné nebo neúnosné takto problém rozdělit, dopouštíme se jisté chyby a tím je dán odklon od reality.

S tím souvisí i princip inkompability, který vyslovil v roce 1973 L. A. Zadech: „S rostoucí složitostí sytému klesá naše schopnost formulovat přesné a významné vlastnosti o jeho chování, až je dosáhnutá hranice, za kterou kterou je přesnost a relevantnost prakticky vzájemně se vylučující jevy.

S vágními pojmy se setkáváme v běžném životě. V přirozeném jazyce, kterým se lidé dorozumívají, je vágních pojmů spousta: velmi starý člověk, nízká rychlost, … Otázkou zůstává, co ještě patří do popsané množiny a co již ne (pokud ještě je rychlost 65 km/h nízká rychlost, proč není také nízká rychlost 66 km/h?). S tímto problémem se ale můžeme setkat již v antickém Řecku, odkud pochází tento paradox (tzv. Paradox z antického Řecka): Mějme malou hromadu kamení. Pokud přidáme jeden kámen, dostaneme opět malou hromadu. Tedy každá hromada kamení je malá.

Jak je vidět, problém zůstává s hraničními body a použití klasických množin tedy nepřichází v úvahu. Jedním z řešení jsou právě fuzzy množiny.

Zavedení fuzzy množin

Každému prvku přiřadíme stupeň příslušnosti, který vyjadřuje míru příslušnosti daného prvku do fuzzy množiny.

Př.: Každé hodnotě rychlosti přiřadíme číslo z intervalu <0,1>, který vyjadřuje míru našeho přesvědčení, že daná rychlost je nízká. Čím vyšší (nižší) je stupeň příslušnosti, tím více (méně) platí, že příslušná rychlost je nízká.

Problém při vyhledávání: Při vyhledávání dat klasickým způsobem sice uživatel získá nějakou množinu, ale již neví, jak hodně odpovídá výsledek jeho požadavku. Pokud se na výstup podíváme jako na fuzzy množinu, potom stupeň příslušnosti by měl odrážet míru relevantnosti.

Úlohou fuzzy teorie je zachytit vágně specifikované požadavky uživatele v dotazu a adekvátně k tomu vypočítat stupeň příslušnosti. Uživatel tedy musí mít možnost používat vágní pojmy buďto přímo nebo je jednoduchým způsobem reprezentovat.

Jeden z hlavních problémů je určení funkce příslušnosti. V případě, že prvky universa jsou reálné čísla, existuje více možností matematického popisu průběhu růstu respektive klesání hodnot stupně příslušnosti. Pro prvky universa v okolí hraničních bodů by mělo platit, že čím víc se blíží prvky universa k hraničním bodům, tím pomaleji roste (klesá) hodnota stupně příslušnosti.

Př. (Plat): Pokud považujeme příjem zhruba nad 35 000 Kč za vysoký, potom z tohoto pohledu je méně důležitý rozdíl mezi příjmem 34 000 Kč a 35 000 Kč než mezi platem 32 000 Kč a 33 000 Kč. Jinak též můžeme říct, důležitost toho samého rozdílu 1 000 Kč klesá k přibližováním se k hraničnímu bodu 35 000 Kč. Samozřejmě, s rostoucím platem roste i stupeň příslušnosti do fuzzy množiny vysoký příjem.

Příjem (Kč) skóre Příjem (Kč) skóre
24 000 0,000 36 000 0,519
26 000 0,021 37 000 0,572
29 000 0,122 38 000 0,648
32 000 0,352 40 000 0,812
33 000 0,428 44 000 0,979
34 000 0,481 46 000 1,000
35 000 0,500    

 

V předchozím příkladě jsme viděli, že hodnoty rostly od nuly k jedné. Můžeme se však dostat do případu, kdy hodnoty sice rostou od nuly k jedné, ale pak zase klesají k nule.

Př (věk): Podívejme se na vágní pojem střední věk. Můžeme si jej představit jakožto člověka s věkem okolo 35 let.

Věk skóre Věk skóre
24 0.000 36 0.955
26 0.024 37 0.832
29 0.191 38 0.661
32 0.661 40 0.316
33 0.832 44 0.024
34 0.955 46 0.000
35 1.000    

 

Fuzzy teorie a jazyk SQL

Jazyk SQL používá Booleovu algebru, což přináší jeden velký problém. V dotazu typu

A and B and C and … and Z

je nesprávnost z našeho pohledu v tom, že dotazu nevyhovují údaje, které nesplňují jednu z podmínek A až Z, stejně tak nevyhovují údaje, které nesplňují dvě a více podmínek.

Není tedy rozdílu mezi údaji, které splňují různý počet podmínek dotazu.

Bylo by vhodné, aby se na výstup dostali i údaje, které nesplňují všechny podmínky dotazu, přičemž míra jejich ohodnocení by měla klesat s klesajícím počtem splněných podmínek.

Obdobně jako s podmínkou and, i s operátorem or se dostanou na výstup údaje, které nic neříkají o tom, kolik podmínek vlastně splňují.

Bylo by vhodné, aby míra ohodnocení stoupala s rostoucím počtem splněných podmínek.

Př.: Vyber zaměstnance ve středním věku mající vysoký příjem.

Klasické SQL:

select NAME, AGE, INCOME
from EMPLOYEE
where (AGE >= 25 and AGE <= 45)
   and (INCOME >= 35, 000)

Fuzzy SQL:

select NAME, AGE, INCOME
from EMPLOYEE
where (AGE = middle)
   and (INCOME >= high)

K tomu je ale potřeba zavést fuzzy relace. Fuzzy relace Rf je podmnožina kartézského součinu domén D1,…Dn, kde jedno Di je DU — interval <0,1>. Ostatní sloupce jsou důležité pro výpočet sloupce DU. Hodnota libovolné n-tice t říká, jak hodně tato n-tice náleží do fuzzy relace Rf. Můžeme říct, že obvyklá relace je fuzzy relace, kde ve sloupci DU je stupeň roven vždy jedné pro každou n-tici.

Fuzzy relace se získá pomocí fuzzy podmínky aplikované na obvyklou relaci. Fuzzy podmínka se reprezentuje čtyřmi typy termů:

  • Logické (Booleans)
  • Transformace (Transformations)
  • Přesívání, změny (Alterations)
  • Interakce (Interactions)

Transformace definuje fuzzy množinu, jejíž interpretace si můžeme představit jako převod z kartézského součinu množin E1, …, En do intervalu <0,1>.

Příklad transformace:

  • vysoký: VÝŠKA → <0,1>, h → µvysoký(h)
  • štíhlý: VÝŠKA x VÁHA → <0,1>, (h, w) → µštíhlý (h, w)
  • Porovnání může být i přímo mezi objekty: větší než: VÝŠKA x VÝŠKA → <0,1>, (h1, h2) → µvětší než (h1, h2)
  • Jiná transformace: a < b, a, b pevné, S (x, a, b) =
    • 0, pokud x ≤ a
    • 2 * ((x-a)/(b-a))2, pokud a ≤ x ≤ 1/2(a+b)
    • 1- 2 * ((x-b)/(b-a))2, pokud 1/2(a+b) ≤ x ≤ b
    • 1, pokud x ≥ b

Přesívání, změny má za úkol nějakým způsobem zpracovat slova typu mnoho, okolo, velmi mnoho, málo, víceméně a negace.

Př.: Často se slovo velmi representuje následujícím způsobem: velmi fuzzycon (x) = (µfuzzycon(x))2. A negace: negace fuzzycon (x) = 1-µfuzzycon(x).

Interakce má za úkol spolupráci mezi fuzzy množinami. Jedná se o operace and a or:

(fc1 and fc2)(x) = min (µfc1(x), µfc2(x))

(fc1 or fc2)(x) = max (µfc1 (x), µfc2 (x))

Př.: Vyberme si člověka velmi vysokého a současně s věkem kolem 40 let.

select jmeno
from lidi
where (vek=okolo-40)
   and (výška=velmi vysoký)

Fuzzy podmínka bude vypadat následovně:

min ((µvysoký(výška))2, µokolo-40(věk))

Množinové operace

  • Sjednocení: µAuB (x) = max (µA (x), µB (x))
  • Průnik: µA∩B (x) = min (µA (x), µB (x))
  • Rozdíl: µA-B (x) = µA∩B‘ (x) = min (µA (x),(1-µB(x)))

Použití fuzzy technologie

  • Fuzzy regulace v japonském metru — automatické řízení metra — zvýšená přesnost zastavování, plynulejší brždění a hlavně nižší spotřeba energie
  • Fotoaparát s automatickým vyhledáváním centrálního bodu pro zaostření (Minolta)
  • ABS, řízení motoru, volnoběhu a klimatizace (Honda, Nissan, Sabaru)
  • Řízení výtahů (Mitsubishi)
  • Korekce chyb ve slévárenských zařízeních na plastické výrobky (Omron)
  • 3.5" disketové mechaniky (zlepšení doby vystavení hlaviček až o 30 %)
  • palmtop Kanji určený pro rozpoznávání ručně psaných textů
  • rozpoznávání řeči
  • Fuzzy SQL (Omron)
  • Pomoc při hledání identifikačních a profilových systémů pachatele (velký, ne příliš těžký, víceméně starý, …)
  • Analýza portfolia při investování na kapitálovém trhu

[Akt. známka: 1,74 / Počet hlasů: 62] 1 2 3 4 5

Celý článek | Autor: Slávek Rydval | Počet komentářů: 2 | Přidat komentář | Informační e-mailVytisknout článek

  Čtenář
Jméno:
Heslo:


Registrace | Info
Zapomenuté heslo

  Vyhledávání

Hledej
na Nawebce!


Rozšířené vyhledávání
Ubytování ve StrmilověUbytování velkých skupinRybník KomorníkKunžakJindřichohradeckovodlitniČeská KanadaKoupání v Jižních ČecháchHistorické ubytováníStrmilovský šachový klubSportovní rybolovEldorádoVodní ráj

  Kalendář
<<  Říjen  >>
PoÚtStČtSoNe
  1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31   

  Reklama


rkEdit především pro vývojáře
rkEdit především pro vývojáře