obsah modulu znalostní inženýrství - eLearning OPF SU
Transkript
Slezská univerzita v Opavě Obchodně podnikatelská fakulta v Karviné Znalostní inženýrství Jiří Ivánek, Robert Kempný, Vladimír Laš Karviná 2007 2 Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 3 OBSAH MODULU ZNALOSTNÍ INŽENÝRSTVÍ 1 ZNALOSTNÍ INŽENÝRSTVÍ A STRUKTURA EXPERTNÍCH SYSTÉMŮ ...........................11 1.1 Vznik znalostního inženýrství ....................................................................................................12 1.2 Pojem expertní systém ................................................................................................................15 1.3 Základní principy znalostního inženýrství ...............................................................................17 1.4 Typy aplikací expertních systémů .............................................................................................19 1.4.1 Příklady diagnostických expertních systémů .........................................................................20 1.5 Struktura expertního systému ...................................................................................................23 1.6 Znalosti.........................................................................................................................................25 1.7 Reprezentace znalostí .................................................................................................................26 1.8 Infereční mechanismus ...............................................................................................................29 1.9 Neurčitost.....................................................................................................................................30 2 PROSTŘEDÍ NEST...........................................................................................................................33 2.1 Historie NESTu ...........................................................................................................................34 2.1.1 SAK ........................................................................................................................................34 2.1.2 Vývoj NESTu .........................................................................................................................35 2.2 NEST ............................................................................................................................................35 2.2.1 Popis instalačního balíku a vlastní instalace...........................................................................35 2.2.2 Nastavení ................................................................................................................................38 2.2.3 NEST – základní možnosti a spuštění konzultace..................................................................40 2.2.4 Možnosti okna Dotaz a průběh konzultace.............................................................................43 2.2.5 Ukládání odpovědí..................................................................................................................46 2.2.6 Výsledky konzultace...............................................................................................................47 3 STRUKTURA BÁZE ZNALOSTÍ A INFERENČNÍ MECHANIZMUS V NEST .....................51 3.1 NEST editor .................................................................................................................................52 3.1.1 Zadávání nových prvků báze znalostí ....................................................................................54 3.2 Reprezentace znalostí .................................................................................................................57 3.2.1 Atributy a výroky....................................................................................................................57 3.2.2 Pravidla ...................................................................................................................................61 3.2.3 Kontexty .................................................................................................................................63 3.2.4 Integritní omezení...................................................................................................................63 3.3 Inferenční mechanismus.............................................................................................................63 3.3.1 Odvozování v síti pravidel......................................................................................................63 4 NEURČITOST V NEST....................................................................................................................67 4.1 Práce s neurčitostí .......................................................................................................................68 4.2 Funkce pro práci s neurčitostí ...................................................................................................68 4.2.1 Funkce NEG ...........................................................................................................................68 4.2.2 Funkce CONJ .........................................................................................................................68 4.2.3 Funkce DISJ ...........................................................................................................................69 4.2.4 Funkce CTR............................................................................................................................69 4.2.5 Funkce GLOB.........................................................................................................................69 4.2.6 Funkce NORM .......................................................................................................................70 4.2.7 Funkce IMP ............................................................................................................................70 Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 4 4.3 Příklad výpočtu ...........................................................................................................................71 4.4 Srovnání přístupů práce s neurčitostí v NEST.........................................................................73 5 APLIKACE V NEST .........................................................................................................................76 5.1 Výběr problému a grafická reprezentace .................................................................................77 5.2 Založení nové báze ......................................................................................................................82 5.2.1 Volby báze znalostí ................................................................................................................83 5.3 Konstrukce báze znalostí............................................................................................................85 5.3.1 Zadávání atributů a jejich výroků ...........................................................................................85 5.3.2 Tvorba pravidel.......................................................................................................................88 5.4 Odlaďování báze .........................................................................................................................90 5.5 Tvorba dokumentace ..................................................................................................................92 6 BÁZE ZNALOSTÍ OPTCS...............................................................................................................94 6.1 OPTCS – výroky .........................................................................................................................97 6.2 OPTCS – kontexty ......................................................................................................................99 6.3 OPTCS – pravidla.......................................................................................................................99 7 VYUŽITÍ ZÍSKÁVÁNÍ ZNALOSTÍ Z DAT – PŘÍPADOVÁ STUDIECHYBA! ZÁLOŽKA NENÍ DEFIN 7.1 Projekt STULONG ...................................................................................................................104 7.1.1 O projektu STULONG .........................................................................................................109 7.1.2 NEST v projektu STULONG ...............................................................................................111 8 SPECIFIKACE ZADÁNÍ SEMINÁRNÍ PRÁCE ........................................................................114 8.1 Báze znalostí ..............................................................................................................................114 8.2 Ostatní náležitosti......................................................................................................................115 8.3 Obhajoba....................................................................................................................................115 Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 5 RYCHLÝ NÁHLED DO PROBLEMATIKY MODULU ZNALOSTNÍ INŽENÝRSTVÍ Kapitolu 1 Znalostní inženýrství a struktura expertních systémů započneme krátkým historickým exkurzem a uvedením milníků spjatých se zrodem a vývojem znalostního inženýrství. Dále definujeme expertní systémy a uvedeme jejich nejdůležitější vlastnosti a principy, které je odlišují od klasických informačních systémů. Objasníme si, které typy úloh je vhodné řešit nasazením expertního systému. Vysvětlíme si pojem inference, inferenční mechanizmus a s tím spjatou práci se znalostmi, které, jak si ukážeme, můžeme reprezentovat pomocí produkčních pravidel. Ukážeme si také, jak tato pravidla graficky znázornit. A na konci kapitoly si objasníme pojem neurčitosti, jenž je se znalostmi a expertními systémy fundamentálně spjatý. První část kapitoly 2 Prostředí NEST je věnována krátkému nástinu vývoje programu NEST, kterou začínáme zmínkou o jeho předchůdci - systému SAK. 1. kapitola 2. kapitola Druhá část obsahující velké množství ilustračních a instruktážních obrázků je zaměřena k získání základních praktických dovedností spojených s instalací balíku NEST a ovládání programu NEST. Dozvíte se o nastaveních programu NEST, možnostech výstupu během konzultace i po jejím dokončení. Ukážeme si jak číst výsledky konzultací a naučíme se je exportovat do různých typů souborů. V prvé části kapitoly 3 Struktura báze znalostí a inferenční mechanizmus v NEST si nejprve v krátkosti představíme nabídky, jimiž ovládáme NEST editor. 3. kapitola V druhé části se budeme zabývat jednotlivými atributy báze znalostí. Vysvětlíme pojmy atribut a výrok. Specifikujeme jednotlivé typy atributů a rozdělíme si výroky dle jejich postavení v rámci báze znalostí. Ukážeme si jaký je formální zápis pravidla v NEST a představíme si typy pravidel. V poslední části kapitoly se dozvíte o způsobu odvozování a prohledávání báze znalostí inferenčním mechanizmem v systému NEST. Kapitola 4 Neurčitost v NEST je dělena na dvě logické části. V první budou představeny funkce pro zpracování neurčitosti standardním přístupem systému NEST. Ve druhé části si pak na praktickém příkladu ukážeme výpočet neurčitosti. A konečně si ukážeme jak postupovat při vlastní konzultaci, chceme-li, aby NEST zpracovával neurčitost jiným než standardním způsobem. 4. kapitola Kapitola 5 Aplikace v NEST bude ryze praktická. Pokusíme si nastínit, jak vybrat vhodné téma (např. pro seminární práci), kterak postupovat při samotném uchopení problému a zorientování se, nalezení atributů, započetí vlastní práce v NEST editoru a tvorby pravidel, dále možnostem při ladění báze znalostí a možností výstupu použitelných pro dokumentační účely. 5. kapitola Kapitola bude tedy zaměřena na získání ryze praktických znalostí a dovedností za pomocí názorných ukázek. Kapitola 6 Báze znalostí OPTCS. Báze znalostí OPTCS je novější verzí báze znalostí Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 6. kapitola 6 OPTIMALI pro výběr vhodné matematické metody rozhodování, která byla původně vytvořena v roce 1983 a realizována v konzultačním systému SAK. Popíšeme stručně vznik a strukturu této báze znalostí, která bude dokumentována jejím výpisem ze systému NEST. Kapitola 7 Expertní systémy a získávání znalostí z dat. Získávání znalostí z dat neboli datamining (často také dobývání či dolování znalostí z databází) je poměrně nová disciplína, která by si jistě zasloužila minimálně vlastní samostatný kurz. Náš kurz se zabývá především znalostním inženýrstvím a problematika získávání znalostí sice s tématem úzce souvisí, nicméně přeci jen překračuje užší rámec kurzu. 7. kapitola Závěrečná kapitola jak již její název Specifikace zadání seminární práce napovídá se bude zabývat specifikací zadání, podmínek vypracování a podmínek obhajoby seminární práce. Studenti dostanou informace o požadovaných parametrech báze znalostí, dokumentace a dalších přikládaných souborů i způsobu a časovém vymezení odevzdání a dále informace vztahující se k obhajobě práce a zakončení kurzu. 8. kapitola Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 7 ÚVODEM MODULU ZNALOSTNÍ INŽENÝRSTVÍ Autoři opory Znalostní inženýrství, která by se měla stát základním studijním materiálem především pro navazující magisterské studium na Obchodně podnikatelské fakultě v Karviné Slezské univerzity v Opavě a také základním stavebním kamenem pro vytvoření elektronického stejnojmenného kurzu pro studenty kombinovaného studia formou elearningu, stáli před fundamentální otázkou, jak přistoupit k vlastnímu obsahu opory. Rozhodli se jít cestou, která byla ovlivněna právě určením opory pro „elearningové“ studenty ekonomické fakulty, tedy studentům, kteří jsou typem studia odkázáni na samostudium a oborovým zaměřením orientováni na jiné oblasti než informační technologie. Proto se autoři nezabývají dlouze a hluboce, za jiných okolností zcela jistě neopominutelnou, teorií a historií oboru. Teorie je předkládána takříkajíc v kostce a v míře nezbytně nutné tak, aby pokryla témata vymezená akreditací předmětu, s akcentem na vysvětlení jednoho postupu či metody detailněji než uváděním alternativ plytčeji. Autoři jsou také přesvědčeni, že praktickým seznámením studentů se systémem, v němž lze vytvářet produkty znalostního inženýrství (v našem případě prázdný znalostní systém NEST), v němž budou samostatně vytvářet vlastní semestrální projekt, jenž budou před kolegiem svých kolegů veřejně demonstrovat a obhajovat, lze dosáhnout dostatečné seznámení se s disciplínou samotnou i napomoci vysvětlit a pochopit některé z principů, přístupů a metod znalostního inženýrství. Navíc tato praktická zkušenost jistě zanechá trvalejší poznatek o možnostech využití a ohodnocení pracnosti zpracovávaných projektů i pro budoucí praxi studentů. Z výše uváděných důvodů se opora zdá býti někdy až detailně návodná (což vyplývá z několikaleté zkušenosti autorů se softwarovými školeními a zhodnocením praktických počítačových zkušeností a dovedností studentů násobené ještě objektivními specifiky elearningového studia). V opoře samotné je na každém místě, kde to bylo možné nebo vhodné, vždy vysvětlovaný problém ilustrován na popisu jeho řešení v NEST či NEST editor, který je mnohdy rozšířen i o ukázky (screen shoty) z těchto programů. Dále se autoři snažili text strukturovat a využívat nástroje distančního textu tak, aby studenta upozornili na důležité momenty studia i práce při tvorbě báze znalostí ať již prostým zvýrazňováním textu, uváděním marginálií na okraji opory a především používáním shrnutí , průvodců studiem , oddílů pro zapamatování atd. Jak již bylo naznačeno, teorie v opoře sice nechybí, ale je uváděna a vysvětlována stroze ovšem s bohatým odkazováním na další studijní zdroje především nacházejících se volně přístupné zdroje internetu (WIKIPEDIA), tyto odkazy jsou v elektronickém textu vypsány modrým fontem s podtržením (viz odkaz v aktuálním odstavci) a po kliknutí myší (v případě PDF) nebo po kliknutí myší a současném stisku klávesy CRTL (MS-word) se daný odkaz otevře automaticky v okně internetového prohlížeče. V opoře jsou také uváděny korespondenční úkoly , které by měly být zakomponovány následně do vlastního elektronického kurzu. Předpokládá se, že poslouží studentům k postupnému zvládnutí vypracování semestrální práce a kantorovi v získání přehledu nad procesem tvorby báze a porozumění textu studentem a možnosti usměrnění jeho aktivit tak, aby student bez zbytečných komplikací byl schopen práci samostatně vypra- Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 8 covat. Nepředpokládá se tedy známkování či bodování těchto dílčích úkolů, ale spíše je očekáván případný dialog studenta s tutorem (kantorem) nad odevzdaným řešením (pokud toto řešení nebude vyhovovat požadavkům) a následné odsouhlasení. Na tomto místě je potřeba poděkovat autorům programu NEST, že umožnili využívat jejich systém k studijním a demonstrativním účelům studenty naší fakulty. Nyní již nezbývá popřát klidné a nerušené studium. Kolektiv autorů. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 9 CÍL MODULU ZNALOSTNÍ INŽENÝRSTVÍ Po úspěšném a aktivním absolvování tohoto MODULU Budete umět: Budete umět • Objasnit základní pojmy oboru znalostního inženýrství. • Disciplínu znalostní inženýrství zařadit a uvést příbuzné disciplíny. • Provádět konzultace v systému NEST a interpretovat výsledky a vysvětlit mechanizmus fungování programu. • Postupovat při vlastním výběru tématu a jeho analýze tak, aby jste mohli pracovat na vlastním projektu. • Vytvořit vlastní projekt v systému NEST, tedy založit novu bázi znalostí, zadat atributy, výroky, formálně zapsat pravidla a bázi odladit. • Využívat možností systému NEST pro tvorbu dokumentace k projektu, případně pro dokumentaci či obhajobu způsobu řešení vlastního projektu. Získáte: Získáte • Informace o zrodu a vývoji znalostního inženýrství. • Představu o struktuře expertního systému a báze znalostí a její částech. • Přehled o vývoji systému NEST. • Potřebné informace o práci s neurčitostí, přístupech při zpracování neurčitosti a funkcích, které s neurčitostí pracují. • Praktické zkušenosti s ovládáním systémů NEST a NEST editor, mimo jiné v rámci vypracovávání semestrální práce. • Informace o fungujícím projektu STULONG realizovaném pomocí systému NEST. • Seznam požadovaných podmínek a parametrů na vypracování a obhájení semestrální práce. Budete schopni: • Objasnit odlišnosti přístupu znalostního inženýrství a klasických informačních systémů k zpracování projektů. • Vysvětlit princip práce inferenčního mechanizmu a vysvětlit jakým způsobem systém NEST vypočítává výsledné hodnoty vah. • Účastnit se praktických projektů aplikace znalostního inženýrství. • Popsat účel, cíle a strukturu báze znalostí OPTCS. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Budete schopni 10 ČAS POTŘEBNÝ KE STUDIU Čas potřebný k prostudování předkládané opory odhadujeme na cca 17 hodin. Tento odhad může být samozřejmě značně ovlivněn především vaší individuální pečlivostí a potřebou dalšího studování rozšiřujících odkazů a ostatní literatury, ale především činností spojenou s praktickým zkoušením si uváděných postupů a seznamováním se s programu systému NEST. PRŮVODCE STUDIEM 1 Na úvodních stránkách jste se dozvěděli, čím se předkládaná opora bude zhruba zabývat. Znáte vytyčené cíle, jichž by mělo být dosaženo, a znáte hrubý časový rámec pro prostudování, proto nyní již přistupme k vlastnímu výkalu nejprve seznámením se s historií disciplíny znalostní inženýrství a objasněním základních pojmů, s nimiž se můžete setkat. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 11 1 ZNALOSTNÍ INŽENÝRSTVÍ A STRUKTURA EXPERTNÍCH SYSTÉMŮ RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY ZNALOSTNÍ INŽENÝRSTVÍ A STRUKTURA EXPERTNÍCH SYSTÉMŮ Kapitolu započneme krátkým historickým exkurzem a uvedením milníků spjatých se zrodem a vývojem znalostního inženýrství. Dále definujeme expertní systémy a uvedeme jejich nejdůležitější vlastnosti a principy, které je odlišují od klasických informačních systémů. Objasníme si které typy úloh je vhodné řešit nasazením expertního systému. Vysvětlíme si pojem inference, inferenční mechanizmus a s tím spjatou práci se znalostmi, které, jak si ukážeme, můžeme reprezentovat pomocí produkčních pravidel. Ukážeme si také jak tato pravidla graficky znázornit. A na konci kapitoly si objasníme pojem neurčitosti, jenž je se znalostmi a expertními systémy fundamentálně spjatý. Rychlý náhled CÍLE KAPITOLY ZNALOSTNÍ INŽENÝRSTVÍ A STRUKTURA EXPERTNÍCH SYSTÉMŮ Po úspěšném a aktivním absolvování této KAPITOLY Budete umět: Budete umět • Objasnit pojem znalostní inženýrství. • Definovat expertní systém a uvést jeho charakteristické rysy. • Posoudit zda-li je předkládaný problém možný nebo vhodný k řešení pomocí expertního systému. • Reprezentovat znalosti pomocí výrokové logiky a tyto graficky znázornit. • Vysvětlit pojem neurčitost. Získáte: Získáte • Nejzákladnější informace o zrodu a vývoji znalostního inženýrství. • Přehled o metodách inference. • Představu o struktuře expertního systému Budete schopni: • Vysvětlit principy znalostního inženýrství, jimiž se liší od klasických informačních systémů. • Vyjmenovat a vysvětlit charakteristické rysy expertních systémů. • Odlišit pojmy data, informace a znalosti. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Budete schopni 12 ČAS POTŘEBNÝ KE STUDIU Celkový doporučený čas k prostudování KAPITOLY je cca 120 minut. KLÍČOVÁ SLOVA KAPITOLY ZNALOSTNÍ INŽENÝRSTVÍ A STRUKTURA EXPERTNÍCH SYSTÉMŮ Znalostní inženýrství, umělá inteligence (artificial inteligence, AI); expertní systém, znalostní inženýr, inferenční mechanizmus, báze znalostí, reprezentace znalostí, charakteristické rysy expertních systémů, typy aplikací, diagnostické a generativní ES, MYCIN, PROSPECTOR, FinCEN, data, informace, znalost, modularita znalostí, produkční pravidla, grafické znázornění pravidel, metody inference, typy prohledávání báze znalostí, neurčitost v datech a znalostech. Klíčová slova DEFINICE 1-1 ZNALOSTNÍ INŽENÝRSTÍ Výstižně definuje znalostní inženýrství A.G.Baker (1985), jako metodologii umožňující, aby znalosti byly dány do vhodné použitelné formy. Poznamenává v té souvislosti, že pro informaci jsou synonymy evidence, poznámky, detaily, výsledky, tabulky, kdežto pro znalost jsou to poznání, učení, erudice, zkušenost. Znalostní inženýrství Znalostní inženýrství je aplikovaná disciplína oboru umělá inteligence, která se zabývá získáváním, zpracováním, reprezentací a automatizovaným využíváním znalostí. 1.1 Vznik znalostního inženýrství Konstituování znalostního inženýrství a rozvoj jeho aplikací bylo vyústěním jistých procesů ve výzkumu umělé inteligence, která se jako samostatný vědní obor začala formovat v padesátých letech dvacátého století. Za počátek lze pokládat práci A. M. Turinga1 z roku 1950, v níž jsou blíže vymezeny prostředky a cíle umělé inteligence (artificial intelligence AI). Inteligenci stroje navrhuje Turing testovat imitační hrou: úkolem stroje bude v komunikaci s experimentátorem (pomocí dálnopisu) předstírat, že je člověk. Odtud vychází známá Minského2 definice, v níž je umělá inteligence vymezena jako věda, jejímž úkolem je naučit stroje, aby dělaly věci, které vyžadují inteligenci, jsou-li prováděny člověkem. ČÁST PRO ZÁJEMCE 1 UMĚLÁ INTELIGENCE Osoba Manažer Otázka K čemu to mohu využít? 1 Alan Mathison Turing, (1912 – 1954) http://en.wikipedia.org/wiki/Alan_Turing Marvin Minsky (1927) http://en.wikipedia.org/wiki/Marvin_Minsky 2 Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Zrod AI 13 Technik Jak nejlépe to mohu implementovat? Výzkumník Jak to mohu rozšířit? Jak mi to může pomoci? Uživatel Překoná to mé problémy a výdaje? Jak je to výhodné? Tabulka 1-1: Různé pohledy na technologii expertních systémů. Zdroj: [GIA93]. První výsledky výzkumu v 50. letech vedly k velkému nadšení a optimismu. Newell3, Shaw a Simon4 sestrojili v roce 1956 Logic Theorist, program, který automaticky dokázal převážnou část vět v Principia Mathematica5. Jejich General Problem Solver (195759) byl po řadu let nejsložitějším a nejpodrobnějším modelem lidského myšlení, který kdy byl zkonstruován a ověřován. Simonovy práce z této doby, týkající se racionality, rozhodování a řešení problémů (adresované zejména ekonomům a psychologům), byly později (v roce 1978) oceněny Nobelovou cenou. Zdálo se, že větší a rychlejší počítače brzy umožní již vyvinutými obecnými postupy simulovat většinu mentálních aktivit člověka. 50. léta 20. století V šedesátých letech došlo ke zpomalení vývoje a ke zjištění, že obecné programy nestačí pro řešení skutečně reálných úloh. Postupně se ukázalo, že stroj k řešení úlohy potřebuje znát to, co o problému ví člověk, který jej řeší. V kostce řečeno, člověka expertem nedělá jen vysoké IQ, ale hlavně specializované znalosti, „know-how“. Zde je možno sledovat počátek linie, která vedla ke vzniku znalostního inženýrství. 60. léta 20. století V sedmdesátých letech se v oboru umělá inteligence výrazně odlišily tři podobory: 70. léta 20. století • zpracování přirozeného jazyka, • robotika (včetně strojového vidění), • znalostní inženýrství. Toto rozdělení odpovídá třem typů lidských inteligentních aktivit: komunikace, manipulace (a rozpoznávání), řešení problémů (usuzování). Názvy podoborů a větší specializace výzkumu v umělé inteligenci odpovídají také nové situaci, do níž se umělá inteligence propracovala: stala se předmětem komerčních a státních projektů. Inteligentní aktivity Motivace a zaměření výzkumníků v umělé inteligenci jsou často velmi odlišné. První, inženýrský směr, se orientuje na vytvoření inteligentních systémů či metod a technik, které jsou k tomu potřebné. Neomezuje se tedy pouze na simulaci lidských technik řešení úloh. Druhý, psychologický směr, se orientuje na vytvoření umělých modelů lidských intelektuálních činností. Obecné studium a formalizaci intelektuálních mechanismů nezávisle na jejich realizaci lze chápat zvlášť jako třetí, filosoficko-matematický Směry výzkumů 3 Allen Newell (1927 - 1992) http://en.wikipedia.org/wiki/Alan_Newell Herbert Alexander Simon ( 1916 – 2001) http://en.wikipedia.org/wiki/Herbert_Simon 5 Principia Mathematica třísvazkové dílo A. N. Whitehead a jeho žákem B. Russellem, ve kterém se pokusili upevnit a sjednotit logické základy matematiky. 4 Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 14 směr. Všechny podobory, směry a koncepce v umělé inteligenci se vzájemně prolínají v konstrukci integrálních systémů, vybavených více schopnostmi. Zřetelně se to projevuje v robotice a v projektech komplexních informačních systémů. Výzkum v umělé inteligenci souvisí též s řadou dalších disciplin, jako je např. kybernetika, psychologie, bionika, teorie řízení, lingvistika, filozofie, ... Významná je spjatost s rozvojem počítačů a vůbec technických prostředků zpracování informací na jedné straně a s matematickou informatikou (teoretickou vědou o počítačích) na druhé straně. Lze říci, že výzkum umělé inteligence se stává vůdčím faktorem v celé informatice a informačním průmyslu. Vztah AI a ostatních disciplín První velkou aplikací umělé inteligence na problémy jiné než hraní her a řešení hlavolamů byl program DENDRAL (1971). Systém DENDRAL byl určen pro identifikaci struktury molekul . Byl vyvíjen déle než deset let za účasti řady odborníků a v oblasti své specializace překonal své tvůrce a další specialisty. DENDRAL Během vývoje systému DENDRAL se v polovině 60. let stal zjevným význam, který pro konstrukci prakticky použitelných inteligentních systémů, má zabudování speciálních znalostí z oboru jejich aplikace. V prvním souhrnu výsledků projektu DENDRAL bylo zdůrazněno, že člověk je schopen dobře řešit pouze úlohy z oblasti, v nichž je specialistou – v ostatních oblastech mu chybí příslušné znalosti. Z tohoto hlediska je expert člověk se znalostmi specialisty v daném oboru a se speciálními metodami a heuristikami. Expert K ZAPAMATOVÁNÍ 1 EXPERT – ZNALOSTNÍ INŽENÝR Expert je člověk se znalostmi specialisty v daném oboru a se speciálními metodami a heuristikami. Naproti tomu znalostní inženýr6 je osoba, která se v daném oboru nemusí orientovat do hloubky, nicméně umí znalosti nalézt (z literatury) nebo je umí od experta získat, umí nalézt vazby mezi znalostmi experta a také znalosti zapsat, tj. vytvořit bázi znalostí. Postupně došlo k posunu v paradigmatu výzkumu umělé inteligence: za hlavní začala být považována speciální, problémově orientovaná znalost a pozornost se soustředila na hledání metod a technik, jak tuto znalost reprezentovat tak, aby mohla být efektivně využívána. Během 70. let dvacátého století byla na tomto principu vybudována řada úspěšných aplikací, tzv. expertních systémů a posléze se pro tento směr výzkumů a aplikací umělé inteligence začal používat název znalostní inženýrství. Domníváme se, že znalostní inženýrství je možno definovat v kontextu informačního inženýrství – disciplíny, která se zabývá zpracováním informací do použitelné podoby. Znalostní inženýrství se pak vyděluje jako část informačního inženýrství, soustřeďující 6 Srovnej knowledge engineer na wikipedia.org Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Vymezení disciplíny znalostního inže- 15 se na informace o tom, jak dospívat k novým informacím, tj. informace o usuzování v konkrétních situacích. Tyto informace jsou jednak věcné (znalosti), jednak logické (inferenční procedury). Část znalostního inženýrství, která se zabývá speciálně inferenčními mechanismy, lze nazvat logické inženýrství. nýrství Praktickým výsledkem znalostního inženýrství jsou expertní systémy – programy poskytující erudované závěry na základě modelu znalostí. 1.2 Pojem expertní systém DEFINICE 1-2 EXPERTNÍ SYSTÉM • Podle E. Feigenbauma7 je expertní systém inteligentní počítačový program, který užívá znalosti a inferenční procedury k řešení problémů, které jsou natolik obtížné, že pro své řešení vyžadují významnou lidskou expertízu. Expertní systém • Expertní systém je počítačový program simulující rozhodovací činnost lidského experta při řešení složitých úloh a využívající vhodně zakódovaných speciálních znalostí převzatých od experta s cílem dosáhnout ve zvolené problémové oblasti kvality rozhodování na úrovni experta. • Expertní systém je systém na řešení takových problémů, který by lidský expert v dané oblasti dokázal vyřešit po telefonu. Expertní systémy se objevily v 70. letech 20. století, kdy se vývoj umělé inteligence zaměřoval převážně na reprezentování a zpracování znalostí získaných od experta. Jsou tedy jedním z oborů umělé inteligence, kde kromě nich můžeme nalézt robotiku, porozumění přirozenému jazyku a mluvené řeči, neuronové sítě a další. Dnes již mnoho lidí považuje expertní systémy za zastaralé a překonané. Toto tvrzení vychází především z vědeckých kruhů, neboť principy expertních systémů byly již natolik důkladně prozkoumány, že nový objev v tomto směru je jen velmi málo pravděpodobný a úsilí vědy se proto obrací jiným směrem. V podnikové praxi jsou expertní systémy využívány spíše jako aplikace drobnějšího charakteru uvnitř podniků. Nejsou určeny pro „nahrazení“ experta v dané oblasti, ale jako „pomocník“ experta či manažera. Můžeme vidět aplikace pro „vyhledávání vhodného pracovníka s příslušnými znalostmi“ či „kontrolu určitého procesu ve firmě“ Podniková praxe Expertní systémy tedy často slouží pro nalezení rozhodnutí, ke kterému by uživatel dospěl sám za delší čas, nebo jako „seznam“ navazujících procesů, aby uživatel na něco nezapomněl. Upřednostňování expertních systémů před jinými, mnohdy i „inteligentnějšími“ systémy, může být způsobeno tím, že jsou často „průhlednější“ než většina jiných „inteligentních“ systémů. To znamená, že uživatel ví, proč se systém rozhodl právě takto (buďto uživatel sám naplnil systém příslušnými pravidly, nebo si od systému vyžádal příslušné vysvětlení) a navíc má možnost si systém upravit dle svých představ. Transparentnost 7 Edward Albert Feigenbaum http://en.wikipedia.org/wiki/Edward_Feigenbaum Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 16 K ZAPAMATOVÁNÍ 2 EXPERTNÍ SYSTÉMY Expertní systémy můžeme považovat za informační systémy, které podle zadání automaticky usuzují v konkrétní problémové oblasti a poskytují své závěry – nové informace týkající se daného problému. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 17 1.3 Základní principy znalostního inženýrství Znalostní systém je programový systém, který se od běžných programů liší způsobem, jakým jsou v něm znalosti organizovány, začleněny a využívány a způsobem interakce s uživatelem. Na rozdíl od většiny konvenčních programů, ve kterých jsou znalosti implicitně roztroušeny v programu, je rozhodující většina znalostí důležitých pro řešení problémů daného typu v rámci znalostního systému soustředěna explicitně v samostatně modulární struktuře – bázi znalostí. Báze znalostí K ZAPAMATOVÁNÍ 3 PRINCIP EXPERTNÍCH SYSTÉMŮ Nejdůležitějším principem expertních systémů je tak oddělení modelu znalostí od způsobu jejich používání. Což znamená, že při doplňování a modifikacích báze znalostí není nutno modifikovat ostatní části znalostního systému. Báze znalostí obsahuje faktické a heuristické8 znalosti o dané oblasti. Inferenční mechanismus pracuje s bází znalostí při řešení konkrétní úlohy. Princip expertních systémů Faktické znalosti jsou různé údaje, poznatky, výsledky ... Tyto znalosti obvykle expert předává veřejnosti pomocí odborných publikací a vystoupení. S jádrem faktických znalostí některého oboru jsou seznamováni studenti v klasické výuce. Faktické znalosti Heuristické znalosti jsou různé pracovní postupy, pravidla úsudků a odhadů, způsoby odhadů, způsoby odhalování a vynalézání nového ... Heuristické znalosti jsou zpravidla zkušenostní povahy, jsou nejisté. Vzhledem k tomu zůstávají soukromé a jen zřídka je umí expert formulovat a předat veřejnosti. Heuristické znalosti Báze znalostí určuje do značné míry kvalitu celého expertního systému. Potvrdilo se, že většina podstatných znalostí je heuristické povahy a expert sám často není schopen tyto znalosti explikovat9. Pro získání znalostí je proto nutná zdlouhavá práce znalostního inženýra s dotyčným expertem. Východiskem je obvykle pečlivá analýza mnoha řešených problémů. Kvalita expertního systému Strastiplnou týmovou prací experta a znalostního inženýra lze extrahovat reálné znalosti, které nejsou součástí učebnic, ale jsou přitom rozhodující pro činnost experta. Explikace těchto heuristických znalostí je sama o sobě významným výsledkem aplikace znalostního inženýrství. K ZAPAMATOVÁNÍ 4 REPREZENTACE ZNALOSTÍ Pro reprezentaci znalostí byla v umělé inteligenci vytvořena řada prostředků. Kromě logických kalkulů se používají např. sémantické sítě, tzv. rámce, gramatiky atd. V ex8 Reprezentace znalostí Heuristika je pojem pocházející z řečtiny (eúrískó, εύρίσκω, čes. sledovat, hledat něco, snažit se nalézt) a znamenající v přeneseném smyslu „umění objevovat“. Více viz http://cs.wikipedia.org/wiki/Heuristika. 9 Vysvětlit, objasnit. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 18 pertních systémech bývá báze znalostí vyjádřena nejčastěji systémem pravidel typu situace – akce. Situace je vystižena kombinací podmínek na okamžitý stav údajů a poznatků o řešené úloze, akce pak tyto poznatky doplňuje a mění. Vyjádření podmínek akcí se musí opírat o jistou datovou strukturu odpovídající základním pojmům a poznatkům v dané oblasti. Pravidla pak vedou od rozpoznání stavu této databáze k její modifikaci. Jednotlivá pravidla jsou vyjádřením jakýchsi atomických (na zvolené úrovni modelování) znalostí. Granularita báze znalostí musí odpovídat dané problémové oblasti: příliš rozdrobená znalost je těžko programově zvládnutelná a špatně pochopitelná, v opačném případě velká agregace systému nedovoluje dostatečnou diskriminaci jevů. Reprezentace báze znalostí jako systému jednoduchých heuristik má výhodu ve snadné interpretaci a modifikaci. Při ladění systému lze pružně bázi znalostí doplňovat, vypouštět některá pravidla nebo je měnit. Expertní systém je tvořen konkrétní bází znalostí a inferenčním mechanismem. Tento mechanismus a použitá reprezentace znalostí musí být založeny na některé teorii usuzování a řešení úloh dané problémové oblasti (daným expertem). Jedině tak může expertní systém simulovat příslušnou expertní činnost. Inferenční mechanizmus K ZAPAMATOVÁNÍ 5 VYSVĚTLOVACÍ SCHOPNOST Aby bylo možno přijmout závěry expertního systému, je nutné vědět, jak byly získány. Expertní systémy jsou proto vybaveny možnostmi informovat o průběhu inference a jednotlivé kroky podrobně objasnit. Vysvětlení předkládají ve formě vhodné pro uživatele a v rozsahu, který si uživatel určí. Vysvětlovací schopnost systému je nezbytná též při ladění a modifikacích báze znalostí. Za charakteristické rysy expertních systémů se tedy považují: Vysvětlovací schopnost Rysy • Oddělení znalostí a mechanismu pro jejich využívání. Znalosti experta jsou uloženy v bázi znalostí odděleně od inferenčního mechanismu. To umožňuje vytvářet problémově nezávislé (prázdné) expertní systémy (expert system shells), kde jeden inferenční mechanismus může pracovat s různými bázemi znalostí, obdobně, jako lze stejným způsobem místo „klíče k určování bonity klienta“ procházet např. „klíč k určování hub“ nebo „klíč k určování prince“. Oddělení znalostí od • Neurčitost v bázi znalostí. V bázi znalostí jsou uloženy nejen exaktně dokázané znalosti, ale i nejrůznější heuristiky, které se např. expertovi osvědčily při rozhodování za dlouhou dobu jeho praxe. Zde se pak objevují pojmy jako „často“, „většinou“, které je potřeba kvantifikovat (např. v nějaké škále od „určitě ano“ přes „nevím“ až k „určitě ne“). Takovou znalostí s neurčitostí může například být „jestliže má pacient teplotu, obvykle je mu předepsán acylpyrin“; pacient totiž „často“ má teplotu v důsledku chřipky, ale „někdy“ může mít teplotu, protože je v poúrazovém šoku. Neurčitost v bázi Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 19 • Neurčitost v datech. Konkrétní data o daném případu bývají zatížena neurčitostí způsobenou nepřesně určenými hodnotami nebo subjektivním pohledem uživatele (odpovědi na míru jistoty v nějakém tvrzení). Může to být například odpověď „snad ano“ na dotaz, zda má pacient teplotu. Neurčitost v datech • Dialogový režim. Expertní systémy jsou nejčastěji konstruovány jako tzv. konzultační systémy. Uživatel komunikuje se systémem způsobem „dotaz systému – odpověď uživatele“ obdobně, jako s lidským expertem. Tento systém práce byl do značné míry usnadněn nástupem osobních počítačů a s tím souvisejícím přechodem od dávkového zpracování na sálech výpočetních středisek k interaktivnímu zpracování přímo na pracovním stole uživatele. Dialogový režim • Vysvětlovací činnost. Aby se zvýšila důvěra uživatelů v závěry a doporučení expertního systému, měl by systém poskytovat vysvětlení svého uvažování. Obvykle systém vysvětluje právě položený dotaz, znalosti relevantní k nějakému tvrzení, právě zkoumanou cílovou hypotézu, právě probíhající odvozování. Vysvětlovací činnost • Modularita a transparentnost báze znalostí. Pro účinnost expertního systému je rozhodující kvalita báze znalostí. Modularita umožňuje snadnou aktualizaci báze znalostí, transparentnost umožňuje její snadnou čitelnost, srozumitelnost a kontrolu. Samotné vytváření báze znalostí probíhá iterativním způsobem při opakovaných konzultacích experta z dané problémové oblasti s odborníkem na tvorbu bází, tzv. znalostním inženýrem, kdy je báze znalostí postupně „laděna“, až chování expertního systému (alespoň při konzultaci pro vzorové příklady) odpovídá představám experta. Modularita a transparentnost Jiné druhy charakteristik, které bychom mohli spíše označit jako požadavky, uvádí: Další rysy • Vysoká spolehlivost – systém musí být schopen odpovědět na stejné nebo vyšší úrovni než lidský expert. • Přiměřená doba odezvy – systém musí odpovídat v přijatelném čase. Vyřeší-li expert problém za hodinu, je systém podávající stejnou odpověď za rok nepoužitelný. • Stabilita – systém musí být stabilní a nehroutit se, jinak nebude používán. • Srozumitelnost – systém musí být schopný podávat vysvětlení o jednotlivých krocích odvozování, jinak bude nesrozumitelný a stane se z něj „černá skříňka“. • Flexibilita – systém musí jednoduše umožňovat přidávání, měnění a mazání znalostí. 1.4 Typy aplikací expertních systémů Podle charakteru řešených úloh se aplikace dají rozdělit na: • diagnózu – proces nalezení chyb či chybných funkcí systému (živého nebo neživého); • interpretaci – analýza dat s cílem určení jejich významu; Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Podle charakteru řešených úloh 20 • monitorování – průběžná (on line) interpretace signálů a dat a určení okamžiku, kdy je nutná intervence; • plánování – nalezení posloupnosti akcí k dosažení cíle; • návrh (design) – vytváření konfigurací objektů vyhovujících daným podmínkám; • predikce – předpověď běhu budoucích událostí na základě modelu minulosti a současnosti. Celkově lze expertní systémy (ES) rozdělit na dvě základní skupiny: diagnostické a generativní. • Diagnostické expertní systémy zahrnují systémy, které slouží výběru jedné z předem daného pevného seznamu možností. Historicky prvními a stále základními příklady diagnostických expertních systémů jsou MYCIN pro diagnostiku jistých infekčních onemocnění a PROSPECTOR pomáhající při hledání nalezišť rud. Mezi současnými ekonomickými aplikacemi diagnostických expertních systémů je např. řada systémů odhadujících bonitu klienta, nebo vyhodnocujících investiční příležitosti. Zajímavý je systém FinCEN pomáhající při odhalování podezřelých transakcí. Diagnostický ES • Generativní expertní systémy nevedou k výběru jedné z několika variant řešení, ale slouží k tvorbě návrhů přijatelných řešení. Možných řešení lze přitom potenciálně zkonstruovat nepřeberné množství. Systém jich ovšem generuje pouze omezený počet a vyhodnocuje je testováním. Kromě již zmíněného prvního expertního systému DENDRAL do této skupiny patří třeba i známý systém XCON pro konfiguraci počítačů podle uživatelských přání zákazníků. Generativní ES 1.4.1 Příklady diagnostických expertních systémů Úkolem expertního systému MYCIN je diagnóza jistých druhů infekcí ve složitých pooperačních stavech a doporučení pro jejich medikamentózní léčbu. Uživatelem je lékař chirurg, který nemusí být nutně expertem na infekční choroby (na rozdíl od experta, který byl zdrojem báze znalostí systému MYCIN). Během dialogu se systém MYCIN ptá ošetřujícího lékaře na stav, zdravotní historii pacienta a výsledky laboratorních testů. Na závěr systém MYCIN vydá diagnózu a doporučí vhodnou terapii. Báze znalostí systému MYCIN obsahuje 451 pravidel tvaru: Jestliže (konjunkce podmínek), pak (závěr) s jistotou (číslo). Každá podmínka nebo závěr je výrok tvaru (atribut) (objekt) (hodnota). Jistota je číslo z jednotkového intervalu, které udává stupeň potvrzení závěru, jsou-li potvrzeny (pravdivé) podmínky pravidla. Stupeň jistoty je pravidlům subjektivně připisován expertem. PŘÍKLAD 1-1 Následuje ukázka pravidla systému MYCIN. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství MYCIN 21 Rule 85 If The site of the culture is blood The gramstain of the organism is gramneg The morphology of the organism is a compromised host Then The identity of the organism is pseudomona aeruginosa With certainty 0.6 * Inferenční mechanismus systému MYCIN je založen na zpětném řetězení a modelu zpracování nejistoty, který interpretuje stupně jistoty jako tzv. míry důvěry. Systém MYCIN vysvětluje své chování jak během konzultace (uživatel se může zeptat systému, proč položil některou otázku), tak po jejím skončení (uživatel se může zeptat systému, jak dospěl k některému závěru). Výsledky expertního systému MYCIN se při hodnocení v 90% shodovaly nebo byly stejně dobré jako rozhodnutí odborných lékařů. Ze systému MYCIN byl separován inferenční mechanismus, který se stal základem „prázdného“ systému EMYCIN, jehož naplněním jinou bází znalostí vzniká nový expertní systém. Tak byl vyvinut např. systém PUFF pro interpretaci výsledků plicního vyšetření spirometrem a systém SACON doporučující vhodnou strategii strukturní analýzy pevnosti konstrukce metodou konečných prvků. EMYCIN Úkolem expertního systému PROSPECTOR je odhad věrohodnosti toho, že se na daném místě vyskytuje rudné ložisko typu reprezentovaného zadaným modelem. Uživatel pracuje s expertním systémem v dialogu, během něhož předkládá svá pozorování a je žádán o další informace. PROSPECTOR Typická báze znalostí (o geologických charakteristikách měděných ložisek) je tvořena inferenční sítí o 94 vrcholech a 105 pravidlech. Inferenční mechanismus systému PROSPECTOR je založen na zpětném řetězení s modifikovaným Bayesovským schématem zpracování nejistoty (pseudopravděpodobnostní model). U systému PROSPECTOR bylo provedeno srovnání jeho závěrů s usuzování geologa, který byl zdrojem expertních znalostí. Průměrný rozdíl mezi odhady pořízenými systémem a expertem byl kolem 10%. Systém PROSPECTOR se proslavil tím, že brzy po svém nasazení pomohl objevit cenné ložisko molybdenových rud. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 22 Struktura expertního systému PROSPECTOR se stala základem pro jeden z prvních programových prostředků pro konstrukci expertních systémů – Advice Language / X. Úkolem expertního systému FinCEN10 (Financial Crimes Enforcement Network) je odhad podezřelosti finanční transakce z hlediska praní špinavých peněz. Provozuje jej stejnojmenný úřad při americkém ministerstvu financí, který kontroluje všechny transakce nad 10 tis. $ hlášené finančními institucemi. Expertní znalosti o podezřelosti transakcí jsou reprezentovány ve formě cca 2000 pravidel a tzv. rámců zachycujících stereotypní situace, což je výhodné při používání formulářů, na nichž jsou zprávy o jednotlivých transakcích zasílány a vkládány do databáze. FinCEN Příkladem expertního systému pro hodnocení bonity klienta je systém FAST. Obsahuje základní analýzu finančních charakteristik pomocí jednoduchého tabulkového kalkulátoru, databází kritérií vyjadřujících úvěrovou politiku konkrétní banky (preference, rizikové faktory, …) a vlastní znalostní systém pro výsledné hodnocení založený na bázi cca 900 pravidel. FAST Systémem na analýzu trhu cenných papírů je ESTA (Expert Systems for Technical Analysis), který pomocí expertních pravidel vyhodnocuje klouzavé průměry cen za 10, 20, 40 a 75 dnů. ESTA 10 FinCEN - Financial Crimes Enforcement Network – informace o úřadu naleznete na oficiálních webových stránkách http://www.fincen.gov/ . Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 23 1.5 Struktura expertního systému Expertní systém je tvořen dvěma základními částmi: bází znalostí a inferenčním mechanismem. Názornou analogii uvádí: algoritmus + struktura dat = program inference + znalosti = expertní tém. Program x znalostní systém sys- Obrázek 1-1: Obecné schéma expertního systému [BER98]. „V bázi znalostí jsou uloženy znalosti experta z dané oblasti, inferenční (odvozovací) mechanismus umožňuje tyto znalosti využívat při konzultaci pro konkrétní případ. Dalšími komponentami jsou báze znalostí, data ke konzultovanému případu, vysvětlovací modul umožňující (do jisté míry) zdůvodnit postup systému při odvozování a modul pro komunikaci s uživatelem. Toto schéma (viz Obrázek 1-1) odpovídá „klasickému“ systému, který pracuje v dialogu s uživatelem.“ ([BER98]) Schéma exp. systému Toto „klasické“ schéma můžeme jednoduše převést na schéma „klient server“ (se třístupňovou architekturou), ve kterém bývají zobrazovány „moderní“ programy (viz Obrázek 1-2). K ZAPAMATOVÁNÍ 6 INFERENČNÍ MECHANIZMUS Klíčovou složkou znalostního systému je inferenční mechanismus (odvozovací mechanismus). Je to programový modul, jehož úlohou je vybírat z báze znalostí ty znalosti, které jsou právě potřebné, interpretovat je a na jejich základě a v závislosti na okamžitém stavu řešení problému odvozovat nové, případně modifikovat už existující informace. Jeho dalším úkolem je řídit případný dialog s uživatelem – požadovat od něj podle Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Inferenční mechanizmus 24 potřeby a v závislosti na řídící strategii data potřebná pro další postup řešení, pro jejichž odvození nemá systém potřebné znalosti v bázi znalostí. Obrázek 1-2: Klient-server schéma expertního systému. ČÁST PRO ZÁJEMCE 2 INFERENCE Inference (z latinského inferó – vnášet) – usuzování, odvozování určitých výroků z jiných. V anglické literatuře se setkáme s termíny inference nebo inference technique – pro odvozování jakož to získání závěrů na základě znalostí které již známe, a inference rule nebo rule of inference čili pravidla usuzování (odvozování), které definují funkci pro odvozování závěrů (výroků, conclusions) na základě platnosti předpokladů (premisis). Pro psaní logických vztahů odvozování existuje jistý aparát , který ovšem překračuje rámec této studijní opory. Inference Pojem znalosti je vhodné chápat právě v rámci logiky usuzování a inferenčního mechanismu, který ji prakticky realizuje: za novou znalost považujeme tu informaci, která není daným inferenčním mechanismem odvoditelná z jemu již dostupných znalostí. Znalost Důležitou komponentou znalostního systému je pracovní paměť, „tabule“. Jde o dočasnou pracovní databázi, ve které jsou v průběhu řešení udržována všechna data, která systém získal zvenku (od uživatele, jiných systémů nebo měřících přístrojů) nebo která odvodil z jiných dat na základě znalostí v bázi znalostí. U složitějších a pokročilejších systémů bývá její součástí i záznam posloupnosti všech důležitých aktivit systému, označovaný obvykle jako protokol. Pracovní paměť Báze znalostí, inferenční mechanismus a pracovní paměť tvoří jádro znalostního systému. Při řešení úlohy jsou znalosti pomocí inferenčního mechanismu aplikovány na údaje v pracovní paměti. Proces fungování Vyčlenění báze znalostí jako samostatné struktury a s tím spojená explicitní, symbolická a kompaktní reprezentace znalostí umožňuje zvýšit pohodlí uživatele při práci se systémy tohoto typu. Formalismy mohou být navrženy tak, aby byly srozumitelné a přijatelné i pro neprogramátora. Významnou roli přitom hraje vysvětlovací modul umožňující systému podat uživateli na požádání vysvětlení k danému případu, zdůvodnit dosa- Vysvětlovací modul Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 25 žené výsledky, ke kterým systém dospěl, i postup, jakým k nim dospěl. 1.6 Znalosti Jak již bylo výše řečeno, znalosti (resp. báze znalostí) tvoří jeden ze dvou základních prvků expertních systémů (druhým je inferenční mechanismus). Definovat pojem „znalost“ je velmi obtížné, navíc pro různé lidské činnosti se hodí jiná definice tohoto pojmu. „Proto se často vychází z předpokladu, že znalost je základním pojmem, který je každému jasný a srozumitelný, a že jej není třeba definovat.“ ([JIR95]) Představu o pojmu znalosti, jak mu rozumíme v kontextu expertních systémů, naznačuje Obrázek 1-3. ÚKOL K ZAMYŠLENÍ 1 DATA, INFORMACE, ZNALOSTI Zamyslete se nad rozdíly, případně definujte vlastními slovy pojmy data, informace a znalosti. Obrázek 1-3: Hierarchie znalostí. Zdroj: [GIA93]. Pojmy data, informace a znalost jsou mnohdy používána jako synonyma. Všimněme si jednoho přístupu k rozlišení a definování těchto pojmů. Wiederhold (1986) definuje znalosti a data z hlediska budoucích informačních systémů jako komplementární11 pojmy. Vychází z rozboru rozhodovacího procesu, v němž expert vybavený znalostmi zvažuje data relevantní pro daný problém a činí rozhodnutí. Znalosti expert získal vzděláním a zkušeností. Vybraná data představují informace. ÚKOL K ZAMYŠLENÍ 2 Data obecně můžeme chápat jako zachycení vlastností okolní objektivní reality – popisují okolní svět (tzn. charakteristiky, míry, váhy, vlastnosti mohou být kvantitativní i kvalitativní). Pokud data vstoupí do rozhodovacího procesu a poslouží nám v tomto pro11 Komplementární - doplňující se, zapadající do sebe. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Znalost 26 cesu (přispějí k snížení míry neuspořádanosti systému – subjektu, který se rozhoduje), pak tato data můžeme označit za informace. Typické je, že zdroj znalostí (expert) a zdroj informací (sebraná data) jsou odlišné – zvláště v hospodářských aplikacích nemá expert čas sbírat a ověřovat data. Rozlišení dat a znalostí pro účely automatizace rozhodovacích procesů je proto následující: • „Jestliže se můžeme spolehnout při sběru materiálu na automatický proces nebo úředníka, hovoříme o datech. Správnost dat vzhledem k reálnému světu může být objektivně verifikována srovnáním s jeho opakovaným pozorováním. Případně se stav světa změní a musíme se spolehnout na předchozí pozorování.“ • „Jestliže hledáme experta, který by poskytl materiál, potom hovoříme o znalostech. Znalosti obsahují abstrakce a generalizace objektivně verifikovány. Mnohé definice, nutné k organizaci systému, jsou také znalostmi; očekáváme od expertů definice, které jsou důležitými stavebními kameny pro další abstrakce, kategorizace a generalizace.“ Data odrážejí současný stav světa na úrovni instancí, takže obsahují mnoho detailů, jsou objemná a často se rychle mění. Znalosti se tak často nemění. Pojednávají o generalizacích, a proto se vztahují spíše k typům entit než k jejich instancím. Rozdíl mezi daty a znalostmi se jeví podstatný v úvahách o aktualizaci, chybách v datech a nejistotě znalostí. Aplikace na podporu řízení a plánování budou záviset zejména na znalostech adekvátních pro rozhodovací postup a výjimky v datech budou spíše ignorovat. Data vs. znalosti Nově získaná data mohou být v rozporu s existujícími znalostmi. Ve velkých databázích se vždy vyskytují chybné údaje, a proto je nutné rozpory pečlivě prověřovat. Avšak ani správná data, která jsou v rozporu se znalostmi, nemusí ihned vést k revizi znalostí. Jsou-li znalosti vybaveny faktory jistoty, je třeba spíše tyto faktory za pomoci automatické učící se procedury aktualizovat. Někdy konflikt mezi daty a znalostmi ukazuje na neúplnost báze znalostí a lze jej vyřešit doplněním dalších znalostí, které pokrývají nové případy. Rozpory v datech Jeden z problémů vztahu dat a znalostí spočívá v tom, že data na vyšší úrovni zpracování (např. již agregovaná nebo jinak odvozená) se mohou jevit jako znalost vůči nižší úrovni zpracování. 1.7 Reprezentace znalostí Reprezentace znalostí je spojena s hledáním modelů a datových struktur, které by umožnily reprezentovat významnou část znalostí a řešení daného problému v podobě báze znalostí, a potom takto reprezentované znalosti efektivně využívat při řešení problému počítačem. Účelem vhodné reprezentace znalostí je kromě snadného vyhledávání a modifikace uložených znalostí hlavně možnost odvozovat z nich pomocí inferenčního mechanismu potřebné závěry. Zejména v tom se znalostní systémy liší od databázových, kte- Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Báze znalostí 27 ré se soustřeďují především na otázku vyhledávání. Další odlišnost spočívá v neurčitosti a neúplnosti, které jsou pro soustavy znalostí typické a musí na ně být při jejich reprezentaci brán zřetel. Reprezentace znalostí je někdy považována za centrum zájmu výzkumu v umělé inteligenci, domníváme se však, že prvořadá je otázka způsobu odvozování, jemuž se musí reprezentace znalostí podřídit. Na reprezentaci znalostí jsou kladeny často protichůdné požadavky. Všimněme si například požadavku modularity báze znalostí, který je pro získávání znalostí zvláště významný. Při vytváření báze znalostí je důležité, aby použitá reprezentace dovolovala jednoduše upřesňovat znalosti, zejména je inkrementálně12 rozšiřovat. Báze znalostí bude zřejmě modulární, bude-li složena z nezávislých, jednoduchých částí, které vyjadřují jakési atomické (na zvolené úrovni modelování dále nedělitelné) znalosti. Modularita Na druhé straně však existují důvody proti takovému uspořádání znalostí. Jednotlivé znalosti totiž vyjadřují rozmanité závislosti, které mohou být od sebe svojí formou značně odlišné, avšak významově si mohou být blízké. Proto je vhodné použít neuniformní reprezentaci, postihující co nejlépe podstatu znalostí, a doplnit ji o možnost vyjádřit vazby mezi znalostmi. Požadavek volného sdružování příbuzných znalostí vychází z potřeby rychle vyvolávat jednotlivé znalosti. Jak je zřejmé, v konkrétních případech je nutno přistoupit k vhodnému kompromisu. Volné sdružování znalostí V expertních systémech jsou znalosti reprezentovány nejrůznějšími způsoby. Za „klasické“ lze považovat logiku (ať již výrokovou či predikátovou), pravidla, rámce (v programování známé spíše pod názvem objekty) a sémantické sítě. Zmíníme se zde stručně pouze o pravidlech, o jiných způsobech reprezentace znalostí se můžete více dozvědět např. v [GIA93] či [BER98]. Soustava produkčních pravidel tvaru „situace → akce“ je jedním z nejčastěji užívaných způsobů vyjádření báze znalostí. Pravidlo je vyvoláno tehdy, nastala-li podmínka v jeho situační části. Obecně není tvar a obsah pravidla nijak omezen, většinou jsou však v konkrétních realizacích dodrženy tyto zásady: • vyhodnocení situační části spočívá ve srovnání podmínky se stavem pracovní paměti, která při tom nesmí být měněna; • akční část představuje vykonání jednoduchých zásahů do pracovní paměti, a to na úrovni pojmů v ní používaných. Pravidla tedy představují elementární akce systému. Vhodná volba těchto akcí usnadňuje práci inferenčního i vysvětlovacího mechanismu. Výhodou této reprezentace báze znalostí je její značná modularita a přirozená deklarativní sémantika pravidel. ÚKOL K ZAMYŠLENÍ 3 PRODUKČNÍ PRAVIDLA Pravidla jsou zřejmě nejpoužívanější způsob reprezentace znalostí a jsou zároveň nejlépe pochopitelná pro lidské myšlení. Lidé často sami při řešení problémů používají výra12 Inkrementace – zvýšení (čísla). Zde ve významu přidání či přičtení. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Produkční pravidla 28 zy IF THEN, jako například „JESTLIŽE prší, PAK si vezmu deštník“. Pravidla v expertních systémech mají právě podobu IF THEN pravidel. Dalším důvodem pro „oblíbenost“ těchto pravidel může být v tom, že tyto struktury se často používají v oborech, které mají blízko k expertním systémům. V programovacích jazycích se IF THEN struktura vyskytuje jako jeden z nejčastěji používaných příkazů, v logice není IF THEN struktura nic jiného než jiný výraz pro implikaci (a jako implikace jsou pravidla většinou vyhodnocována). IF THEN struktura může být samozřejmě rozšířena do podoby IF THEN ELSE. Toto rozšíření slouží především pro zvýšení pohodlí uživatele při tvorbě báze. Je snadno vidět, že pravidlo IF a THEN b ELSE c lze zapsat jako dvě pravidla IF a THEN b IF NOT a THEN c. V předpokladu (antecedentu, levé straně, ...) pravidla se mohou vyskytovat různé výrazy (opět záleží na systému), jako např. výrok, konjunkce výroků, disjunktivní normální forma, dvojice atribut – hodnota, trojice objekt – atribut – hodnota, atd. V závěru (sukcedentu, pravé straně, ...) pravidla mohou být v zásadě tytéž výrazy, v některých systémech však bývají omezeny oproti předpokladu (např. místo konjunkce výroků v předpokladu může být v závěru pouze jeden výrok). K ZAPAMATOVÁNÍ 7 GRAFICKÉ ZNÁZORNĚNÍ PRAVIDEL Pravidla v bázi znalostí je možno znázornit v podobě tzv. AND/OR grafu. Zde uzly grafu představují výroky a orientované hrany představují pravidla. Konjunktivní vazba mezi výroky v předpokladu pravidla se znázorňuje obloučkem. Tedy sadě pravidel: A → D D → E -A → F B & C → F odpovídá AND/OR graf viz Obrázek 1-4. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Grafické znázornění pravidel 29 Obrázek 1-4: AND/OR graf. Zdroj: [BER98]. 1.8 Infereční mechanismus Zatímco u lidských expertů mluvíme spíše o usuzování, u expertních systémů pro získávání nových znalostí či informací používáme výraz inference nebo odvozování. Metody inference, jak je popisuje [GIA93], jsou: Metody inference • Dedukce – logické usuzování, při kterém závěr musí vyplývat z předpokladů. • Indukce – odvozování ze speciálního případu na obecný. • Intuice – bez teorie. Expertní systémy tento druh inference zatím neimplementují. • Heuristika – pravidla „vycucaná z prstu“ založená na zkušenosti. • Generování a testování – pokus a omyl, často používané pro efektivní plánování. • Abdukce – usuzování z platných závěrů na předpoklady, které mohly tyto závěry způsobit. • Default – pokud chybějí speciální znalosti, usuzuje se na základě obecných či běžných znalostí. • Vlastní znalosti. • Nemonotónní usuzování – předchozí znalosti mohou být chybné po získání nových poznatků. • Analogie – odvození závěru na základě podobnosti s jinou situací. Inferenční mechanismus organizuje používání báze znalostí při řešení zadané úlohy a komunikaci s uživatelem. Například prohledávání pravidlové báze znalostí může být řízeno mnoha strategiemi. Základní typy jsou: • Antecedentové řízení (forward chaining, bottom-up). Vyhledávají se pravidla, jejichž antecedent (situační předpoklady) je v datech splněn. Tato pravidla se okamžitě provádějí a tím se data modifikují, doplňují o nové poznatky. • Sukcedentové řízení (backward chaining, top-down). Vyhledávají se pravidla s vytčeným sukcedentem (akcí, konsekventem). K jejich antecedentům se opět hledají pravidla, která by je mohla potvrdit atd., až se dojde k prověřitelným pravidlům. • Agendové řízení. Používají se váhové funkce, které neustále oceňují výhodnost vy- Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Prohledávání báze znalostí 30 volání pravidel nebo jejich skupin. Obrázek 1-5: Typy inference. Zdroj: [GIA93]. Důsledkem použití některých pravidel může být dotaz na uživatele či sdělení uživateli. Po průchodu bází znalostí formuluje inferenční mechanismus závěry. 1.9 Neurčitost Neurčitost můžeme chápat jako nedostatek znalostí (nebo nepřesné znalosti) při řešení rozhodovacího problému. „Neurčitost je problém, neboť nám zabraňuje ve výběru nejlepšího řešení a může způsobit výběr špatného řešení.“ ([GIA93]) Neurčitost může způsobit nejrůznější typy chyb (viz Tabulka 1-2). Na druhou stranu, téměř veškeré znalosti a informace v našem světě jsou zatíženy určitou dávkou neurčitosti. Lidé jsou zvyklí s neurčitostí pracovat a rozhodovat se i při nepřesných informacích, je tedy na místě zabývat se otázkou, jak přenést neurčitost do expertních systémů. Příklad zavřít ventil přepněte ventil 1 zavřete ventil 1 ventil je zablokován ventil není zablokován Chyba Důvod nejednoznačnost (ambikterý ventil? guous) neúplnost (incomplete) kam přepnout? nesprávnost (incorrect) správně je otevřít špatně pozitivní (false ventil není zablokován positive) špatně negativní (false ventil je zablokován negative) nepřesnost (imprecise) přesně je 5,4 nesprávnost (inaccurate) správně je 9,2 přepněte ventil 1 do polohy 5 přepněte ventil 1 do polohy 5,4 přepněte ventil 1 do polohy 5,4, 4 nejistota (unreliable) chyba zařízení nebo 0 náhodná chyba (random ventil 1 je v poloze 5,4, 5,5 nebo 5,1 statistická fluktuace error) systematická chyba (sysventil 1 je v poloze 7,5 špatná kalibrace tematic error) ventil 1 není zablokovaný, protože nesprávná indukce (inva- ventil je zablokovaný Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 31 nebyl zablokovaný nikdy předtím lid induction) výstup je normální, proto je ventil 1 nesprávná dedukce (inva- ventil je zablokován v dobrém stavu lid deduction) v otevřené pozici Tabulka 1-2: Příklady typů chyb. Zdroj: [GIA93]. V expertních systémech může být neurčitost dvojího druhu. Je to jednak neurčitost v expertních znalostech a jednak neurčitost v datech. Neurčitost v expertních znalostech se v těchto systémech modeluje tak, že jednotlivým pravidlům bývají přiřazeny prvky z nějaké (alespoň částečně uspořádané) struktury. obvykle se používá interval [ -1,1], [0,1] nebo [0,∞]. Pravidla potom mají tvar např.: IF rozumný_záměr WEIGHT 0.8 AND seriózní_klient THEN půjčit Neurčitost ve znalostech WITH kde váha 0,8 vyjadřuje, do jaké míry je expert přesvědčen, že je splněn závěr (výrok „půjčit“), je-li si jist, že je splněn předpoklad (tj. současně splněny výroky „rozumný_záměr“ a „seriózní_klient“). Naproti tomu neurčitost v datech přiřazuje určitou váhu počátečním uzlům, tj. např. rozumný_záměr WITH WEIGHT 0.9 vyjadřuje poměrně velké přesvědčení uživatele o platnosti tohoto výroku (nikoli však jistotu). Neurčitost v datech K práci s neurčitostí jsou využívány různé přístupy, např. pseudopravděpodobností přístup, míry důvěry a nedůvěry, fuzzy logika, zobecňující algebraické pojetí. Jejich popis můžete nalézt např. v [BER98] či [GIA93]. Neurčitost v systému NEST vychází právě ze zobecněného algebraického pojetí. KONTROLNÍ OTÁZKA 1 1. Jmenujte systém považovaný za první expertní systém. 2. Vyberte, které z následujících problémů neřadíme do oblasti AI: rozpoznávání obrazu, hlasové ovládání programů, dobývání znalostí z databází, diagnostika nemoci. 3. Rozhodněte zda-li následující výrok je pravdivý: „Expertní systém je systém rozhodování a odvozování založený na porovnávání přesně zjistitelných a měřitelných požadavků uživatele.“ 4. Vyberte, který z následujících úloh je vhodný pro zpracování expertním systémem: a) doporučení vhodného automobilu pro klienta, b) výběr nejvhodnějšího automobilu v rámci výběrového řízení. 5. Uveďte název expertního systému vyhodnocujícího v USA podezřelost peněžních transakcí. SHRNUTÍ KAPITOLY ZNALOSTNÍ INŽENÝRSTVÍ A STRUKTURA EXPERTNÍCH SYSTÉMŮ Nyní, po prostudování této kapitoly, zhruba víte jak došlo ke zrodu disciplíny znalostní- Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Shrnutí 32 ho inženýrství. Umíte vysvětlit co se skrývá pod pojmem expertní systém a umíte rozlišit, kdo to je expert a znalostní inženýr. Dokážete pomocí vyložení základních principů a charakteristik expertního sytému vysvětlit odlišnost od ostatních programů a především informačních systémů. Obeznámili jste se s pojmem inference a její úlohou v expertních systémech. Umíte rozlišit mezi pojmy data, informace a znalosti. Víte jak lze reprezentovat znalosti. A dokážete vysvětlit jak souvisí neurčitost se znalostmi. Reprezentace znalostí pomocí IF THEN pravidel a jejich grafické znázornění jsou dovednosti, které dále využijeme při vlastní tvorbě baze znalostí – tedy pro tvorbu vaší seminární práce. ŘEŠENÍ A ODPOVĚDI 1. DENDRAL 2. dobývání znalostí z databází 3. není 4. a) 5. FinCEN PRŮVODCE STUDIEM 2 Po obecném úvodu, který vás obeznámil se základními pojmy disciplíny a uvedl vás do problematiky historie, fungování a tvorby expertních systémů, se nyní přesuneme k představení jednoho z fungujících akademických softwarů. Konkrétně systému NEST vyvinutého na VŠE v Praze, který naše fakulta (OPF) může využívat při výuce a jehož osvojení tj. zvládnutí ovládání a tvorbu báze znalostí, bude předpokladem k úspěšnému zvládnutí předmětu a udělení závěrečné známky. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství kapitoly 33 2 PROSTŘEDÍ NEST RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY PROSTŘEDÍ NEST První část kapitoly je věnována krátkému nástinu vývoje programu NEST, kterou začínáme zmínkou o původním systému SAK, na nějž navazuje. Rychlý náhled Druhá obsahově delší část obsahující velké množství ilustračních a instruktážních obrázků je zaměřena k získání základních praktických dovedností spojených s instalací balíku NEST a ovládání programu NEST. Dozvíte se o nastaveních programu NEST, možnostech výstupu během konzultace i po jejím dokončení. Ukážeme si jak číst výsledky konzultací a naučíme se je exportovat do různých typů souborů. CÍLE KAPITOLY PROSTŘEDÍ NEST Po úspěšném a aktivním absolvování této KAPITOLY Budete umět: Budete umět • Nainstalovat a nastavit parametry programů NEST a NEST editor. • Spustit a dokončit konzultaci v NEST. • Nalézt souhrnné informace o bázi znalostí. Získáte: Získáte • Několik základních informací o systému SAK, který je přímým předchůdcem systému NEST. • Přehled o vývoji systému NEST. Budete schopni: • Exportovat graf báze znalostí. • Uložit odpovědi dokončené i nedokončené konzultace. • Exportovat výsledky konzultace do různých formátů. ČAS POTŘEBNÝ KE STUDIU Celkový doporučený čas k prostudování KAPITOLY je cca 180 minut včetně praktického procvičení na počítači (čas je velmi ovlivněn počítačovou zdatností studenta). Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Budete schopni 34 KLÍČOVÁ SLOVA KAPITOLY PROSTŘEDÍ NEST SAK, vývoj NESTu, zdroje stažení, instalace, stažení funkčních bází znalostí, nastavení programu, nastavení cest, nefunkčnost nastavení, spuštění NEST a zavedení báze, základní možnosti programu NEST, konzultace, průběh konzultace a možnosti během konzultace, ukládání a export odpovědí a výsledků konzultace. 2.1 Historie NESTu 2.1.1 SAK Jelikož systém NEST volně navazuje na systém SAK, je vhodné alespoň stručně charakterizovat i tento systém. Systém Automatizovaných Konzultací (SAK) je prázdný expertní systém diagnostického typu. Práce na systému SAK započala v 80. letech ve skupině kolem J. Ivánka. První implementace (v roce 1983) byla na počítači Wang v jazyku Basic (systém SAK OPTIMALI). V letech 1987 – 1991 byly postupně implementovány dvě verze na počítačích IBM PC pod DOSem, jedna v jazyku TurboProlog (J. Ivánek, J. Ferjenčík, J. Švenda), druhá v jazyku TurboBasic (J. Ivánek, J. Ferjenčík, P. Berka). Do roku 1995 byly prováděny ještě některé drobnější úpravy ve verzi TurboBasic. Systém používá pro reprezentaci znalostí výroky a pravidla. Kromě klasických výroků je v systému zavedena koncepce sdružených výroků (výroky, které spolu fakticky souvisí, ale nemusí se vylučovat), a numerické veličiny, jejichž hodnoty lze získávat i z vnějších procedur. Pravidla mají tvar K: A ⇒ S (w) kde kontext K je výrok, antecedent A je tvořen elementární konjunkcí (tj. konjunkcí výroků nebo jejich negací), sukcedent S je výrok, který se nevyskytuje v A a w je váha pravidla (v normalizovaném tvaru leží v intervalu [-1;1]). Pravidla mohou mít nejvýše čtyřčlenný antecedent. Systém umožňuje vyjadřovat neurčitosti v pravidlech i v odpovědích uživatele, v systému je implementován standardní a logický inferenční mechanismus. Konzultace probíhá v režimu zpětného řetězení; kromě odvození závěrů nabízí systém i standardní vysvětlování How, Why, What if. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Klíčová slova 35 DALŠÍ ZDROJE Další rozšiřující informace ohledně systému SAK, výrazně převyšující rámec této opory, lze nalézt například v: • IVÁNEK,J.: Realizace konzultačního systému SAK-OPTIMALI pro výběr matematické metody rozhodování. In: Expertní systémy – principy, realizace, využití. Praha, ČSVTS FEL ČVUT 1984, s.160-172. • FERJENČÍK,J. – IVÁNEK,J. – ŠVENDA,J.: Stručná informace o systému automatických konzultací SAK. In: Informatika a umelá inteligencia. Bratislava, DT ČSVTS 1985. 2.1.2 Vývoj NESTu Systém NEST volně navazuje na systém SAK, dále jej rozvíjí a převádí do podoby aktuálních počítačových aplikací. Práce na návrhu nového systému započaly v polovině 90. let (P. Berka, V. Svátek): • 1995 – 97: specifikace systému NEST; • 1996: konzultační modul v rámci systému pro hodnocení bonity klienta banky implementovaný komerční firmou. V květnu 2003 začíná práce na implementaci systému NEST v podobě, kterou popisují následující kapitoly. ODMĚNA A ODPOČINEK Mílí studenti, v předchozím textu jste si přečetli několik základních informací o historii spjatou se systémem NEST. V následující části kapitoly se budeme zabývat praktickými dovednostmi, proto doporučujeme (pokud text nečtete z počítače) v rámci odpočinku zapnout počítač s připojením na internet a zkoušet si ověřit následující informace o instalaci a používání NEST. 2.2 NEST Program NEST je volně přístupný na osobních internetových stránkách jednoho z autorů opory a zároveň spoluautora expertního systému V. Laše. Se svolením autorů je program NEST, respektive instalační balík dostupný na elearningovém portálu v rámci kurzu Znalostní inženýrství (vždy v příslušném aktuálním akademickém roce a v příslušném typu studia). 2.2.1 Popis instalačního balíku a vlastní instalace Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Odměna a odpočinek 36 Jak již bylo zmíněno, instalační balík NEST (verze pro lokání počítač, nikoli síťová verze) je dostupná studentům OPF na elearningovém portálu (příslušný vyučující v aktuálním semestru studentům předvede, kde tento balík bude dostupný) nebo také z adresy http://vladalas.info/files/nest.zip. Zdroje stažení Instalační balík je zip archív – tedy po úspěšném stažení by jste měli najít na vámi zvoleném místě určeném pro stahování souboru soubor nest.zip. Balík obsahuje skupinu souborů bez instalátoru, a tedy po rozbalení můžete program respektive programy spouštět a používat. Studenti kurzu Znalostní inženýrství, které je vypisováno v rámci navazujícího studia, prošli kurzem Informatika A, a proto přepokládáme znalost ovládání operačního sytému, práci s archívy atp. Instalace Po úspěšném rozbalení nalezneme mezi soubory dva programy: • NEST.exe - software pro provádění konzultací nad zadanou (zavedenou, nahranou) bází znalostí. • NEST_Editor.exe - software pro tvorbu vlastní báze znalostí. PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL Výše zmiňovaný postup instalace platí pro verzi NESTu staženou ze stránek V. Laše ke dni 28.11.2007 obsahující NEST ve verzi 2.1.0 a NEST editor ve verzi 2.0.4. Je možné, že se můžete dostat k jiným instalačním balíkům dřívějších verzích, které obsahovaly instalátor. Instalátor byl sice v anglickém jazyce, ale opět je velmi triviální a lze vše proklikáním přes tlačítko „Next >“. Uživatel si volí cílový adresář instalace, dále jednotlivé komponenty programu (viz Obrázek 2-1), složku Start Manu Folder, volba jazyka. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 37 Obrázek 2-1: Okno instalátoru s volbou jednotlivých složek programu. PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL Na internetu nebo ve vlastním instalátoru se můžete setkat s následujícími označeními jednotlivých komponent NESTu: • Stand-alone version – program pro provádění konzultací. • Editor – editor pro tvorbu a úpravu bází znalostí. • Base convertor – program pro konverzi bází znalostí. • Klient-server version – NEST pro vzdálený přístup – síťová verze. K ZAPAMATOVÁNÍ 8 Pro tvorbu báze znalostí a spouštění konzultací (ukládání výsledků konzultací, ukládání odpovědí konzultací), jinými slovy k tvorbě a obhajobě seminární práce nám stačí úspěšně nainstalovat a používat Stand-alone version NESTu a NEST editor. K ZAPAMATOVÁNÍ 9 Instalaci můžeme považovat za dokončenou až po stáhnutí existujících a fungujících bází znalostí, na kterých si můžeme později ukázat spouštění konzultací a úpravu bází v NEST editoru. Báze znalostí jsou ke stažení ze stejných zdrojů jako vlastní NEST (viz. odstavec Zdroje stažení v rámci této kapitoly) a to konkrétně: • Princ.xml - výuková báze imaginárního příkladu určování, zda-li konzultují- Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Báze znalostí ke stažení 38 cí osoba je či není „princ“ (obsahuje 1 cílový výrok, 7 pravidel), • Nemoce.xml - malá ilustrační báze s diagnostikou nachlazení, TBC nebo chřipky (obsahuje 3 cílové výroky, 14 pravidel), • Uver.xml - báze vytvořená na základě dolování z imaginárních dat (data miningu) s diagnostikou klienta, zda-li by mu mohl být poskytnut úvěr či nikoli (obsahuje 1 cílový výrok, 8 pravidel), • OPTCS.xml - volba vhodné matematické metody rozhodování (obsahuje 53 cílových výroků, 402 pravidel), • TEAM.xml - báze znalostí sloužící ke zdokonalení práce řešitelského týmu (obsahuje 13 cílových výroků, 84 pravidel). Obrázek 2-2: Adresář po dokončené instalaci včetně ukázkových bází. PRŮVODCE STUDIEM 3 V této chvíli, jestliže postupujete chronologicky podle textu, by jste měli mít úspěšně nainstalovaný balík NEST připraven ke spuštění. 2.2.2 Nastavení Je velmi důležité se věnovat také krátce nastavení programů NEST a NEST editor. Po spuštění (úvodní obrazovky programů dokumentují Obrázek 2-3 a Obrázek 2-4) v menu obou programů vybereme položku Nastavení/Nastavení. V následujícím okně pak můžeme uživatelsky nastavit nejrůznější parametry programu (customization), jako jsou jazyk, počet zobrazovaných desetinných míst, barvy, nastavení okna pro znázornění grafu, klávesové zkratky a nastavení adresářů (viz Obrázek 2-5) Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Nastavení 39 Obrázek 2-3: Úvodní obrazovka programu NEST. Obrázek 2-4: Úvodní obrazovka programu NEST editor. K ZAPAMATOVÁNÍ 10 Velmi důležité je především nastavení „Adresáře“ (viz. Obrázek 2-5 barevně zatrhnuté). Na této záložce nastavujeme cesty k důležitým souborům a adresářům, což nám později může výrazně urychlit tvorbu vlastní báze. Nastavení cest Obrázek 2-5: Okno Nastavení v NESTu. K ZAPAMATOVÁNÍ 11 Je nutné také poznamenat, že ve starších verzích (ověřeno pro verzi 1.4.1) nemuselo Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Nefunkčnost na- 40 nastavení fungovat zcela správně a docházelo k chybám, které lze vyřešit postupem popsaným v komponentě „K zapamatování“ Systémová chyba v kapitole 2.2.5 . stavení Na tomto místě bychom rádi poznamenali, že NEST je program určený především pro akademické účely, proto také nebyl kladen důraz na vzhled, ale na funkčnost programu zaměřenou na tvorbu znalostní báze, porovnávání výsledků konzultací při volbě různých druhů práce s neurčitostí atp. NEST není komerčním produktem a jeho využití mimo výukové účely je nutno konzultovat s autory. Nekomerčnost NESTu 2.2.3 NEST – základní možnosti a spuštění konzultace Program NEST je prázdný expertní systém, který obsahuje inferenční mechanizmus (viz kapitola 1.5 K zapamatovaní Inferenční mechanizmus a kapitola 1.8 a vysvětlovací modul (viz kapitola 1.3 odstavec Vysvětlovací schopnost). Program NEST je tedy především program, který uživateli poskytuje grafické rozhraní (GUI) pro: nahrávání existujících bází znalostí, jejich spuštění, nastavení přístupu zpracování neurčitosti, vedení konzultace (způsobu získávání dat od uživatele), vyhodnocení a doporučení cílového výroku s možností vysvětlení závěrů. Obrázek 2-6: Statistika báze znalostí „Nemoce.xml“. Zavedení báze znalostí nebo její nahrání realizujeme pomocí úvodní obrazovky NEST (viz. Obrázek 2-3). Pomocí tlačítka „Nahraj bázi“ nebo z menu „Báze/Nahraj bázi“ najdeme na disku bázi, se kterou chceme dále pracovat (např. Nemoce.xml). Po otevření (chcete-li úspěšném zavedení či nahrání) báze se na úvodní obrazovce objeví, pokud v samotné bázi tyto údaje vyplněny jsou, několik nových údajů: • Vpravo od tlačítka „Nahraj bázi“ v rámečku „Aktuální báze“ se zobrazí název souboru aktuální zavedené báze znalostí (v našem případě „Nemoce.xml“). Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Zavedení báze 41 • V rámečku „Popis báze“ nalezneme popis báze znalostí (v našem případě vidíme text „Nemoci1“). • V políčku „Expert“ nalezneme jméno experta, člověka odborníka na danou problematiku, který nám poskytl znalosti z dané oblasti. Znalosti také můžeme čerpat analýzou odborné literatury (v našem případě vidíme iniciály „PB“). • V políčku „Znalostní inženýr“ nalezneme jména specialistů, kteří formalizovali a zaznamenali znalosti získané od expertů či z literatury, dat a jiných zdrojů do báze znalostí (v našem případě je políčko prázdné). • V políčku „Datum“ nalezneme termín vytvoření báze znalostí (našem případě „4.6.2003“). Obrázek 2-7: Zobrazení stromu pravidel pomocí okna Graf. Na úvodní obrazovce (viz. Obrázek 2-3) programu NEST dále vidíme: • tlačítko „Zavřít“, odpovídá volbě z menu „Báze/Konec“ nebo stisknutí klávesové zkratky ALT+F4. Tímto způsobem ukončíme program. • Tlačítko „Konzultuj“, odpovídá volbě z menu „Báze/Konzultuj“, pokračujeme ke spuštění konzultace. • Volbou z menu „Báze/Statistika“ vyvoláme okno s podrobnějším popisem aktuální báze znalostí (mimo údajů z odstavce Zavedení báze viz nahoře, zjistíme mj. rozsah vah, druhy a počet atributů, výroků a pravidel). Údaje pro bázi „Nemoce.xml“ dokumentuje Obrázek 2-6. • Volba z menu „Nastavení/Nastavení“ je popsána již výše především v odstavci Nastavení. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Další možnosti úvodní obrazovky NEST 42 • Volbou „Nástroje/NEST editor“ spustíme program NEST editor – samozřejmě pokud máme správně nastavenou cestu ke složce, ve které se editor nachází (viz Obrázek 2-5). • Volbou „Nástroje/Graf báze znalostí“ vyvoláme okno, kde: o V pravém sloupečku nalezneme podrobný popis báze včetně pravidel a vah. Šířku sloupce můžeme pohodlně upravovat tažením myší za levý okraj (viz Obrázek 2-7). o V levé části okna na záložce „Strom“ si můžeme nechat zobrazit – „rozklikat“ strom pravidel (viz Obrázek 2-7). o V levé části okna na záložce „Graf“ je nám k dispozici graf aktuální báze znalostí (viz Obrázek 2-8). o Z menu volbou „Sobor/Ulož graf jako obrázek“ můžeme exportovat graf do formátu BMP. • Funkční klávesou F1 nebo z menu „Nápověda/Nápověda“ vyvoláme nápovědu k program. • Informace o programu pak zjistíme volbou „Nápověda/O programu“. Obrázek 2-8: Zobrazení grafu pomocí okna Graf. Nyní tedy po zmáčknutí tlačítka konzultuj se přesuneme do okna „Nastavení konzultace“ (viz Obrázek 2-9). Možnosti nastavení pro naše účely není potřeba dále komentovat stiskneme proto tlačítko „OK“ a tím konečně spustíme konzultaci (stále pracujeme z bází „Nemoce.xml“). Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Spuštění konzultace 43 2.2.4 Možnosti okna Dotaz a průběh konzultace Postupujete-li stále dle textu pak nyní budete zadávat odpovědi na dotazy v rámci konzultace. Každému dotazu odpovídá jedno okno. Dle typu dotazu (viz odstavec Typy okna Dotaz dole) se okno „Dotaz“ trochu liší. Společné pro všechny dotazy zůstává (viz např. Obrázek 2-10): • Jméno atributu – Obrázek 2-10 „pacient je bledy“ • Komentář atributu – pod jménem atributu, slouží uživateli vykonávajícímu konzultaci k upřesnění (pokus to není zřejmé se samotného jména atributu) nač se systém ptá, co a jakým způsobem má uživatel hodnotit. V našem případě (Obrázek 2-10) je políčko prázdné. • V levém sloupci nahoře jsou tlačítka: o „Proč“ – zobrazí okno s příslušnou výsečí grafu nebo stromu (podobně jako okno Graf Obrázek 2-7 nebo Obrázek 2-8) dokumentující proč systém potřebuje zjistit hodnotu váhy příslušného výroku a na jaký další atribut to má vliv. o „Průběžné výsledky“ – otevře okno ne nepodobné oknu „Výsledky pravidlového odvozování“, jehož možnosti jsou popsány v kapitole Výsledky konzultace. o „Uložit odpovědi“ – tlačítko pro ukládání odpovědí i v průběhu konzultace více v 2.2.5 Ukládání odpovědí. • V levém sloupci dole jsou tlačítka: o „Jistě ano“ – nemusíme vypisovat váhu odpovědi automaticky, po stisknutí se zaznamená maximální, tj. v našem případě váha 3. o „Irrelevantní“ – nahrazuje zapsání váhy 0. o „Jistě ne“ - nemusíme vypisovat váhu odpovědi automaticky po stisknutí se zaznamená minimální tj. v našem případě váha -3. o „Neznámý“ – slouží pro odpověď ve smyslu nevím, kterou nelze pomocí váhy vyjádřit. o „Odložit odpověď“ – nechá otázku nezodpovězenou na pozdější dobu. o „Potvrdit odpověď“ – potvrzení odpovědí pokud zadáváme hodnoty z klávesnice a přesun na další dotaz. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Okno Dotaz 44 Obrázek 2-9: Okno nastavení konzultace. Vaše odpovědi budou subjektivně hodnotit pravdivost výroků příslušných atributů. Můžeme se setkat se čtyřmi typy dotazů: • Binární (viz Obrázek 2-10) – hodnotíme pouze pravdivost výroku v rámci rozsahu vah. • Jednoduchý (viz Obrázek 2-11) – vybíráme jeden z výroků nabízených v padací liště (v našem případě „vysoký příjem“ nebo „nízký příjem“); tento výrok opět hodnotíme vahou, vlevo od výběru. • Množinový (viz Obrázek 2-12) – z množiny přípustných výroků může vybrat jeden či více výroků. Výrok vždy vybereme zakliknutím (podbarví se modře) ve sloupečku „Přípustné hodnoty“. Přetáhneme jej do sloupce „Vybrané hodnoty“ pomocí tlačítka „>“. Nyní můžeme daný výrok ze sloupce „Vybrané hodnoty“ opět myší zakliknout a vlevo jeho pravdivost oceníme vahou. • Numerický (viz Obrázek 2-13) – na konkrétní dotaz odpovíme zadáním hodnoty z rozsahu z dolní části okna („Zadejte hodnotu v rozmezí“). Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Typy okna Dotaz 45 Obrázek 2-10: Dotaz na binární výrok. Obrázek 2-11: Dotaz na jednoduchý výrok. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 46 Obrázek 2-12: Dotaz na množinový výrok. Obrázek 2-13: Dotaz na numerický výrok. 2.2.5 Ukládání odpovědí Uložit odpovědi můžeme pomocí tlačítka „Uložit odpovědi“ v průběhu samotné konzultace (např. Obrázek 2-13) a nebo po jejím vyhodnocení v okně „Výsledky pravidlového odvozování“ (viz Obrázek 2-15) Po stisknutí tlačítka „Uložit odpovědi“ systém otevře okno „Uložení konzultace“, ve kterém můžeme zadat popis konzultace (údaje zde vložené slouží uživateli pouze pro pozdější lepší orientaci - čeho se uložené odpovědi týkají). Po potvrzení tlačítkem „OK“ vybereme klasicky cílový adresář pro uložení, případně můžeme zvolit (vypsáním) příponu. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 47 K ZAPAMATOVÁNÍ 12 Soubor s odpověďmi má vnitřní strukturu „xml“. Uložení odpovědí se hodí pro přerušení konzultace bez ztráty již zadaných odpovědí. Nebo k testování a ladění báze, kdy si uložíme typické odpovědi, které by měly vést k jednomu z cílů (blíže viz kapitola 5.4 Odlaďování báze). K ZAPAMATOVÁNÍ 13 Upozornění pro studenty používající nižší verzi NESTu než 2.1.0. V nižších verzích se stávalo, že sobory s výsledky i soubory editované v NEST editoru nebylo možno nahrát do programu NEST. Problémům se dalo vyhnout po zeditování souboru (např. v poznámkovém bloku) s výsledky či bází znalostí, ve kterém bylo nutno odstranit, ne pouze vymazat obsah řádku, druhý řádek shora (viz. Obrázek 2-14: jedná se o začerněný řádek s cestou k definičnímu souboru „base.dtd“). Systémová chyba Obrázek 2-14: Úprava xml souboru. 2.2.6 Výsledky konzultace Po zodpovězení všech dotazů inferenční mechanizmus vyhodnotí váhy a výsledky NEST zobrazí v okně „Výsledky pravidlového odvozování“ (viz Obrázek 2-15). Systémově je nastaveno zobrazení vyhodnocení cílových výroků, ale uživatel si může přepínači v levé části okna zvolit zobrazení vyhodnocení všech výroků v kombinaci s omezením jen kladné, jen záporné nebo všechny. V tabulce, kde čteme výsledky konzultace vidíme sloupce: se jménem výroků, minimální a maximální hodnotou váhy, stavem a druhem výroku. Stav výroku může nabývat hodnot: Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Stav výroku 48 • Nedotčený znamená, že výrok vůbec nebyl při odvozování použit. • Částečný znamená, že systém při odvozování na tento výrok narazil, ale při odvozování výsledků nakonec nebyl zcela potřeba, a tak jeho váha nemusí být dopočítána. • Finální znamená, že tento výrok byl pro odvozování potřeba a že jeho váha má finální podobu. • Provizionální znamená, že uživatel při některém dotazu odložil odpověď (viz složitější způsoby konzultace) a že po zodpovězení odložených odpovědí by se mohla váha tohoto výroku ještě změnit. Obrázek 2-15: Výsledky pravidlového odvozování. Druhy výroků jsou: • Cíl – výroky, jejichž váhu se systém snaží určit. • Mezilehlý – výrok, který je použit jak v předpokladu, tak v závěru nějakého odvozovacího pravidla. • Dotaz – výrok, který se nevyskytuje v závěru žádného pravidla, takže pokud chce systém zjistit jeho váhu, musí se na něj zeptat uživatele. K ZAPAMATOVÁNÍ 14 Povšimněme si prosím, že zelenou barvou vidíme kladně vyhodnocené výroky. Výroky hodnocené nula (irelevantní výroky) jsou napsány černým fontem. Výroky hodnocené záporně pak vidíme vyobrazeny červeným fontem. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 49 Výsledky pro pozdější použití - ať již k analýze nebo například pro dokumentaci - lze samozřejmě exportovat do souboru. Export provedeme pomocí tlačítka „Export výsledků“. Po jeho stlačení systém zobrazí okno téhož jména (viz Obrázek 2-16), v němž můžeme zadat další podrobnější popis výsledků do textového pole „Popis konzultace“, přepínači v oddílu „Exportovat do formátu“ určíme formát souboru s výsledky a zatrhávací volbou „Exportovat komentáře“ povolíme nebo zakážeme export komentářů. Export výsledků Obrázek 2-16: Export výsledků. ÚKOL K ZAMYŠLENÍ 4 Po porovnání souborů s exportem výsledků se zamyslete, k jakým účelům se různé typy exportu hodí. KORESPONDENČNÍ ÚKOL 1 Načtěte do NESTu bázi znalostí „Nemoce.xml“ a spusťte konzultaci. 1. Exportujte graf báze znalostí do soboru „Graf_baze_znalosti_nemoce.bmp“ 2. Uložte odpovědi do souboru „nemoce_konzultace.xml“. 3. Exportujte výsledky konzultace do souboru „nemoce_vysledky.txt“, „nemoce_vysledky.htm“ a „nemoce_vysledky.xls“. Soubory s výsledky si prohlédněte a srovnejte. 4. Všechny soubory odevzdejte na výukovém serveru. PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL Dovednosti zobrazení statistiky a export grafu báze znalostí, uložení odpovědí a také export výsledků jsou dovednostmi, které můžete, a bude to také očekáváno, využít při tvorbě dokumentace seminární práce. SHRNUTÍ KAPITOLY PROSTŘEDÍ NEST Po prostudování druhé kapitoly nyní víte, jak spolu souvisejí systémy SAK a NEST. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Shrnutí kapitoly 50 Znáte několik bodů z vývoje systému NEST. Víte, z jakých zdrojů lze získat instalační balík, a dokážete systém NEST nainstalovat a nastavit důležitá nastavení. Umíte zavést bázi znalostí do programu NEST a získat nebo exportovat informace o bázi znalostí. Umíte spustit a dokončit konzultaci včetně porozumění výsledků a jejich uložení do souboru. Také dokážete přerušit právě prováděnou konzultaci, aniž by jste přišli o již zadané odpovědi. PRŮVODCE STUDIEM 4 Nyní po seznámení se s NESTem a po první zkušenosti, jak konzultovat, bude jistě logické navázat v další kapitole odhalením struktury báze znalostí a fungováním inferenčního mechanizmu. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 51 3 STRUKTURA BÁZE ZNALOSTÍ A INFERENČNÍ MECHANIZMUS V NEST RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY STRUKTURA BÁZE ZNALOSTÍ A INFERENČNÍ MECHANIZMUS V NEST V prvé části kapitoly si v krátkosti představíme nabídky, jimiž ovládáme NEST editor. Rychlý náhled V druhé části se budeme zabývat jednotlivými atributy báze znalostí. Vysvětlíme pojmy atribut a výrok. Specifikujeme jednotlivé typy atributů a rozdělíme si výroky dle jejich postavení v rámci báze znalostí. Ukážeme si jaký je formální zápis pravidla v NEST a představíme si typy pravidel. V poslední části kapitoly se dozvíte o způsobu odvozování a prohledávání báze znalostí inferenčním mechanizmem v systému NEST. CÍLE KAPITOLY STRUKTURA BÁZE ZNALOSTÍ A INFERENČNÍ MECHANIZMUS V NEST Po úspěšném a aktivním absolvování této KAPITOLY Budete umět: Budete umět • Ovládat program NEST editor. • Vysvětlit rozdíl mezi pojmem atribut a výrok. • Vysvětlit rozdíl mezi jednotlivými druhy pravidel. • Popsat inferenční mechanizmus NESTu a postup při vlastním vyhodnocování báze. Získáte: Získáte • Informace jakým způsobem lze zadávat atributy a výroky atributů. • Informace o mechanizmu získání váhy numerického atributu. • Potřebné informace o pravidle, jeho předpokladové i závěrové části. Budete schopni: • Editovat existující atributy a výroky v bázi znalostí. • Správně použít při konstrukci báze jednotlivé druhy výroků. • Správně zadat numerický atribut pomocí grafu fuzzy množin. • Zadávat pravidla báze znalostí. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Budete schopni 52 ČAS POTŘEBNÝ KE STUDIU Celkový doporučený čas k prostudování KAPITOLY je cca 180 minut včetně odzkoušení si některých dovedností v NEST editoru. KLÍČOVÁ SLOVA KAPITOLY STRUKTURA BÁZE ZNALOSTÍ A INFERENČNÍ MECHANIZMUS V NEST NEST editor, základní a rozšířená nabídka, zadávání nových prvků báze, atribut x výrok, binární atribut, jednoduchý atribut, množinový atribut, numerický atribut, fuzzy interval, dělení výroků, hodnota atributu, obecný zápis pravidla, předpoklad, závěr, apriorní pravidlo, logické pravidlo, kompozicionální pravidlo, kontext, integritní omezení, odvozování a jeho mechanizmus v NEST. Klíčová slova Než přejdeme k objasňování struktury báze znalostí, věnujme nejprve několik odstavců nástroji pro její tvorbu, tedy NEST editoru. 3.1 NEST editor NEST editor je součástí instalačního balíčku NEST. Po spuštění programu nám naběhne obrazovka programu (viz Obrázek 2-4) a my můžeme založit novou bázi, nebo nahrát již existující, dokončenou či rozpracovanou, bázi za účelem její editace. Základní okno editoru obsahuje následující menu: • Soubor – základní nabídka s nástroji pro manipulaci s bází na úrovni souboru. o Nový – založení nové báze klávesová zkratka CTRL+N. o Nový sklad případů NEST. o Otevři – otevření již existující báze znalostí CTRL+O. o Zavři – uzavření aktuálně otevřené báze. o Ulož – uložení změn CTRL+S o Ulož jako ... – uložení pod jiným jménem nebo volba formátu – výchozí formát ukládání je xml, v této nabídce nkb (NEST Knowledge Base). o Export báze – export báze znalostí do formátů txt nebo htm. Tedy do formátů vhodných pro tvorbu dokumentace atp. o Konec – ukončení programu. • Nastavení. o Nastavení ... – stejné jako v NEST (viz 2.2.2 Nastavení). • Okno – množina voleb ovlivňující rozložení a vizáž okna při práci s více bázemi najednou. Položky jsou taktéž dostupné pomocí ikon pod systémem menu. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Základní nabídka 53 o Kaskáda. o Horizontální dlaždice. o Vertikální dlaždice. o Minimalizuj vše. o Uspořádej vše. • Nástroje. o Zobraz graf – zobrazení grafu aktuální báze znalostí. o Statistika – výpis informací o aktuální bázi znalostí. o NEST – spuštění programu NEST – předpokládá správnou instalaci a nebo správné nastavení (viz 2.2.2 Nastavení). o Base convertor – spuštění konvertoru bází. Base convertor byl součástí instalačního balíku NEST (verze 1.4). Volba předpokládá opět správnou instalaci balíku nebo správné nastavení (viz 2.2.2 Nastavení). • Nápověda o Nápověda o O aplikaci Po založení nové báze či načtení již existující báze znalostí přibudou v menu následující položky: • Edituj – soubor nabídek pro editaci jednotlivých složek báze znalostí. K jednotlivým položkám, vzhledem k výkladu uváděnému v další části kapitoly, není potřeba uvádět podrobnosti. o Atributy a výroky o Pravidla o Kontexty o Integritní omezení o Globální vlastnosti • Kontrola o Kontrola – volba je dosažitelná pomocí ikony v hlavním okně. Po zvolení systém provede kontrolu báze a případně ohlásí chyby (viz Obrázek 3-1). Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Nabídka po načtení báze znalostí 54 Obrázek 3-1: Ukázka chybového hlášení po spuštění kontroly báze znalostí. Po načtení existující báze znalostí či založení nové báze znalostí se v okně NEST editoru otevře okno aktuální báze, jež je rozděleno do sloupců, v nichž nalezneme postupně atributy, výroky, pravidla, kontexty a integritní omezení. Každý ze sloupců je rozdělen (defaultně) na poloviny, v horní části je vždy seznam např. atributů a v dolní části sloupce pak nalezneme, po zakliknutí konkrétní položky z horní části sloupce, další upřesňující parametry (viz Obrázek 3-2). Obrázek 3-2: Okno NEST editoru po načtení existující báze znalostí. 3.1.1 Zadávání nových prvků báze znalostí V následujícím textu ještě ukážeme, jakým způsobem vytváříme nové prvky tzn. atributy, výroky a pravidla v NEST editoru. Jak již bylo zmíněno, po založení nové báze (viz kapitola 5.2 Založení nové báze na straně 82) či načtení existující báze vybereme pří- Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 55 slušnou nabídku z menu (např. Edituj/Atributy a výroky) nebo dvojklikem myší v horní polovině příslušného sloupce vyvoláme editační okno pro editaci či zadávání nového: • Atributu nebo výroku (viz Obrázek 3-3.) Nově vytvořené atributy nebo již existující respektive jejich názvy bychom viděli v levém horním poli a jejich výrokové stavy pak v poli pod atributy (viz např. Obrázek 3-6). • Pravidla (viz Obrázek 3-4). Nově vytvořené pravidlo nebo seznam již existujících pravidel bychom viděli v levém sloupci okna Pravidla (viz např. Obrázek 5-5 na str. 88). K ZAPAMATOVÁNÍ 15 Je důležité si uvědomit (viz dále v rámci kapitoly) rozdíl mezi pojmy atribut a výrok. Každý z atributů může nabývat jednoho či více výrokových stavů. Pravdivost či nepravdivost těchto výroků hodnotí u dotazů osoba provádějící konzultaci zadáním subjektivně zvolené váhy v rozmezí, které systém dovoluje; u ostatních (mezilehlých či cílových) výroků určuje váhu inferenční mechanismus na základě odvozování pomocí báze znalostí. K ZAPAMATOVÁNÍ 16 Teprve po vytvoření atributů, alespoň dvou (jeden musí být binární nebo množinový, aby mohl být zakomponován do závěrové části pravidla), můžeme začít s tvorbou pravidel. PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL Tvůrce báze může (jak jste si jistě všimli) dále zadávat mimo atributů, výroků a pravidel také kontexty a integritní omezení. Kontexty a integritní omezení jsou však nástroje či prvky báze znalostí, které se s úspěchem dají využít při zpracovávání středně velkých či větších projektů, proto se zde jimi, respektive jejich tvorbou a editací dále nebudeme detailněji zabývat. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 56 Obrázek 3-3: Editační okno Atributy – výroky pro vytváření nových atributů a jejich výroků s oknem Nový atribut v popředí (po stisknutí tlačítka Nový atribut). Obrázek 3-4: Editační okno Pravidla pro vytváření nových pravidel s oknem Nové pravidlo v popředí (po stisknutí tlačítka Nové pravidlo). Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 57 3.2 Reprezentace znalostí 3.2.1 Atributy a výroky Atributy slouží k popsání vlastností objektů reálného světa. Nabývají různých hodnot, podle kterých se pak určují váhy výroků, které jsou od atributů odvozeny. Existují čtyři typy atributů: Atribut x výrok • binární; • nominální jednoduchý; • nominální množinový; • numerický. PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL Rozumíš? Obrázek 3-5: Zadávání nového binárního atributu. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 58 Binární atribut je základním typem atributu. Je od něj odvozen právě jeden výrok se stejným jménem. Tento výrok, stejně jako atribut, od kterého je odvozen, pak nabývá určité váhy reprezentující jeho „pravdivost“. Váha je udávána pomocí intervalu, čímž je umožněno vyjadřovat i částečné znalosti o pravdivosti atributu, resp. výroku. Binární atribut Například pracujeme-li na váhovém rozsahu [-1;1] (pokud nebude řečeno jinak, bude ve všech následujících příkladech používán tento váhový rozsah), následující váhy znamenají toto: • [-1;-1] – výrok jistě neplatí (FALSE); • [ 1; 1] – výrok jistě platí (TRUE); • [-1; 1] – o výroku nevíme nic (UNKNOWN); • [ 0; 0] – výrok je irelevantní (IRRELEVANT). PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL Rozumíš? Obrázek 3-6: Zadávání jednoduchého atributu. Nominální jednoduchý atribut (nebo jen Jednoduchý atribut) je atribut, který může nabývat právě jedné hodnoty z daného seznamu hodnot. Typickým příkladem je „typ účtu“ v bance. Od tohoto atributu je pak odvozeno právě tolik výroků, kolik je možných hodnot, kterých může atribut nabývat (výrok je již stejný, jako u binárního atributu). Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Jednoduchý atribut 59 Pokud je atributu přiřazena nějaká hodnota (s váhou), tuto váhu dostane jen příslušný výrok a všem ostatním výrokům je přiřazena váha „FALSE“. Je-li například zadáno, že uživatel si založil běžný účet s váhou [0,6;0,6], pak všem ostatním typům účtu je přiřazena váha „FALSE“. K ZAPAMATOVÁNÍ 17 Všimněte si, že (na rozdíl od binárního atributu) atribut jednoduchý může nabývat jednoho z více výrokových stavů. Nové výroky zadáváme pomocí tlačítka „Nový výrok“. ODMĚNA A ODPOČINEK Odměna a odpočinek Obrázek 3-7: Zadávání množinového atributu. Nominální množinový atribut (nebo jen Množinový atribut) je podobný „Jednoduchému atributu“, jen může nabývat libovolného počtu hodnot z daného seznamu. Příkladem může být atribut „světové jazyky, kterými člověk hovoří“. Od tohoto atributu je opět odvozeno tolik výroků, kolik je možných hodnot, které může atribut nabývat. Při přiřazení určitých hodnot atributu se přenese váha na příslušné výroky a hodnotám (resp. výrokům), kterým nebyla přiřazena žádná váha, se pak přiřadí předem nastavená váha (UNKNOWN nebo IRRELEVANT). Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Množinový atribut 60 ODMĚNA A ODPOČINEK Odměna a odpočinek Obrázek 3-8: Zadávání numerického atributu. Numerický atribut je atribut, který nabývá číselné hodnoty z předem zadaného rozmezí. Jako příklad lze uvést „velikost platu“. Od tohoto atributu může být odvozeno libovolné množství výroků, přičemž každý výrok má zadanou váhovou funkci, která převede číselnou hodnotu na váhu. Váhová funkce je zadávána pomocí tzv. fuzzy intervalu, který má lichoběžníkový, případně trojúhelníkový tvar charakteristické funkce (viz Obrázek 3-9). Zadávání numerického atributu je dokumentováno pomocí obrázku Obrázek 3-8; zadání výroku „hot“ odpovídá obrázku Obrázek 3-9. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Numerický atribut 61 Obrázek 3-9: Fuzzy intervaly. Podle postavení v bázi znalostí lze výroky dělit na dotazy (výrok není v závěru žádného pravidla), mezilehlé výroky (výrok je v závěru nějakého pravidla i v předpokladu nějakého pravidla) a cíle (výrok není v předpokladu žádného pravidla). Pokud není výrok použit ani v předpokladu, ani v závěru pravidla, jedná se o tzv. osamocený výrok, který NEST zcela ignoruje. Dělení výroků Atributy můžeme dle rozsahu dělit na „případové“ a „obecné“. Případové atributy popisují konkrétní konzultovaný případ, zatímco obecné atributy jsou stálé pro více konzultací (např. úroková míra). Hodnotu určitého atributu může systém získat z různých zdrojů. Standardně se systém snaží získat hodnoty „inferencí“ (odvozováním) pomocí pravidel, jedná-li se o cíle či mezilehlé atributy, nebo dotazem „od uživatele“, jedná-li se o dotaz. Dalším zdrojem může být „soubor“, jehož první řádek se systém pokusí interpretovat jako příslušnou hodnotu. Čtvrtým zdrojem je „externí funkce“, která vytvoří soubor s příslušnou hodnotou a z tohoto souboru pak hodnotu načte. Poslední dva uvedené zdroje mohou být použity pouze pro binární a numerické atributy. Posledním zdrojem je „výpočet“ (lze použít jen pro numerické atributy), kdy hodnota atributu je spočítána z hodnot jiných numerických atributů a zadaných čísel s použitím matematických operací sčítání, odčítání, násobení a dělení. Zdroje lze nastavit tak, aby v případě neúspěchu jednoho byl použit jiný. Každý atribut či výrok může mít přidělené určité akce. Akcí se rozumí externí program, který je spuštěn, pokud výrok nabude alespoň takové váhy, která je u akce zadána. 3.2.2 Pravidla Základní podoba pravidel v NESTu je následující: kontext: IF předpoklad THEN závěr1[váha1],...,závěrN[váhaN] Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Obecný zápis 62 Kontext rozhoduje o tom, zda se dané pravidlo bude aplikovat či nikoliv. Blíže je o kontextech pojednáno v následující sekci. Předpoklad pravidla je tvořen disjunktivní normální formou, neboli disjunkcí libovolného množství „výrazů“, přičemž „výrazem“ může být buď výrok, nebo konjunkce výroků. Je-li předpoklad splněn, je závěru pravidla připočítán příslušný příspěvek tohoto pravidla. Aby byl předpoklad splněn, musí jeho celková váha (o jejím vypočítání viz sekce „práce s neurčitostí“) přesáhnout „práh platnosti předpokladu“, který je implicitně nastaven na nulu. Předpoklad Závěr pravidla je tvořen výrokem a váhou, která slouží pro výpočet příspěvku pravidla k danému výroku a představuje neurčitost v bázi znalostí. Pokud má pravidlo více závěrů, výsledný efekt je stejný, jako by existovalo více pravidel se stejnými předpoklady a příslušnými závěry. Závěr K ZAPAMATOVÁNÍ 18 Na rozdíl od předpokladu můžeme v závěru pravidla použít pouze výroky binárních a množinových atributů. Výroky jednoduchých atributů nemůžeme použít, neboť jejich platnost se v reálu vylučuje (platí vždy pouze jeden výrok z množiny). Každé pravidlo má zadanou svou prioritu (číslo z intervalu [0;1]), podle které může být postupováno při výběru pravidel pro aplikaci při odvozování. (O odvozování blíže viz sekce „Inferenční mechanismus“.) Pravidla se dělí do třech základních typů: • apriorní pravidla; • logická pravidla; • kompozicionální pravidla. Apriorní pravidla jsou taková pravidla, která platí vždy, tj. nemají předpoklad (ani kontext), resp. jako předpoklad je brána hodnota „TRUE“. Tato pravidla umožňují přiřadit výrokům implicitní váhu. Apriorní pravidlo Logická pravidla jsou pravidla, jejichž závěr nenabývá hodnot z celého intervalu [-1;1] (resp. [-rozsah vah; rozsah vah]), ale nabývá jen „logických hodnot“. Je li předpoklad splněn (tj. pokud dolní hranice váhového intervalu přesáhne práh zadaný pro toto pravidlo), je váha závěru „TRUE“, resp. „FALSE“ (pokud je negace závěru), není-li předpoklad splněn, váha závěru je „IRRELEVANT“. Pouze tato pravidla mohou dát absolutní jistotu ±1. Logické pravidlo Kompozicionální pravidla pracují na celém intervalu [-1;1] tak, jak je vysvětleno v sekci „práce s neurčitostí“. Kompozicionální pravidlo Pravidlu může být přiřazena „akce“ stejně jako je tomu u výroku. Tato akce je spuštěna, jakmile je pravidlo „použito“, tj. předpoklad pravidla je splněn a jsou učiněny příslušné Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 63 závěry. 3.2.3 Kontexty Kontexty jsou, podobně jako předpoklady pravidel, disjunktivní normální formy literálů, které (v případě kladné váhy) určují, že je aplikovatelné nějaké pravidlo či integritní omezení. Kontexty se tedy používají pro členění báze znalostí (pravidel, integritních omezení) do relativně samostatných částí. 3.2.4 Integritní omezení Integritní omezení mají stejnou podobu jako kompozicionální pravidla. Základní rozdíl je v tom, že integritní omezení se nepodílejí na odvozování závěrů, ale jsou vyhodnocovány samostatně po skončení odvozování. Slouží pro formulování dodatečných podmínek, které by měly platit po skončení konzultace mezi literály. Pokud je integritní omezení splněno, systém to nedá nijak najevo. Pokud však splněno není, je uživatel upozorněn, že byla porušena omezení (a samozřejmě která). 3.3 Inferenční mechanismus 3.3.1 Odvozování v síti pravidel Inference v systému NEST je kombinací zpětného a přímého řetězení. Na začátku konzultace systém vezme všechny cíle (cílem je buď výrok, který není použit v předpokladu žádného pravidla, nebo výrok, který uživatel označí jako cílový), postupně je označuje jako „aktuální“ a snaží se je vyhodnotit. „Aktuální“ výrok je nejprve vyhodnocován metodou zpětného odvozování následujícím způsobem: • Je zkontrolováno, není li aktuální výrok již vyhodnocen (nachází se ve stavu „final“). Pokud ano, je vyhodnocování ukončeno. • Následuje zjištění, z jakých zdrojů se má váha výroku zjišťovat. Pokud je zdroj jiný než „inference“, je vyhodnocování přerušeno a je spuštěn příslušný zdroj. Pokud zdroj není uveden, použije se „inference“. • Jsou zjištěna všechna pravidla, ve kterých je výrok v závěru. Pokud neexistuje žádné takové pravidlo, je vyhodnocování přerušeno a je položen dotaz uživateli (efekt je stejný, jako by byl u výroku zadán zdroj „uživatel“). Jsou li známy příspěvky všech pravidel potřebných pro odvození váhy výroku (všechna kompozicionální pravidla nebo část logických pravidel, u kterých se příspěvky skládají pomocí disjunkce), je vypočtena výsledná váha výroku (pomocí funkce GLOB – viz sekce „neurčitost“), stav výroku je označen jako finální a vyhodnocování je ukončeno (nikoliv přerušeno). Pokud nejsou známy příspěvky potřebných pravidel, pravidla jsou seřazena dle zadané priority (od začátku, od konce, minimální délka, maximální délka, dle zadání experta), systém vezme první nevyhodnocené pravidlo a pokusí se zjistit jeho pří- Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Mechanizmus NESTu 64 spěvek následovně: o Pokud není známa váha kontextu, tato váha se zjistí (probíhá stejně jako zjišťování váhy předpokladu). Je li váha kontextu (její maximální hranice) menší nebo rovna prahu platnosti kontextu, je příspěvek pravidla „IRRELEVANT“ (tj. nulový). o Je zjištěna váha předpokladu tak, že nejprve je zjištěna váha všech výrazů (u výroků se vezme jejich váha, u konjunkcí je váha jednotlivých výroků vyhodnocena pomocí funkce CONJ) a jednotlivé výrazy jsou vyhodnoceny pomocí funkce DISJ. Pokud váha některého výroku není známa (výrok není ve stavu „final“), je tento výrok označen za „aktuální“ a je pro něj spuštěno vyhodnocování. o Pomocí funkce CTR je spojena váha předpokladu a váha kontextu (má li pravidlo kontext) a výsledná váha je opět pomocí funkce CTR spojena s vahou jednotlivých závěrů. Tím je pravidlo vyhodnoceno a jeho stav je označen jako „final“ (zároveň jsou spuštěny jeho „akce“). Je li odvozování přerušeno, je zjištěn atribut, od kterého je odvozen výrok, při jehož vyhodnocování došlo k přerušení. Hodnota tohoto atributu je zjištěna z příslušného zdroje (dotazem od uživatele, ze souboru či externí funkce nebo pomocí výpočtu). Poté, co je hodnota zjištěna, je spočítána příslušná váha všech výroků, které jsou od daného atributu odvozeny, a jejich stav je označen jako „final“. (Stejně jsou vzaty i výroky odvozené od numerických atributů, které mají jako zdroj daný atribut.) Pro tyto výroky systém postupně spouští přímé odvozování, které probíhá takto: • Pro výrok jsou zjištěna všechna pravidla, ve kterých je použit v předpokladech. • Pravidlo je vyhodnoceno stejným způsobem jako tomu bylo při zpětném odvozování s tím rozdílem, že pokud při vyhodnocování nějakého výroku z předpokladu pravidla dojde k přerušení, toto přerušení je ignorováno a místo toho je ukončeno vyhodnocování tohoto pravidla (to znamená, že se neposílá dotaz uživateli ani není použit jiný zdroj). • Je li pravidlo úspěšně vyhodnoceno, procházejí se postupně výroky ze závěrů pravidla. Tento výrok je nejprve vyhodnocen metodou zpětného odvozování s tím, že je opět ignorováno přerušení a místo něj je vyhodnocování výroku ukončeno. Pokud se povede výrok vyhodnotit, je pro něj spuštěna metoda přímého odvozování. KORESPONDENČNÍ ÚKOL 2 Založte novou bázi znalostí a dle obrázku Obrázek 3-9 zadejte numerický atribut. Bázi uložte a odevzdejte v rámci elektronického kurzu. KONTROLNÍ OTÁZKA 2 Jakým druhem atributu by jste popsali v bázi znalostí zabývající se rozhodováním o výpočetní technice situaci, že počítač může být na základě jistých dříve zjištěných výroků desktop, notebook nebo PDA? Zdůvodněte. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 65 KONTROLNÍ OTÁZKA 3 Vysvětlete jak rozumíte následujícímu pravidlu: IF HCD AND teplota(zvysena) THEN diagnoza(Chripka)[3,000], diagnoza(Nachlazeni)[-2,000] SHRNUTÍ KAPITOLY STRUKTURA BÁZE ZNALOSTÍ A INFERENČNÍ MECHANIZMUS V NEST V právě prostudované kapitole jsme se krátce seznámili s programem NEST editor. Již víme, ze kterých komponent se skládá vlastní báze znalostí, a po prostudování přiložených obrázků a splnění úkolů na konci kapitoly umíme zadat či zeditovat jednotlivé atributy a jejich výroky. Nahlédli jsme také do principu práce inferenčního mechanizmu NESTu. ŘEŠENÍ A ODPOVĚDI Návod pro korespondenční úkol. Novou bázi znalostí založíme po spuštění NEST editoru stiskem klávesové zkratky CTRL+N. Po jejím stisknutí se objeví okno, do nějž může uživatel vepsat základní informace o bázi znalostí (viz blíže kapitola 5.2 Založení nové báze na straně 82). Jelikož v zadání není bližší specifikace, okno pouze zavřeme tlačítkem Zavřít a můžeme zadávat numerický atribut. Kontrolní otázka: Jelikož je v zadání napsáno, že platnost stavů je určována na základě dříve zjištěných výroků, předpokládáme, že se bude jednat o atribut, mezilehlý případně cílový, tzn. výroky tohoto atributu musejí být obsaženy v závěrech nějakých pravidel, proto ačkoli v praxi počítač může být pouze jedním z vyjmenovaných druhů (tedy jen desktop, nebo jen notebook a nebo jen PDA), použijeme atribut množinový. Byl-li by tento atribut atributem základním, použili bychom samozřejmě pro jeho konstrukci atributu jednoduchého. Kontrolní otázka: Jestliže platí výrok HCD a zároveň výrok zvysena atributu teplota pak platí: výrok Chripka atributu diagnoza s vahou 3 a výrok Nachlazeni atributu diagnoza s vahou -2. Protože toto pravidlo je vybráno z báze znalostí nemoce.xml, můžeme volně formulovat, že daným pravidlem je reprezentována zhruba následující znalost: Pokud má pacient zánět horních cest dýchacích (HCD) a zároveň má zvýšenou teplou pak zcela jistě trpí chřipkou a téměř jistě netrpí nachlazením. PRŮVODCE STUDIEM 5 Kapitolu jsme ukončili stručným vysvětlením inferenčního mechanizmu. Víme, že při průchodu bází znalostí dochází k výpočtu neznámých vah jednotlivých výroků. Váhy Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Shrnutí kapitoly 66 výroků odvozuje nebo chcete-li vypočítává inferenční mechanizmus pomocí funkcí, které si představíme v navazující kapitole. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 67 4 NEURČITOST V NEST RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY NEURČITOST V NEST Kapitola je dělena na dvě logické části. V první budou představeny funkce pro zpracování neurčitosti standardním přístupem systému NEST. Ve druhé části si pak na praktickém příkladu ukážeme výpočet neurčitosti. A konečně si ukážeme jak postupovat při vlastní konzultaci, chceme-li, aby NEST zpracovával neurčitost jiným než standardním způsobem. Rychlý náhled CÍLE KAPITOLY NEURČITOST V NEST Po úspěšném a aktivním absolvování této KAPITOLY Budete umět: Budete umět • Použít jednotlivé funkce práce s neurčitostí. Získáte: Získáte • Znalost o tom, jak systém pracuje s neurčitostí. • Přehled o funkcích, jež mohou být použity v rámci vyhodnocování konzultace inferenčním mechanizmem. Budete schopni: Budete schopni • Vypočítat váhy výroků báze znalostí standardním mechanizmem pro práci s neurčitostí. • Provádět konzultace v systému NEST za pomocí libovolného v systému NEST dostupného mechanizmu práce s neurčitostí. • Porovnat výsledky konzultací nad jedinou bázi znalostí, při stejných hodnotách odpovědí a při odlišném způsobu práce s neurčitostí. ČAS POTŘEBNÝ KE STUDIU Celkový doporučený čas k prostudování KAPITOLY je 120 minut. KLÍČOVÁ SLOVA KAPITOLY NEURČITOST V NEST Přístupy práce s neurčitostí, standardní mechanizmus, funkce: NEG, CONJ, DISJ, CTR a GLOB, pomocné funkce: NORM a IMP, standartní výpočet. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Klíčová slova 68 4.1 Práce s neurčitostí Systém NEST pracuje s váhami, které vyjadřují neurčitost v bázi znalostí i neurčité odpovědi během konzultace. Zatímco váhy pravidel jsou zadávány pouze jednou hodnotou, během konzultace se používá pro vyjádření váhy interval. Váhy pravidel w (a případně i jednohodnotové odpovědi uživatele či jiných zdrojů) jsou převedeny na jednobodový interval [w;w]. Způsob práce s neurčitostí vychází z algebraické teorie skládání vah, jak uvádí [HAJ85] (lze též nalézt v [BER98]). NEST používá 5 základních funkcí (NEG, CONJ, DISJ, CTR, GLOB) a 2 pomocné (NORM, IMP). Tyto funkce jsou definované na intervalu [1;1] (funkce NORM je definovaná na množině reálných čísel a slouží pro normování intervalů na tento rozsah). Systém nabízí 4 inferenční mechanismy (tj. 4 podoby těchto funkcí) – standardní, logický, neuronový a hybridní. Standardní inferenční mechanismus vychází ze způsobu práce s neurčitostí v systémech MYCIN a PROSPECTOR, logický inferenční mechanismus je založen na vícehodnotové logice – funkce CTR je fuzzy modus ponens a funkce GLOB je fuzzy disjunkce v Łukasiewiczově13 sémantice, neuronový inferenční mechanismus je inspirován modelem neuronu a hybridní inferenční mechanismus je kombinací standardního a logického. Pět funkcí (NEG, CONJ, DISJ, NORM, IMP) je definováno pro všechny typy inferenčních mechanizmů stejně, ve zbylých dvou funkcích (CTR a GLOB) jsou odlišnosti. Inferenční mechanizmy NEST 4.2 Funkce pro práci s neurčitostí 4.2.1 Funkce NEG Funkce NEG slouží pro výpočet váhy negace výroku. Je definována následovně: NEG(w) = –w resp. pro práci s intervalem [w1;w2]: NEG([w1;w2]) = [-w2;-w1] 4.2.2 Funkce CONJ Funkce CONJ slouží pro výpočet váhy konjunkce dvou výroků. Je definována následovně: 13 Jan Łukasiewicz – (21.12.1878 – 13.2.1956) polský matematik a filozof; tvůrce více hodnotové logiky někdy také nazývané jako Łukasiewiczova logika. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 69 CONJ(v,w) = min(v,w) resp. pro práci s intervaly [v1;v2],[w1;w2] CONJ([v1;v2],[w1;w2]) = [min(v1,w1); min(v2,w2)] 4.2.3 Funkce DISJ Funkce DISJ slouží pro výpočet váhy disjunkce dvou výrazů. Je definována následovně: DISJ(v,w) = max(v,w) resp. pro práci s intervaly [v1;v2],[w1;w2] DISJ([v1;v2],[w1;w2]) = [max(v1,w1); max(v2,w2)] 4.2.4 Funkce CTR Funkce CTR (z anglického contribution) slouží pro výpočet příspěvku pravidla, resp. pro složení vah kontextu a předpokladu pravidla. Je definována následovně: • standardní, neuronový a hybridní inferenční mechanismus: CTR(a,w) = 0 CTR(a,w) = a * w ; a ≤ 0 ; a > 0 • logický inferenční mechanismus: CTR(a,w) = 0 ; a < 0 CTR(a,w) = sign(w) * max(0,a + |w| – 1) ; a ≥ 0 Pro práci s intervaly [a1;a2],[w1,w2] se pak používá výraz CTR([a1;a2],[w1,w2]) = [CTR(a1,w1);CTR(a2,w2)] 4.2.5 Funkce GLOB Funkce GLOB slouží pro skládání příspěvků více pravidel. Je definována následovně: Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 70 • standardní inferenční mechanismus GLOB(v,w) = 0; (v = 1, w = –1) nebo (v = –1, w = 1) GLOB(v,w) = (v + w)/(1 + v * w) • logický a hybridní inferenční mechanismus GLOB(w1...wn) = min(Σw>0w ,1) + max(Σw<0w, 1) • neuronový typ neurčitosti GLOB(w1...wn) = min(max(sΣw, –1), 1) kde s = 1 Pro práci s intervaly [a1;a2],[w1,w2] se pak používá výraz GLOB([a1;a2],[w1,w2]) = [GLOB(a1,w1);GLOB(a2,w2)] 4.2.6 Funkce NORM Jediná funkce, která je definována i mimo interval [ 1;1], slouží pro ořezávání vah právě na tento interval, pokud je někde přesažen. Funkce je používána po výpočtu příspěvku kompozicionálního pravidla pomocí funkce CTR a po složení všech příspěvků pravidel u výpočtu váhy výroku pomocí funkce GLOB. Funkce je definována následovně: NORM(w) := min(max(w, rozsah), rozsah) resp. pro práci s intervalem [w1;w2]: NORM([w1;w2]) = [min(max(w1, rozsah), rozsah); min(max(w2,rozsah), rozsah)] kde rozsah = 0,999 (resp. počet devítek za desetinnou čárkou odpovídá počtu desetinných míst, se kterými právě systém pracuje). 4.2.7 Funkce IMP Funkce IMP je používána pro výpočet výsledné váhy integritního omezení. Rozhoduje tedy o tom, zda integritní omezení bylo porušeno či nikoliv a do jaké míry. Je definována následovně: Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 71 IMP(w,v) = 0; w <= 0 IMP(w,v) = max(0, min(w – v)) ; w > 0 resp. pro práci s intervalem [w1;w2]: IMP([w1;w2],[v1,v2]) = [max(0, w1 – v1); max(0, w2 – v2)] kde w je váha předpokladu integritního omezení (případně upravená pomocí kontextu funkcí CTR) a v je váha jeho závěru. PRŮVODCE STUDIEM 6 Dosud jsme se zabývali teorií vlastního výpočtu. Ve druhé části kapitoly se zaměříme na praktické procvičení výpočtu a případné možnosti srovnání přístupů k neurčitosti na základě konzultací v NEST. 4.3 Příklad výpočtu ŘEŠENÝ PŘÍKLAD 4-1 Spustíme konzultaci nemoce.xml se standardním inferenčním mechanismem a v rámci konzultace zadáme odpovědi viz. Tabulka 4-1. Necháme vyhodnotit konzultaci a necháme si vysvětlit, jak systém postupoval v případě určení vah pro cílový výrok TBC. Použijeme informace z již zmiňované tabulky (Tabulka 4-1) a z vysvětlovacího modulu a pokusíme se ručně přepočítat váhy určené systémem dle teorie vysvětlené v této kapitole. Atribut Pacient je bledý Dýchavičnost Teplota Další příznaky Další příznaky Výrok Pacient je bledý Dýchavičnost Teplota Kašel Rýma Odpověď 1 1 37 3 1 Tabulka 4-1: Tabulka odpovědí uživatele v rámci konzultace nemoce.při rozsahu vah od -3 (jistě ne) až po 3 (jistě ano). Atribut teplota je zadáván numericky Řešení příkladu Výroky Min váha < Max váha Stav Druh Komentář diagnoza(TBC) 1,779 1,779 finální cíl diagnoza(Nachlazeni) 1,285 1,285 finální cíl -0,857 -0,857 finální cíl diagnoza(Chripka) Tabulka 4-2: Tabulka výsledků konzultace nemoce. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 72 Obrázek 4-1: Graf vysvětlujícího modulu pro cílový výrok TBC. Zelené identifikátory pravidel zapůsobily kladným způsobem v rozhodování pro variantu či lépe cílový výrok TBC. Znalosti, které mají vliv při rozhodování či výpočtu konečné váhy cílového výroku TBC: c1 IF bledost THEN diagnoza(TBC)[1,0]: 0,333 c2 IF dychavicnost THEN plice[2,0]: 0,667 c3 IF priznaky(kasel) THEN plice[2,0]: 2,000 c6 IF plice THEN diagnoza(TBC)[2,0]: 1,548 c9 IF NOT(bledost) THEN diagnoza(TBC)[-1,0]: 0,000 c10 IF NOT(dychavicnost) AND NOT(priznaky(kasel)) THEN plice[-3,0]: 0,000 c12 IF NOT(plice) THEN diagnoza(TBC)[-3,0]: 0,000 Všimněme si nejdříve pravidel c2, c3, která vedou k mezilehlému výroku plice a mají (více či méně) splněný předpoklad. Obě pravidla mají váhu 2,0. Předpoklad pravidla c3 je splněn s maximální jistotou, takže jeho příspěvek je roven jeho váze, tj. 2,0. Oproti tomu předpoklad pravidla c2 je splněn pouze s váhou 1 (odpověď trochu ano), tj. z jedné třetiny, takže příspěvek tohoto pravidla je 0,667 (ve standardním přístupu k práci s neurčitostí je dán součinovou funkcí CTR=2*1/3=0,667). Výsledná váha výroku plice je pak dána agregací těchto dvou příspěvků pomocí standardní funkce GLOB (pozor – před použitím funkce musíme váhy převést na jednotkový interval a poté výsledek opět přepočítat na interval [-3;3]): GLOB(2,0/3; 0,667/3) = = (0,667 + 0,222) / (1 + 0,667 * 0,222) = Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Standardní výpočet 73 = 0,889 / 1,148 = 0,774 Váha výroku plice tedy bude 2,323. Pravidlo c6 z něj pomocí standardní funkce CTR odvodí příspěvek 2,323/3 * 2,0 = 1,549 k cílovému výroku diagnoza(TBC). Příspěvek pravidla c9 k témuž výroku je 0,333, neboť váha předpokladu i váha samotného pravidla je 1. Spojení obou příspěvků určuje opět funkce GLOB: GLOB(1,549/3; 0,333/3) = = (0,516 + 0,111) / (1 + 0,507 * 0,111) = = 0,627 / 1,057 = 0,593, takže výsledná váha výroku diagnoza(TBC) je 1,779. Pokud bychom pro zpracování neurčitosti v této konzultaci použili logický inferenční mechanismus, situace by se značně změnila: Pravidlo c2 by mělo pomocí přísné logické funkce CTR nulový příspěvek, neboť součet vah předpokladu (1/3) a pravidla (2/3) není větší než 1. Výrok plice je tak odvozen pouze pravidlem c3 s váhou 2. Příspěvek pravidla c6 je pak roven 2/3 + 2/3 – 1 = 1/3, tj. 1 v naší škále. Pravidlo c9 bude mít z logického hlediska také nulový příspěvek (součet neurčitostí předpokladu a pravidla je pouze 2/3, což je málo na to, aby mělo nějaký efekt). Výsledná váha výroku diagnoza(TBC) je tak při použití logického inferenčního mechanismu 1,0. Poznamenejme, že tento příklad je spíše atypický, nejčastěji nedochází k tak výrazným rozdílům a pořadí cílových výroků podle získaných vah bývá obdobné ve všech implementovaných modelech práce s neurčitostí. * 4.4 Srovnání přístupů práce s neurčitostí v NEST Jak již bylo zmíněno, jedním z účelů systému SAK a potažmo NEST bylo mimo jiné umožnit srovnání přístupů zpracování neurčitosti. Systém NEST umožňuje tvůrci báze znalostí zadat a porovnat výsledky konzultací pří následujících přístupech práce s neurčitostí: • Standardní přístup – založený na pravděpodobnosti. • Logický přístup – založený na fuzzy logickém přístupu. • Neuronový přístup – založený na přístupu z oblasti neuronových sítí. • Hybridní přístup – je přístup kombinující standardní a fuzzy logický přístup. Při průchodu bází znalostí NEST přepočítává váhy pomocí funkcí popisovaných v kapitole 4.2 Funkce pro práci s neurčitostí přístupem, který je zadán při vytváření báze znalostí. Uživatel však může přístup k zpracování neurčitosti změnit viz Obrázek 4-2 před zahájením vlastní konzultace. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 74 Obrázek 4-2: Volba přístupu při zpracování neurčitosti v NEST PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL Za účelem srovnání výsledků doporučujeme vyhodnotit konzultaci standardním způsobem a výsledky konzultace jakož i vlastní odpovědi uložit. Před dalším spuštěním konzultace jednoduše nahrajete uložené odpovědi (viz kapitola 2.2.3 NEST – základní možnosti a spuštění konzultace) a změníte typ zpracování neurčitosti (Obrázek 4-2). Uložené výsledky pak lze jednoduše porovnat např. v tabulkovém kalkulátoru MS-Excel. SAMOSTATNÝ ÚKOL 1 Srovnejte výsledky konzultací nad bází znalostí nemoce.xml za použití: 1. Standardního mechanizmu 2. Logického mechanizmu 3. Neuronového mechanizmu Jako vstupní hodnoty použijte tabulku Tabulka 4-1. SHRNUTÍ KAPITOLY NEURČITOST V NEST V právě prostudované kapitole jste se seznámili s mechanizmem zpracování neurčitosti a výpočtu vah při tzv. standardním přístupu systému NEST. Měli by jste umět použít jednotlivé funkce. Také by jste měli být schopni ovlivnit způsob práce s neurčitostí v samotné aplikaci. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Shrnutí kapitoly 75 ŘEŠENÍ A ODPOVĚDI Mechanizmus 1 Výroky 1,779 1,779 diagnoza(Nachlazeni) 1,285 1,285 -0,857 -0,857 1,285 1,285 1 1 -0,285 -0,285 diagnoza(Nachlazeni) diagnoza(TBC) diagnoza(Chripka) 3 Max váha diagnoza(TBC) diagnoza(Chripka) 2 Min váha < diagnoza(TBC) 2,111 2,111 diagnoza(Nachlazeni) 1,285 1,285 -0,857 -0,857 diagnoza(Chripka) Všimněte si prosím, že výsledky logického mechanizmu jsou zcela odlišné od ostatních dvou; diagnózou s největší vahou je nachlazení, kdežto v druhých dvou případech je to TBC (i když i v těchto případech se konkrétní váha liší). PRŮVODCE STUDIEM 7 V současné době jsme již načerpali dostatek informací, abychom rozuměli (alespoň rámcově), jak pracuje program NEST. Měli bychom také z předchozího textu být schopni vybrat vhodnou oblast pro řešení pomocí nástrojů znalostního inženýrství. Proto následující kapitola naváže nastíněním možného postupu při práci nad úlohou zpracovávanou v NESTu. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 76 5 APLIKACE V NEST RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY APLIKACE V NEST Kapitola Aplikace v NEST bude ryze praktická. Pokusíme si nastínit jak vybrat vhodné téma (např. pro seminární práci), kterak postupovat při samotném uchopení problému a zorientování se, nalezení atributů, započetí vlastní práce v NEST editoru a tvorby pravidel, dále možnostem při ladění báze znalostí a možností výstupu použitelných pro dokumentační účely. Rychlý náhled Kapitola bude tedy zaměřena na získání ryze praktických znalostí a dovedností pomocí názorných ukázek. CÍLE KAPITOLY APLIKACE V NEST Po úspěšném a aktivním absolvování této KAPITOLY Budete umět: Budete umět • Graficky reprezentovat váš konkrétní problém a grafickou reprezentaci dále využít pro zadávání atributů báze znalostí. • Založit vlastní bázi znalostí a konkrétním nastavením ovlivnit její chování při konzultaci. • Zadávat a editovat atributy, výroky a pravidla. • Zapisovat i složitá pravidla obsahující konjunkci či disjunkci v předpokladu a budete umět použít negaci výroku. Získáte: Získáte • Informace jak postupovat při výběru tématu. • Způsoby jak nalézt znalosti. • Vysvětlení k čemu slouží komentáře v bázi znalostí. • Návod jak postupovat při ladění báze znalostí. Budete schopni: • Na základě analogie ilustrovaného příkladu si vybrat vlastní téma seminární práce, téma analyzovat a pomocí postupných kroků dovést do úspěšného konce. • Zvolit cílové výroky. • Identifikovat na základě analýzy problému mezilehlé roviny. • Znalosti zapisovat pomocí pravidel do báze znalostí. • Na základě uplatnění složitých pravidel a negací v nich a uváženými a opodstatně- Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Budete schopni 77 nými změnami vah ladit bázi znalostí. • Tvořit dokumentaci a vysvětlit její smysl. ČAS POTŘEBNÝ KE STUDIU Celkový doporučený čas k prostudování, v případě souběžného praktického odzkoušení v programu NEST editor, KAPITOLY je minimálně 240 minut. Pokud se student bude zároveň se studiem textu zabývat i výběrem a plněním korespondenčních úkolů, s největší pravděpodobností tento čas lehce přesáhne. Protože je kapitola časově náročná a poměrně stěžejní především vzhledem k požadavku vypracování vlastního projektu rozdělili jsme text do čtyř logických celků oddělených upozorněním na čas k odpočinku. KLÍČOVÁ SLOVA KAPITOLY APLIKACE V NEST Vhodné oblasti, získávání znalostí, výběr cíle, založení báze, rozsah vah, implicitní váha, zadávání atributů a výroků, tvorba pravidel, předpoklad, disjunkce a konjunkce v přepokladové části, negace v pravidle, závěr pravidla, odlaďování báze, nadbytečné pravidlo, cyklus v bázi, tvorba dokumentace. Klíčová slova Jak již na jiných místech opory bylo zmíněno, autoři opory se domnívají, že nejlepší znalosti a dovednosti z různých oborů se dají získat zapojením studentů do řešení úloh a proto chtějí exkurz do disciplíny znalostního inženýrství založit na vlastní zkušenosti studenta z ovládání programu NEST a tvorby vlastní báze znalostí pomocí NEST editoru. S programem NEST jsme se již seznámili v kapitole 2 Prostředí NEST a také programem NEST editor jsme velmi krátce poznali v rámci kapitoly 3. 5.1 Výběr problému a grafická reprezentace V kapitole 1.4 Typy aplikací expertních systémů se dočteme, že vhodná témata nebo oblasti jsou takové, ve které v praxi existuje osoba, kterou bychom mohli nazvat expertem, a zároveň si umíme představit, že konzultace nebo porada s tímto expertem by mohla být prováděna po telefonu, tedy bez jeho fyzické přítomnosti, a to v délce nepřesahující přibližně čtvrt hodiny. Obecně, i s přihlédnutím k již zpracovávaným pracím z dřívějška, lze říci, že přijatelné a dobře zpracovatelné jsou aplikace na téma doporučení vhodného výrobku (namátkou doporučení: notebooku, auta, dovolené, mobilního telefonu, vhodného sportu pro dítě, domácího mazlíčka, finančního produktu atd.), nebo diagnostické úlohy zakládající se na základech psychologických, lékařských či jiných dotazníků (např. diagnostika možnosti vrozených vad, diagnostika typu temperamentu, diagnostika vhodné role v týmu atd.) a nebo diagnostiky různých závad a poruch (nahrazení help linky, diagnostika poruch v počítačové síti, chyby počítačů, aut, vhodný postup při provádění prv- Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Vhodné oblasti 78 ní pomoci atp.). V rámci volby oboru či hodnocení vhodnosti problému ke zpracování metodikou a prostředky znalostního inženýrství samozřejmě nesmíme zapomenout na znalosti v daném (vybraném) oboru. Musíme mít zdroj potencionálních znalostí. Znalosti můžeme formulovat na základě studia a analýzy odborných článků (v tištěné literatuře či internetu), nebo na základě rozhovorů s expertem v dané oblasti případně na základě syntézy a porovnávání obou zmiňovaných zdrojů. PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL Vybrali-li bychom si oblast ke zpracovávání např. doporučení vhodného fotoaparátu, můžeme s klidným svědomím prohlásit, že toto je vhodná oblast, neboť se jedná o diagnostický problém – doporuční vhodného výrobku na základě zjištění potřeb konzultující osoby. V praxi v roli experta vystupují obchodní asistenti prodeje s fotografickými potřebami či elektro prodejen a lze říci, že v rámci tohoto poradenství jsou schopni zákazníkovi pomoci s výběrem v rámci několika málo minut. Také si jistě dokážeme představit, že by byla takováto konzultace proveditelná bez nutnosti setkání experta (prodávajícího) a konzultujícího (kupujícího) či fyzické přítomnosti doporučovaného zboží (je možné, jak je to ostatně obvyklé v rámci e-shopů, suplovat obrázky či odkazy na konkrétní zboží). Konkrétní znalosti lze tedy čerpat od konkrétního prodejce či na základě prostudování článků zabývajících se problematikou výběru vhodného aparátu (např. Jak správně vybrat digitální fotoaparát? - 1. díl). ÚKOL K ZAMYŠLENÍ 5 Zkuste se nyní zamyslet nad vám blízkou oblastí, ve které znáte jistá doporučení či dokonce pravidla výběru či hodnocení, nebo, ve které znáte osobu (experta), jež těmito znalostmi vládne a byla by ochotna s vámi spolupracovat na potencionální seminární práci. PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL V rámci kapitoly si nastíníme vlastní postup při zpracovávání báze znalostí na úloze doporučení vhodného šicího stroje. Báze a postup bude velmi omezen, a to vzhledem k cíli předvést postup výběru tématu, tvorby grafické reprezentace, identifikace atributů, tvorbu pravidel, odladění báze a možnost expotru informací pro dokumentaci. Vybrali jsme si tedy vhodnou a nám přitažlivou oblast doporučení vhodného šicího stroje. Je zřejmé, že můžeme úlohu pojmout ve dvou rovinách: 1. obecné doporučení stroje pro občasné šití (pro začátečníky), pro domácí kutily (poloprofesionální) a nebo pro spíše profesionální účely, a to nezávisle na konkrétních modelech či značkách, Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Získávání znalostí 79 2. doporučení konkrétního typu a značky z omezené množiny zahrnutých modelů, na základě zjištění potřeb konzultujícího. K ZAPAMATOVÁNÍ 19 Na tomto místě je potřeba zdůraznit slova doporučení na základě zjištění potřeb. Což se může a většinou liší od zjišťování preferencí, tedy zjišťování, kterých vlastností si uživatel více váží, či které by preferoval (což je základní úlohou systému AHP14). Ve vybrané oblasti si stanovíme cíl: výběr konkrétního modelu – čili program na konci konzultace po zjištění potřeb a jejich ohodnocení váhami na základě odpovědí od uživatele a pro projití či přepočtu inferenčním mechanizmem doporučí (odliší číselnou vahou) jeden ze tří šicích strojů značky Brother: LS2125, BC2100 a nebo NV400. Stanovili jsme si tedy konkrétní cíle, které v již dříve rozebíraném názvosloví budeme reprezentovat jako cílový atribut množinový, který bude nabývat tří výrokových stavů (tj. konkrétních modelů). Tyto stavy můžeme zaznamenat do grafu popisujícího bázi (viz Obrázek 5-1). Výběr cíle K ZAPAMATOVÁNÍ 20 Výběr cílů potažmo i zhodnocení vhodnosti námi vybrané oblasti pro např. seminární práci je také limitován možností zda jsme na základě analýzy cílových výroků (chcemeli dodržet více stupňovost báze) schopni identifikovat dostatek společných i odlišných vlastností těchto výroků, které by mohly být reprezentovány výroky a atributy v mezilehlé rovině. Potažmo jsme-li schopni formulovat laické dotazy na potřeby klienta, ze kterých jsme dále schopni vyvozovat a usuzovat pomocí obecně platných pravidel z oboru platnost zmiňovaných výroků mezilehlé roviny. o Uveďme si na internetu dosažitelné parametry vybraných šicích strojů (ke dni 18.12.2007 dosažitelné ze stránek např. http://www.brother-czech.cz): LS2125 • • Cena: 2.701,00 Kč. Jednojehlový základní šicí stroj s kyvným chapačem a volným ramenem a výbornou cenou. • 7 druhů stehů. • 21 šicích technik. • Pevně dané programy. • Šití knoflíkové dírky na 4 kroky. NV400 BC2100 • • • • Cena: 6.289,00 Kč. Elektronický šicí stroj s rotačním chapačem a volným ramenem. • • LCD dispej pro jednoduché nastavení parametrů šití. Plná automatika pro šití knoflíkových dírek, 5 druhů. • 40 voleb stehů. • Volné nastavení délky stehu a šířky 14 Vlastnosti strojů • Cena: 17.017,00 Kč. Špičkový elektronicky řízený šicí stroj s přímou volbou funkcí tlačítky, LCD display, pro náročné zákazníky, robustní konstrukce, rozšířená šicí plocha v ceně, kroková a patchworková patka v příslušenství. Šicí stroj pro náročné zákazníky. V paměti 294 druhů stehů a 10 druhů knoflíkových dírek šitých automaticky. Analytic Hierarchy Process – analytický hierarchický proces, se kterým se studenti OPF SU mohou seznámit blíže v rámci kurzu Rozhodovací analýza pro manažery či konkrétně ve skriptu prof. RNDr. Jaroslava Ramíka CSc. Vícekriteriální rozhodování - analytický hierarchický proces (AHP). ISBN 80-7248-047-2. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 80 • Volné rameno. • Zapošití a šití zpět páčkou. • • • cik – caku. • 3 sady znaků. • Automatický navlékač horní nitě. • Přímá volba základních stehů. Regulace napětí horní nitě. • Blesková příprava spodní nitě. • Možnost šití dvoujehlou. • Šestinásobně dělený podavač. Příslušenství: patka pro šití knoflíkové dírky, zipová patka, patka pro našívání knoflíků, sada jehel - 3 ks, dvoujehla, látací destička, přídavný kolík cívky, 3 ks cívek, šroubovák. • • • Tlačítko pro zafixování polohy patky. Rychloupínací systém pro výměnu patek. • • • 10 pamětí pro uložení nejpoužívanějších šicích nastavení. Vlastní návrh vyšívacích stehů. Programovatelný automatický odstřih. Čelní uložení cívky nití. Ovládání podavače zasunutím pod stehovou desku pro látání a vyšívání. • • Osvětlení šicí plochy LED diodami. • Dobře přístupné ovládací prvky. • Dobře přístupné ovládací prvky. • Schránky s příslušenstvím. Volné rameno pro šití uzavřených kruhů - nohavice, rukávy. • Šestinásobně dělený podavač. • Regulace přítlaku patky. • • Příslušenství: patka pro šití knoflíkové dírky, overloková patka, patka pro vyšívání monogramů, patka pro přišívání zipů, patka pro slepý steh, patka pro přišívání knoflíků, sada jehel + dvoujehla, 4 ks cívky, páráček, šroubovák, přídavný kolík cívky, štěteček k čištění. • Prostor pro šití i rozměrných dílů, velký šicí stůl součástí příslušenství. Tlačítko pro zafixování polohy patky. • Automatický navlékač nitě. • Blesková příprava spodní nitě. • Osvětlení LED diodami. • Volné rameno pro šití rukávů. • Volba polohy jehly při zastavení. • • • Světelná signalizace pro START a STOP. Kolenní páka. Příslušenství: prošívací patka pod pružinou, kráčející patka, patka pro knoflíkovou dírku, patka obnitkovací, patka pro monogramy, patka pro všívání zipu, patka pro přišívání knoflíků, patka s vodítkem, teflonová patka, patka s otevřenou špičkou, dvoujehla, páráček, šroubováky,kartáček..... Z výše uvedeného vyplývá, že stroje intuitivně můžeme rozlišit na stroj základní (LS2125 - nabízí základní funkce a je za nejnižší cenu), stroj střední třídy (BC2100 – nabízí široké možnosti stehů a šicích technik spolu s možností vlastního nastavení, více příslušenství) a stroj nejvyšší třídy (NV400 – nejlépe vybavený co do příslušenství i funkcí). Rozšíříme-li, pro jaký druh zákazníka doporučíme základní zmíněné druhy strojů, pak bychom to mohli na základě konzultace s krejčovou či vlastních zkušeností vyhodnotit následovně: • Základní typ šicího stroje vhodný pro občasné šití (uživatel nemá nároky na rychlou Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 81 přípravu stroje k šití), pro šití typu drobných správek (látání, sešívání roztrhaných švů atp.), sešívání dílů z obvyklých druhů látek (nebude využívat speciálních patek) základními stehy (nebude používat ozdobných stehů a nebude mít potřebu upravovat délku a šířku stehů). Obecně tedy vhodný pro uživatele, kteří občas něco potřebují spravit nebo vyrobit a nemají ambice na profesionalitu provedení. • Šicí stroj střední třídy by měl být kompromisem mezi základní a nejvyšší třídou. Tedy bude doporučován pro domácí ne příliš časté šití konfekce tedy výrobků, u kterých je potřeba mít jistou možnost variability v šířce a délce stehu, dále větší výběr stehů, předpokládané jsou taktéž požadavky na automatické šití knoflíkové dírky a také více komfortu při přípravě šicího stroje. Protože předpokládáme šití konfekce je předpoklad, že uživatel může mít nároky na šití i z tenkých, z mačkavých či kluzkých materiálů, nebo šití patchworku, nebo přišíváni stuh, prýmků a perel či všívání zipů „skrytým“ způsobem (stroj nabízí možnost dokoupení rozšiřujícího příslušného příslušenství). Mohl by být vhodný i jako druhý stroj pro zařízení dílny pro oprávky (tedy pro obdobné typy šití jako nižší třída s tím rozdílem, že by se jednalo o časté šití). • Šicí stroj nejvyšší třídy pak budeme doporučovat pro zákazníky profesionály, tzn. kteří šijí velmi často, potřebují co nejvíce usnadnit manipulaci se strojem a jeho přípravu k šití, vyžadují maximální komfort a možnosti nastavení, a vzhledem k rozsahu výrobků vyžadují široké možnosti příslušenství. Z výše uváděných vlastností a charakteristik zákazníka, pro kterého by byl stroj určen bychom mohli učinit následující závěr: pro doporučení cílového typu stroje je potřeba v rámci konzultace zjistit a rozlišit úroveň šití profi (UP) či hobby (UH); šíři použití stroje vysoká (ŠPV) a nízká (ŠPN); četnost šití nízká (ČŠN) a vysoká (ČŠV); komfort obsluhy a možnosti nastavení či rozšíření nízká (KaMN), střední (KaMS) a vysoká (KaMV). Identifikované vlastnosti a vztahy mezi nimi můžeme zaznamenat do grafu (viz Obrázek 5-1), který nám poslouží i pro budoucí tvorbu pravidel (vztahy reprezentované pomocí šipek mezi jednotlivými atributy). Tyto vlastnosti mimo četnosti šití budou vyhodnocovány na základě základních dotazů. Mezi základní dotazy pak zařadíme dotazy na profesionalitu výstupu, šití svatebních, plesových šatů, společenských a slavnostních oděvů, šití patchworku, šití ozdobných výšivek, vyšívání monogramů, látání, oprávek, prošívání a sešívání vícevrstvých dílů, šití z kluzkých, jemných či krčivých materiálů (atd.). Základní dotazy již na obrázku Obrázek 5-1 zachycené nejsou, neboť by se stal nepřehledným. K ZAPAMATOVÁNÍ 21 Z výše uvedeného odstavce to není tak zřejmé, nicméně při stanovování atributů v rámci přípravy projektu se nám může stát, že některé z atributů se v jistých dimenzích mohou z menší části překrývat. Proto nepodceňujte vytváření si své vlastní dokumentace již při analýze problému, ve které nejen atributy nazvete, ale i blíže popíšete, tak aby při návratu od přerušené práce nedocházelo k logickým posunům, způsobeným zapomínáním. Při práci s NEST editorem pak můžeme využít k tomuto účelu již zmiňované komentáře jednotlivých atributů. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 82 PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL Mějme, prosíme, neustále na paměti, že při zpracování úlohy ve znalostním inženýrství neexistuje obecně správné řešení. Každý znalostní inženýr řeší úlohu logickou úvahou tak, aby dosáhla požadovaných cílů nebo subjektivně vytyčených cílů – čili úloha bývá podmíněna účelem a logika řešení má tuto účelovost ctít. Je tedy obtížné, zůstaneme-li v rovině našeho kurzu, vyjadřovat se k návrhům na seminární práci pokud tutor (přednášející, cvičící atp.) nezná mantinely, cíl, účel či nástin logiky problému, který student hodlá zpracovávat. LS212 ŠPN BC210 ŠPV NV400 KaM N UH KaM S KaM V UP ČŠN ČŠV Obrázek 5-1: První náčrt budoucí báze znalostí a vztahů mezi některými jejími prvky. KORESPONDENČNÍ ÚKOL 3 V této chvíli by jste již měli býti schopni nejen vybrat vhodnou oblast pro řešení v rámci seminární práce, ale také učinit grafický rozbor svého problému s identifikací cílů, některých mezilehlých výroků a také některých základních výroků. Vámi vybranou oblast s určením cílových, některých mezilehlých a základních výroků (případně s grafickým znázorněním ve formě oskenovaného náčrtu či vytvořeným např. pomocí kreslení v MSword) odevzdávejte na elearningovém serveru. Váš návrh bude konzultován s tutorem. 5.2 Založení nové báze Po přípravné analýze námi zvoleného problému můžeme směle spustit NEST editor a započít vlastní práci. Nejprve (např. volbou z menu Soubor/Nový nebo klávesovou zkratkou CTRL+N) založíme novou bázi. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Založení báze 83 Obrázek 5-2: Zadání globálních parametrů uživatelem. Je vhodné v okně „Globální parametry“ vyvolaném předchozí akcí uživatele ihned zadat známé parametry a zvolit volitelné parametry (viz Obrázek 5-2). Doplníme krátký popis báze, tak aby bylo jasné k jakým účelům je báze konstruována, co je jejím cílem či výsledkem. Dále zadáme jména nebo jméno experta (kdo je to expert jsme již definovali v předchozím textu např. v rámci kapitoly 1 Znalostní inženýrství a struktura expertních systémů odstavec Expert) a znalostního inženýra. 5.2.1 Volby báze znalostí Další volby, jimiž ovlivníme chování báze znalostí či spíše chod inferenčního mechanizmu, jsou tyto: • Rozsah vah - interval [-rozsah vah ; rozsah vah], ve kterém budou zadávány a zobrazovány veškeré váhy v bázi. V tomto intervalu pak zadávejte i veškeré váhy při tvorbě báze. Pokud rozsah vah změníte, veškeré váhy se automaticky přepočítají. Tento parametr byste měli určitě zadat při založení nové báze, abyste mohli jednotlivé váhy zadávat ve správném intervalu. PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL Běžně se v bázi znalostí používá rozsah vah 1 nebo 3. Je celkem jedno jaký rozsah si zvolíte systém na pozadí váhy nakonec přepočítává na rozsah 1 a pro zobrazení výsledků zase zpět do rozsahu zadaným uživatelem. Prakticky: někteří lidé jsou zvyklí lépe hodnotit nebo vyjadřovat váhy percentuálně (pak bychom preferovali rozsah vah 1). Rozsah vah 3 má tu výhodu, že respektuje obecnou schopnost lidí ještě dobře rozlišovat na škále 7 stupňů, což rozpětí -3 až 3 v celých číslech poskytuje. • Globální práh platnosti kontextu udává váhu, kterou musí překročit kontext, aby byl splněný (a aby tedy bylo použito pravidlo, u kterého je kontext uveden). U každého pravidla lze zadat individuální práh, pokud však není uveden, je použit tento Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Rozsah vah 84 globální práh. • Globální práh platnosti předpokladu udává váhu, kterou musí překročit logické pravidlo (resp. jeho minimální váha), aby bylo vyhodnoceno jako splněné. Opět lze u jednotlivých pravidel nastavit individuální práh. • Inferenční mechanizmus – určí jakým způsobem bude defaultně přistupovat inferenční mechanizmus k zpracování neurčitosti (viz také kapitola 4 Neurčitost v NEST). • Implicitní váha určuje, jakou váhu mají dostat výroky, kterým nebyla váha určena jinak (například výpočtem nebo dotazem). Tuto váhu dostanou například všechny výroky odvozené od multiple atributu, kterým uživatel v dotazu nepřiřadil jinou váhu. Implicitní váha může být buď neznámá, tj. váha [-1 ; 1] (upravená na rozsah příslušné báze), nebo irelevantní, tj. váha [0 ; 0]. Implicitní váha • Globální priorita pravidel určuje, v jakém pořadí bude systém zpracovávat pravidla, nastane-li situace, že jich může použít více najednou. Od začátku znamená, že systém dá přednost tomu pravidlu, které je v bázi znalostí uvedeno dříve, od konce znamená přesný opak. Minimální délka znamená, že systém použije nejprve pravidlo, které má kratší předpoklad, při maximální délce vezme nejprve pravidlo s delším předpokladem. Při volbě definovaná expertem budou brána pravidla v pořadí podle priority, kterou určil expert při tvorbě báze. Pokud tato priorita není u pravidel uvedena, systém se zachová jako při volbě od začátku. Globální priorita PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL V zásadě mimo určení rozsahu vah a doplnění popisných informací (popis báze, expert, znalostní inženýr) můžeme nastavení ponechat ve výchozím stavu. ODMĚNA A ODPOČINEK Na tomto místě je jistě vhodné si udělat pauzu, zvlášť pokud jste při studiu začali přemýšlet nad vhodnou oblastí pro seminární práci či dokonce jste se problém pokusili pomocí grafického znázornění „uchopit“. PRŮVODCE STUDIEM 8 V tuto chvíli bychom (pokud samozřejmě chcete dle výkladu zpracovávat analogicky např. svůj problém) měli mít ujasněno, jakým tématem se zabýváme, identifikovali jsme cílové výroky a také některé mezilehlé a základní výroky. Stěžejní výroky a stěžejní vazby jsme si zachytili pomocí grafu. Založili jsme novou bázi, do které jsme zadali globální vlastnosti a nyní se můžeme vrhnout na vlastní konstrukci báze. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Odměna a odpočinek 85 5.3 Konstrukce báze znalostí Na základě grafického znázornění výroků a vztahů mezi nimi (vlastního nebo můžeme pracovat s grafem Obrázek 5-1) můžeme uvažovat, jaké v bázi použijeme atributy a které z v grafu zachycených výroků jim přiřadíme jakožto jejich výrokové stavy (samozřejmě, že stále máme v pozadí na zřeteli i ostatní vlastnosti v grafu nezachycené a popsané při našem modelovém případě v podkapitole 5.1 ). 5.3.1 Zadávání atributů a jejich výroků V případě doporučení šicího stroje z grafu vidíme, že máme tři konečné cílové výroky, čili toto jsou výrokové stavy příslušného atributu, který si můžeme nazvat „šicí stroj“. Konkrétní výroky tohoto atributu jsou tedy jednotlivé typy (viz Obrázek 5-3). Typ atributu použijeme množinový, neboť jednotlivé výroky mohou samozřejmě platit současně s rozdílnou vahou (prodavač v obchodě mimo to, že zákazníkovi něco doporučí, se také často vyjadřuje k alternativám, které též hodnotí). Obrázek 5-3: Zadávání cílových výroků pro cvičný případ doporučení šicího stroje. Obdobným způsobem pak zadáme i ostatní atributy tedy šíře použití (ŠP), úroveň šití (U), komfort obsluhy a možnosti (KaM) také jako množinové atributy. Atribut četnost šití (ČŠ) bud atributem numerickým, kdy budeme zjišťovat jak často uživatel bude se strojem během měsíce pracovat v rozmezí 0-31. Odpověď z intervalu 0-4 považujeme za Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 86 odpověď zcela jistě ČŠ nízká, odpověď z intervalu 15-31 zcela jistě ČŠ vysoká, odpověď z intervalu 4-8 ještě ČŠ nízká (nízká s vahou nižší než 1) a odpověď z intervalu 415 za již vysoká (vysoká s vahou nižší než 1). Mezi základní atributy (tedy atributy, které budou figurovat pouze v předpokladové části pravidel a z pohledu konzultujícího vystupují v roli otázek) zařadíme mimo numerického atributu další, dotazující se konzultujícího jakým způsobem bude stroj využívat, jaké produkty bude na stroji zhotovovat, či jaké šicí techniky hodlá používat. Z těchto odpovědí pak lze usuzovat na nutnost a škálu doplňků, možnosti nastavení šicího stroje a možnosti využívání škály stehů, což jsou (jak jsem si ukázali na výčtu vlastností v odstavci Vlastnosti strojů na str. 79) nejvýznamnější vlastnosti odlišující jednotlivé typy strojů. Konkrétně do báze znalostí bychom mohli zavést atributy (údaje či upřesnění uváděné v závorkách, můžeme uvádět do komentářů – poslouží pro lepší orientaci a pochopení otázky konzultující osobou při vlastní konzultaci): • Binární: Podnikání (šití na šicím stroji Vás živí – podnikáte v oboru švadlena, krejčová atp.)? Šití známým (šijete širšímu okruhu svých známých)? Šití pro nejužší rodinu? • Množinové (jednotlivé položky z následujících atributů by samozřejmě bylo možno řešit jako samostatné binární atributy, nicméně výroky v atributech jsou logicky seskupeny a navíc přinášejí přehled do NEST editoru): o Šicí techniky (ohodnoťte vahou v přípustném rozmezí, prosím, z množiny následujících šicích technik, které budete používat): záplatování, sešívání dílů, obšívání (ubrusy, povlečení, závěsy, záclony), patchwork (někdy také quilting), prošívání, knoflíkové dírky, vyšívání monogramů, entlování se začistěním otřepků. o Konfekce (ohodnoťte vahou v přípustném rozmezí, prosím, z množiny následujících možných finálních produktů, které budete produkovat): drobné opravy, šití společenských oděvů a konfekce, šití domácích oděvů, šití pracovních oděvů, šití svatebních šatů, šití plesových šatů. o Ostatní (ohodnoťte vahou v přípustném rozmezí, prosím, z množiny následujících možných finálních produktů, které budete produkovat): výroba textilních hraček, ozdob a dekorací, ochranných pomůcek, obalů, tašek. Přehled zavedených atributů a jejich výroků je ilustrován pomocí obrázku Obrázek 5-4. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 87 Obrázek 5-4: Přehled atributů a jejich výroků pro bázi znalostí šicí stroj. SHRNUTÍ Nyní se nacházíme v situaci, kdy jsme založili novou bázi znalostí a pomocí grafického znázornění vazeb mezi jednotlivými atributy, respektive jejich výrokovými stavy, které jsme identifikovali na základě např. analýzy cílových výroků a jejich vlastností, bychom mohli začít tvořit pravidla. Není chybou, když během další práce zjistíte, že je vhodné nebo dokonce potřebné do báze vložit nový atribut nebo doplnit dříve zapomenutý či neidentifikovaný výrokový stav (čím méně takových zásahů budete mít, tím jste pravděpodobně kvalitněji provedli analýzu problému). Celý proces vytváření a odlaďování báze znalostí je proces, kde má fungovat zpětná vazba. Shrnutí KORESPONDENČNÍ ÚKOL 4 V minulém korespondenčním úkolu jste si zvolili téma seminární práce a vypracovali jste graf z něhož budete vycházet při konstrukci báze znalostí. Určili jste cílové výroky a některé důležité především mezilehlé výroky. Dále prosím zpřesněte své zadání o uvedení dalších atributu výčtem základních atributů a jejich výrokových stavů. ODMĚNA A ODPOČINEK Pokud při studiu textu paralelně pracujete například na své seminární práci, pak neza- Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Odměna a odpočinek 88 pomeňte na odpočinek a načerpání nových sil. 5.3.2 Tvorba pravidel Pro tvorbu vlastních pravidel již máme potřebné předpoklady splněny. Provedli jsme analýzu našeho problému a graficky jsme náš problém zachytili. Zadali jsme pomocí NEST Editoru atributy a jejich výrokové stavy. Nebrání nám nic tvořit pravidla. K ZAPAMATOVÁNÍ 22 Pravidlo se skládá z předpokladu, kde může figurovat kterýkoli z výrokových stavů všech typů atributů a závěru pravidla, kde mohou být pouze výrokové stavy atributů množinových a binárních. Podrobněji jsme se již pravidly, respektive jejich reprezentací zabývali v kapitole 3.2.2 Pravidla na straně 61. Nová pravidla zadáváme např. vyvoláním nabídky menu Edituj/Pravidla nebo dvojklikem pravým tlačítkem v horní polovině sloupce pravidla, vyvoláme tak okno pro zadávání nového pravidla (viz Obrázek 3-4). Po stlačení tlačítka Nové pravidlo výběru typu pravidla (pracujeme s kompozicionálními pravidly) Obrázek 5-5:Editační okno pro editaci a vytváření pravidel (barevně jsou zatrženy některé důležité části okna). Okno pro editaci a zadávání pravidel je znázorněno na obrázku: Obrázek 5-5. V levém sloupci se nachází nebo bude nacházet seznam již existujících pravidel. V horním šedém řádku je pak zobrazeno vlastní pravidlo v IF THEN podobě (tento zápis se mění v závislosti na změnách vykonávaných pomocí ostatních ovládacích prvků okna). Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 89 Při vytváření pravidla je potřeba si rozmyslet jakým způsobem budeme značit jednotlivé pravidla (numericky, za pomocí zkratek a čísel, či zvláštními názvy objasňující vlastní vazbu). Do kolonky ID, v levé části okna pod šedým řádkem, vyplníme tedy označení pravidla. Dále bychom ještě mohli nastavit prioritu pravidla případně kontext. Také můžeme vyplnit kolonku Komentáře, do které (pokud je projekt rozsáhlejší či pravidlo složitější) vložíme nějaký blíže vysvětlující komentář. Vytvoření pravidla PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL Obrázek 5-5 zachycuje pravidlo reprezentované čtyřmi vazbami sbíhajícími se v atributu BC2100 (viz Obrázek 5-1). Při zadávání předpokladové části pravidla budeme využívat tři části okna „Pravidla“ (zvýrazněná červenou, zelenou a modrou barvou viz opět Obrázek 5-5, na tyto barevně odlišené části oken se budeme v následujících odstavcích odvolávat). V předpokladové části může být pouze jeden předpoklad, logická konjunkce dvou či více předpokladů nebo logická disjunkce dvou či více předpokladů či logických konjunkcí. Předpoklad Při vytváření přepokladu nejprve musíme kurzorem označit (tak, aby bylo podbarveno modře) slovo „předpoklad“ v červeném rámečku. Po té můžeme ze zeleného boxu vybrat konkrétní předpokladový výrok (předpoklad) a po stlačení první ikony z modrého rámečku (připomínající klávesu enter) vložíme tento do předpokladu pravidla. Zopakováním tohoto postupu vytvoříme předpoklad s disjunkci dvou předpokladů. Disjunkce Chceme-li vytvořit konjunkci, nejprve opět označíme slovo „předpoklad“ a poté stiskneme druhé tlačítko se shora v modrém rámečku s ikonou „&“. Výroky pro konjunkci pak vkládáme stejným způsobem jako v předešlém odstavci, jen místo slova „předpoklad“ musíme mít označený znak „&“. Konjunkce Chceme-li mít v předpokladové části obsaženou negaci nějakého výroku, tento výrok, pokud už jsme je vložili a vidíme ho v červeně označené části okna, označíme a zatrhneme políčko „Negace“. Před výrokem v červeně ohraničené části okna se objeví znaménko záporu a v šedém řádku NOT. Negace Chceme-li některý z výroků (nebo konjunkci) z předpokladové části smazat, pak jej označíme a myší klikneme na poslední tlačítko v modře označené části s ikonou křížku. Mazání V závěrové části pravidla může být opět jediný výrok nebo skupina výroků, jimž navíc přiřazujeme váhu jejich platnosti. Závěr(y) vybíráme ze sloupečku „Možné závěry“ a přesouváme je do sloupečku „Vybrané závěry“ pomocí tlačítka (tlačítek mezi oběma sloupci) mezi sloupci. Váhu pak po označení vlastního závěru vepíšeme vždy jako kladnou hodnotu boxu „Váha“. Má-li být výsledná váha záporná, zatrhneme volbu negace (viz černá část okna „Pravidla“). Závěr pravidla Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 90 ODMĚNA A ODPOČINEK Předchozí text kapitoly 5.3.2 Tvorba pravidel sice nebyl dlouhý a ani náročný, přesto před dalším pokračováním si udělejte pauzu na vyčištění myšlenek a nabrání dalších sil. 5.4 Odlaďování báze Odlaďování báze znalostí je dalším stěžejním bodem při tvorbě fungujícího projektu. Pokud jste přesvědčeni, že ve vaší bázi jsou zachyceny téměř všechny nebo všechny výroky a atributy, a pokud jste již všechny výroky použili v alespoň jednom pravidle, můžete se zabývat odlaďováním. K ZAPAMATOVÁNÍ 23 Pro odlaďování je potřeba mít připraveny tzv. vzorové odpovědi pro jednotlivé cílové výroky. V zásadě existuje pro každý cílový výrok vzorová konzultace, respektive soubor odpovědí, který by měl systém vyhodnotit s vysokou vahou pro daný cílový výrok (na rozdíl od ostatních cílových výroků). Je to vlastně jakýsi kontrolní soubor odpovědí – kontrolní ve smyslu kontroly smysluplnosti báze znalostí. Kontrolní či vzorové odpovědi vám poskytne expert nebo je musíte identifikovat sami na základě analýzy svého problému částečně už vyplývají z počáteční analýzy při tvorbě garafu. PRŮVODCE TEXTEM, PODNĚT, OTÁZKA, ÚKOL Při odlaďování s úspěchem použijete v prvé řadě možnosti uložení odpovědi do externího souboru, aby jste nemuseli po každé úpravě vah či přidání nového pravidla pracně procházet znova a znova konzultaci a odpovídat na všechny dotazy. Dále pak jistě využijete možnosti ukládat si výsledky konzultací do např. textového souboru, pomocí nichž pak můžete srovnávat, jak se která úprava projevila na výsledcích a fungování báze. Je zřejmé, že není možné, aby člověk přehledně zachytil do grafu o třech cílových výrocích, čtyřech až šesti výrocích mezilehlých a deseti či více výrocích základních, což samo o sobě předpokládá několik desítek jednoduchých pravidel, přehledně veškeré vazby (jednoduchá pravidla, složitá pravidla s konjunkcí a pravidla s negativními váhami). Sestavení báze znalostí začíná po zadání atributů a výroků konstrukcí základních pravidel (většinou jednoduchého typu – v předpokladu i závěru s jedním pozitivním výrokem či pozitivní vahou). Takto vytvoříme základní kostru báze a zajistíme její jakousi základní funkčnost, ale pravděpodobně zjistíme, že systém dostatečně nerozlišuje mezi cílovými výroky – váhy cílových výroků jsou v malém rozpětí (všechny nebo některé z nich). Váhy se liší např. v setinách nebo několika málo desetinách, a to i v případě, že použijete kontrolní či vzorové odpovědi. Tento fakt nemusí a většinou ani neznamená fundamentální chybu v logice zpracování. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Odměna a odpočinek 91 Nyní je potřeba se zamyslet nad složitějšími pravidly a zabývat se hodnotami vah v závěrech jednotlivých pravidel. Například pokud v grafu máme situaci, kdy do jednoho cílového výroku směřuje více vazeb z kupříkladu tří výroků mezilehlé roviny, můžeme zkonstruovat tři jednoduchá pravidla reprezentující každou z těchto vazeb (nebo jedno pravidlo s logickou disjunkcí pokud v závěru chceme použít stejnou váhu) protože platnost, kteréhokoliv předpokladu bude mít vliv na platnost závěru. Nicméně většinou z praxe platí jistý synergický efekt, kdy výsledné působení jednotlivých faktorů se nerovná jejich prostému součtu, ale je o něco vyšší. Tento jev můžeme zachytit pomocí jednoho či více pravidel, kdy do předpokladu dáme konjunkci dvou či více výroků a v závěru ohodnotíme výrok vyšší vahou. Dalším krokem je zamyšlení se nad použitím negací (jestliže jedním pravidlem definujeme, že když platí předpoklad, pak platí s jistou vahou závěr, neznamená to automaticky, že systém ví jaký platí vztah v případě neplatnosti toho předpokladu). Konstrukce pravidel s negací v předpokladu – zamyšlení, zda-li neexistuje také znalost popisující situaci, kdy víme, že některý z výroků je nepravdivý nebo konzultující jeho platnost ohodnotil zápornou vahou. Konstrukce pravidel s negací v závěru – zamyšlení se, zda-li platnost či neplatnost některého výroku (např. základního) nemá negativní vliv na platnost hierarchicky výše položeného výroku (např. v mezilehlé rovině). Poslední možností je pak bedlivě zanalyzovat výši vah v jednotlivých výrocích. K ZAPAMATOVÁNÍ 24 V průběhu ladění je také dobré si občas zkontrolovat graf báze, zda-li nevznikla v projektu nadbytečná – duplicitní pravidla. Zbytečný výrok figuruje v jediném pravidle v předpokladové části a zároveň k výroku v závěru pravidla nevede žádné další pravidlo, takový to výrok můžeme zrušit a platnost výroku ze závěru nadbytečného pravidla nyní zadá uživatel při konzultaci. Nadbytečné pravidlo K ZAPAMATOVÁNÍ 25 Systém sám si hlídá, aby nějaký výrok neobjevil v předpokladu pravidla a později v navazujícím pravidle v závěru. Rekurze či cyklus v bázi znalostí není možná. Cyklus SHRNUTÍ V tuto chvíli jsme si prošli téměř veškeré možnosti systému NEST a NEST editor, které využijete nebo můžete využít při tvorbě svého vlastního projektu. Také jste byli upozorněni na některé postupy při vlastní tvorbě a chybí nám ještě upozornit na často opomíjenou, ale někdy velice praktickou část každé práce, a to je tvorba dokumentace. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Shrnutí 92 5.5 Tvorba dokumentace Tvorba dokumentace je často opomíjenou a ne příliš populární stránkou při zpracovávání projektů, a to nejen na půdě školy, ale leckdy i v podnikové praxi. Je potřeba si však uvědomit, že dobře provedená dokumentace může zásadním způsobem ovlivnit zaškolování nových pracovníků do problému, přechod či zapojení dalších nových pracovníků do řešitelského týmu, nemluvě o situaci, kdy z nějakého důvodu jediný či hlavní řešitel práci opustí a my projekt musíme dotáhnout do cíle nebo později upravovat. V případě úprav projektu po delší době dokumentace dobře poslouží i samotnému autorovi pro rychlejší opětovné proniknutí do problému. V dokumentaci je potřeba vždy představit a vymezit problém a zhodnotit jeho řešení, případně uvést možné slabiny sytému a doporučení dalšího rozvoje. Zůstaneme-li na naší akademické půdě, je tedy nutno objasnit problémovou oblast, typ řešeného problému, uvést, co je cílem projektu, jaké jsou cílové výroky. Charakterizujeme obecné vlastnosti cílových výroků mající vliv na průběh konzultace. Dále uvedeme globální parametry řešení: tedy zdroj znalostí, řešitelský tým atd. Metody získávání znalostí v řešené oblasti můžeme dále rozvést, aby bylo možno posoudit jejich správnost, opodstatněnost a relevantnost. Také je vhodné dokumentovat řešení pomocí grafu báze znalostí. V profesionálně tvářící se dokumentaci bychom jistě uvedli výčet všech atributů i výroků s komentářem, aby byl jasný jejich smysl a použití. Také bychom uvedli výčet pravidel a okomentovali bychom mechanizmus či způsob stanovení vah. V dokumentaci bychom měli, zdůraznit k jakému účelu je projekt nebo řešení vhodné a upozornit na limity řešení, případně na možnosti dalšího rozvoje. Nástroje systému NEST využitelné pro tvorbu dokumentace: • Statistika – NEST (Báze/Statistika). • Graf – NEST i NEST editor. • Globální parametry, atributy, výroky, pravidla a komentáře – NEST editor. (Soubor/Export báze). KORESPONDENČNÍ ÚKOL 5 Během práce na vašem projektu uložte na elearningovém serveru export vaší báze do textového souboru. SHRNUTÍ KAPITOLY APLIKACE V NEST Právě prostudovaná 5 . kapitola se jeví jako stěžejní vzhledem k předpokládanému cíli – zpracování vlastního projektu v prostředí NEST. Praktická zkušenost získaná tvorbou funkčního projektu by vám měla přiblížit problémy znalostního inženýrství a vlastní práce nad odlaďováním báze znalosti i objasnit nebo pomoci pochopit mechanizmy fungování báze znalostí (inferenčního mechanizmu) i obsah nejdůležitějších pojmů disciplí- Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Shrnutí kapitoly 93 ny. Měli by jste si nyní již poradit sami s výběrem vhodného tématu pro seminární práci. Víte, že před vlastním započetím práce v NEST editoru je nutné se věnovat analýze problému, která by měla vyústit v rámcové grafické znázornění budoucí báze znalostí, jejích atributů a základních vztahů mezi nimi. Dále by jste měli umět využít analýzy a grafického náčrtu pří vlastním zadávání atributů a jejich výroků a také při tvorbě pravidel. Víte, že převedení základních vztahů do formy pravidel sice zajistí základní funkčnost báze znalostí, ale že je po té třeba věnovat čas na odladění vlastní báze, a také víte, jak při tomto procesu postupovat a na co se zaměřit. Nakonec v ne poslední řadě jste se seznámili s rolí a účelem dokumentace a měli by jste pro její tvorbu umět využít nástrojů programů NEST i NEST editor. PRŮVODCE STUDIEM 9 Po „ošahání“ postupu práce nad vlastní bázi znalostí si v další kapitole představíme fungující aplikaci OPTCS, která dokumentuje využitelnost disciplíny znalostního inženýrství a může vám také pomoci při výběru a konstrukci vlastního projektu. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 94 6 BÁZE ZNALOSTÍ OPTCS RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY BÁZE ZNALOSTÍ OPTCS Báze znalostí OPTCS je novější verzí báze znalostí OPTIMALI pro výběr vhodné matematické metody rozhodování, která byla původně vytvořena v roce 1983 a realizována v konzultačním systému SAK. Popíšeme stručně vznik a strukturu této báze znalostí. Struktura báze bude dokumentována jejím výpisem ze systému NEST. Rychlý náhled CÍLE KAPITOLY BÁZE ZNALOSTÍ OPTCS Po úspěšném a aktivním absolvování této KAPITOLY Získáte: • Informace o vzniku a struktuře seriozní a funkční báze znalostí, v rozsahu středně velkého projektu. • Na příkladu báze znalostí OPTCS získáte povědomí o hloubce a složitosti problému řešení možných projektů znalostního inženýrství. • Představu o struktuře báze dokumentovanou na výpisu atributů a pravidel a výseči grafu báze OPTCS. ČAS POTŘEBNÝ KE STUDIU Celkový doporučený čas k prostudování KAPITOLY je 45 minut. Je zřejmé, že tento čas může být snadno prodloužen, pokud student bude hlouběji zkoumat vlastní bázi v programech NEST a NEST editor. V operačním výzkumu bylo vyvinuto velké množství matematických metod rozhodování. Výběr metody adekvátní dané rozhodovací situaci je obtížnou expertní úlohou. Musí vycházet z dobré znalosti všech metod a z důkladného rozboru dané situace. Prvním krokem v přípravě báze znalostí bylo vypracování seznamu základních metod rozhodování, z nichž bude expertní systém vybírat – to budou cílové výroky. Tvorba seznamu metod se řídila následujícími požadavky: • metody ze seznamu by měly dohromady dostatečně pokrývat typické rozhodovací situace na uvažované střední úrovni řízení; • každá metoda zařazená do seznamu by měla být dobře matematicky propracována a ověřena v aplikacích; • pro každou metodu by mělo existovat dostupné programové vybavení; • seznam by neměl být příliš dlouhý. Expertem vytvořený seznam obsahuje 41 metod rozdělených do 12 bloků. Pro úplnost a Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Získáte 95 z důvodu „mapování bílých míst“ byla do každého bloku metod zařazena navíc položka „Netypická úloha …“. Rozdělení metod do skupin: 1. lineární programování: optimalizace plánu výroby, optimalizace plánu výroby a duální úloha, směšovací problém, směšovací problém a duální úloha, přiřazovací problém, dopravní problém, rozvržení výroby ke strojům, Dantzigova-Wolfeho dekompozice; 2. nelineární programování: problém pevných nákladů, optimalizace výrobního programu s kvadratickou účelovou funkcí, kontrola rizika, optimalizace efektivnosti, dynamické programování; 3. parametrizace: parametrizace pravých stran v úloze lineárního programování, parametrizace účelové funkce v úloze lineárního programování; 4. celočíselné programování: optimalizace vyrobního programu s celočíselnými proměnnými, optimalizace investic, programování s nula-jednotkovými proměnnými; 5. sekvenční úlohy: sekvenční problém jednostupňový, sekvenční problém vícestupňový; 6. grafy: nalezení maximálního toku, nalezení nejkratší cesty, okružní dopravní problém, minimální kostra; 7. síťové úlohy: metoda PERT, metoda CPM; 8. modely zásob: deterministický model zásob, stochastický model zásob, netypický model zásob; 9. vícekriteriální vyhodnocování variant: grafické metody vicekriteriálního vyhodnocování variant, Fullerův trojúhelník, Saatyho matice, využití fuzzy preferencí, vicekriteriální optimální programování; 10. antagonistické konflikty: maticová hra, struktura výroby při oligopolu; 11. neantagonistické konflikty: dvojmaticová hra, tvorba koalic, dekompozice – řízení rozdělením zdrojů; 12. riziko a neurčitost: rozhodování při riziku; rozhodování při neurčitosti-Laplace; rozhodování při neurčitosti-minimax; kontrola kvality-maticový model; Dalším krokem bylo sestavení souboru relevantních dotazů týkajících se důležitých aspektů rozhodovacích situací. Expert formuloval dotazy dvou druhů: • základní dotazy, které slouží ke hrubé klasifikaci rozhodovací situace a umožňují výběr bloku metod; • speciální dotazy, které slouží k rozlišení metod v jednom bloku, často explicitně zjišťují, zda daná rozhodovací situace patří do jisté úzké aplikační třídy. Podle názoru experta by konzultace se systémem doporučujícím vhodnou matematickou metodu rozhodování měla probíhat ve dvou fázích. V první fázi by měly být položeny uživateli základní dotazy a poté vybrány 3-4 nadějné bloky metod. Ve druhé fázi by měly být položeny speciální dotazy týkající se těchto bloků metod a případně dalšího bloku metod, který by se teprve v této fázi také ukázal nadějným. Počet speciálních dotazů, které by uživatel zodpovídal, by se tak značně omezil. Výběr bloku metod představuje mezistupeň v usuzování – bloky metod budou v bázi znalostí reprezentovány mezilehlými výroky. Sdružování metod do bloků totiž vyjadřuje důležitá hlediska pro klasifikaci rozhodovacích situací. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 96 Tomuto procesu usuzování a struktuře výroků pak odpovídala formulace pravidel tří druhů: • základní pravidla, která vedou od základních dotazů k určení bloku metod; • speciální pravidla, která vedou od speciálních dotazů v rámci jednoho bloku metod k jednotlivým metodám tohoto bloku; • doplňková pravidla, která vyjadřují důsledky různých dalších relevantních kombinací dotazů. Báze znalostí OPTIMALI měla původně 234 pravidel, postupně se rozšířila na 402 pravidel ve verzi OPTCS. Část pravidel je uvedena kontexty, což jsou výroky, jejichž pravdivost podmiňuje použitelnost vlastního pravidla. Nejčastěji je takto vyjádřena vazba speciálního pravidla na blok metod, jehož se týká. Tato konstrukce pravidel spolu s použitím logického inferenčního mechanismu umožňuje realizovat alespoň zčásti představu experta o dvou fázích pokládání dotazů a usuzování. Níže uvádíme výpis báze znalostí OPTCS a také výseč grafické reprezentace báze (Obrázek 6-1). Všimněte si v souboru výroků základních dotazů, mezilehlých výroků – bloků metod a k nim přiřazeným speciálním dotazům vztahujícím se pak vesměs k jednotlivým metodám bloku – cílovým výrokům. Poznamenejme, že očíslování výroků a přítomnost některých nevyužitých (XXX) jsou poplatné dřívějšímu prostředí systému SAK. V souboru pravidel pak můžete najít základní, speciální a doplňková pravidla obsahující tyto výroky. Globální parametry báze znalostí OPTCS (lze stáhnout dle návodu z kapitoly 2.2.1 odstavec Báze znalostí ke stažení): • Popis báze: Báze znalostí OPTIMALI pro volbu vhodné matematické metody rozhodování. Expertem je prof. M. Maňas z katedry ekonometrie VŠE v Praze. • Expert: M. Maňas • Znalostní inženýr: J. Ivánek, L. Šímová • Datum: 2.6.1990 • Inferenční mechanizmus: Logický • Rozsah vah: 3 • Implicitní váha: [0,000;0,000] • Globální priorita: Od začátku • Globální práh platnosti kontextu: 0,000 • Globální práh platnosti předpokladu: 0,900 Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Globální vlastnosti 97 Obrázek 6-1: Výseč části báze OPTCS.xml 6.1 OPTCS – výroky Báze OPTCS obsahuje 124 binárních atributů. Z předchozích kapitol víme, že binární atribut nabývá pouze jediného výrokového stavu, a proto uvádíme ID atributů, které je shodné s ID výroku. ID: 1 Máte ekonomický systém, ve kterém chcete najít optimální rozhodnutí, pod kontrolou? ID: 2 Je výsledek Vašeho rozhodnutí hodnocen podle jediného kriteria? ID: 3 Vybíráte si při rozhodování ze souboru konečného počtu variant? ID: 4 Ovlivňuje důsledek Vašeho rozhodnutí do značné míry náhoda? ID: 5 Trváte na tom, že princip, podle něhož bude rozhodnutí vybráno, musí být jednoduchý a snadno pochopitelný? ID: 6 Ovlivňují konečný výsledek Vašeho rozhodnutí ještě akce dalších subjektů či institucí? ID: 7 Je důležité, aby vaše rozhodnutí respektovalo posloupnost jednotlivých akcí nebo vývoj v čase? ID: 8 Domníváte se, že výsledek optimalizace připouští grafické znázornění? ID: 9 Jde ve vašem případě o problém optimalizace v oblasti dopravy? ID: 10 Obsahuje Váš optimalizační problém prvky konfliktu? ID: 11 Domníváte se, že podstatné aspekty Vašeho problému nelze vyjádřit matematicky? ID: 12 LINEÁRNÍ PROGRAMOVÁNÍ ID: 13 Hledáte optimální plán výroby při omezených zdrojích? ID: 14 Hledáte optimální způsob směšování komponent do výsledného produktu? ID: 15 Řešíte otázku přesunu výrobních zařízení na nová působiště? ID: 16 Řešíte otázku optimální dopravy sypkých nebo tekutých materiálů z několika zdrojů do míst určení? ID: 17 Potřebujete rozepsat výrobu na jednotlivá zařízení nebo pracoviště? ID: 18 Je systém, který optimalizujete, rozložitelný na podsystémy? ID: 19 Je možné použít k ustavení optima cenového mechanismu? ID: 20 Optimalizace plánu výroby ID: 21 Optimalizace plánu výroby a duální úloha ID: 22 Směšovací problém ID: 23 Směšovací problém a duální úloha ID: 24 Přiřazovací problém ID: 25 Dopravní problém ID: 26 Rozvržení výroby ke strojům ID: 27 Dantzigova-Wolfeho dekompozice ID: 28 Netypická úloha lineárního programování ID: 29 NELINEÁRNÍ PROGRAMOVÁNÍ Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Atributy a výroky 98 ID: 30 Mají při Vašem rozhodování významnou úlohu náklady, které nejsou úměrné rozsahu výroby? ID: 31 Má ve Vašem rozhodování značnou důležitost ukazatel efektivnosti? ID: 32 Máte k dispozici statistické údaje o proměnlivosti výnosu jednotlivých výrobních činností? ID: 33 Problém pevných nákladů ID: 34 Optimalizace výrobního programu s kvadratickou účelovou funkcí ID: 35 Kontrola rizika ID: 36 Optimalizace efektivnosti ID: 37 Dynamické programování ID: 38 Netypická úloha nelineárního programování ID: 39 PARAMETRIZACE ID: 40 Hledáte optimální plán výroby v závislosti na proměnných podmínkách v dodávce surovin? ID: 41 Hledáte optimální plán výroby v závislosti na cenách proměnných v čase? ID: 42 Mění se podstatně normy spotřeby zdrojů v čase? ID: 43 Parametrizace pravých stran v úloze lineárního programování ID: 44 Parametrizace účelové funkce v úloze lineárního programování ID: 45 Netypická úloha parametrizace ID: 46 CELOČÍSELNÉ PROGRAMOVÁNÍ ID: 47 Je nutné, aby kvantitativní údaje ve výsledku byly zaokrouhleny na celá čísla? ID: 48 Řešíte problémy investiční činnosti? ID: 49 Je nutné vybrat při optimalizaci vždy jednu ze skupiny činností? ID: 50 Optimalizace vyrobního programu s celočíselnými proměnnými ID: 51 Optimalizace investic ID: 52 Programování s nula-jednotkovými proměnnými ID: 53 Netypická úloha celočíselného programování ID: 54 SEKVENČNÍ ÚLOHY ID: 55 Hledáte rozpis výroby na jednom výrobním zařízení? ID: 56 Hledáte rozpis výroby na více výrobních zařízeních? ID: 57 Sekvenční problém jednostupňový ID: 58 Sekvenční problém vícestupňový ID: 59 Netypický sekvenční problém ID: 60 GRAFY ID: 61 Řešíte problém přepravy tekutého nebo sypkého substrátu potrubní sítí? ID: 62 Řešíte problém optimální přepravy z jednoho místa do místa určení? ID: 63 Hledáte optimální plán rozvozu při podmínce, že dopravní prostředek se musí vrátit do místa, ze kterého vyjel? ID: 64 Hledáte projekt uceleného dopravního spojení výrobních center v jeden celek? ID: 65 Hledáte plán optimálního svozu či rozvozu pomocí nehomogenního souboru vozidel? ID: 66 Nalezení maximálního toku ID: 67 Nalezení nejkratší cesty ID: 68 Okružní dopravní problém ID: 69 Minimální kostra ID: 70 Netypická úloha na grafu ID: 71 SÍŤOVÉ METODY ID: 72 Potřebujete sestavit lhůtový plán realizace projektu? ID: 73 Znáte přesné doby trvání jednotlivých činností v projektu? ID: 74 XXX ID: 75 Metoda PERT ID: 76 Metoda CPM ID: 77 Netypická síťová metoda ID: 78 XXX ID: 79 MODELY ZÁSOB ID: 80 Řešíte problém optimalizace zásob? ID: 81 XXX ID: 82 Deterministický model zásob ID: 83 Stochastický model zásob ID: 84 Netypický model zásob ID: 85 XXX ID: 86 VICEKRITERIÁLNÍ VYHODNOCOVÁNÍ VARIANT ID: 87 Máte možnost získat informace o Vašem rozhodovacím problému pomocí konzultací u expertů? ID: 88 Můžete stanovit všechna kritéria hodnocení efektu Vašeho rozhodnutí? ID: 89 XXX ID: 90 Grafické metody vicekriteriálního vyhodnocování variant ID: 91 Fullerův trojúhelník, Saatyho matice ID: 92 Využití fuzzy preferencí ID: 93 Vicekriteriální optimální programování ID: 94 Netypická úloha vicekriteriálního vyhodnocování variant ID: 95 XXX ID: 96 ANTAGONOSTICKÉ KONFLIKTY ID: 97 Má situace, o níž rozhodujete, povahu vyhraněného konfliktu? ID: 98 Hledáte optimální rozsah výroby v podmínkách konkurence? ID: 99 XXX Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 99 ID: 100 Maticová hra ID: 101 Struktura výroby při oligopolu ID: 102 Netypická antagonistická hra ID: 103 XXX ID: 104 NEANTAGONISTICKÉ KONFLIKTY ID: 105 Má situace, v níž rozhodujete, v sobě prvky konfliktu s možností dohody? ID: 106 Je ve Vaší situaci zásadně důležitá otázka, s kým se dohodnout o společném postupu? ID: 107 Potřebujete řídit systém, který je rozdělen na relativně malé jednotky? ID: 108 Může se optimum realizovat vhodným rozdělením zdrojů nebo surovin? ID: 109 Dvojmaticová hra ID: 110 Tvorba koalic ID: 111 Dekompozice – řízení rozdělením zdrojů ID: 112 Netypická neantagonistická hra ID: 113 XXX ID: 114 RIZIKO A NEURČITOST ID: 115 Máte k dispozici statistické údaje o náhodných jevech ovlivňujících důsledky Vašich rozhodnutí? ID: 116 Chcete při Vašem rozhodování brát zvlaštní zřetel na nejhorší případ, který může nastat? ID: 117 Jsou ve Vašem problému zahrnuty otázky výstupní kontroly kvality? ID: 118 XXX ID: 119 Rozhodování při riziku ID: 120 Rozhodování při neurčitosti-Laplace ID: 121 Rozhodování při neurčitosti-minimax ID: 122 Kontrola kvality-maticový model ID: 123 Netypická úloha rozhodování při riziku nebo neurčitosti ID: 124 XXX 6.2 OPTCS – kontexty Kontexty Kontexty: ID: ID: ID: ID: ID: k144 k189 k224 k236 k251 12 29 39 46 54 ID: ID: ID: ID: ID: k264 k289 k306 k312 k330 60 71 79 86 96 ID: ID: ID: ID: ID: k341 k364 k379 k386 k389 104 114 2 NOT(2) 3 ID: ID: ID: ID: ID: k394 k397 k398 k400 k401 4 NOT(4) 5 9 13 6.3 OPTCS – pravidla Báze znalostí OPTCS obsahuje 402 kompozicionálních pravidel: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: c1 IF 1 THEN 12[2] c3 IF 1 THEN 39[1] c5 IF 1 THEN 54[1] c7 IF 1 THEN 71[1] c9 IF NOT(1) THEN 60[-1] c11 IF NOT(1) THEN 104[2] c13 IF 2 THEN 12[3] c15 IF 2 THEN 39[2] c17 IF 2 THEN 54[2] c19 IF 2 THEN 79[1] c21 IF 2 THEN 114[1] c23 IF NOT(2) THEN 29[-2] c25 IF NOT(2) THEN 46[-1] c27 IF NOT(2) THEN 86[3] c29 IF NOT(2) THEN 104[1] c31 IF 3 THEN 39[-2] c33 IF 3 THEN 60[1] c35 IF NOT(3) THEN 12[2] c37 IF NOT(3) THEN 39[2] c39 IF 4 THEN 46[-1] c41 IF 4 THEN 71[1] c43 IF 4 THEN 86[-2] c45 IF 4 THEN 104[1] c47 IF NOT(4) THEN 12[2] c49 IF NOT(4) THEN 39[1] ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: c2 IF 1 THEN 29[2] c4 IF 1 THEN 46[2] c6 IF 1 THEN 60[1] c8 IF NOT(1) THEN 54[-1] c10 IF NOT(1) THEN 96[2] c12 IF NOT(1) THEN 114[3] c14 IF 2 THEN 29[3] c16 IF 2 THEN 46[3] c18 IF 2 THEN 60[1] c20 IF 2 THEN 86[-3] c22 IF NOT(2) THEN 12[-2] c24 IF NOT(2) THEN 39[-2] c26 IF NOT(2) THEN 54[-1] c28 IF NOT(2) THEN 96[1] c30 IF 3 THEN 12[-2] c32 IF 3 THEN 46[2] c34 IF 3 THEN 71[1] c36 IF NOT(3) THEN 29[2] c38 IF 4 THEN 39[-1] c40 IF 4 THEN 60[-2] c42 IF 4 THEN 79[1] c44 IF 4 THEN 96[1] c46 IF 4 THEN 114[3] c48 IF NOT(4) THEN 29[2] c50 IF NOT(4) THEN 46[2] Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství OPTCS pravidla 100 ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: c51 IF NOT(4) THEN 54[1] c53 IF NOT(4) THEN 86[1] c55 IF 5 THEN 29[-1] c57 IF 5 THEN 46[1] c59 IF NOT(5) THEN 29[1] c61 IF NOT(5) THEN 86[1] c63 IF 6 THEN 29[-1] c65 IF 6 THEN 46[-1] c67 IF 6 THEN 71[-1] c69 IF 6 THEN 104[3] c71 IF NOT(6) THEN 12[2] c73 IF NOT(6) THEN 39[2] c75 IF NOT(6) THEN 54[2] c77 IF NOT(6) THEN 71[1] c79 IF NOT(6) THEN 104[-1] c81 IF 7 THEN 39[2] c83 IF 7 THEN 71[2] c85 IF NOT(7) THEN 29[1] c87 IF NOT(7) THEN 46[1] c89 IF NOT(7) THEN 60[1] c91 IF NOT(7) THEN 79[-1] c93 IF 8 THEN 46[-1] c95 IF 8 THEN 71[2] c97 IF 8 THEN 86[2] c99 IF 8 THEN 104[-1] c101 IF NOT(8) THEN 29[1] c103 IF NOT(8) THEN 46[1] c105 IF NOT(8) THEN 96[1] c107 IF NOT(8) THEN 114[1] c109 IF 9 THEN 29[1] c111 IF 9 THEN 46[1] c113 IF 9 THEN 71[1] c115 IF 9 THEN 96[-1] c117 IF 9 THEN 114[1] c119 IF NOT(9) THEN 60[-2] c121 IF NOT(9) THEN 104[1] c123 IF 10 THEN 86[1] c125 IF 10 THEN 104[3] c127 IF NOT(10) THEN 12[1] c129 IF NOT(10) THEN 39[1] c131 IF NOT(10) THEN 54[1] c133 IF NOT(10) THEN 71[1] c135 IF 11 THEN 29[-1] c137 IF 11 THEN 86[2] c139 IF 11 THEN 104[1] c141 IF NOT(11) THEN 12[2] c143 IF NOT(11) THEN 39[1] c145 k144: IF 13 THEN 21[2] c147 k144: IF 13 THEN 92[1] c149 k144: IF 13 THEN 34[2] c151 k144: IF 13 THEN 36[1] c153 k144: IF NOT(13) THEN 21[-2] c155 k144: IF 14 THEN 22[2] c157 k144: IF 14 THEN 25[-1] c159 k144: IF NOT(14) THEN 22[-1] c161 k144: IF 15 THEN 24[2] c163 k144: IF 15 THEN 26[1] c165 k144: IF 15 THEN 76[1] c167 k144: IF 16 THEN 25[2] c169 k144: IF 16 THEN 69[1] c171 k144: IF 17 THEN 26[2] c173 k144: IF 17 THEN 28[1] c175 k144: IF 17 THEN 58[1] c177 k144: IF 18 THEN 27[2] c179 k144: IF NOT(18) THEN 27[-3] c181 k144: IF 19 THEN 21[1] c183 k144: IF 19 THEN 23[1] c185 k144: IF 19 THEN 25[1] c187 k144: IF 19 THEN 33[1] c189 k189: IF 7 THEN 33[-2] c191 k189: IF 7 THEN 35[-1] c193 k189: IF 7 THEN 37[2] c195 k189: IF 7 THEN 54[2] c197 k189: IF NOT(7) THEN 33[1] c199 k189: IF NOT(7) THEN 35[1] ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: c52 IF NOT(4) THEN 60[1] c54 IF 5 THEN 12[2] c56 IF 5 THEN 39[-1] c58 IF 5 THEN 71[1] c60 IF NOT(5) THEN 39[1] c62 IF NOT(5) THEN 104[1] c64 IF 6 THEN 39[-1] c66 IF 6 THEN 54[-1] c68 IF 6 THEN 96[3] c70 IF 6 THEN 114[1] c72 IF NOT(6) THEN 29[2] c74 IF NOT(6) THEN 46[2] c76 IF NOT(6) THEN 60[2] c78 IF NOT(6) THEN 96[-1] c80 IF 7 THEN 12[1] c82 IF 7 THEN 54[2] c84 IF 7 THEN 79[2] c86 IF NOT(7) THEN 39[-1] c88 IF NOT(7) THEN 54[-1] c90 IF NOT(7) THEN 71[-2] c92 IF 8 THEN 29[-1] c94 IF 8 THEN 60[2] c96 IF 8 THEN 79[1] c98 IF 8 THEN 96[-1] c100 IF NOT(8) THEN 12[1] c102 IF NOT(8) THEN 39[1] c104 IF NOT(8) THEN 54[1] c106 IF NOT(8) THEN 104[1] c108 IF 9 THEN 12[2] c110 IF 9 THEN 39[-1] c112 IF 9 THEN 60[2] c114 IF 9 THEN 86[1] c116 IF 9 THEN 104[-1] c118 IF NOT(9) THEN 39[1] c120 IF NOT(9) THEN 96[1] c122 IF 10 THEN 39[-1] c124 IF 10 THEN 96[3] c126 IF 10 THEN 114[1] c128 IF NOT(10) THEN 29[1] c130 IF NOT(10) THEN 46[1] c132 IF NOT(10) THEN 60[1] c134 IF NOT(10) THEN 79[1] c136 IF 11 THEN 39[-1] c138 IF 11 THEN 96[1] c140 IF 11 THEN 114[1] c142 IF NOT(11) THEN 29[2] c144 k144: IF 13 THEN 20[2] c146 k144: IF 13 THEN 90[1] c148 k144: IF 13 THEN 33[1] c150 k144: IF 13 THEN 28[1] c152 k144: IF NOT(13) THEN 20[-2] c154 k144: IF NOT(13) THEN 34[-2] c156 k144: IF 14 THEN 28[1] c158 k144: IF 14 THEN 23[2] c160 k144: IF NOT(14) THEN 23[-1] c162 k144: IF 15 THEN 25[1] c164 k144: IF 15 THEN 75[1] c166 k144: IF NOT(15) THEN 24[-2] c168 k144: IF 16 THEN 66[1] c170 k144: IF NOT(16) THEN 25[-2] c172 k144: IF 17 THEN 27[1] c174 k144: IF 17 THEN 57[1] c176 k144: IF NOT(17) THEN 26[-1] c178 k144: IF 18 THEN 28[1] c180 k144: IF 19 THEN 20[1] c182 k144: IF 19 THEN 22[1] c184 k144: IF 19 THEN 24[1] c186 k144: IF 19 THEN 29[2] c188 k144: IF 19 THEN 101[2] c190 k189: IF 7 THEN 34[-2] c192 k189: IF 7 THEN 36[-1] c194 k189: IF 7 THEN 38[1] c196 k189: IF 7 THEN 71[3] c198 k189: IF NOT(7) THEN 34[1] c200 k189: IF NOT(7) THEN 36[1] Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 101 ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: c201 c203 c205 c207 c209 c211 c213 c215 c217 c219 c221 c223 c225 c227 c229 c231 c233 c235 c237 c239 c241 c243 c245 c247 c249 c251 c253 c255 c257 c259 c261 c263 c265 c267 c269 c271 c273 c275 c277 c279 c281 c283 c285 c287 c289 c291 c293 c295 c297 c299 c301 c303 c305 c307 c309 c311 c313 c315 c317 c319 c321 c323 c325 c327 c329 c331 c333 c335 c337 c339 c341 c343 c345 c347 c349 k189: k189: k189: k189: k189: k189: k189: k189: k189: k189: k189: k189: k224: k224: k224: k224: k224: k224: k236: k236: k236: k236: k236: k236: k236: k251: k251: k251: k251: k251: k251: k251: k264: k264: k264: k264: k264: k264: k264: k264: k264: k264: k264: k264: k289: k289: k289: k289: k289: k289: k289: k289: k289: k306: k306: k306: k312: k312: k312: k312: k312: k312: k312: k312: k312: k330: k330: k330: k330: k330: k341: k341: k341: k341: k341: IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF NOT(7) THEN 37[-1] 30 THEN 37[1] 30 THEN 51[1] 31 THEN 36[2] 31 THEN 38[1] 31 THEN 90[1] 31 THEN 92[1] 31 THEN 94[1] 32 THEN 35[2] 32 THEN 119[2] NOT(32) THEN 119[-1] NOT(32) THEN 110[-1] 40 THEN 35[1] NOT(40) THEN 43[-1] 41 THEN 35[1] 42 THEN 29[2] 42 THEN 45[2] NOT(42) THEN 44[1] 47 THEN 24[1] NOT(47) THEN 50[-1] 48 THEN 21[1] 48 THEN 92[1] 49 THEN 51[2] 49 THEN 53[1] NOT(49) THEN 51[-1] 55 THEN 57[2] 55 THEN 53[1] NOT(55) THEN 57[-1] NOT(55) THEN 110[-1] 56 THEN 26[1] NOT(56) THEN 58[-1] NOT(56) THEN 110[-1] 61 THEN 67[1] 61 THEN 70[1] 62 THEN 67[2] 62 THEN 101[-2] 62 THEN 111[-3] 63 THEN 68[2] NOT(63) THEN 68[-1] 64 THEN 68[1] 64 THEN 70[1] NOT(64) THEN 69[-1] 65 THEN 53[1] 65 THEN 70[2] 72 THEN 75[2] 72 THEN 57[1] 72 THEN 59[1] NOT(72) THEN 75[-1] NOT(72) THEN 100[-1] NOT(72) THEN 110[-2] 73 THEN 76[2] 73 THEN 77[1] NOT(73) THEN 76[-2] 80 THEN 83[2] NOT(80) THEN 82[-1] NOT(80) THEN 84[-1] 8 THEN 90[2] 8 THEN 94[1] 87 THEN 91[2] 87 THEN 94[1] NOT(87) THEN 91[-2] 88 THEN 91[2] 88 THEN 93[2] NOT(88) THEN 90[-1] NOT(88) THEN 93[-1] 10 THEN 112[1] 97 THEN 100[2] NOT(97) THEN 100[-1] 98 THEN 102[1] 98 THEN 35[1] 105 THEN 109[2] 105 THEN 111[1] 105 THEN 119[1] 106 THEN 110[2] 106 THEN 112[1] ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: c202 c204 c206 c208 c210 c212 c214 c216 c218 c220 c222 c224 c226 c228 c230 c232 c234 c236 c238 c240 c242 c244 c246 c248 c250 c252 c254 c256 c258 c260 c262 c264 c266 c268 c270 c272 c274 c276 c278 c280 c282 c284 c286 c288 c290 c292 c294 c296 c298 c300 c302 c304 c306 c308 c310 c312 c314 c316 c318 c320 c322 c324 c326 c328 c330 c332 c334 c336 c338 c340 c342 c344 c346 c348 c350 Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství k189: k189: k189: k189: k189: k189: k189: k189: k189: k189: k189: k224: k224: k224: k224: k224: k224: k236: k236: k236: k236: k236: k236: k236: k236: k251: k251: k251: k251: k251: k251: k264: k264: k264: k264: k264: k264: k264: k264: k264: k264: k264: k264: k264: k289: k289: k289: k289: k289: k289: k289: k289: k306: k306: k306: k312: k312: k312: k312: k312: k312: k312: k312: k312: k330: k330: k330: k330: k330: k330: k341: k341: k341: k341: k341: IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF 30 THEN 33[2] 30 THEN 38[1] NOT(30) THEN 33[-2] 31 THEN 37[1] 31 THEN 51[1] 31 THEN 91[1] 31 THEN 93[1] NOT(31) THEN 36[-1] 32 THEN 38[1] NOT(32) THEN 35[-2] NOT(32) THEN 34[-1] 40 THEN 43[2] 40 THEN 50[1] 41 THEN 44[2] NOT(41) THEN 44[-1] 42 THEN 38[2] NOT(42) THEN 43[1] 47 THEN 50[2] 47 THEN 53[1] 48 THEN 51[2] 48 THEN 90[1] NOT(48) THEN 51[-1] 49 THEN 52[2] 49 THEN 86[2] NOT(49) THEN 52[-1] 55 THEN 28[1] 55 THEN 59[1] NOT(55) THEN 101[-1] 56 THEN 58[2] 56 THEN 59[1] NOT(56) THEN 101[-1] 61 THEN 66[2] 61 THEN 69[1] NOT(61) THEN 66[-1] 62 THEN 90[1] 62 THEN 110[-2] NOT(62) THEN 67[-1] 63 THEN 25[1] 64 THEN 69[2] 64 THEN 67[1] 64 THEN 25[1] 65 THEN 28[1] 65 THEN 69[-1] NOT(65) THEN 70[-1] 72 THEN 76[2] 72 THEN 58[1] 72 THEN 77[1] NOT(72) THEN 76[-1] NOT(72) THEN 101[-2] NOT(72) THEN 111[-2] 73 THEN 75[-1] NOT(73) THEN 75[2] 80 THEN 82[2] 80 THEN 84[2] NOT(80) THEN 83[-1] 8 THEN 60[1] 8 THEN 93[1] NOT(8) THEN 90[-1] 87 THEN 92[1] 87 THEN 119[1] 88 THEN 90[2] 88 THEN 92[1] 88 THEN 94[1] NOT(88) THEN 91[-1] 10 THEN 102[1] NOT(10) THEN 102[-1] 97 THEN 109[1] 98 THEN 101[2] 98 THEN 20[1] NOT(98) THEN 101[-1] 105 THEN 110[2] 105 THEN 112[1] NOT(105) THEN 109[-2] 106 THEN 111[1] NOT(106) THEN 110[-2] 102 ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: c351 c353 c355 c357 c359 c361 c363 c365 c367 c369 c371 c373 c375 c377 c379 c381 c383 c385 c387 c389 c391 c393 c395 c397 c399 c401 k341: k341: k341: k341: k341: k341: k341: k364: k364: k364: k364: k364: k364: k364: k379: k379: k379: k379: k386: k389: k389: k389: k394: k397: k398: k401: IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF 107 THEN 111[2] NOT(107) THEN 111[-1] 108 THEN 29[1] 108 THEN 54[1] 108 THEN 75[1] 108 THEN 109[1] 108 THEN 112[1] 115 THEN 123[2] NOT(115) THEN 120[1] NOT(115) THEN 122[1] 116 THEN 119[1] 116 THEN 123[1] 117 THEN 122[2] 117 THEN 123[1] 31 THEN 36[2] NOT(3) AND 9 THEN 20[2] NOT(3) AND 9 THEN 34[2] 3 AND 9 THEN 50[2] 80 THEN 90[2] NOT(2) AND 11 THEN 90[1] 97 THEN 100[1] 117 THEN 122[1] 32 THEN 119[2] 80 THEN 82[2] 107 THEN 111[-1] 107 THEN 111[2] ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: ID: c352 c354 c356 c358 c360 c362 c364 c366 c368 c370 c372 c374 c376 c378 c380 c382 c384 c386 c388 c390 c392 c394 c396 c398 c400 c402 k341: k341: k341: k341: k341: k341: k364: k364: k364: k364: k364: k364: k364: k364: k379: k379: k379: k386: k386: k389: k389: k394: k394: k398: k400: k401: IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF 107 THEN 112[1] 108 THEN 12[1] 108 THEN 37[1] 108 THEN 71[2] 108 THEN 76[1] 108 THEN 111[2] 115 THEN 119[2] NOT(115) THEN 119[-2] NOT(115) THEN 121[1] 116 THEN 121[2] 116 THEN 100[1] NOT(116) THEN 120[1] 117 THEN 100[1] NOT(117) THEN 122[-2] 31 THEN 51[1] NOT(3) AND 9 THEN 21[2] NOT(3) AND 9 THEN 33[2] 5 THEN 92[-1] NOT(3) THEN 93[2] NOT(2) AND 11 THEN 92[1] 105 THEN 109[1] 17 THEN 35[1] 80 THEN 83[2] 32 THEN 36[-1] 16 AND 61 THEN 66[1] 47 THEN 50[2] SAMOSTATNÝ ÚKOL 2 Spusťte konzultaci v NEST s bází znalostí OPTCS.xml. Nechejte si zobrazit graf báze znalostí. Vykonejte vlastní konzultaci. Srovnejte projekt s bázemi Nemoce.xml a uver.xml. Všimněte si rozdílu nejen v rozsahu, ale i struktuře a stupňovitosti báze. SHRNUTÍ KAPITOLY BÁZE ZNALOSTÍ OPTCS Na uvedené a okomentované bázi znalostí OPTCS.xml jsme si dokumentovali, jak rozsáhlý a složitý může být projekt středního rozsahu. Seznámili jste se také zhruba se základními kroky vývoje báze. PRŮVODCE STUDIEM 10 Předchozí kapitolu můžeme charakterizovat jako praktický exkurz, který vám může velmi pomoci při postupu a tvorbě vaší vlastní seminární práce. Další kapitola představí disciplínu dobývání znalostí z databází, která může být využita jako zdroj znalostí a použita v rámci řešení projektů řešených pomocí metod znalostního inženýrství. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Shrnutí kapitoly 103 7 EXPERTNÍ SYSTÉMY A ZÍSKÁVÁNÍ ZNALOSTÍ Z DAT RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY EXPERTNÍ SYSTÉMY A ZÍSKÁVÁNÍ ZNALOSTÍ Z DAT Získávání znalostí z dat neboli data mining (často také dobývání či dolování znalostí z databází) je poměrně nová disciplína, která by si jistě na jiném typu školy zasloužila minimálně vlastní samostatný kurz. Téma je logicky děleno na dvě části: úvodní část tématu je věnována představení disciplíny a některým obecným principům a postupům. V druhé části je představen projekt STULONG, který dokumentuje funkční případové řešení využití data miningových postupů s využitím metod znalostního inženýrství. Rychlý náhled CÍLE KAPITOLY EXPERTNÍ SYSTÉMY A ZÍSKÁVÁNÍ ZNALOSTÍ Z DAT Po úspěšném a aktivním absolvování této KAPITOLY Budete umět: Budete umět • Vyjmenovat typy data miningových úloh. • Vyjmenovat a upřesnit aplikační oblasti vhodné pro zapojení data miningových metod. Získáte: Získáte • Stručný přehled o vzniku disciplíny dobývání znalostí z databází. • Informace o projektu STULONG. • Povědomí možnosti využití a možnost prakticky vyzkoušet aplikaci znalostního inženýrství a dataminingu zapojením prostředků programu NEST. • Internetové odkazy na stránky pojednávající o projektu STULONG a na stránky samotného konzultačního prostředí. Budete schopni: • Popsat jednu z metodik postupu vytváření data miningových projektů CRISP-DM. ČAS POTŘEBNÝ KE STUDIU Celkový doporučený čas k prostudování KAPITOLY je cca 120 minut včetně případného prostudování internetových odkazů a konzultace v rámci projektu STULONG. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Budete schopni 104 KLÍČOVÁ SLOVA KAPITOLY EXPERTNÍ SYSTÉMY A ZÍSKÁVÁNÍ ZNALOSTÍ Z DAT KDD vznik a proces, data mining, typy úloh, aplikační oblasti, metodiky řešení projektů, CRISP-DM, STULONG, cíle projektu, Lisp Miner, data zpracovávaná v rámci projektu, příprava báze znalostí. Klíčová slova 7.1 Dolování znalostí z databází Knowledge discovery in database (KDD) se začíná objevovat ve vědeckých kruzích počátkem 90. let 20. století (na konferencích zabývajících se umělou inteligencí a strojovým učením), tedy v době boomu osobních počítačů a s tím spojeného rozmachu databázových prostředků. KDD je někdy označována také jako data mining, i když data mining může být chápán jako analytická součást interaktivního a iterativního procesu KDD. Vznik DEFINICE 7-1 Knowledge discovery in database (KDD) čili dobývání znalostí z databází je netriviálním procesem získávání implicitních, dříve neznámých a potenciálně užitečných informací z dat. KDD Impulzem pro zahájení procesu KDD je existence nebo identifikace reálného (manažérského) problému a výstupem nebo cílem je nalézt nové (překvapivé) znalosti pro řešení.V rámci procesu KDD můžeme rozeznat následující kroky: Proces 1. vytvoření řešitelského týmu, 2. specifikace problému, 3. získání dat, 4. výběr vhodné metody analýzy dat, 5. předzpracování dat, 6. data maining, 7. interpretace výsledků analýzy. K ZAPAMATOVÁNÍ 26 Pojmem data mining se někdy označuje celý proces dobývání znalostí, ale také se můžeme setkat z užším vymezením, kdy data mining chápeme jako přímou aplikaci vybraného (nebo vybraných) metod pro vyhledávání zajímavých vztahů v datech. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Data mining 105 ČÁST PRO ZÁJEMCE 3 Kořeny data minigu můžeme vidět jako průnik oblastí zabývajících se predikčním modelováním (predictive modelling), které využívá poznatků statistických a poznatků z oblasti databází, a prohledáváním databází (Knowledge discovery), které v sobě spojuje metody strojového (machine learning) učení a distribuovaných výpočtů (high performance & distibuted computing). (Viz Obrázek 7-1). Obrázek 7-1: Kořeny data miningu. Zdroj: http://www-users.cs.umn.edu/~kumar/Presentation/M7-dmchap1.pdf V rámci disciplíny KDD se zpracovávají tři základní typy úloh: Typy úloh • klasifikační a predikční úlohy – úlohy jejichž cílem je nalézt znalosti použitelné pro klasifikaci nových případů či predikovat – předpovídat - vývoj, • deskriptivní úlohy – cílem úloh je nalézt strukturu nebo významné vazby, které jsou v datech skryty, • hledání „nuggetů“ – cílem je nalézt nové překvapivé znalosti. Výše uvedené typy úloh jsou v praxi aplikovány v řadě i komerčně dobře využitých a využitelných oblastí: • Detekce podvodů: Posuzování žádostí o finanční prostředky či odhalování podvodného chování zákazníků patří mezi velmi citlivé a složité úlohy. Data miningové predikční modely mohou vystihnout komplikované vazby mezi vlastnostmi klientů a velmi dobře předpovídat potenciální podvodníky. Tyto modely se využívají např. v bankovnictví při posuzování přidělení úvěrů, v telekomunikacích pro odhalení špatného placení účtů nebo ve státní sféře při výběru daní či přidělování dotací. • Profily zákazníků: Vytvoření segmentů zákazníků a zařazování do těchto segmentů napomáhá vytvořit nabídku pro zákazníka podle jeho potřeb a navíc ušetřit finanční Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Aplikační oblasti 106 prostředky za oslovení nevhodných klientů. Tyto modely najdou uplatnění všude, kde je třeba cíleně oslovit zákazníka. Typickým příkladem může být úspora peněz, při nabízení nového produktu, kdy nabídku zašleme jen klientům, kteří jsou našimi potencionálními zájemci. (segmentace klientů bank a pojišťoven: rozpoznání problémových nebo vysoce bonitních klientů) • Udržení zákazníka: Získání nového zákazníka bývá v praxi finančně daleko náročnější než udržení už existujícího. Proto je výhodné vytipovat klienty, kteří mají sklony k přechodu ke konkurenci a udělat pro ně speciální akce nebo nabídky. Takovéto modely najdou uplatnění např. v telekomunikacích, kde je velká migrace zákazníků mezi jednotlivými společnostmi. (zákazníci mobilních sítí a internet providerů) • Stanovení diagnózy: Pro stanovení správné diagnózy a podání správného léčiva na základě známých příznaků může být s výhodou použit data miningový predikční model, který dovede zahrnout i různé anomálie a skryté závislosti. • Analýza časových řad: Existují časové řady, které lze velmi obtížně popsat standardními matematicko-statistickými modely. Pomocí data miningových metod můžeme v takových řadách detekovat různé interakce vyšších řádů, modelovat nelineární závislosti apod. Své uplatnění tu data mining najde ve všech oblastech, kde je třeba provádět předpovědi na základě historických dat, tedy např. ekonomika (predikce vývoje kursů akcií, predikce spotřeby elektrické energie, analýza nákupního košíku, atd.), meteorologie, kontrola kvality (analýza poruch telekomunikačních sítí, příčiny poruch automobilů, atd.) apod. • Analýza prohlížení stránek na Internetu: Soubory z www serverů se záznamy o prohlížení stránek jsou velmi objemná a dynamicky se rozrůstající data, která obsahují množství skrytých vazeb. Díky data miningu můžeme z těchto dat získat informace o nejčastějších vzorech v prohlížení či zákazníky segmentovat podle jejich chování na Internetu. Navíc díky predikčním schopnostem těchto modelů lze každému zákazníkovi nabídnout Internetové stránky podle jeho potřeb. Uvedené postupy uplatňují především společnosti, které po Internetu prezentují nebo prodávají své produkty. ČÁST PRO ZÁJEMCE 4 Efektivní zapojení procesu dobývání znalostí v rozhodovacím procesu subjektu (firmy, banky, ministerstva atd.) může znamenat nalezení významné tržní výhody – v této souvislosti se hovoří o tzv. business intelligence. Business intelligence poskytuje mechanizmus zajišťující doručení správné informace správné osobě ve správný čas a jako takový je základním kamenem procesu vytváření a distribuce komplexních informací. Analytické možnosti pak představují určitou nadstavbu, která umožňuje prostřednictvím predikce, modelování nebo simulace odhalit skryté souvislosti, což umožňuje právě data mining. 7.1.1 Metodika CRISP-DM Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Business inteligence 107 Během vývoje a rozvoje KDD vzniklo postupně několik metodik, které si kladou za cíl poskytnout uživatelům jednotný rámec pro řešení různých úloh z oblasti dobývání znalostí: • metodika 5A – autorem metodiky je firma SPSS15; 5A je akronymem prováděných kroků Assess (posouzení potřeb projektu), Access (shromáždění potřených dat), Analyze (provedení analýz), Act (přeměna znalostí na akční znalosti), Automate (převedení výsledků analýzy do praxe); • SEMMA – metodika použitá firmou SAS; akronym ukrývá jednotlivé kroky metodiky Sample (vybrání vhodných objektů), Expore (vizuální explorace16 a redukce dat), Modify (datové transformace), Model (analýza dat několika metodami), Assess (porovnání modelů a interpretace); • CISP-DM – metodika pro použití v nejrůznějších komerčních aplikacích; CRoss Industry Standard Process for Data Mining. Obrázek 7-2: Grafické znázornění procesu KDD dle metodiky CRISP-DM. Zdroj: http://upload.wikimedia.org/wikipedia/cs/3/38/CRISP%E2%80%93DM.png CRISP-DM zahrnuje následující kroky: CRISP-DM • Definování cílů projektu a požadavků z obchodního hlediska, převedení znalostí na definici data miningového problému a předběžné navržení plánu, jak dosáhnout cílů. Při definování cíle je zapotřebí definovat rovněž kritéria (z podnikatelského hlediska) pro hodnocení úspěšnosti nebo užitečnosti výstupu projektu. Tato kritéria mohou být objektivně měřitelná nebo subjektivně vnímatelná. Dalším dokumentem, který 15 SPSS je celosvětově působící společnost vyvíjející software a řešení pro prediktivní analýzy. V současné době produkt Clementine (data mainingový software) podporuje metodu CRISP-DM. 16 Explorace – výzkum, terénní výzkum. V našem případě vizuální posouzení. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 108 se v této etapě vypracovává, je analýza přínosů a nákladů (včetně identifikace všech nutných vstupů finančních, materiálních i lidských). Nutnou součástí této etapy je sestavení plánu projektu, ve kterém je popsán způsob dosažení cílů data miningu. Měly by být stanoveny kroky, které musí být vykonány, společně s jejich trváním, požadovanými zdroji, vstupy, výstupy a závislostmi. Součástí plánu je rovněž analýza závislostí mezi časovým harmonogramem a riziky. Projektový plán by měl obsahovat detailní plán pro každou fázi. • Porozumění datům – získání dat nebo získání přístupu k datům, která jsou uvedena ve zdrojích. Tento výchozí sběr zahrnuje případně i nahrání dat, pokud je to nutné pro jejich pochopení. Všechny tyto operace by měly být popsány společně s metodami užitými k získání dat. Zaznamenány by rovněž měly být i problémy vzniklé během tohoto procesu a způsoby řešení pro případné použití v budoucnosti (při opakování stejného či podobného projektu). Dále tento krok zahrnuje popsání charakteristik dat, jako např. formát, množství dat (počtu záznamů a polí v každé tabulce), popis polí a dalších znaků. • Příprava dat zahrnuje činnosti, které vedou k vytvoření datového souboru, který bude zpracováván jednotlivými analytickými metodami. Tato data by měla obsahovat údaje význačné pro danou úlohu a mít podobu, která je vyžadována vlastními analytickými algoritmy. Příprava dat zahrnuje selekci, čištění, transformaci, vytváření, integrování a formátování dat. Tato fáze je obvykle nejpracnější částí celého projektu. • Modelování – metodologie CRISP v úvodním kroku této fáze doporučuje vybrat konkrétní algoritmus (či algoritmy), který se bude použit pro analýzu. Před vlastním sestavením modelu potřebujeme vytvořit postup nebo mechanismus, který bude testovat kvalitu a sílu (správnost) modelu. Proto obvykle rozdělujeme datovou sadu na sadu učící a testovací. Model je vytvářen na učící datové sadě a jeho kvalita je určována na testovací sadě dat. V průběhu samotného modelování je vytvářen jeden nebo více modelů. V používaných nástrojích bývá často množství parametrů, které mohou být různě měněny, proto je nutné vždy důkladně zaznamenat všechny nastavené hodnoty. Dle CRISP bychom měli zaznamenat rovněž zdůvodnění, proč jsme vybrali zrovna tuto kombinaci nastavení. • Hodnocení výsledků - tento krok hodnotí úroveň, s jakou model dosahuje obchodních cílů a snaží se určit, zda-li je přítomen nějaký důvod (obchodní), proč je tento model nedostatečný. Vytvořený model je možné ohodnotit tím způsobem, že jej užijeme na reálné situace a sledujeme jeho kvalitu. Pokud je výsledný model označen jako schopným uspokojit obchodní potřeby, následuje důkladná revize celé data miningové úlohy a určuje se, zda-li nebyl přehlédnut nějaký důležitý faktor či úkol. Také se v tomto kroku rozhoduje o následné implementace ve světle analýzy zbývajících zdrojů a rozpočtu. • Implementace - během zavádění modelů by nemělo být opomenuto vytvoření plánů pro kontrolu a údržbu. Jejich význam roste, pokud se výsledky data miningových analýz mají stát součástí každodenních aktivit organizace. Důkladná příprava strategie údržby pomáhá vyhnout se zbytečně dlouhým obdobím, po která jsou data miningové výsledky špatně užívány. Z důvodu kontroly nasazení výsledků je nutný de- Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 109 tailní plán kontrolní činnosti. Tento plán bere do úvahy specifický typ nasazení. 7.1.2 KDD software S rozvojem IS-IT technologií a rozvojem, popularizací a hmatatelnými výsledky aplikací metod dobývání znalostí, se neustále rozšiřuje nabídka funkčních profesionálních komerčních i freewarových systémů určených pro data mining. (Viz Tabulka 7-1) Systém Výrobce URL CART Salford System http://www.salford-system.com Clementine SPSS http://www.spss.com Enterprise Miner SAS Institute http://www.sas.com Intelligent Miner IBM http://www-4.ibm.com Kepler Dialogis http://dialogis.de Knowledge Studio Angoss http://www.angoss.com LISp Miner VŠE http://lispminer.vse.cz MineSet Silicon Graphics http://www-europe.sgi.com See5 RuleQuest Research http://www.rulequest.com Statistica Data Miner StatSoft http://www.statsoft.com Weka University of Waikato http://www.cs.waikato.ac.nz WizWhy WizSoft http://www.wizsoft.com Tabulka 7-1: Některé ze známých data miningových softwarů. K ZAPAMATOVÁNÍ 27 V předchozích kapitolách jsme se zabývali programem NEST, který je uzpůsoben tak, aby mohl spolupracovat s LISp Miner-em, což je data mainingový program vyvinutý na VŠE Praha, a lze tedy využít výsledků dolování znalostí pro sestavení vlastní funkční báze znalostí bez zásahu či konzultací experta. SHRNUTÍ V první části kapitoly jsme se seznámili s oblastí informačních technologií zvanou dobývání znalostí. V následující druhé části se pak pokusíme ilustrovat možné využití metod KDD a znalostního inženýrství na praktické aplikaci STULONG. Shrnutí ODMĚNA A ODPOČINEK Před dalším studiem načerpejte sil a osvěžte mysl u lahodného šálku čaje. 7.2 Projekt STULONG 7.2.1 O projektu STULONG Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Odměna a odpočinek 110 STULONG je jeden z projektů EuroMISE centrum – Kardio. Pracoviště VŠE, které je součástí EuroMISE centrum – Kardio, se zabývá vývojem a aplikací technik a nástrojů pro získávání a zpracování lékařských znalostí. Hlavními používanými postupy jsou dobývání znalostí z medicínských databází (data mining) a formalizace znalostí obsažených v textech, zejména lékařských doporučených postupů. DALŠÍ ZDROJE V síti internet můžete nalézt další podrobnější informace o projektu STULONG, a to na adrese http://euromise.vse.cz/stulong. Projekt Stulong sleduje dva hlavní cíle: Cíle projektu • podrobné studium rizikových faktorů aterosklerózy u mužů středního věku, • demonstrace možností aplikace metod dobývání znalostí z databází v medicínské oblasti. Rizikové faktory aterosklerózy byly sledovány u 1419 mužů v letech 1976 – 1999 v souladu s celkovou metodikou projektu. Při vstupním vyšetření byly zjišťovány hodnoty 244 atributů. Hodnoty 219 z nich byly číselné kódy nebo výsledky měření. Dále bylo provedeno 10 610 kontrolních vyšetření, při kterých byly zjišťovány hodnoty 66 atributů. Projekt Stulong započal v první polovině sedmdesátých let jako rozsáhlá epidemiologické studie primární prevence aterosklerózy. Sběr dat probíhal na několika pracovištích. Prvotní data byla později upravena do elektronické podoby a zpracována základními statistickými postupy. Poté byla analyzována v rámci výzkumu aplikací metod dobývání znalostí v medicíně. Pro analýzy dat se v rámci projektu Stulong významným způsobem používá systém LISp Miner. Kromě systematického vyhledávání významných vztahů mezi sledovanými atributy (asociační pravidla implikace generovaná pomocí metody GUHA) je v systému též možnost využití metody KEX/ESOD pro automatickou konstrukci báze znalostí z dat. Vzniklá báze znalostí může být konvertována do systému NEST, čímž je vytvořen expertní systém poskytující konzultace na základě daných dat. Právě tento postup byl také v projektu Stulong použit - jeho výsledek bude popsán v následujícím odstavci. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Data a metody zpracování 111 Obrázek 7-3: Stránka dotazu v projektu STULONG. Součástí projektu Stulong jsou i dva výzkumné projekty: • prezentace výsledků analýz v přirozeném jazyce, • on line analýzy, které umožňují on line klást vlastní analytické otázky po Internetu a získávat bezprostředně odpovědi. 7.2.2 NEST v projektu STULONG V nedávné době byla implementována síťová verze NESTu do projektu STULONG. Aplikace poskytuje veřejnosti možnost zjistit si riziko výskytu aterosklerózy pomocí jednoduché konzultace po Internetu. Výsledné rozhodnutí systému má charakter spíše informativní – je tedy třeba jej případně konzultovat s lékařem. ČÁST PRO ZÁJEMCE 5 Internetová aplikace vytvořená v rámci projektu STULONG se nazývá AtherEX. Její stručný popis je dostupný na adrese http://www.euromise.cz/research/software.html. Vlastní konzultaci lze pak provést na adrese http://nest.aspweb.cz/?app=atherex. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 112 Obrázek 7-4: Stránka výsledků v projektu STULONG. Práci na vývoji systému lze rozdělit do tří částí: • příprava báze znalostí, • příprava webového rozhraní, • úpravy na samotném NESTu. Příprava báze znalostí představuje nejpracnější a časově nejnáročnější část implementace. V první fázi byly převedeny znalosti (pravidla a atributy) získané pomocí systému LISp Miner do syntaxe báze znalostí pro NEST. Takto získaná báze znalostí je kontrolována a dále upravována za přítomnosti experta. Především jsou texty jednotlivých atributů a výroků převedeny do jazyka, kterému porozumí i uživatel – laik, a dále jsou přidávána další pravidla, která nebyla nalezena automaticky, ale která jsou nutná pro správné fungování báze. Nutno poznamenat, že na vytvoření báze znalostí se podíleli především doc. Ing. P. Berka, CSc. (v roli znalostního inženýra) a MUDr. M. Tomečková, CSc. (v roli experta). Příprava báze znalostí Příprava webového rozhraní zahrnuje vytvoření webových stránek určených pro konzultaci v systému NEST (za pomoci klasického HTML a příslušných „pseudo tagů“ – viz sekce „Síťová verze“), které budou jednoduché pro ovládání uživatelem a vzhledem Příprava webového rozhraní Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 113 budou odpovídat stránkám EuroMISE. Ukázky z těchto stránek můžete vidět na obrázích Obrázek 7-3 a Obrázek 7-4. SHRNUTÍ KAPITOLY EXPERTNÍ SYSTÉMY A ZÍSKÁVÁNÍ ZNALOSTÍ Z DAT V právě prostudované kapitole jsme si v krátkosti představili disciplínu dobývání znalostí z databází včetně jejího vzniku. Uvedli jsme si a rozvedli typy úloh KDD včetně hlavních aplikačních oblastí. Obeznámili jsme se s existencí metodik postupů, dle kterých se postupuje při řešení data minigových projektů a jednu z nich – CRISP-DM – jsme si rozvedli detailně. Uvedli jsme také jakýsi (jistě neúplný) výčet softwarových produktů. Dále jsme si představili projekt STULONG, který představuje výsledek úspěšného praktického využití poznatků z několika disciplín především z oblasti data miningu (za pomocí systému Lisp Miner) a znalostního inženýrství (systému NEST). Také jste měli možnost si celý projekt takříkajíc „ohmatat“ na uváděných odkazech na příslušné webové stránky. PRŮVODCE STUDIEM 11 Tato kapitola obsahově uzavírá ráme kurzu Znalostního inženýrství a následuje poslední kapitola, v níž si podrobněji specifikujeme požadavky seminární práce. Její vypracování a obhájení jistě přispěje k lepšímu pochopení principů fungování metod znalostního inženýrství. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Shrnutí kapitoly 114 8 SPECIFIKACE ZADÁNÍ SEMINÁRNÍ PRÁCE RYCHLÝ NÁHLED DO PROBLEMATIKY KAPITOLY SPECIFIKACE ZADÁNÍ SEMINÁRNÍ PRÁCE Předchozí text zakončíme kapitolou v níž se dozvíte potřebné informace k tvorbě seminární práce. Rychlý náhled CÍLE KAPITOLY SPECIFIKACE ZADÁNÍ SEMINÁRNÍ PRÁCE Po úspěšném a aktivním absolvování této KAPITOLY Získáte: • Informace o nutných parametrech kladených na bázi znalostí. • Informace o nutných podmínkách kladených na dokumentaci. • Informace k vlastní obhajobě. 8.1 Báze znalostí Podstatnou částí seminární práce je funkční a vyladěná báze znalostí. Báze znalostí je vyhotovena pomocí programu NEST editor a uložena v samostatném xml souboru. Student volí v rámci zpracovávání práce vhodné téma pro aplikaci metod znalostního inženýrství. Téma je možné charakterizovat jako problém diagnostického typu tzn. jakékoliv poradenství, diagnóza chyb, závad, onemocnění atp. Pro inspiraci uvádíme: diagnostika typu osobnosti, doporučení konkrétního typu výrobku (notebooku, mobilního telefonu, počítače, automobilu atp.), diagnostika možného výskytu vrozené choroby, doporučení vhodného typu služby (pojištění, finančního produktu, dovolené, programu ve welness centru atd.). V rámci zvoleného a odsouhlaseného tématu je potřeba zvolit konkrétní výstupní doporučení, čili cílové výroky, kterých by mělo být několik. Báze znalostí nesmí být plochou – musí obsahovat mezilehlou rovinu atributů respektive výroků. Báze bude tří nebo více stupňová. V mezilehlé rovině by mělo být okolo 5-10 výroků. Dotazů, které budou pokládány uživateli, tj. výroků na vstupní úrovni báze znalostí by mělo být více než výroků z nich odvozovaných na vyšších úrovních báze znalostí. Báze by měla obsahovat nejen jednoduchá pravidla, ale i pravidla složitější, tedy pravidla s konjunkcemi v předpokladu a také s negativními závěry. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Získáte 115 K ZAPAMATOVÁNÍ 28 Významným faktorem obhajoby bude nejen předvedení funkční báze znalostí, ale i její odladění, aby konzultace dávaly smysluplné výsledky. 8.2 Ostatní náležitosti Celá opora předpokládá vedení kurzu ať již v kombinovaném či presenčním studiu ve formě elektronického či elearningového kurzu tak, aby obsahoval aktivity návodně vedoucí studenta postupně od výběru tématu až po vlastní odevzdání elektronických výsledků práce včetně dokumentace. V ideálním případě tedy bude se studentem konzultován veškerý postup, během něhož budou vypracovány veškeré i doprovodné náležitosti požadované k obhajobě práce. K ZAPAMATOVÁNÍ 29 Student k vlastní obhajobě vypracuje a odevzdá, alespoň týden dopředu před samotným termínem, funkční bázi znalostí v NEST, uložené typové konzultace v rámci svého zpracovávaného projektu a v neposlední řadě zpracovanou dokumentaci. Dokumentací se rozumí samostatný dokument (např. ve formátu MS-Word DOC nebo PDF), který bude zpracován po formální stránce standardně dle pokynů pro zpracování diplomové práce. V dokumentaci student představí řešený problém, okomentuje své řešení pomocí grafického znázornění báze a statistiky vlastní báze znalostí. Uvede výčtem cílové výroky, typy a počty jednotlivých pravidel a atributů. Dále připojí a popíše výsledky vzorových konzultací. K ZAPAMATOVÁNÍ 30 Adekvátně k počtu cílových výroků existuje stejný počet vzorových konzultací. Vzorová konzultace je soubor typických odpovědí, které by zadával uživatel, jemuž by byl doporučován konkrétní cílový výrok. V rámci dokumentace je také možno popsat případná úskalí, obtíže, které se vyskytly během řešení, či nástin možných alternativ řešení. V závěru je očekáváno zhodnocení vlastního řešení s návrhem jak problém dále rozpracovat. 8.3 Obhajoba Obhajoba seminární práce probíhá tak, že práci a její výsledky student přednese a před- Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 116 vede před zkoušejícím a přítomnými kolegy. Vysvětlí cíl práce, nastíní logiku práce a některých stěžejních pravidel. Objasní rámcově jaké parametry jsou zjišťovány formou dotazů. Opět rámcově nastíní vazbu na mezilehlou rovinu a na rovinu cílovou. K ZAPAMATOVÁNÍ 31 Předpokladem úspěšné obhajoby je také zvládnutí instalace systému NEST, ovládání programů NEST a NEST editor, včetně editace atributů, pravidel a převádění grafických a jiných výstupů. V rámci obhajoby student prokáže zvládnutí systému NEST v následujícím rozsahu: • Student demonstruje na připravených typových konzultacích funkčnost báze. • Student interpretuje výsledky konzultace pro přítomné kolegy. • Podle potřeby komentuje, jak byly odvozeny výsledky konzultací. • Na požádání student předvede graf zpracované báze znalostí. • Na požádání student zobrazí a případně vysvětlí konstrukci vlastní báze znalostí. • Zobrazí v případě nutnosti konkrétní pravidlo či atribut své báze. K ZAPAMATOVÁNÍ 32 Po demonstraci vlastní báze bude následovat debata, v níž se očekává i zapojení ostatních kolegů k různým aspektům zvoleného řešení. Student obhájí zodpovězením dotazů z pléna své řešení. Vlastní známka či zápočet bude udělen(a) po hromadné obhajobě při individuálním ústním dozkoušení. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 117 SHRNUTÍ MODULU ZNALOSTNÍ INŽENÝRSTVÍ Znáte okolnosti vzniku disciplíny znalostní inženýrství a umíte vyjmenovat příbuzné disciplíny. Dokážete pojem znalostní inženýrství definovat a vysvětlit. Umíte popsat základní principy znalostního inženýrství. Umíte rozdělit znalostní systémy do základních typů a umíte uvést konkrétní systémy diagnostického typu. Jste schopni objasnit strukturu expertního systému. Víte co je to znalost a víte, jakými způsoby mohou být znalosti reprezentovány. Pochopili jste úlohu inferenčního mechanismu. Dokážete objasnit pojem neurčitost a vysvětlit, jak souvisí se znalostními systémy. Dokážete nainstalovat, spustit a nastavit program NEST včetně spuštění a ukládání průběžných výsledků konzultace a průběžných odpovědí. Umíte ovládat NEST editor a jste schopni zadávat nové prvky báze znalostí. Víte jakým způsobem jsou reprezentovány znalosti v systému NEST. Znáte druhy atributů a víte, jak se dají použít. Víte, jak se v systému NEST zapisují pravidla. Byli jste seznámeni s mechanizmem inferenčního mechanizmu systému NEST a víte, jak funguje odvozování v síti pravidel. Umíte objasnit, jak pracuje systém NEST s neurčitostí a jaké k tomu využívá funkce. Jste schopni vypočítat, respektive ilustrovat postup výpočtu výsledných vah cílových výroků pomocí funkcí pro práci s neurčitostí fungují v systému NEST. Víte, že systém NEST v závislosti na nastavení umožňuje několik přístupů k práci s neurčitostí. Umíte si vybrat vhodné téma pro zpracování pomocí systému NEST a dokážete jej graficky znázornit. Umíte na základě předchozí analýzy započít vlastní práci na nové bázi znalostí a dále ji konstruovat - tedy vkládat atributy, výroky a pravidla tak, aby tato báze byla formálně funkční. Víte, jak postupovat při laďění báze znalostí a k čemu slouží a jaké nástroje použit při tvorbě dokumentace. Znáte účel a strukturu báze znalostí OPTCS. Představili jseme si disciplínu dolování znalostí z dat a ilustrovali její praktické využití spolu s metodami znalostního inženýrství na přikladu projektu STULONG. Znáte specifikaci a nároky požadované pro úspěšné obhájení seminární práce. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Shrnutí modulu 118 KLÍČOVÁ SLOVA MODULU ZNALOSTNÍ INŽENÝRSTVÍ Znalostní inženýrství, umělá inteligence (artificial inteligence, AI); expertní systém, znalostní inženýr, inferenční mechanizmus, báze znalostí, reprezentace znalostí, charakteristické rysy expertních systémů, typy aplikací, diagnostické a generativní ES, MYCIN, PROSPECTOR, FinCEN, data, informace, znalost, modularita znalostí, produkční pravidla, grafické znázornění pravidel, metody inference, typy prohledávání báze znalostí, neurčitost v datech a znalostech, 1. kapitola SAK, vývoj NESTu, zdroje stažení, instalace, stažení funkčních bází znalostí, nastavení programu, nastavení cest, nefunkčnost nastavení, spuštění NEST a zavedení báze, základní možnosti programu NEST, konzultace, průběh konzultace a možnosti během konzultace, ukládání a export odpovědí a výsledků konzultace. 2. kapitola NEST editor, základní a rozšířená nabídka, zadávání nových prvků báze, atribut x výrok, binární atribut, jednoduchý atribut, množinový atribut, numerický atribut, fuzzy interval, dělení výroků, hodnota atributu, obecný zápis pravidla, předpoklad, závěr, apriorní pravidlo, logické pravidlo, kompozicionální pravidlo, kontext, integritní omezení, odvozování a jeho mechanizmus v NEST. 3. kapitola Přístupy práce s neurčitostí, standardní mechanizmus, funkce: NEG, CONJ, DISJ, CTR a GLOB, pomocné funkce: NORM a IMP, standartní výpočet. 4. kapitola Vhodné oblasti, získávání znalostí, výběr cíle, založení báze, rozsah vah, implicitní váha, zadávání atributů a výroků, tvorba pravidel, předpoklad, disjunkce a konjunkce v přepokladové části, negace v pravidle, závěr pravidla, odlaďování báze, nadbytečné pravidlo, cyklus v bázi, tvorba dokumentace. 5. kapitola KDD vznik a proces, data mining, typy úloh, aplikační oblasti, metodiky řešení projektů, CRISP-DM, STULONG, cíle projektu, Lisp Miner, data zpracovávaná v rámci projektu, příprava báze znalostí. 7. kapitola DALŠÍ ZDROJE Berka, P. – Jirků, P. – Vejnarová, J.: Expertní systémy. 1. vyd. Praha, VŠE 1998. 160 s. Berka, P.: Vybrané znalostní systémy SAK, SAZE, KEX. Skripta VŠE, 2000. Berka, P.: Dobývání znalostí z databází. 1. vyd. Praha, Academia, 2003. ISBN 80-2001062-9. Berka, P., Laš, V., Svátek, V.: Nový expertní systém NEST. Sborník konference Znalosti 2004, Ostrava 2004, s. 256–267. ISBN 80-248-0456-5. The Data Mining Group.http://www.dmg.org, 20. 2. 2004-04-21. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 119 EuroMISE centrum – Kardio. http://euromise.vse.cz, 20. 2. 2004-04-21. Giarratano, J., Riley, G.: Expert Systems – Principles and Programming. PWS Publishing Company, Boston 1993. ISBN: 0-534-95053-1. Hájek, P.: Combining Functions for Certainty Factors in Consulting Systems. Int. J. Man-Machine Studies 22, 1985 Jiroušek, R.: Metody reprezentace a zpracování znalostí v umělé inteligenci. 1. vyd. Skripta VŠE, 1995. 103 s. LISp-Miner: http://lispminer.vse.cz, 20. 2. 2004. WikipediA: http://wikipedia.org. BERKA, Petr, LAŠ, Vladimír, TOMEČKOVÁ, Marie. AtherEx: An Expert System for Atherosclerosis Risk Assessment. Aberdeen 23.07.2005 – 25.07.2005. In: MIKSCH, Silvia, HUNTER, Jim, KERAVNOU, Elpida (ed.). Artificial Intelligence in Medicine. Berlin : Springer-Verlag, 2005, s. 79–88. ISBN 3-540-27831-1. • IVÁNEK,J. - FERJENČÍK,J. - ŠVENDA,J.: Znalostní inženýrství - východiska a perspektivy. SIVO 2092. Praha, ÚVTEI/ÚTEIN 1986, 74s. • IVÁNEK,J.: Získávání znalostí - určující faktor rozvoje informačních technologií. SIVO 2175. Praha, ÚVTEI/ÚTEIN 1988, 102s. • IVÁNEK,J. - FERJENČÍK,J. - STEJSKAL,B. - ŠVENDA,J.: Základy matematické informatiky - III. Znalostní inženýrství. Praha, Skripta VŠE 1987, 114s. • IVÁNEK,J.: An expert system recommending suitable mathematical decision method. Computers and Artificial Intelligence, 5, 1986, s.241-251. • IVÁNEK,J. - ŠVENDA,J. - FERJENČÍK,J.: Inference in Expert Systems Based on Complete Multivalued Logic. Suppl. Journal Kybernetika, Vol. 25, 1989, p.25-32. • IVÁNEK, J.: Representation of expert knowledge as a fuzzy axiomatical theory. International Journal of General Systems, 20, 1991, s. 55-58. • IVÁNEK,J. - STEJSKAL,B.: Automatic Acquisition of Knowledge Base from Data without Expert: ESOD (Expert System from Observational Data). In: Proc. COMPSTAT'88 Copenhagen. Physica-Verlag Heildelberg 1988, s.175-180 • LAŠ, V.: Diplomová práce. VŠE v Praze Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Příloha Vzor dokumentace pro seminární práci K ZAPAMATOVÁNÍ 33 Následující vzor dokumentace seminární práce je vzorem skutečně vypracované a odevzdané práce. Slouží pouze k ilustračním účelům, tedy vaše vlastní dokumentace se může a bude od předloženého vzoru lišit, nicméně by měla sledovat předestřenou strukturu. Práce tedy bude obsahovat: • Úvodní obálkovou stránku s názvem práce, jménem autora a rokem vypracování. • Obsah. • Představení problémů. • Řešení. • Statistické údaje o bázi. • Závěr. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 120 Příloha Vzor dokumentace pro seminární práci SLEZSKÁ UNIVERZITA V OPAVĚ Obchodně podnikatelská fakulta v Karviné Seminární práce do kurzu: Znalostní inženýrství Téma: Výběr vhodného automobilu Ak. rok 2007/2008 Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Zpracoval: Mikůš Jiří 121 Příloha Vzor dokumentace pro seminární práci OBSAH: Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 122 Příloha 1. Vzor dokumentace pro seminární práci 123 VÝBĚR TÉMATU Žijeme v době, kdy lidé využívají stále více dopravních prostředků pro přesun sama sebe a svých věcí. K tomu jsou využívány zejména osobní, případně nákladní vozidla. Vozidla procházejí každoročně ohromnou obměnou, které jsou dány technologickými změnami a požadavky zákazníků zejména v oblasti designu a pohodlí. Automobily se staly samozřejmostí pro téměř každou rodinu. Z tohoto důvodu jsem se i já ve svém projektu zaměřil na výběr jednotlivých druhů osobních automobilů. Jaký typ vozu je pro daného člověka vhodný v závislosti na jeho požadavcích, možnostech a přáních. Lidé mají v dnešní době stále méně času a z tohoto důvodu je pro ně velmi důležitá úspora času. Pomocí dobře zvoleného typu a modelu vozidla lze ušetřit čas. Rozhodl jsem se zaměřit na 4 modely automobilů: Škoda Octávia, Škoda Roomster, Toyota Raf4 a Peugeot 208. Potencionální zákazníci mohou rozlišit vozidlo podle několika vlastností. Základní vlastností je účelnost vozidla, dále rychlost, cena, luxus, spotřeba, zdali má zákazník rodinu, případně zdali využívá automobil k přepravě nákladů, apod. 2. POSTUP PŘI ZPRACOVÁNÍ PROJEKTU Nejtěžší byl hned v úvodu výběr tématu, které budu zpracovávat ve svém projektu. Nabízely se mnohá témata, ale ne u každého se daly vymyslet vhodné atributy a mezilehlé výroky. Ovšem napadlo mě, že v mé rodině se vyskytuje několik lidí, kteří se zabývají prodejem a servisem automobilů a náhradních dílů na ně. Navíc přes léto jsem pracoval jako koordinátor u asistenční služby pro osobní a nákladní vozidla. Zejména tyto důvody mne vedly k tomu, vybrat si nakonec bázi dat založenou na výběru vhodného automobilu. Jako nejtěžší věc na celé seminární práci považují uvědomění si, jak má celá báze znalostí vypadat, jaká má být její struktura, jaké jsou mezilehlé atributy a cílové výroky. Myslím, že je důležité si načrtnout graf celé báze, ať znalostní inženýr vidí, jak má báze má vypadat. Poté už nevidím nějaký zásadní problém ve zadávání atributů. Další problémy mohou nastat v zadávání vah u možných výroků. S tímto problémem si znalostní inženýr musí „pohrát“, aby báze správně fungovala. Další problém, na který jsem narazil, bylo zjištění, že pokud je atribut mezilehlým atributem a já k tomuto atributu nepřidám výrok, který někam směřuje, tak budu mít potom problém, že se mi bude tento mezilehlý výrok objevovat při konzultaci. 3. STATISTIKA Atributy Celkem 16 Binární 8 Dotazovací 14 Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Příloha Vzor dokumentace pro seminární práci Jednoduchý 3 Mezilehlý 1 Množinový 2 Cílový 1 124 Numerický 3 Výroky Celkem 37 Binární 8 Jednoduchý 12 Množinový 7 Dotazovací 27 Mezilehlý 6 Cílový 4 Numerický 10 Graf báze 4. ZÁVĚR Myslím, že tento expertní systém založený na znalostní bázi v rámci projektu prodeje automobilů, pro který byl vytvořen, funguje podle všech pravidel správně, ale jelikož se jedná pouze o vzorový příklad a tudíž zde v žádném případě nejsou zahrnuty všechny druhy značek a modelů vozů a všechny vlastnosti, které zákazníci požadují, proto pro skutečné využití je nutno zahrnout širší sortiment značek, vlastností i pravidel, podle kterých by systém v praxi fungoval. Vše se vyvíjí a také oblast vozidel se vyvíjí velmi dynamicky jak v oblasti designu, výkonu, využití alternativních paliv, vlastností, proto je nutno pravidelně aktualizovat informace a znalosti. Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství Příloha Vzor dokumentace pro seminární práci SEZNAM POUŽITÝCH ZNAČEK, SYMBOLŮ A ZKRATEK INFORMATIVNÍ, NAVIGAČNÍ, ORIENTAČNÍ KE SPLNĚNÍ, KONTROLNÍ, PRACOVNÍ Průvodce studiem Kontrolní otázka Průvodce textem, podnět, otázka, úkol Samostatný úkol Shrnutí Test a otázka Tutoriál Řešení a odpovědi, návody Čas potřebný k prostudování Korespondenční úkoly Nezapomeň na odměnu a odpočinek VÝKLADOVÉ NÁMĚTY K ZAMYŠLENÍ, MYŠLENKOVÉ, PRO DALŠÍ STUDIUM K zapamatování Úkol k zamyšlení Řešený příklad Část pro zájemce Definice Další zdroje Věta Jiří Ivánek, Robert Kempný, Vladimír Laš: Znalostní inženýrství 125
Podobné dokumenty
Sborník "Banka dat a modelů ekonomiky ČR"
nich nejen možnost měření vlivů jedněch ekonomických veličin na jiné, ale také příležitost
k simulacím variantních scénářů ekonomické politiky s prozkoumáním důsledků určitých
rozhodnutí a k prognó...
Teorie her
Příklad 3.1: Tic-Tac-Toe (neboli americké piškvorky) se hrají na čtvercové síti 3x3 políčka. První
z hráčů maluje křížky, druhý maluje kolečka. Hráči se střídají a vyhraje ten, komu se podaří umíst...
5.1 Rozhodovací stromy
Indukce rozhodovacích stromů patří k nejznámějším algoritmům z oblasti symbolických metod
strojového učení. Při tvorbě rozhodovacího stromu se postupuje metodou „rozděl a panuj“ (divide and
concque...
1998
Kromě Sangerovy metody se ve speciálních případech používá
tzv. metoda Maxama a Gilberta. Při ní se molekula DNA štěpí
působením různých velice specifických chemických činidel. Na rozdíl od
prvé me...
operační výzkum - Sdružení TurnovFree.net
aby ovládali každý krok řešících algoritmů, ale aby pochopili podstatu použitých metod a
modelů, jejich možnosti použití, ale i omezení. Jen tak je možné se vyhnout nedorozumění
z přeceňování výsle...
flow93 5
Pokud je pohon připojen k hlavnímu vedení, jsou součástky napájecí jednotky
pod napětím. Kontakt s tímto napětím je extrémně nebezpečný a může
způsobit smrt nebo vážné poranění.
Pokud je střídavý p...
DATA MINING - MOŽNOSTI A ZPŮSOBY JEHO VYUŽITÍ
Odhalení závislostí a rozdílů
Data mining nenahrazuje, ale doplňuje dosud užívané postupy vyhodnocování hromadných dat.
Dolování dat je mnohem komplexnější proces, než "prosté" výše uvedené metod...