1 / 63

Fuzzy SQL

Fuzzy SQL. Petr Jen ček David Šinágl Július Štuller. Obsah. Motivační příklady, řešení pomocí standardního SQL Formalizace GEFRED, jazyk fuzzy SQL Operátory Funkce Architektura FRDB Vyřešení motivačních příkladů pomocí fuzzy SQL. P říklad 1 Dobří studenti.

brick
Download Presentation

Fuzzy SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fuzzy SQL Petr Jenček David Šinágl Július Štuller

  2. Obsah • Motivační příklady, řešení pomocí standardního SQL • Formalizace • GEFRED, jazyk fuzzy SQL • Operátory • Funkce • Architektura FRDB • Vyřešení motivačních příkladů pomocí fuzzy SQL

  3. Příklad 1Dobří studenti • Zadání: Z tabulky studentů, která obsahuje aritmetický průměr známek za uplynulý šk. rok, docházku za uplynulý šk. rok a další informace o studentech, vybrat “dobré” studenty • Analýza problému • Co je “dobrý” student? • Na čem závisí fakt, že je student “dobrý”?

  4. Příklad 1Řešení 1 • “Dobrý” student má průměr aspoň 3.5 bodů • SELECT * FROM STUDENTS WHERE GPA >= 3.5 • I “flákač”, který do školy skoro nechodí, může být “dobrý” student

  5. Příklad 1Řešení 2 • “Dobrý” student má průměr aspoň 3.5 bodů a absenci méně než 10 dní • SELECT * FROM STUDENTS WHERE (GPA >= 3.5) AND (ABSENCES < 10) • Výsledky nejsou setříděny podle toho, jak je student “dobrý”

  6. Příklad 1Řešení 3 • Setřídíme podle průměru a absencí (v tomto pořadí) • SELECT * FROM STUDENTS WHERE (GPA >= 3.5) AND (ABSENCES < 10) ORDER BY GPA DESC, ABSENCES ASC • ... Sem přijde dataset • Proč by student, který má průměr jen o málo horší než 3,5, ale má velmi málo absencí neměl být dobrý?

  7. Příklad 2Podobné barvy • Zadání: Zákazník si vybírá barvu obkladového materiálu. Chce barvu “podobnou” jiné barvě, kterou zná (např. barva již zakoupené kuchyňské linky). • Analýza problému: • Jak definovat “podobnou” barvu?

  8. Příklad 2Řešení • “Podobná” barva je taková barva, jejíž složky RGB se liší maximálně o 10 od složek RGB barvy definované zákazníkem • SELECT * FROM ITEMS WHERE ABS(RED – red1) < 10 AND ABS(GREEN – green1) < 10 AND ABS(BLUE – blue1) < 10 • Problém: Pokud se barva liší od barvy zadané uživatelem pouze v 1 složce, ale více než o 10, zákazník ji neuvidí.

  9. Příklad 3Párování nabídky a poptávky • Zadání: Pro realitní kancelář vytvořit skript, který bude párovat nabídku s “odpovídající” poptávkou. Nabídka i poptávka je charakterizována lokalitou, cenou a dalšími atributy. • Analýza problému: • Které dvojice nabídka/poptávka si ještě odpovídají a které už ne?

  10. Příklad 3Řešení • Pro každý atribut zvolit jistou toleranci. • Pokud je rozdíl obou atributů v rámci této tolerance, nabídka a poptávka “si odpovídají”. • SELECT o.*, d.* FROM OFFERS o, DEMANDS d WHERE ABS(o.PRICE, d.PRICE) <= price_tol AND DIST(o.LOCATION, d.LOCATION) <= location_tol … • Problém: Vyhledávání párování s jinou celkovou tolerancí je obtížné • Uživatel typicky řekne, že “tento atribut je hodně důležitý, ale na onom atributu mi zas tolik nezáleží” • Obtížně se zohledňují individuální preference klienta

  11. Co mají tyto problémy společné? • Hledají se prvky, které náleží do jisté množiny • Tato množina NEMÁ přesně definovanou operaci příslušení • V předchozích příkladech definována vágními termíny uvedenými v uvozovkách • Dobrý • Podobná • Odpovídající • Hodilo by se cosi jako “s pravděpodobností p prvek x náleží do množiny M”

  12. Pravděpodobnostní rozdělení • Typicky trapézoidní, lineární, normalizované • Uloženy ve Fuzzy Metaknowledge Base (FMB) • f(x) = 1 – prvek určitě patří do množiny • f(x) = 0 – prvek určitě nepatří do množiny • f(x) Î (0, 1) – prvek patří do množiny s pravděpodobností f(x)

  13. Fuzzy logika V případě diskrétního ohodnocení {0, 1} tyto operátory odpovídají k nim příslušným operátorům

  14. David Šinágl (2.část)

  15. GEFRED Generalized model of Fuzzy Relational Databases • Rozšíření klasického RDM

  16. Nepřesná data 1. Jednoduchá skalární hodnota (Size=Big, reprezentovaná pravděpodobnostním rozdělením 1/Big • Číselná hodnota (Age=28, reprezentovaná PR 1/28) • Množina vzájemně různých skalárních hodnot (Behavior={good,bad}, reprezentovaná {1/good,1/bad} • Množina vzájemně různých číselných hodnot (Age={20,21}, reprezentovaná {1/20,1/21} • Pravděpodobnostní rozdělení ve skalární doméně (Behavior={0.7/normal,0.6/bad})

  17. Nepřesná data • Pravděpodobnostní rozdělení ve číselné doméně (Age={0.4/23,1.0/24,0.8/25}) • Reálné číslo z [0,1] vyjadřující míru splňení (Quality=0.9) • Unknown • Undefined • NULL

  18. Unknown, Undefined,NULL

  19. Zobecněná fuzzy doménaGeneralized Fuzzy Domain Definice: Buď U doména, P(U) množina všech pravděpodobnostních rozdělení pro U. Pak definujme Zobecněnou fuzzy doménu D:

  20. Zobecněná fuzzy relace(Generalized Fuzzy Relation) Zobecněná fuzzy relace R je definována: R=(H,B) H: Množina trojic (atribut,doména,[kompatibilita]) H={(A1:D1[,C1]),..., (An:Dn[,Cn])} B: Množina n-tic, každá n-tice je složena z trojic (atribut,hodnota[,stupeň]) B={(A1:di1 [,ci1]), ... , (An:din [,cin])} i=1..m m..počet n-tic

  21. Primární klíč R je GFR, Definujme primární klíč K: který splňuje

  22. Manipulace s daty • Zobecněná fuzzy relační algebra • sjednocení, průnik, rozdíl, kartézský součin, projekce, spojení, selekce • operátory

  23. Sjednocení l=1..m, m.. Kardinalita sjednocení

  24. Průnik l=1..m, m.. Kardinalita sjednocení

  25. Operátory Porovnávací operátory jsou také předefinovány: Například possibly equal: p,p’ U a jejich funkce příslušnosti jsou f(p) a f(p’) U je univerzum. posEQ(p,p’):=sup min (f(p)(d),f(p’)(d)) d U

  26. Fuzzy SQL • Lingvistické proměnné • Fuzzy porovnávací operátory • Míra splnění • Funkce CDEG • Znak % • Fuzzy konstanty • Podmínka IS

  27. Lingvistické proměnné Pro fuzzy atributy • před proměnnou je znak $ • 2 typy lingvistické proměnné • Pro uspořadatelné množiny: Př: Můžeme nadefinovat $Short, $Normal, $Tall, $VeryTall na adtributu Height

  28. Lingvistické proměnné • Pro neuspořadatelné množiny Je definována míra podobnosti mezi každou dvojicí atributů

  29. Fuzzy porovnávací operátory

  30. Fuzzy porovnávací operátory

  31. Fuzzy porovnávací operátory

  32. Míra splněníFulfillment tresholds Pro každou podmínku je možné určit hodnotu při které požadujeme podmínku za splněnou. <podmínka> THOLD g

  33. Funkce CDEG • CDEG(<atribut>) Pro daný atribut zobrazí stupeň splňení podmínky v dotazu

  34. Znak % • Podobný význam jako * v SQL • Ve výsledku bude navíc použita funkce CDEG na každý fuzzy atribut

  35. Fuzzy konstanty • UNKNOWN • UNDEFINED • NULL • $[a,b,c,d] • $label • [n,m] • #n

  36. Podmínka IS <Fuzzy_Atribut> IS [NOT] (UNKNOWN | UNDEFINED | NULL )

  37. Július Štuller (3.část)

  38. Lingvistické proměnné • Zavedl Zadech (1965) • Příklad: Rychlost..lingvistická proměnná Pomalá, střední, rychlá..lingvistická hodnota Používá se 3-5 lingvistických hodnot, více jak 7 není člověk schopen rozlišit.

  39. Fuzzy množiny • Klasické množiny (známe) • x Î A, x Ï A • Fuzzy množin (zobecnění klasické teorie množin). • x Î A s mírou náležení 0.40 -pro reprezentaci lingvistických hodnot se používají fuzzy množiny. -obyčejně reprezentované jednoduchými funkcemi trojúhelníkové, lichoběžníkové (kvůli snadné práci s nimi).

  40. Fuzzy logika – praktické použití • Pračka, zaostřování ve fotoaparátu (používají fuzzy regulátory – př. koštěte) • Brzdný systém ABS v automobilech, automatická převodovka • Fuzzy databázový systém pro prohledávání databáze biologických materiálů

  41. Architektura - implementace • 3 možné typy přístupu: • Klasické (tzv. crisp) data & fuzzy dotazy (dotaz obsahuje fuzzy operátory) • Fuzzy data & klasické dotazy (v databázi jsou uloženy fuzzy údaje) • Fuzzy data & fuzzy dotazy Pozn.: subjektivní pohled vynecháme

  42. Klasické data & fuzzy dotazy • SELECT Jmeno, Vek FROM Osoby WHERE Vek = $mladý Pozn.: vrstva nad daty, která interpretuje mladý, snaha příbližit se vyjadřování v běžném jazyce Data Výsledek dotazu

  43. Fuzzy data & klasické dotazy(1) • SELECT * FROM Osoby WHERE Vek = ‘mladý’ Data Výsledek dotazu

  44. Fuzzy data & klasické dotazy(2) • SELECT * FROM Osoby WHERE Vek = ‘mladý’ Data Výsledek dotazu

  45. Fuzzy data & fuzzy dotazy • SELECT * FROM Osoby WHERE Vek = hodně $mladý Pozn.: hodně je operátor, který definuje mez Data Výsledek dotazu Pozn.: Normální atributy x fuzzy atributy

  46. Příklad Data FA..fuzzy atribut

  47. FRDB Architektura • FRDB a FSQL Server implementovány pomocí existujícího DBMS. • Důsledky: • Pomalejší systém • Snadná implementace • Ponechány veškeré výhody stávajícího DBMS • Jako příklad jsme vybrali ORACLE.

  48. FRDB Architektura • Data: • standardní databáze • FMB (Fuzzy Meta-knowledge Base) • FSQL Server • FSQL Klient

  49. FRDB Architektura FSQL Klient 1. FSQL dotaz 3. SQL dotaz 4. SQL dotaz 5. Výsledek Databáze Standardní Databáze FMB FSQL Server 2. Informace z FMB

  50. Data: standardní databáze • relační data + speciální formát pro uložení fuzzy atributu. • Typy fuzzy atributů: Typ 1: běžné hodnoty + některé lingvistické proměnné definované nad nimi (pomocí lichoběžníkových značek) => větší flexibilita, lze použít všechny konstanty z tabulky při formulaci dotazu (UNKNOWN, UNDEFINED, NULL, $[a,b,c,d], $label, [n,m], #n)

More Related