Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Katedra informačního a znalostního inženýrství Obor: Aplikovaná informatika
Student
:
Vedoucí bakalářské práce : Oponent bakalářské práce :
Filip Hrbek prof. Ing. Petr Berka, CSc. doc. Ing. Vojtěch Svátek, Dr.
TÉMA BAKALÁŘSKÉ PRÁCE
Programovací nástroje pro tvorbu expertních systémů
ROK: 2011
Prohlášení
Prohlašuji, že jsem bakalářskou práci na téma „Programovací nástroje pro tvorbu expertních systémů„ zpracoval samostatně a že jsem uvedl všechny použité prameny a literaturu, ze kterých jsem čerpal.
V Praze dne 4. 12. 2011
Podpis:…………………….......
Poděkování
Touto cestou bych rád poděkoval vedoucímu mé bakalářské práce, prof. Ing. Petru Berkovi, CSc., za cenné rady, podněty a připomínky.
Abstrakt
Tato bakalářská práce má za cíl prozkoumat nabídku programovacích nástrojů pro tvorbu expertních systému a pomocí stanovených kritérií porovnat vybrané prostředky. Rozděluje se na dvě části, teoretickou a praktickou. První z nich se snaží nastínit a popsat problematiku expertních systémů včetně rozdělení programovacích nástrojů na obecné programovací jazyky, programovací jazyky umělé inteligence a vývojová prostředí expertních systémů, aby čtenář získal představu obecného modelu, se kterým bude srovnávat praktické aplikace. Praktická část začíná popisem kritérií, kterých jsem si všímal. Samotná studie poskytuje popis jednotlivých nástrojů, který jsem získal studiem manuálů, tutoriálů, informací od výrobců, zkoušením a testováním daných aplikací. V závěru jsem je tabulkovou formou porovnal. Jelikož nabídka na dnešním trhu přesahuje možnosti této práce, tak jsem vybral pouze omezený počet příkladů. Klíčová slova: expertní systém, programovací nástroj, neurčitost, odvozování, znalostní báze, programovací jazyk pro umělou inteligenci, vývojové prostředí, prázdný expertní systém
Abstract
This bachelor thesis is going to explore the supply of programming tools for creation expert system and compare these tools by established criteria. This document is divided into theoretical and practical part. The first one is trying to describe expert system topic including division of programming tools into general programming language, programming language for artificial intelligence and development toolkits for expert system. The reader can imagine general model, which will be compared by practical applications. In the practical part I have written something about established criteria. The study describes programming tools. Information about them I have found in the manuals, tutorials, information from manufacturer, testing these tools. In conclusion I have compared them in tables. I have chosen only few examples of programming tools, because the offer on now day market is too wide. Keywords: expert system, programming tool, uncertainty, inference, knowledge base, programming language for artificial intelligence, development toolkit, expert system shell
1
OBSAH
2
Úvod ................................................................................................................................................ 8
3
Expertní systémy ............................................................................................................................. 9
4
3.1
Historie .................................................................................................................................... 9
3.2
Co je Expertní systém? .......................................................................................................... 10
3.2.1
Architektura ES ............................................................................................................. 10
3.2.2
Inferenční mechanismus ................................................................................................ 11
3.2.3
Báze znalostí.................................................................................................................. 15
3.2.4
Vysvětlovací modul ....................................................................................................... 18
3.2.5
Komunikační modul ...................................................................................................... 19
3.3
Výhody ES ............................................................................................................................ 19
3.4
nevýhody ES.......................................................................................................................... 19
3.5
Rozdělení ............................................................................................................................... 20
3.5.1
Diagnostické ES ............................................................................................................ 20
3.5.2
Generativní ES .............................................................................................................. 21
3.5.3
Další ES ......................................................................................................................... 21
Tvorba Expertních systémů ........................................................................................................... 22 4.1
5
Programovací nástroje ES ..................................................................................................... 22
4.1.1
Obecné programovací jazyky ........................................................................................ 23
4.1.2
Programovací jazyky umělé inteligence ........................................................................ 23
4.1.3
Vývojová prostředí ES .................................................................................................. 23
Kritéria hodnocení ......................................................................................................................... 24 5.1
GUI ........................................................................................................................................ 24
5.2
Inferenční mechanismus ........................................................................................................ 24
5.3
Práce se znalostmi ................................................................................................................. 24
5.4
Ostatní kritéria ....................................................................................................................... 24
5.4.1
Zařazení ES ................................................................................................................... 24
5.4.2
Cena ............................................................................................................................... 24
5.4.3
HARDWAROVÉ & SOFTWAROVÉ nároky .............................................................. 24
5.4.1
Kompatibilita ................................................................................................................. 25
5.4.2
Technická podpora ........................................................................................................ 25
5.4.3 6
Reference ....................................................................................................................... 25
Studie ............................................................................................................................................. 26 6.1
Programovací jazyky umělé inteligence................................................................................ 26
6.1.1
Lisp ................................................................................................................................ 26
6.1.2
Prolog ............................................................................................................................ 27
6.1.3
Clips............................................................................................................................... 28
6.1.4
OPS5 .............................................................................................................................. 29
6.2
Vývojová prostředí expertních systémů ................................................................................ 30
6.2.1
EXSYS .......................................................................................................................... 30
6.2.2
G2 .................................................................................................................................. 33
6.2.3
CA Aion Business Rules Expert 11.0............................................................................ 35
6.2.4
BMIR Protégé................................................................................................................ 37
6.2.5
EZ-Expert 3.0 ................................................................................................................ 39
6.2.6
Flex Expert Systems Toolkit ......................................................................................... 41
6.2.7
LPA VisiRule 1.5 .......................................................................................................... 43
6.2.8
XpertRule Knowledge Builder ...................................................................................... 45
6.2.9
Acquire .......................................................................................................................... 47
6.2.10
Induce-It ........................................................................................................................ 49
6.2.11
XMLMiner .................................................................................................................... 51
6.2.12
DataLogic/R .................................................................................................................. 52
7
Zhodnocení studie ......................................................................................................................... 54
8
Závěr.............................................................................................................................................. 58
9
Zdroje & Literatura ....................................................................................................................... 59
2
ÚVOD
Tato práce, jak napovídá její název, pojednává o programovacích nástrojích pro tvorbu expertních systémů, které jsou, dle mého názoru, velmi zajímavým tématem nejen na akademické úrovni, ale i při jejich aplikaci v praxi. Pokud se rozhodneme vyvinout vlastní expertní systém, můžeme využít několika různých nástrojů, které jsem se pokusil porovnat a vytvořit studii sloužící při rozhodování o výběru před začátkem vývoje expertního systému. Svou bakalářskou práci jsem se rozhodl začít teoretickou částí, aby si čtenář mohl udělat obrázek obecného modelu expertního systému. Soustředil jsem se především na vlastnosti, které jsem později zkoumal u konkrétních případů programovacích nástrojů. Dále jsem popsal kategorie a kritéria hodnocení pro praktickou část. Samotná studie obsahuje programovací nástroje pro tvorbu expertních systémů včetně detailního popisu, obrázků z vývoje, hodnocení ke všem zvoleným kritériím. Závěrem se snažím zhodnotit vlastní snažení a přinést radu, který z nástrojů vybrat. Před samotným psaním jsem přemýšlel o rozšíření tématu pro celou umělou inteligenci, ale vymezení pouze pro expertní systémy se ukázal jako správný tah. Celý dokument, který právě čtete, slouží jako závěrečná práce pro mé bakalářské studium oboru Aplikované informatika na Vysoké škole ekonomické v Praze. Požádal jsem prof. Ing. Petra Berku, CSc. o vedení mé práce, jelikož ho považuji za experta nejen v oboru expertních systémů, ale v celé umělé inteligenci. Napsal mnoho publikací o dané problematice a zároveň je garantem několika předmětů zabývající se umělou inteligencí na Vysoké škole ekonomické v Praze. Například Principy inteligentních systémů (4IZ430), Umělé neuronové sítě (4IZ561), nebo Úvod do umělé inteligence (4IZ229). Sám jsem absolvoval bohužel pouze jeden z nich, ale v budoucnu bych rád studoval další.
8
3
EXPERTNÍ SYSTÉMY 1
3.1
HISTORIE
Prvním významným milníkem z historického hlediska se stal rok 1958, kdy vznikl programovací jazyk pro umělou inteligence LISP. Samozřejmě, že pro celou umělou inteligenci existují starší a významnější události, kterými se ovšem zabývat nebudeme, jelikož nás především zajímá historie expertních systémů. Pomocí LISPu, který je mimochodem používán dodnes, začal vznikat v roce 1965 předchůdce expertních systémů DENDRAL. Program DENDRAL sloužil k určování organické sloučeniny podle hmotového spektrogramu pomocí testovací metody generuj-atestuj. Oproti normálním expertním systémům neměl oddělenou znalostní bázi od inferenčního mechanismu. Na přelomu 60. a 70. let došlo ke vzniku znalostního inženýrství (velmi související oblast s expertními systémy), protože určitá část vědců přestala hledat univerzální algoritmus umělé inteligence, ale začalo klást důraz na reprezentaci a zpracování znalostí. O expertní systémy začíná být v komerční sféře zájem, který nepolevuje ani v 80. letech. Přesto však některé komerční projekty končí nezdarem především kvůli přehnaně optimistickým predikcím vývoje. Při uchovávání znalostí v databázích nastává problém s hardwarovými nároky na expertní systémy, prozatím neexistuje hardware (především paměť) odpovídající nárokům. Mezi průkopníky v 70. letech lze považovat jazyk PROLOG a expertní systémy MYCIN, HEARSAY I a II, ve druhé polovině 70. let i PROSTECTOR, OPS, R1/XCON, ReTe algoritmus. V 80. Letech se objevil nástroj Cyc, který využíval rámce pro jednotnou reprezentaci znalostí. 90. léta přináší metodologii KADS pro tvorbu expertních systémů. Dochází i k posunu v získávání znalostí, kdy se upřednostňuje automatické dolování dat (takzvaný data mining). Pozdější expertní systémy lze označit jako druhou generaci, kdy dochází ke zlepšení báze znalostí (modulární a víceúrovňové) a vysvětlovacího modulu, hybridizaci reprezentace znalostí. Objevují se i hybridní systémy, kdy došlo k propojení expertních systémů s neuronovou sítí.
Tabulka 3.1 Významné nástroje pro tvorbu ES
Rok 1958 1965 1970 1971 1973 1976 1977 1977 1978 1979 1984
Nástroj LISP DENDRAL PROLOG HEARSAY I MYCIN PROSPECTOR OPS HEARSAY II R1/XCON ReTe algoritmus CyC
Autor John McCarthy Edward Feigenbaum, Bruce Buchanan Alain Colmerauer, Philippe Roussell Lesser Edward Shortliffe, Bruce Buchanan Duda, Hart Charles L. Forgy Erman John P. McDermott Charles L. Forgy Douglas Lenat
Informace v této kapitole jsem především čerpal z: BERKA, P. Expertní systémy. Praha: Vysoká škola ekonomická, 1998. ISBN 80-7079-873-4. Dvořák, J. Expertní systémy. VUT, Brno, 2004. 92s. [Cit. 3.12.2011] http://www.uai.fme.vutbr.cz/~jdvorak/Opory/ExpertniSystemy.pdf 1
9
3.2
CO JE EXPERTNÍ SYSTÉM?
Literatura nejčastěji uvádí jako definici expertního systému výklad Edwarda Feigenbauma, který je některými odborníky považován za otce expertních systémů. Jeho definice zní „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.“ Původním cílem vzniku expertních systémů bylo plné nahrazení lidského experta, což není možné z důvodu nepostihnutelnosti umělého stroje, takže se postupem času degradoval na pouhého kolegu, rádce či asistenta. Expertní systémy se dají považovat jako jednu z několika vědních disciplín spadající pod umělou inteligenci vedle neuronových sítí, genetického programování, procházení stavového prostoru, dobývání znalostí a strojového učení. Jednotlivé disciplíny se mohou prolínat, takže například vznikají hybridní expertní systémy, které obsahují prvky z neuronových sítí, dobývání znalostí i strojového učení. Existuje několik základních charakteristických rysů: Oddělení báze znalostí a inferenčního mechanismu Elementární rys, oddělení znalostí od mechanismu odvozujícího závěry, při odstranění báze znalostí vzniká tzv. prázdný expertní systém (v angličtině expert system shell), dalším nepovinným, ale častým rysem je průhlednost a snadná úprava báze znalostí. Rozhodování při neurčitost Schopnost rozhodovat i při neurčitosti (existují dvojího typu: neurčitost v bázi znalostí a v datech), která je vyjádřena určitou škálou (číslem, nebo neurčitými odpověďmi například typu ano, spíše ano, nevím, spíše ne, ne). Vysvětlovací a komunikační režim Expertní systém při získávání dat klade otázky, na které dostává odpovědi pomocí uživatelského rozhraní, zároveň vysvětluje a popisuje dané otázky i poskytnuté závěry (jakým způsobem bude vysvětleno níže). Komunikace vypadá podobně jako mezi expertem a subjektem žádajícím o radu. 3.2.1
ARCHITEKTURA ES
Expertní systém se skládá z několika modulů (komunikační, vysvětlovací, inferenční mechanismus, báze znalostí, báze dat), které budou více rozebrány později v podkapitolách. Jak je patrné ze schématu expertního systému uživatel komunikuje s komunikačním modelem (dá se také hovořit o tzv. GUI neboli uživatelském rozhraní), se kterým spolupracuje inferenční mechanismus a vysvětlovací modul. Pokud bychom odebrali báze znalostí a bázi dat, tak nám vznikne prázdný expertní systém. Samozřejmě schéma je pouhým modelovým zobrazením. Jednotlivé expertní systémy se dále odlišují dle typu a samotného využití v praxi. Například může být přidán modul pro automatické dolování dat ze systému, který sleduje.
10
Obrázek 1 Schéma expertního systému 2
3.2.2
INFERENČNÍ MECHANISMUS
Inferenční mechanismus, jeden ze základních prvků, se dá nazvat hlavním jádrem a podstatou expertních systémů. Uvnitř jsou uložené základní algoritmy a principy způsobu práce. Pomocí dat k případu a báze znalostí je inferenční mechanismus schopný vyřešit problém zadaný expertovi, v tomto případě systému. Existují dva hlavní pojmy, které musíme znát, pro úplné pochopení podstaty fungování. Inference, neboli česky odvozování, a práce s neurčitostí. Inference 3 Joseph Giarratano a Gary Riley v roce 1998 popsali ve svém díle Expert Systems – Principles and Programming obecné typy logického odvozování, které rozdělili na Dedukci (odvozování závěrů z předpokladů), Indukci (zobecňování konkrétních případů), Abdukci (opak k dedukci, odvozování všech možných předpokladů z pravdivých, zjištěných závěrů), Heuristiky (inference na základě zkušeností, selského rozumu), Generování a testování (získávání závěru náhodným generováním možných řešení a následným ověřováním), Analogie (využívání podobných problémů), Defaultní inference (usuzování na základě obecných znalostí, zejména při nedostatku specifických znalostí), Nemonotónní inference (upravování obecných postupů na základě nových pozorování) a Intuice (využití usuzování na základě podvědomého tušení, v ES zatím neexistuje využití). V expertních systémech nalezneme dva základní (zpětné a přímé řetězení) a dva pomocné (agenda a tabule) způsoby odvozování. Zpětné řetězení Nebo také backward chaining, goal-driven, top-down reasoning využívá dedukci, jedná se o usuzování řízené cíli. Formou dialogu se zkoumají předpoklady závěrů, k jejichž pravdivosti se 2 3
BERKA, P. Expertní systémy. Praha: Vysoká škola ekonomická, 1998. ISBN 80-7079-873-4. GIARRATANO, J. - RILEY, G.: Expert Systems. Principles and Programming, PWS Publishing Co. 1993.
11
chceme dostat. Při nesplnění předpokladů můžeme pouze s jistotou tvrdit, že dané pravidlo neplatí, ale nemůžeme automaticky vyvodit opačný závěr. Některé expertní systémy povolují přidělit priority k jednotlivým předpokladům, abychom se dostali v dialogu k důležitým informacím co nejdříve. Kompozicionální systémy mohu skládat mezivýsledky, které později využijí k hledaným závěrům. Vhodnými aplikacemi pro zpětné řetězení jsou aplikace s pevně danými cíli, například diagnostické úlohy. Přímé řetězení Nebo také dopředné řetězení, forward chaining, data-driven, botom-up reasoning. Jedná se o usuzování řízené daty, kdy se využívají data sebraná ještě před konzultací a z nich se hledají pravidla, u kterých lze tyto informace uplatnit a zhodnotit pravdivost. Postupuje se ve třech krocích Porovnání (matching), Řešení konfliktu (conflict resolution) a Provedení (execution). Existuje i zde stejně jako u zpětného řetězení možnost využití priorit. Většinou se při prvním nalezeném pravdivém závěru končí a nepokračuje se v konzultaci, takže nepřichází v úvahu dílčí skládání mezivýsledků. Využití je vhodné u generativních úloh. Agenda Jedná se o pomocný zásobník s prioritními procesy určených k vykonání. Slouží k efektivní práci expertního systému. Poprvé se agenda objevila roku 1977 v systému AM (Automated Matematician), který měl za úkol objevovat nové vztahy a pravidla z oblasti matematiky. Tabule Tabule nejdříve sloužila jako centrální datové uložiště, ke kterému by měli přístup všechny důležité moduly. Později byl rozšířen o řídící jednotku, takže se podílí na řízeném předávání dat i na ovládání celého systému. Poprvé se objevila v systému Hearsay (pracující na rozpoznávání řeči). GBB (Generic Blackboard Builder) bych mohl uvést jako příklad systému založeného na architektuře tabule. Jedná se o objektově orientované programové prostředí. Byl stvořen jazykem Common Lisp. Snadno se tabulové systémy vypořádají s různorodými datovými zdroji. Vlastním řízením zdrojů vhodně skládají související data, odkládají rozhodnutí pro nedostatek informací, vzniká vhodná řídící struktura. Na druhou stranu vývoj i údržba takových systémů s využitím tabule je velice finančně i časově náročný.
Obrázek 2 Schéma tabule 4
Algoritmus Rete Na závěr části o inferenci bych rád zmínil efektivní algoritmus Rete, který například využívají nástroje ART, CLIPS, OPS5 a další. „Rete je účinný porovnávací algoritmus redukující dobu Dvořák, J. Expertní systémy. VUT, Brno, 2004. 92s. [Cit. 3.12.2011] http://www.uai.fme.vutbr.cz/~jdvorak/Opory/ExpertniSystemy.pdf (strana 26)
4
12
porovnávání na základě síťové struktury, ve které jsou uloženy informace o ztotožnění podmínek s fakty v bázi faktů.“ 5 Práce s neurčitostí Každý expert v libovolné aplikační oblasti se své praxi neustálé setkává s neurčitostí, není to ani nijak jinak pro expertní systémy. Již v začátcích se tedy objevil problém, jak reprezentovat neurčitost, která existuje dvojího typu: neurčitost v bázi znalostí a neurčitost v datech k případu. Neurčitost bývá vyjádřena čísly, které se nazývají například míry, váhy, stupně důvěry. Většinou nabývají hodnot v intervalu [-1.1], [0,1], nebo [0, nekonečno], což vyjadřuje expertovo přesvědčení o výroku (například pacient má chřipku s váhou 0.9). V některých novějších systémech se nesetkáme s vyjádřením jedním číslem, ale dvěma, které značí interval. Způsoby práce s neurčitostí máme několik, lze je rozdělit do dvou skupin: ad hoc modely (faktory jistoty/míry důvěry a nedůvěry a pseudobayesovské/pseudopravděpodobnostní přístupy) a modely teoretických principů (teorie pravděpodobnosti, teorie fuzzy množin, teorie fuzzy mír, kterými jsou například Dempster-Shaferova teorie nebo teorie možnosti). Pseudobayesovský/pseudopravděpodobnostní přístup Vychází z pojmu šance, která je určena poměrem příznivých a nepříznivých jevů. Z šance lze 𝑂(𝐴) jednoduše pomocí vzorce P(A) = vytvořit pravděpodobnost. S definicí Bayesovy věty lze
definovat míru postačitelnosti 𝐿
1+𝑂(𝐴) 𝑃(𝐸|𝐻] = �) 𝑃(𝐸|𝐻
a míru nezbytnosti 𝐿� =
𝑃(𝐸� |𝐻) , �) 𝑃(𝐸� |𝐻
pomocí kterých expert
zadává pravidlo ve tvaru 𝐸 ⇒ 𝐻(𝐿, 𝐿�). Tuto větu lze interpretovat, jako předpoklad E podporuje hypotézu H při mírách postačitelnosti L a nezbytnosti 𝐿�. Kombinaci předpokladů lze vyřešit pomocí fuzzy logiky:
Disjunkce: 𝑃(𝐸1 ∨ 𝐸2 ) = max{𝑃(𝐸1 ), 𝑃(𝐸2 )}
Konjunkce: 𝑃(𝐸1 ∧ 𝐸2 ) = min{𝑃(𝐸1 ), 𝑃(𝐸2 )}
Negace: 𝑃(¬𝐸) = 1 − 𝑃(𝐸).
Mezi největší výhody pseudopravděpodobnostního přístupu jsou teoretické základy a přesně definovaná sémantika rozhodování. Na druhou stranu potřebujeme mnoho dat, u kterých hrozí neúplnost a nepřesnost především kvůli interpretaci neurčitosti jedním číslem. Faktory jistoty (Míry důvěry a nedůvěry) Další přístup vychází z pseudopravděpodobnostního přístupu, který se ovšem snaží vylepšit a odstranit slabiny. Setkáváme se s podobným obecným tvarem pravidla: 𝐸 ⇒ 𝐻(𝐶𝐹) . CF nabývá hodnot v intervalu [-1,1] a nazývá se faktorem jistoty, který lze definovat jako 𝐶𝐹(𝐻, 𝐸) = 𝑃(𝐻|𝐸)−𝑃(𝐻) , za 𝑀𝐵(𝐻, 𝐸) − 𝑀𝐷(𝐻, 𝐸). Jednotlivé složky se označují jako míra důvěry (𝑀𝐵(𝐻, 𝐸) =
předpokladu 𝑃(𝐻|𝐸) > 𝑃(𝐻)) a míra nedůvěry (𝑀𝐷(𝐻, 𝐸) =
𝑃(𝐻)−𝑃(𝐻|𝐸) , 𝑃(𝐻)
1−𝑃(𝐻)
za předpokladu 𝑃(𝐻|𝐸) <
𝑃(𝐻)). Pokud jsou splněny předpoklady u jedné či druhé míry, tak druhá míra je rovna nula a lze tvrdit, že pravidlo potvrzuje resp. vyvrací hypotézu. V případě 𝑃(𝐻|𝐸) = 𝑃(𝐻) platí 𝑀𝐵 = 𝑀𝐷 = 0 a můžeme tvrdit, že pravidlo nepotvrzuje ani nevyvrací hypotézu. Obě dvě nabývají hodnot v intervalu [0,1]. V případě stejného závěru pro dvě pravidla (𝐸1 ⇒ 𝐻 a 𝐸2 ⇒ 𝐻) existují vztahy pro míru důvěry a nedůvěry při splnění obou předpokladů. 𝑀𝐵(𝐻, 𝐸1 &𝐸2 ) = 𝑀𝐵(𝐻, 𝐸1 ) + 𝑀𝐵(𝐻, 𝐸2 ) − 𝑀𝐵(𝐻, 𝐸1 ) ⋅ 𝑀𝐵(𝐻, 𝐸2 )
Dvořák, J. Expertní systémy. VUT, Brno, 2004. 92s. [Cit. 3.12.2011] http://www.uai.fme.vutbr.cz/~jdvorak/Opory/ExpertniSystemy.pdf (strana 16)
5
13
𝑀𝐷(𝐻, 𝐸1 &𝐸2 ) = 𝑀𝐷(𝐻, 𝐸1 ) + 𝑀𝐷(𝐻, 𝐸2 ) − 𝑀𝐷(𝐻, 𝐸1 ) ⋅ 𝑀𝐷(𝐻, 𝐸2 )
Tento princip umožnuje snazší propojení s vysvětlovacím modulem a jednodušší sběr konkrétních dat, ale není zcela jasně daná pevná teorie. Dempster-Shaferova teorie Dempster-Shaferova teorie byla vyvinuta především kvůli odstranění nedostatku v pravděpodobnostním přístupu, konkrétně v nutnosti součtu měr důvěry a negací, který se rovná jedné. Tento přístup obecně znázorňuje neurčitost, jehož pravdivost nemusí být rovna jedné. „DS teorie vychází z pojmu prostředí, což je úplný systém vzájemně disjunktivních základních hypotéz: 𝑋 = {ℎ1 , ℎ2 , … , ℎ𝑛 }“ 6 Pomocí základních definic prostředí a základního přiřazení nám vznikne interval domnění < 𝐵𝑒𝑙(𝐴), 𝑃𝑙(𝐴) >, kde A je testovaná hypotéza, Bel(A) míra domnění definována jako 𝐵𝑒𝑙(𝐴) = ∑𝐵⊆𝐴 𝑚(𝐵) , Pl(A) míra věrohodnosti definována jako 𝑃𝑙(𝐴) = 1 − 𝐵𝑒𝑙(𝐴𝐶 ) .Při kombinaci dvou hypotéz lze uplatnit následující vzorce: 𝐵𝑒𝑙(𝐴|𝐵) = Fuzzy přístupy
𝐵𝑒𝑙�𝐴∪𝐵𝐶 �−𝐵𝑒𝑙(𝐵𝐶 )
𝑃𝑙(𝐴|𝐵) =
1−𝐵𝑒𝑙(𝐵𝐶 )
,
𝑃𝑙(𝐴∩𝐵) . 𝑃𝑙(𝐵)
Práce s neurčitostí založená na fuzzy množinách, lingvistických proměnách a logice s více hodnotami. Fuzzy množinu, která zobecňuje klasickou množinu, definujeme jako dvojici množiny A a charakteristické funkce 𝜇𝐴 : 𝐴 = (𝑈, 𝜇𝐴 ), 𝑘𝑑𝑒 𝜇𝐴 : 𝑈 →< 0; 1 > . Za důležitou fuzzy množinou považujeme v rámci expertních systémů fuzzy číslo. Určují ho čtyři po sobě rostoucí čísla 𝑎(1) ≤ 𝑎(2) ≤ 𝑎(3) ≤ 𝑎(4), které spolu tvoří spojitou funkci.
Obrázek 3 Graf zobrazení fuzzy čísla 7
Operace s fuzzy množinami jsou definovány následovně: Doplněk Sjednocení
𝐴̅ = (𝑈, 𝜇𝐴̅ )
𝐴 ∪ 𝐵 = (𝑈, 𝜇𝐴∪𝐵 )
𝜇𝐴̅ (𝑥) = 1 − 𝜇𝐴 (𝑥)
𝜇𝐴∪𝐵 (𝑥) = max{𝜇𝐴 (𝑥), 𝜇𝐵 (𝑥)}
Dvořák, J. Expertní systémy. VUT, Brno, 2004. 92s. [Cit. 3.12.2011] http://www.uai.fme.vutbr.cz/~jdvorak/Opory/ExpertniSystemy.pdf (strana 33) 7 Dvořák, J. Expertní systémy. VUT, Brno, 2004. 92s. [Cit. 3.12.2011] http://www.uai.fme.vutbr.cz/~jdvorak/Opory/ExpertniSystemy.pdf (strana 36) 6
14
Průnik
𝐴 ∩ 𝐵 = (𝑈, 𝜇𝐴∩𝐵 )
Kartézský součin
𝐴 × 𝐵 = (𝑈 × 𝑉, 𝜇𝐴×𝐵 )
𝜇𝐴∩𝐵 (𝑥) = min{𝜇𝐴 (𝑥), 𝜇𝐵 (𝑥)}
𝜇𝐴×𝐵 (𝑥, 𝑦) = min{𝜇𝐴 (𝑥), 𝜇𝐵(𝑦) }
Lingvistické proměnné nabývají slovních hodnot. Jsou definovány pomocí jména X, množiny všech možných hodnot T (množina termů), univerza U, syntaktických pravidel G a sémantických pravidel M. 𝑋 = (𝑋, 𝑇, 𝑈, 𝐺, 𝑀). Nestrukturovanou lingvistickou proměnou, kde T je konečná množina hodnot (totožných s fuzzy množinami), lze definovat bez pravidel G a M. Vícehodnotová logika pracuje s množinou pravdivostních hodnot C, které nabývají hodnot <0,1>, a množinou logických spojek 𝐿 = {∨,∧, &, ⇒} . Spojky se nazývají disjunkce, konjunkce, odvážná konjunkce a implikace. Existuje několik základních operací: 𝑉(𝛼) = 𝛼
𝑉(𝛼 ∨ 𝛽) = max�𝑉(𝛼), 𝑉(𝛽)� 𝑉(𝛼 ∧ 𝛽) = min�𝑉(𝛼), 𝑉(𝛽)�
𝑉(𝛼&𝛽) = max(0, 𝑉(𝛼) + 𝑉(𝛽) − 1)
𝑉(𝛼 ⇒ 𝛽) = min�1,1 − 𝑉(𝛼) + 𝑉(𝛽)�
Fuzzy přístupy dále využívají metody jako kompoziční pravidlo usuzování, Linguistic Model Processing Systém (Druckmüller 1991), nebo defuzzifikaci. Bayesovské sítě Jedná se o nezacyklený graf s orientovanými hranami, kde každý uzel má vlastní pravděpodobností tabulku. Hrany označují mezi náhodnými uzly vztahy umožňující predikci i diagnostiku. Odvozování vychází z Bayesových vzorců. Pro řešení této sítě (pokud není jednoduše složitá, tj. existence právě jedné neorientované cesty mezi dvěma uzly) neexistuje polynomicky složitý algoritmus, takže se většinou transformuje na jednodušší tvar. 3.2.3
BÁZE ZNALOSTÍ
Báze znalostí obsahuje znalosti, které jsou odděleny od konkrétních dat k danému případu, týkající se řešení problémů v aplikační oblasti. Rozdíl mezi znalostmi a daty nemusí být úplně zřejmý na první pohled. Znalosti vzniknou prací (zobecnění dat) experta po aplikování jeho zkušeností a vzdělání. Na druhou stranu data (v expertních systémech se nenacházejí v bázi znalostí, ale v bázi faktů) by měla skutečně odrážet realitu nezastíněnou emocemi, znalostmi, vzděláním člověka, který zachází s konkrétními daty. Velkým rozdílem mezi oběma termíny je zdroj (znalosti přináší expert, data vkládá uživatel nebo systém automatickým procesem). Pro lepší přehlednost slouží tabulka níže (Tabulka 3.2 Rozdíly mezi daty a znalostmi). Tabulka 3.2 Rozdíly mezi daty a znalostmi
Přesnost Autor Uložiště Trvanlivost Předpoklady vzniku
DATA přesná, specifická uživatel, systém báze faktů krátkodobá žádné
ZNALOSTI obecné, méně přesné expert báze znalostí dlouhodobá vzdělání, zkušenosti
15
Důležitými vlastnostmi, které by měli platit pro bázi znalostí, jsou modularita a transparentnost. Modularita (skladebnost, vhodná architektura) především pro jednoduchou aktualizaci, modifikovatelnost a rozšiřitelnost. Transparentnost neboli průhlednost pro snadnou orientaci experta v bázi znalostí. Reprezentace znalostí v bázi může být realizována několika způsoby. Začínalo se u predikátové logiky, ze které vycházejí další prostředky (pravidla/rules, sémantické sítě/semantic nets, rámce/frames, nebo objekty/objects). Zároveň lze obsah rozdělit na mělké (shallow knowledge) a hluboké (deep knowledge) znalosti. Prvně jmenované vychází z velké části ze zkušenosti experta, jedná se o empirické, povrchové znalosti. Druhé jmenované jsou založeny na základním chápaní světa a na elementárních procesech. Predikátová logika Původně nebyla určena pro expertní systémy, ale pro matematiku a logiku. Ukázala se ovšem jako vhodný univerzální nástroj pro reprezentaci znalosti, inferenci, dokonce pro celou informatiku. Elementárními stavebními prvky jsou individuové proměnné, predikátové symboly, funkční symboly a konstanty, kvantifikátory a logické spojky. Samotné znalosti jsou reprezentovány pomocí formulí, které se skládají ze základních prvků. Výhodou predikátové logiky lze považovat snadnou úpravu obsahu báze. Pravidla Znalosti mohou být reprezentována jako pravidla, které mají tvar IF pozorování (předpoklad/situace/podmínka) THEN hypotéza (závěr/akce/důsledek) {ELSE závěr2/akce2/důsledek2}, kde poslední položka ELSE je nepovinná. Tato formulace vychází z implikace výrokové logiky včetně tabulky pravdivosti (viz Tabulka 3.3 Implikace včetně hodnot). Hypotézy i pozorování mohou obsahovat logické spojky AND/OR a prvek neurčitosti, jehož číselná hodnota se píše do závorky za výraz. Tabulka 3.3 Implikace včetně hodnot
výrok A 0 0 1 1
výrok B 0 1 0 1
A implikuje B 1 1 0 1
Pravidla mohou být znázorněna ve formě AND/OR grafu, kde uzly značí výroky (existují tři druhy: cíle značené v grafu jako kořeny, dotazy jako listy a mezilehlé výroky jsou ostatní uzly), orientované hrany pravidla, obloučky mezi hranami vazby mezi pravidly. Pro negaci se používá přeškrtnutá hrana.
Obrázek 4 Příklad AND/OR grafu
16
Sémantické sítě Sémantické sítě, někdy také nazvaná asociativní síť, zobrazuje skutečnost jako ohodnocený orientovaný graf, ve kterém uzly představují objekty (ale bez obsahu na rozdíl od objektů popisovaných dále v textu) a hrany mezi objektové vztahy. Lépe z nich lze pochopit vztahy a souvislosti v dané aplikační oblasti. Může obsahovat tři různé druhy vztahů: IS-A (ISA), A-KIND-OF (AKO) a PART-OF. Zároveň podporují dědičnosti a tranzitivitu. Mezi výhody využití patří explicitní, jasné vyjádření a zkrácení hledací doby díky dědičnosti. Naopak mezi zápory sémantických sítí patří absence standardů pro interpretaci, nebezpečí chybné inference a ohrožení zacyklením při prohledávání sítě.
Obrázek 5 Příklad sémantické sítě 8
Rámce Rámce jsou především formáty pro stereotypní situace, ve kterých lze využít předdefinovaných hodnot na základě zkušeností. S jejich nápadem přišel v 60. letech 20. Století Marvin Minsky. Existují speciální jazyky (například KRYPTON, FRL, nebo KSL) pro reprezentaci rámců. Samotný rámec je tvořen názvem a atributy, které dále obsahují aktuální hodnotu (current), implicitní hodnotu (default), rozsah možných hodnot (range) a dobrovolné speciální procedury: ifneeded, if-changed, if-added, if-deleted. Existují dvě skupiny rámců generické, které označují obecnost daného předmětu, a specifické, jejichž obsah představuje konkrétní příklad. Stejně jako u sémantických sítí i zde existuje dědičnosti. Objevují se zde nové vztahy specialization-of a generalizaion-of. Hlavní výhodami rámců je organizace znalostí, samořízení rámců, dynamické hodnoty. Oproti tomu i rámce mají nevýhody. Obtížná rozeznatelnost prototypu a instance, těžké přizpůsobování nově vzniklým situacím, zanesení heuristických znalostí do rámců. Příklad: Rámec florbalové vybavení Jméno: florbalové vybavení Specializace čeho (ako): majetek
Baxant, P. — Sokanský, K.: Expertní systém pro návrh osvětlení, časopis Světlo [3.12.2011] http://www.odbornecasopisy.cz/index.php?id_document=35933 8
17
Typ: rozsah: (hokejka, boty, dres) Výrobce: rozsah: (zone, unihoc, jadberg, salming, adidas, nike) Rámec hokejka Jméno: Zone 360 dust Specializace čeho (ako): florbalové vybavení Vlastník: Filip Hrbek Výrobce: Zone Délka: 102 cm Tvrdost: 31 mm Strana: levá Objekty Objekty vycházejí z rámců, ale jsou ještě více přizpůsobeny a zlepšeny. Především jsou využívány v OOP, neboli v objektově orientovaném programování. Stejně jako rámce obsahují název a data, ale zároveň se zde objevují nový prvek metody. Obecná představa jistého předmětu se nazývá třída, například auto. Obsahuje stejné vlastnosti a metody. Vytvářejí se z nich instance (například můj modrý Ford Focus), které představují konkrétní případy třídy. Objektově orientované programovaní má tři hlavní charakteristiky: Dědičnost (inheritance), zapouzdření (encapsulation) a polymorfismus. První z vlastností, dědičnost, umožnuje vytvářet od tříd (rodiče) potomky, kteří zdědí vlastnosti rodičů a zároveň se dají upravovat přidáním nových atributů a metod. Zapouzdření objektů zaručuje přístup k třídám pouze pomocí volání jejich metod. Poslední charakteristika, polymorfismus, souvisí s dědičností a umožnuje u dětí při volání stejné metody různé chování systému (různý kód uvnitř dětí, i když název metody musí být stejný jako u rodiče). Existují buď absolutně objektivně orientované programovací jazyky (například Smalltalk, Actor, CLOS, C# a mnohé další), nebo jazyky založené na jiném principu např. procedurální jazyky s podporou OOP (např. Borland Psacal, Object Pascal, C++ atd.). Všechny tři hlavní charakteristiky patří zároveň mezi výhody OOP včetně abstrakce a vícenásobného použití kódu. Na druhou stranu se objevují otázky. Například jak zpracovat nové situace nekompatibilní s dosud vytvořenými objekty? Doplňující nástroje reprezentace znalostí Existují další prostředky pro reprezentaci vazeb mezi prvky. Kontexty zachycují vazby mezi dvěma tvrzeními, určují jejich pořadí, smysluplnost a použitelnost. Využívají se v systémech FELExpert, SAK, nebo Nexpert Object. Integritní omezení zajištuje pouze kontrolní funkci pro nesmyslné zacházení s databází znalostí, snaží se zachovat konzistenci dat. Implikace na rozdíl od předchozích dvou nástrojů zasahuje do odvozování, protože zajišťuje logické vazby mezi pravidly pomocí ekvivalence a inkluze. 3.2.4
VYSVĚTLOVACÍ MODUL
Vysvětlovací modul je považován za charakteristický rys expertních systémů, které by fungovali naprosto stejně i při jeho absenci. Nemá žádný vliv na inferenci, zisk znalostí ani práci s neurčitostí. Přesto však není bezúčelný, protože v uživateli aplikace vzbuzuje důvěru, do vysvětlující informace mohou být přínosné a expert se může přesvědčit o správném využívání jeho znalostí. 18
Součástí vysvětlovacího modulu může být i tzv. trasování zaznamenávající postupy systému, které mohou být později vyhodnocovány pro lepší pochopení fungování systému i jeho snadnější úpravu algoritmů a základních principů. Vysvětlovací modul zodpovídá tři základní otázky: Why Systém vysvětluje, proč se na danou otázku zeptal. How Systém vysvětluje, jak dospěl ke svým výsledkům, jaká pravidla aplikoval. What if Systém nabízí možnost hypotetického usuzování, co by se stalo (jak by se změnila reakce expertního systému), kdyby uživatel odpověděl jinak. 3.2.5
KOMUNIKAČNÍ MODUL
Komunikační modul slouží k interakci s uživatelem, od kterého získává všechny potřebné informaci pro konzultaci a zároveň mu předává veškeré informace, které jsou určeny pro uživatele (od inferenčního mechanismu a vysvětlovacího modulu). Jedná o GUI (uživatelské rozhraní), které je podstatné pro každou aplikaci. Programové nástroje mohou mít již standardizované rozhraní, takže u všech vzniklých expertních systému bude vypadat stejně, nebo může obsahovat nástroje pro tvorbu uživatelského rozhraní. Ve druhém případě se většinou jedná o rozsáhlé programovací nástroje. Správné uživatelské rozhraní musí splňovat několik vlastností jako přehlednost, čitelnost, snadná ovladatelnost. V dnešní době, kdy trendy ovládají mobilní technologie a cloud computing, se musejí vyvíjet i expertní systémy a jejich uživatelské přístupy a komunikační moduly. Přístupy přes webový prohlížeč ke znalostní bázi, nebo k celému systému včetně konzultací, nejsou ničím neobvyklým. Zároveň přístupy do expertního systému by měli být rozděleny dle přístupových práv do několika kategorií: programátor, expert, uživatel. Například se nesmí stát, aby uživatel upravoval inferenční mechanismus, nebo znalostní bázi, ke které má mít přístup pouze expert, nebo programátor. 3.3
VÝHODY ES
3.4
Dostupnost expertízy Snížení nákladů na práci experta Trvalost expertního systému (znalosti expertů odcházející z organizace zůstanou v ES) Opakování expertízy (lze ji libovolněkrát opakovat) Trénovací nástroj pro začátečníky v dané aplikační oblasti Rychlost odezvy (výpočetní výkon ES je vyšší než u experta) Snížení rizika vzniku chyby (stroj není ovlivněn únavou, stresem) Řešení složitých problémů (převyšující kapacity lidského experta) Vysvětlovací činnost
NEVÝHODY ES
Neefektivní zisk znalostí Neexistenci testovacích možností Nebezpečí udávání špatných výsledků při změně podmínek Nedůvěra člověka v počítačového experta Nepostižitelnost zodpovědnosti počítače Vytvoření plnohodnotného ES je nákladné a časově náročné Přehnaná očekávání na ES
19
3.5
ROZDĚLENÍ
Expertní systémy se rozdělují především podle způsobu chování na diagnostické a generativní. Obě skupiny mají více typů úloh, které řeší. Přidal jsem ještě třetí skupinu expertních systému, které jsou něčím zvláštní, ale zároveň mohou patřit mezi první dva typy. V poslední skupině se jedná především o prázdné a hybridní expertní systémy. 3.5.1
DIAGNOSTICKÉ ES
Princip diagnostický systému spočívá ve správném výběru z předem stanovených hypotéz s pomocí dat ke konzultaci. Vývoj těchto systémů bývá poněkud jednodušší oproti ostatním systémům především díky jasně stanoveným cílům. Diagnostika probíhá ve třech krocích: formulování hypotézy, testování hypotézy, vyhodnocení hypotézy (viz Obrázek 6 Schéma diagnostického systému).
Obrázek 6 Schéma diagnostického systému 9
Klasifikovat problém lze třemi různými způsoby. Diagnostikovat odchylku od normálu (je známé především normální chování, abnormality nejsou zcela prozkoumané, základ je v modelu, tedy tzv. model-based system), porovnat abnormální chování (využívá se abdukce, z daných poruch se odvozují možné příčiny, také založen na modelu), klasifikovat abnormalitu (ze zkušeností jsou známé spojení mezi poruchami a příčinami). Diagnostické systémy řeší tři typy úloh. Diagnóza – objevení chyby, příklad Mycin. Interpretace – ze vstupních dat vznikne jejich analýza, příklad Prospector. Monitorování – sledování systému v reálném čase do okamžiku vzniku chyby – příklad VM systém.
9
BERKA, P. Expertní systémy. Praha: Vysoká škola ekonomická, 1998. ISBN 80-7079-873-4.
20
3.5.2
GENERATIVNÍ ES
Generativní systém pracuje s cílem a výchozími daty, z nichž vytváří posloupnost činností, která by splňovat předpoklady i požadavek splnění závěru. Při dostatku znalostí se uplatňuje postup navrhni-a-aplikuj, naopak při nedostatečné informovanosti se více zkouší postupem navrhni-a-reviduj. (příklad konfigurace systému je na Chyba! Nenalezen zdroj odkazů.).
10
Obrázek 7 Schéma konfigurace systému10
Generativní systémy řeší tři základní typy úloh. Plánovaním vznikne posloupnosti činností vedoucí k požadovanému závěru, příkladem je systém Molgen. Návrh (design) nastavuje stav objektů v systému pro splnění podmínek, příklad R1/XCON. Predikce předpovídá budoucí sousled akcí na základě historie chování systému, příklad Glaucoma. 3.5.3
DALŠÍ ES
Na závěr této kapitoly bych rád zmínil specifické případy, se kterými se dnes běžně setkáváme v praxi. Jedná se o hybridní a prázdné systémy. Mimo jiné dnešní expertní systémy řeší i další typy úloh, o kterých jsme nemluvili, jako ladění, řízení, nebo učení. 3.5.3.1 HYBRIDNÍ SYSTÉMY Komerční tlak a snaha o dokonalou reprezentaci znalostí přinesly druhou generaci expertních systému, které nazýváme hybridní systémy. Možnosti reprezentace znalostí jsou v některých případech dosti omezené a nedostačují zachytit vhodně nová data do báze znalostí. Hybridní systémy přicházejí s kombinovaným ukládáním znalostí. Umožnují tak modelový přístup. Kombinují rámce, pravidla, objekty i sémantické sítě. Například v systému Acquire nalezneme pravidla, rámce i objekty, nebo v programovacím prostředí CLIPS se střetneme s objekty a pravidly. Ale nemusíme najít pouze hybridní báze znalostí, ale i inferenční mechanismy. Například prostředí Rete++ nabízí přímé i nepřímé řetězení. 3.5.3.2 PRÁZDNÉ SYSTÉMY Prázdné expertní systémy, v angličtině označovány jako expert system shells, vytváří nové expertní systémy především s využitím experta. Všechny součásti kromě báze znalostí, která neobsahuje žádné znalosti, jsou připravené k použití. Hlavní postavou při vývoji se stává expert, který své znalosti pomocí uživatelského rozhraní zanese do báze znalostí. Dají se tak na inferenčním mechanismu, vysvětlovacím a komunikačním modulu, postavit expertní systémy s odlišnými aplikačními oblastmi, ale se stejným principem fungování. 10
BERKA, P. Expertní systémy. Praha: Vysoká škola ekonomická, 1998. ISBN 80-7079-873-4.
21
4
TVORBA EXPERTNÍCH SYSTÉMŮ 11
Tvorba expertního systému se skládá z několika kroků, které se nedají vynechat pro správnou realizaci celého projektu. V některých případech (druhý a třetí krok) se jedná o iterativní proces, který slouží opakováním kroků ke zpřesnění a rozšíření systému. Analýza problému a specifikace požadavků Problém se na začátku celého projektu musí dostatečně analyzovat a specifikovat všechny jeho požadavky. Zdali můžeme danou aplikační oblast implementovat do expertního systému (měla by se vytvořit studie proveditelnosti), jestli máme k dispozici dostatečný počet vhodných odborných zaměstnanců (experti v dané aplikační oblasti, vývojáři programového prostředí atd.), jaký použít vhodný hardware a software (programové nástroje ES jsou hlavním tématem této práce, další možnosti jsou rozepsány níže a konkrétní příklady jsou uvedeny v praktické části včetně jejich detailního popisu), použitelnost a možnosti zisku znalostí a dat, existují vhodné podmínky pro vznik expertního systému? Na všechny tyto otázky a mnohé další bychom měli být schopni konkrétně odpovědět ještě před tím, než se do vzniku systému pustíme. Vytvoření prázdného ES Po úvodní analýze bychom měli sestrojit prázdný expertní systém (uživatelské rozhraní včetně komunikačního a vysvětlovacího modulu a inferenční mechanismus) za pomocí zvoleného nástroje. Mělo by být jasné jaký typ inference, reprezentace znalostí použijeme. Postup v této části se odvíjí od vybraného typu programovacího nástroje. Implementace (zisk znalostí) V dalším kroku se snažíme o postupné doplňování znalostní báze. Jedná se o nejsložitější a nejvíce časově náročnou fázi. Existují tři možnosti. Elicitace od experta (formou interview, brainstormingu nebo dalších možností zisku informací), poloautomatická (expertní systém + expert), automatická (například dolování dat z textu, obrázků). Validace a verifikace (testování) Veškerá funkčnost expertních systémů se testuje velice obtížně. Validací se snažíme o konzistentnost dat, znalostí i pravidel, aby systém neobsahoval přebytečné znalosti, nepravdivá pravidla atd. Verifikace slouží k nalezení špatných konzultací, odstranění chyb kvůli správným výsledkům. Zavedení do praxe Expertní systém se zavede do praxe, případně se dořeší nově vzniklé problémy. Dále zbývá poslední činnost a tou je údržba včetně aktualizací, jak samotného systému, tak i báze znalostí. Znalosti a podmínky pro konzultace se mohou měnit v čase, tudíž může dojít k nežádoucím chybám zastaralostí expertního systému. 4.1
PROGRAMOVACÍ NÁSTROJE ES
V dnešní době existuje mnoho programovacích nástrojů pro tvorbu expertních systémů. Spoustu dalších se jich vyvíjí každým dnem. Některé prostředky lze pořídit velice levně, některé dokonce zdarma, ale nemusí obsahovat veškerou požadovanou funkcionalitu, případně vyžadují velký programátorský zásah. Na druhou stranu najdeme i velice drahé komerční nástroje v cenách řádově Informace v této kapitole jsem především čerpal z: BERKA, P. Expertní systémy. Praha: Vysoká škola ekonomická, 1998. ISBN 80-7079-873-4. Dvořák, J. Expertní systémy. VUT, Brno, 2004. 92s. [Cit. 3.12.2011] http://www.uai.fme.vutbr.cz/~jdvorak/Opory/ExpertniSystemy.pdf 11
22
v tisících i desetitisících dolarů. U každého bychom měli sledovat spoustu kritérii (vlastní kritéria pro mou práci jsou uvedena v kapitole 5). Namátkou lze uvést uživatelské rozhraní, náklady, flexibilita, podpora výrobce, požadavky na lidské zdroje a další. Programovací prostředky můžeme rozdělit na tři základní skupiny: Obecné programovací jazyky, programovací jazyky umělé inteligence a vývojová prostředí expertních systémů. Kategorie se odlišují v principu vývoje expertního systému, míry zásahu a znalostí vývojářů. 4.1.1
OBECNÉ PROGRAMOVACÍ JAZYKY
První skupina obsahuje běžné procedurální i objektové programovací jazyky na první pohled nesouvisející s expertními systémy. Například C, java, pascal, delphi, C++, C# a každý další jazyk, na který si vzpomenete. Touto kategorií se v praktické části nebudu zabývat, jelikož z pohledu této práci není příliš zajímavá. Požadavky na vývojářský tým jsou vysoké, protože musejí naprogramovat celý systém od nuly. Během své práce vytvoří inferenční mechanismus, uživatelské prostředí, prázdnou bázi znalostí, zkrátka prázdný expertní systém. Lze splnit veškeré požadavky na expertní systém. Veškeré chování systému jako například způsob inference, reprezentaci znalostí, lze vytvořit dle úvodní analýzy na systém. Na druhou stranu se jedná o zdlouhavý a finančně náročný proces, ve kterém není zahrnut proces získávání znalostí. 4.1.2
PROGRAMOVACÍ JAZYKY UMĚLÉ INTELIGENCE
Na rozdíl od obecných jazyků jsou jazyky umělé inteligence založené na jiných paradigmatech programování, někdy hovoříme o programovacích stylech. Jedná se především o zaměření na složky algoritmů (Algoritmus = funkce/logika + řízení). Tato skupina se zaměřuje na logiku algoritmů (hromadně se označují jako neimperativní, či deklarativní programovací styly), podle které rozdělujeme programování na funkcionální a logické. Příkladem funkcionálního programování je LISP, kde používají definice funkcí a jejich aplikace do výrazů. Naopak Prolog zastupuje logické programování se svými logickými formulemi. Na druhou stranu s obecnými programovacími jazyky mají společné rysy týkající se tvorby expertních systémů. Těmi negativními jsou časová a finanční náročnost v komerční sféře. Vývoj celého systému za použití obecných jazyků, nebo jazyků pro umělou inteligenci lze považovat za velmi neefektivní. Nejsou ale úplně zbytečné, pomocí nich vzniklo mnoho vývojových prostředí jako mezikrok pro konečný Expertní systém. 4.1.3
VÝVOJOVÁ PROSTŘEDÍ ES
Poslední skupinou, kterou se především budu zabývat v praktické studii, jsem pojmenoval vývojová prostředí expertních systémů. Zařadil jsem do ní tzv. toolkity, neboli komplexní vývojová prostředí pro zhotovení všech částí systému, a prázdné expertní systémy, o kterých jsem již dříve hovořil jako o expertních systémech bez báze znalostí. Jedním z nejvhodnějších nástrojů pro tvorbu expertních systémů se staly toolkity. Snižují časovou náročnost díky dokonalému prostředí umožňujícímu využít více prostředků pro jednotlivé principy nově vznikajícího systému. Lze tak uspokojit více požadavků. Vývoj samotného toolkitu vyžaduje poměrně zdlouhavé úsilí, které se zákonitě podepisuje na cenně celého prostředí. U prázdných expertních systémů se snižují nároky na vývojáře na minimum, protože se jedná o již hotový systém. Zbývá pouze doplnit prostřednictvím experta, nebo strojového učení, všechny znalosti pro úplnou funkčnost. Jedná se o velmi časté využití, které ovšem ztrácí na flexibilitě a možnosti se, co nejvíce přiblížit dokonalému splnění požadavků. Již předem jsou totiž určeny vnitřní mechanismy pro inferenci, reprezentaci znalostí. Jako příklad vývojových prostředí bych uvedl G2, EXSYS, Nexpert Object a EZ-Expert 3.0. O dalších se zmíním v praktické studii.
23
5
KRITÉRIA HODNOCENÍ
Kapitolou, kritéria hodnocení, práce přechází do praktické části, ve které popisuji kritéria hodnocení programovacích nástrojů, které jsem vybral dle vlastního uvážení z kontextu využité literatury. Při zkoumání jednotlivých prostředků u každého kritéria uvedu stručný popis a vyjádřím se ke každému kritériu. 5.1
GUI
GUI neboli uživatelské rozhraní popisuje vzhled aplikace z pohledu uživatele, možnosti zodpovězení otázek vysvětlovacího modulu (proč, jak a co-když?) a vytváření či úprava vzhledu nově vznikajícího expertního systému. Zároveň bych rád přidal pár obrázků ke každému systému pro lepší představu. Dále nástroj může obsahovat pomocné moduly a funkce pro lepší ovladatelnost (editor báze znalostí, trasování, testovací i verifikační pomůcky, grafická reprezentace dat a znalostí). 5.2
INFERENČNÍ MECHANISMUS
Kritérium inferenční mechanismus popisuje možnosti tvorby inferenčního mechanismu, konkrétně způsoby práce s neurčitostí, reprezentace neurčitosti, odvozování závěrů konzultace, inferenční metody. 5.3
PRÁCE SE ZNALOSTMI
Práce se znalostmi přibližují vývoj báze znalostí pro daný nástroj. Jak jsou reprezentovány znalosti? Které prostředky (pravidla, logiku, rámce, objekty, sémantické sítě, míra hybridnosti) používá? Jaké máme možnosti zisku znalostí (podpora naplnění a ladění báze znalostí)? V jaké míře bude báze znalostí modulární a transparentní pro další aktualizaci? 5.4 5.4.1
OSTATNÍ KRITÉRIA ZAŘAZENÍ ES
Každý nástroj bych rád zařadil do kategorie diagnostických, nebo plánovacích expertních systémů a určil, jaké typy úloh řeší (diagnóza, interpretace, monitorování, plánování, návrh, predikce). Pokud to bude možné, tak bych uvedl možné aplikační oblasti, na které se hodí uplatnit expertní systém vyvinutý daným nástrojem. 5.4.2
CENA
Elementárním parametrem, který dnes firmy sledují v komerční sféře, se stala cena. Existují více nákladů, které jsou spojené s nákladem na vývoj (například platy vývojářů). Toto kritérium se však soustředí na cenu za konkrétní programovací nástroj. Škála se pohybuje v celé šíře od volně šiřitelných produktů až po velmi drahé komerční toolkity. 5.4.3
HARDWAROVÉ & SOFTWAROVÉ NÁROKY
Různé nástroje kladou rozličné nároky na hardwarové sestavy. Prozkoumáním těchto nároků se lze vyhnout vynuceným nákupům techniky po obdržení programovacího nástroje.
24
5.4.1
KOMPATIBILITA
Kritérium hodnotící možnost využití výsledků, znalostní báze, algoritmů jednoho nástroje v jiném. Případně kooperace s externím softwarem (například automatický zisk dat), které nejsou expertními systémy. 5.4.2
TECHNICKÁ PODPORA
U vývojových nástrojů, především u těch komerčních, bych rád prozkoumal míru technické podpory, kterou nabízí výrobce, počínaje dokumentací přes online helpdesk, telefonní helpdesk, konče možností školení a konzultace pro zákazníky. Plnou podporu by měli obsahovat komerční systémy. Bohužel na druhou stranu u opensource softwaru nepředpokládám existenci helpdesků, ani možnosti školení, ale základní dokumentace by měla být k dispozici. 5.4.3
REFERENCE
U každého zkoumaného produktu se budu snažit najít skutečné využití kvůli důkazu použitelnosti v praxi.
25
6
STUDIE
Zde budou jednotlivé vybrané programovací nástroje rozdělené do dvou kategorií. U každého bude stručný popis, základní vlastnosti, odkaz na prodejce/výrobce a vyjádření ke všem kritériím hodnocení z kapitoly 5. 6.1 6.1.1
PROGRAMOVACÍ JAZYKY UMĚLÉ INTELIGENCE LISP 12
Funkcionální programovací jazyk LISP vynalezl v roce 1958 John McCarthy (držitel Turingovy ceny, zemřel v říjnu letošního roku). LISP zkracuje dvousloví List Processing. Jedná se o nejstarší jazyk pro umělou inteligenci. Rozšířil se i do ostatních odvětví, například ho používá aplikace AutoCad, nebo prohlížeč fraktálů XaoS. Vznikli z něj i další jazyky jako SmallTalk, AutoLISP, InterLISP a další. Původní LISP obsahoval pouze dva datové typy (symboly, seznamy) a pár primitivních operátorů. Později se tento jazyk rozšiřoval díky své flexibilitě a kombinací základních elementů. Charakteristickými rysy jsou podmíněné příkazy, funkce jako objekty 1. Kategorie, rekurzivní definice funkcí, implicitní ukazatele, dynamické typování, programy složené z výrazů, jednotná prezentace programů a dat, automatická správa paměti, interaktivní programování, inkrementální kompilace, dostupnost celého jazyka. Vedle datových typů seznam (jednosměrné zřetězené seznamy, každý program je seznam) a symbol (posloupnosti znaků, spojení s hodnotou, lze testovat podle hodnoty, klíčový prvek symbolických výpočtů) existují ještě funkce. I ony jsou data, takže je můžeme ukládat jako proměnné, předávat jako hodnotu. Hovoříme o nich jako o objektech první kategorie. Většinou typy nestačí pro běžné použití, takže vznikají nové datové typy například číselné typy, znaky, textové řetězce, pole, struktury, datové proudy. Nositelem typu nejsou proměnné, ale hodnoty, takže dochází k dynamickému typování. Programy lze interpretovat dvojím způsobem, buď jako data nebo jako kód, který má být proveden, na rozdíl od ostatních jazyků, kde vnitřní interpretaci nevidíme. Na tomto způsobu interpretace se zakládá metaprogramování, kde by programy měli psát další programy. Základní syntaxe vypadá (f arg1 arg2 arg3), jedná se o seznam se čtyřmi symboly, první se nazývá operátor, další tři argumenty. Speciálním případem operátoru je makro, které generuje kód před vlastní kompilací kódu (například operátor if). Také hovoříme o Lisp systému, který slouží jako vývojové prostředí pro psaní kódu včetně kompilátoru, debuggeru, GUI a dalších nástrojů. Uživatel komunikuje se systémem pomocí příkazové řádky, označované jako REPL. K dispozici má funkce read, eval, print a loop. Systém čeká na vstup od uživatel přijímaný pomocí funkce read . Následně vstup zpracuje (funkce eval) a výsledek zobrazí uživateli pomocí funkce print. Mezi výsledky se nemusí zapisovat pokaždé do souboru, protože všechno běží v takzvaném obrazu, který se automaticky ukládá na disk a při vytváření konečných aplikací se odstraní od systému.
12
Kučera, J.: Lisp [Cit. 3.12.2011] http://www.fi.muni.cz/usr/jkucera/pv109/2005/xkuklin.htm
26
Obrázek 8 Ukázka prostředí v jLispu 13
6.1.2
PROLOG 14
Zkratka Prolog znamená Programming in logic. Jedná se o deklarativní způsob logického programování. Tento jazyk vyvinuli v roce 1972 Alain Colmerauer a Philippe Roussel. V roce 1977 byl jazyk upraven pro vhodnější implementaci na univerzitě v Edinburgu Davidem Warrenem. Zakládá se na jednoduché syntaxi. Příkladem vytvořeného systému na základě Prologu je Flex (popsaný níže). Základní syntaxi jazyka tvoří termy a klauzule. Termy se dělí na konstanty (pojmenování konkrétních objektů, například „Filip“), proměnné (posloupnosti znaků a čísel, například „Z“) a struktury (definované funktorem a seznamem jednoduchých termů, například „auto(značka, typ, cena)“). Existují tři typy klauzulí: atomické formule (fakta), implikace (skládání fakt pomocí základních logický operátorů ve tvaru implikace, hovoříme zde o pravidlech), cílové klauzule (forma dotazu, kde existují atomické cílové formule, hovoříme zde o otázkách). Dalšími pomocnými syntaktickými elementy jsou operátory (existuje jich několik, například definice pravidla „:-“, porovnání „=“), seznamy (složení z hlavy a těla seznamu, příklad „[x,a,b,c]“) a vestavěné predikáty (například výpis termu X, write(X)). V prologu lze pracovat ve dvou různých režimech, konzultační a dotazovací. V prvním případě systém funguje jako klasický expertní systém, který určuje diagnózu za pomocí nekompozicionálního (bez neurčitosti) zpětného řetězení. V druhém případě lze považovat Prolog za databázový systém, do kterého se dotazujeme a zjišťujeme výsledky z uložených dat.
13
Ultrastudio.org: Lisp (language) [Cit. 3.12.2011] http://ultrastudio.org/en/Lisp_%28language%29
Rubáček, F.: Programování v Prologu [Cit. 3.12.2011] http://iris.uhk.cz/logpro/ Berka, P.: Úvod do umělé inteligence, přednáška č. 6 Prolog. [Cit. 3.12.2011] http://sorry.vse.cz/~berka/docs/4iz229/s06-Prolog-4p.pdf
14
27
Obrázek 9 Ukázka práce s Prologem 15
6.1.3
CLIPS 16
Clips, zkratka C Language Integrated Production Systém, byl vyvinut v roce 1985 jako programovací jazyk organizací NASA v Johnson Space Center. Podporuje procedurální, pravidlové i objektově orientované programování. Clips se dnes hojně využívá v průmyslu i na akademické půdě. Výhodou se stala přenositelnost na libovolné platformy díky podstatě v jazyce C, zároveň se tento programovací jazyk dodává s celým zdrojovým kódem pro případnou uživatelskou úpravu, která je opravdu snadná také díky dobře popsaným protokolům. Clips se dodává s integrovaným vývojovým prostředím obsahující rozsáhlou nápovědu, editor i debugger. Zároveň k lepší práci slouží i úplná dokumentace. Základními prvky syntaxe Clipsu tvoří data a funkce. Data lze rozdělit do několika skupin: atomy (pravdivostní hodnoty TRUE a FALSE, nil, nebo znaky), čísla (čísla složená z číselných atomů), řetězce (znaků), seznamy (atomů, čísel, řetězců, nebo seznamů). Funkce se volají stejně jako v Lispu. Například „(+ 6 1)“. Nebo existuje druhá možnost, kdy si uživatel funkci definuje sám. Clips reprezentuje znalosti pomocí rámců podobající se objektům a procedurálních pravidel. Instance jednotlivých rámců se označují fakta, která obsahují název a položky. Pravidla se definují v obvyklém tvaru „if předpoklad then závěr“. Předpoklad se ověřuje základní logikou (konjunkce, disjunkce, negace), porovnáním, ověřováním existence a dalšími postupy. Inferenční mechanismus
Vychodil, V.: Paradigmata programování IV, cvičení č. 1 [Cit. 3.12.2011] http://vychodil.inf.upol.cz/courses/cs2pp/practice1.html
15
16
SOURCEFORGE.NET: Clips: A Tool for Building Expert Systems [Cit. 3.12.2011] http://clipsrules.sourceforge.net/ Berka, P.: Úvod do umělé inteligence, přednáška č. 7 Clips. [Cit. 3.12.2011] http://sorry.vse.cz/~berka/docs/4iz229/s07-CLIPS-4p.pdf Carnegie Mellon University: Free/Cheap Expert System Shells: CLIPS and Related Systems [Cit. 3.12.2011] http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/expert/part1/faq-doc-6.html
28
funguje na přímém řetězení s využitím Agendy (zásobník akcí), porovnávání se vzorem a algoritmem Rete. V jejím pořadí lze přeskakovat pomocí nastavených priorit, nebo vykonáváním uzavřených celků. Jedná se o nekompozicionální systém, tj. bez spravování neurčitosti. Vhodně řeší generativní úlohy pro expertní systémy.
Obrázek 10 GUI Clips 17
6.1.4
OPS5 18
OPS5 byl vyvinut v 70. letech 20. století Charlesem Forgym na Carnegie-Mellon University. Systém ukládá data do pracovní paměti a pravidla do produkční paměti (jsou oddělena). Data jsou uložena jako soubor globálních proměnných a záznamů. Primitivní datové typy reprezentují čísla a symboly, případně místo symbolů řetězce znaků. Nacházíme zde dynamické typování podobně jako u systému Lisp. Pracovní paměť obsahuje objekty s atributy, které obsahujíc následující typy: primitivní datové typy, vektory, nebo reference na jiné objekty. Pravidla na sobě nezávislá se ukládají v libovolném pořadí. Aplikace začne konat v momentě, kdy data v pracovní paměti dosáhnou podmínek pravidel, mohou změnit i data v pracovní paměti, čímž dosáhnou dalších podmínek a vyvolají další akce. V novějších verzích OPS vyvolanou akcí může být i vznik nového pravidla, takže hovoříme o učení systému. Inferenční mechanismus řídí data, jedná se tedy o dopředné řetězení. Zpětné řetězení může být implementováno, ale není to standartní postup. Dále využívá algoritmus Rete, který vytvořil také Charles Forgy. OPS5 dnes již byl nahrazen novějšími nástroji jako Clips, Berka, P.: Úvod do umělé inteligence, přednáška č. 7 Clips. [Cit. 3.12.2011] http://sorry.vse.cz/~berka/docs/4iz229/s07-CLIPS-4p.pdf 18 PC AI Magazine: OPS Programming Language [Cit. 4.12.2011] http://www.pcai.com/web/ai_info/pcai_ops.html Dictionary of Programming Languages: OPS5 [Cit. 4.12.2011] http://cgibin.erols.com/ziring/cgi-bin/cep/cep.pl?_key=OPS5 17
29
nebo OPS83. Samotný jazyk stále nalezneme na internetu dostupný, hůře ovšem sháníme podrobnou dokumentaci. Ukázka kódu: 19 ; An OPS5 program that implements a model of ; rock climbers, from exercise solutions of ; "Expert Systems Programming in OPS5" (literalize rock-climber age ; young or old style ; timid or bold ) (p old-not-bold (rock-climber ^age old ^style <> bold) ---> (write (crlf) that is plausible)) (p bold-not-old (rock-climber ^age <> old ^style bold) ---> (write (crlf) that is quite possible)) (p error::old-and-bold (rock-climber ^age old ^style bold) ---> (write (crlf) There are no old, bold rock climbers)) (make rock-climber ^age young ^style bold)
6.2 6.2.1
VÝVOJOVÁ PROSTŘEDÍ EXPERTNÍCH SYSTÉMŮ EXSYS 20
Exsys Corvid je vývojový nástroj pro vznik expertního systému pro neprogramátory bez nutnosti ovládat hlubší IT. K sestavení nového systému využívá vývojář pouze angličtinu a algebraické výrazy, k dispozici má online tutoriál trvající maximálně tři dny. Vzniklý expertní systém může vzniknout jako CORVID Applet runtime (samostatná aplikace), nebo jako CORVID Servlet runtime (aplikace přístupná přes webový prohlížeč pracující na straně serveru, který pouze odesílá na klientskou část html formulář, lze ji integrovat do již existujícího webu, také serverová část může kooperovat s PDA zařízeními, nebo mobilními telefony). V obou případech se jedná o systém založený na Javě. Pomocí otevřené architektury a API lze přidávat knihovny Javy pro novou funkcionalitu. Celkově firma Exsys Inc. se mi jeví jako velice solidní, na trhu expertních systémů působí od roku 1983. Jejich reference jsou velice působivé. Poskytují v mnoha směrech kvalitní technickou podporu. Na svém webu mají demo ukázky expertních systémů, které se skutečně používají v praxi.
19
Dictionary of Programming Languages: OPS5 [Cit. 4.12.2011] http://cgibin.erols.com/ziring/cgibin/cep/cep.pl?_key=OPS5 20 The G6G Consulting Group, LLC: The G6G Directory of Omics and Intelligent Software, Expert (Knowledge Based) Systems/Tools [Cit. 4.12.2011] http://www.g6g-softwaredirectory.com/apps/ai/expertsystems/ListingsByAppISExpertKBSysts.php Exsys Inc: The expert system experts [Cit. 4.12.2011] http://www.exsys.com/index.html
30
6.2.1.1 UŽIVATELSKÉ ROZHRANÍ Vývojář může pomocí tohoto nástroje kompletně formátovat, jak budou vypadat otázky i výsledky pro aplikaci samostatnou i serverovou včetně multijazykového řešení. Jednodušší formátování lze připodobnit k obyčejnému formátování textu v editoru, komplikovanější lze provést přes obrázkové mapy. Pro komplexnější uživatelské rozhraní může být tvořeno integrací s Adobe Flash, který komunikuje s expertním systémem pomocí XML zpráv. Během vývoje Exsys umožnuje průběžné testování, které může velmi ulehčit tento krok nezbytný pro bezchybné použití systému. Lze implementovat podpůrné funkce, například zasílání emailů odpovědným osobám v momentě porušení bezpečnostních limitů. Existuje možnost generovat zprávy ve formátech PDF, RTF, HTML a dalších.
Obrázek 11 Ukázka GUI Exsysu 21
6.2.1.2 INFERENČNÍ MECHANISMUS Inferenční mechanismus se nazývá Powerful Inference Engine. Podporuje přímé i zpětné řetězení včetně kombinace obou. Otázky se kladnou v optimálním pořadí. Fuzzy logika více způsoby kombinuje faktory důvěry pro nalezení nejlepšího řešení. 6.2.1.3 PRÁCE SE ZNALOSTMI Exsys využívá objektově orientovaných proměnných, které obsahují vlastní atributy, metody a faktor důvěry. Proměnné se ovšem rozdělují na sedm různých kategorií. Pravidla (heuristické ve tvaru jestliže-pak využívající pouze angličtinu a algebru, snadno čitelná) jsou organizovány do logických bloků, které jsou tvořeny jedním nebo více strukturovanými logickými diagramy. Obvykle jeden logický blok vede k jednomu závěru. Nemají pevně stanovenou formu, což pomáhá expertovi vytvořit přesnou strukturu problému. Vedle logický bloků existují akční bloky, které dopomáhají zaznamenat 21
Exsys Inc: The expert system experts [Cit. 4.12.2011] http://www.exsys.com/index.html
31
pravidla do správného pořadí. Příkazové bloky popisují postupný tok činností. Oddělením pravidlové logiky od řízení činností systém usnadňuje údržbu nad celým systémem. 6.2.1.4 ZAŘAZENÍ ES Zařazení do jedné aplikační oblasti se nedá provést stejně jako jeho zařazení do jedné z kategorií diagnostické/monitorovací. Na stránkách výrobce uvádí mnoho aplikačních oblastí, kde již byl EXSYS využit. Například diagnostika, opravy, řízení, regulace s předpisy, online helpdesk, zákaznický servis, životní prostředí, elektronické vzdušné telekomunikace, energie, kontrola kvality, finanční servis, výzkum, logistika, medicína, zdravotní péče, CRM, podpora prodeje, marketing, vzdělání. V různých aplikačních oblastech řeší různé typy úloh od monitorovacích přes konfigurační až po diagnostické. 6.2.1.5 CENA Počet licencí Cena za jednu licenci 1 $12 450,00 3 až 9 $8 750,00 10 a více $7 995,00 Společnost dále nabízí možnost vyzkoušení programu EXSYS zdarma na třicet dní. 6.2.1.6 HARDWAROVÉ & SOFTWAROVÉ NÁROKY Nároky pro 30denní zkušební verzi, která se dá stáhnout po registraci na stránkách programu Exsys. Java Runtime Environment
Operační systém: Microsoft Windows 7, Vista, 2000, 2003, XP Microsoft Internet Explorer ver. 5 nebo vyšší 150 MB volného místa na disku Minimální rozlišení obrazovky 1024 x 768 se standardními fonty nebo 1152 x 864 s velkými fonty
6.2.1.7 TECHNICKÁ PODPORA Vývojář má k dispozici rozsáhlý, přehledný manuál doplněný přehlednými obrázky, dále online tutoriál v krátké a dlouhé verzi, zkrácený manuál pro rychlý začátek, rozšiřující tutoriál. Firma Exsys Inc. nabízí různé možnosti školení, nebo konzultací. Navíc lze kontaktovat technickou podporu emailem, faxem, nebo telefonem v pracovní době. 6.2.1.8 KOMPATIBILITA Corvid Exsys velmi snadno dovolí snadné propojení s databázi pro export dat s pomocí SQL dotazů, nebo XPath výrazů pro zisk dat v XML formě. Díky otevřené architektuře lze přidat Java kód, který umožní libovolný způsob zisku informací. Kompatibilitu lze zhodnotit jako velmi flexibilní. 6.2.1.9 REFERENCE
Helpdesk – Hewlett Packard (online počítačový systém určující konfiguraci pro zákazníka) CRM – Nestlé (zaměstnanecký penzijní fond) Zdravotnická péče – OSHA (poradce ve věci bezpečnosti hazardu) Logistika – Cessna Aircraft Corporation (diagnostika tryskových letadel) Řízení a regulace s předpisy - Daya Bay Nuclear Power Plant (řízení mimořádných situací v jaderné elektrárně)
32
6.2.2
G2 22
Společnost Gensym nabízí produkt G2, který vytváří expertní systémy řízené pravidly pracující v reálném čase. Tento nástroj obsahuje několik modulů. Diagnostický asistent (GDA) zprostředkovává vizuální programovací prostředí pro vytváření modelů procesního řízení. NeurOnLine pomáhá vytvářet aplikace s neuronovými sítěmi. G2 Guide umožnuje snadné vytváření uživatelského rozhraní. Gensym Telewindows vytváří víceuživatelské prostředí založené na klient/server architektuře. Produkt G2 je nabízen ve dvou variantách G2 2011 a G2 2011 Enterprise. Druhý jmenovaný nejenom obsahuje funkcionalitu základní verze, ale přináší zlepšení. Výrobce se chlubí desetinásobným zrychlením expertíz, podporou 64bitových systémů (zároveň možností využít větší množství paměti), lepším prostředí Genflex development Environment a podporou Linuxu. 6.2.2.1 UŽIVATELSKÉ ROZHRANÍ Jedna z funkcí G2 se nazývá Rapid prototyping, která se dá považovat za uživatelské prostředí. Znázorňuje objekty modelů, vztahy mezi nimi i pravidla v přirozeném jazyce. Snaží se o bleskové vytvoření prototypu expertního systému během několika dní. Díky snadným úpravám během fungování programu, lze prototyp nasadit k testování a dalšímu rozšiřování. Snadno se tak vývojář může dostat ke kooperaci při vývoji mezi uživatelem-expertem-vývojářem. Další výhodou G2 systému se stalo využívání jazyku G2GL založeném na standardu pro webové služby BPEL (Business Process Execution Language). Tento jazyk vytváří grafický model (paralelních i sekvenčních) podnikových a pracovních procesů, které tak lze v reálném čase lépe koordinovat. Rozšiřující uživatelské rozhraní Genflex Development Environment poskytuje lepší možnosti především díky kooperaci s Visual Studiem. Po vzhledové stránce přináší nové knihovny, rozbalovací nabídky, vylepšené hlášení chyb, lepší rozdělení pracovní plochy a mnoho dalších věcí. Hlavními funkčními vymoženostmi je ladění Microsoft Visual Studia, zjednodušená úprava pravidel a vlastností objektu, schopnost Drag-and-Drop z nástrojů.
22
Carnegie Mellon University: Commercial Expert System Shells [Cit. 4.12.2011] http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/expert/part1/faq-doc-7.html Gensym: G2 2011 [Cit. 4.12.2011] http://www.gensym.com/
33
Obrázek 12 GUI G2 23
6.2.2.2 INFERENČNÍ MECHANISMUS Na rozdíl od ostatních vývojových nástrojů G2 sjednocuje dohromady objektové modelování, pravidla, procedury a postupy do jednoho prostředí především kvůli lepší správě životního cyklu a běhu v reálném čase. Vnitřní mechanismus dokáže současně řešit více úkolů najednou a ještě jim dokáže přiřazovat priority určující pořadí. Například posouvá kritické úlohy před méně urgentní. 6.2.2.3 PRÁCE SE ZNALOSTMI Systém G2 se zakládá na objektové orientaci. Objekty, které obsahují vlastnosti a chování skutečných věcí, velmi dobře graficky reprezentují vztahy mezi sebou. Kromě vlastností a vztahů mají další charakteristické rysy jako dědičnost, metody a animace. Pravidla jsou založena na formuli jestliže-pak, samotný obsah se píše v obyčejném jazyce, takže znalostní expert nemá problém při práci s pravidly. Logická pravidla jsou řazena do několika způsobů. Tabulky, Stromové diagramy a hierarchické prostory. Zároveň mohou být reprezentována v grafických strukturách, které ukazují vztahy a integraci s procesními modely. Bázi znalostí lze modifikovat v průběhu chodu programu bez jakéhokoliv zastavení, nebo nové kompilace. 6.2.2.4 ZAŘAZENÍ ES Pomocí nástroje G2 se vytváří expertní systémy diagnostické, které řeší úlohy monitorovací, diagnostické a kontrolní. Samotný výrobce uvádí možnost uplatnění v oblastech telekomunikací, financí, řízení, armády, výroby a přepravy.
23
Gensym: G2 2011 [Cit. 4.12.2011] http://www.gensym.com/
34
6.2.2.5 CENA Cena licence se pohybuje mezi 6000 a 40000 dolary. Záleží na vybraných rozšířeních. 6.2.2.6 HARDWAROVÉ A SOFTWAROVÉ NÁROKY
Obrázek 13 nároky OS na G2 24
6.2.2.7 TECHNICKÁ PODPORA Společnost Gensym pro svůj produkt vytváří podporu po celém světě pomocí 26 kanceláří přímého prodeje a sítě více než 100 marketingových partnerů. Zároveň vytvořila program pro podporu zákazníků nazvaný WOW. Rozděluje zákazníky do tří kategorií Standard, Gold, Platinum. V každém nabízí stejné služby, ale v jiné kvalitě a četnosti. 6.2.2.8 KOMPATIBILITA Jedním z produktů společnosti Gensym je rozšíření G2 Bridge, které umožnuje propojení s relačními databázemi, kontrolními, podnikovými a všemi dalšími systémy v reálném čase pomocí mnoha způsobů: ODBC, JDBC, dotazovací jazyk SQL pro relační databáze, JMS pro podnikové informační systémy, JMail pro síťové emaily, HTML pro webové reporty, XML/SOAP pro internetovou meziaplikační výměnu dat, OPC a OSISoft pro kontrolní zařízení, HP OpenView pro telekomunikační systémy, SNMP pro telekomunikační zprávy, G2 sockets pro síťové připojení, ActiveX/COM pro počítačové aplikace a .NET programátory, G2 Gateway Standard Interface pro C/C++ programátory a G2 JavaLink pro Java programátory. 6.2.3
CA AION BUSINESS RULES EXPERT 11.0 25
Systém automatizující business funkce a pravidla, schopný rychle reagovat na okolní změny. Pomáhá ve věci společných cílů více propojit IT oddělení a business úseky, které snadno pomocí webového přístupu mohou využívat a případně upravovat expertní systém. Umožnuje přeměnit 24
Gensym: G2 2011 [Cit. 4.12.2011] http://www.gensym.com/ CA Technologies: CA Aion® Business Rules Expert 11.0 [Cit. 4.12.2011] http://www.ca.com/us/products/detail/CA-Aion-Business-Rules-Expert.aspx
25
35
obsáhlou, komplexní business logiku (včetně regulací, legislativních změn, daní, firemní politiky) do upravitelných pravidel v inteligentním prostředí. 6.2.3.1 UŽIVATELSKÉ ROZHRANÍ Společnost CA technologies poskytuje CA Mainframe Software Manager, Installation verification program (IVP) and execution verification program, best practices guide a Health Checker pro snadnou a co nejvíce automatizovanou instalaci a spuštění aplikace. Samotnou práci (včetně testování nebo stavění business pravidel, komponent, rámců, kompletního GUI systému, nebo dalších přání uživatele) při vývoji expertního systému zajišťuje komplexní interaktivní vývojové prostředí IDE CA Aion BRE. Nabízí mnoho knihoven, interaktivní vývoj i ladění báze. Pro lepší zajištění anglických business termínů v pravidlech se stará flexibilní slovník. Aplikace umožnuje uživatelům viditelnost některých pravidel a objektů pouze pro určené osoby.
Obrázek 14 GUI CA Aion Business Rules Expert 26
6.2.3.2 INFERENČNÍ MECHANISMUS Samotný chod v reálném čase zajišťuje výkonný inferenční mechanismus, který zpracovává pravidla, podporuje dopředné, zpětné řetězení i porovnávání a odvozování pravidel podle vzorů. Pravidla se mohou měnit zásahem uživatele, nebo automatickým odvozením během chodu programu bez nutné odstávky. 6.2.3.3 PRÁCE SE ZNALOSTMI O pravidla se stará CA Aion Rule Manager, který zajišťuje možnost intuitivního zásahu bez hlubších IT znalostí především pro managery, analytiky a business experty. Uživatel skládá pravidla do hierarchických struktur kvůli propojenosti jednotlivých projektů. Při tvorbě pravidel pomáhá interaktivní průvodce. Pro ověření pravidel lze nastavit sadu testů. Báze znalostí umožnuje vyhledávání a srovnávání historický pravidel, utváření různých verzí, znovupoužití neplatných pravidel. Zisk pravidel nemusí záviset pouze na lidských expertech, ale samotná aplikace umožnuje automatickou analýzu pro generování nových pravidel. Pravidla mohou být pomocí webových služeb 26
CA Technologies: CA Aion® Business Rules Expert 11.0 [Cit. 4.12.2011] http://www.ca.com/us/products/detail/CA-Aion-Business-Rules-Expert.aspx
36
nasazena na jiné servery. Existuje pro ně XML vstup a výstup, který zajištuje standardizovanou formu. V nejnovější verzi programu existuje možnost klonování pravidel. Samotná data jsou uloženy jako objekty. 6.2.3.4 HARDWAROVÉ A SOFTWAROVÉ NÁROKY Podporované operační systémy: IBM Z/OS V1R8 a vyšší, Microsoft Windows XP SP2, Microsoft Windows Server 2003 SP1, Microsoft Windows Vista, Microsoft Windows Server 2008, Microsoft Windows 7, Red Hat Enterprise Linux (RHEL) 4 a 5, SUSE Linux Enterprise Server 9 a 10, SUSE Linux 9 na systému Z, HP-UX PA-RISC B.11.11 a B11.23, HP-UX ITANIUM B.11.23, IBM AIX 5.3 a 6.1, Solaris 9 a 10. Pro instalaci SQL serveru, JBoss, celého programu včetně Rule manageru se doporučuje dvoujádrový procesor o frekvenci 2Ghz, 2GB RAM a 5 Gb volného místa na disku, JDK 1.6 nebo vyšší, Microsoft SQL server 2005 a vyšší, JBoss 4.0.3.. 6.2.3.5 TECHNICKÁ PODPORA Firma CA technologies nabízí veškerou možnou technickou podporu pro vlastní produkty včetně manuálů (administrační, vývojářskou, instalační, pro celý produkt a další), ukázek na webu, pravidelných updatů, možnost kontaktování technické podpory, konzultace, školení. 6.2.3.6 KOMPATIBILITA CA Aion BRE podporuje běžné standardy, jazyky a platformy. Lze ho integrovat do existujícího systému například použitím Javy a webových služeb. Pro přenos pravidel nabízí společnost CA technologies I/O standard v XML. Jednou z hlavní výhod nejnovější verze se stala nová síťová JAVA architektura (JCA/Java Resource Adapter podporující protokol TCP/IP mezi J2EE a MAES platformami). 6.2.3.7 REFERENCE 6.2.4
MAXIMUS Canada (projekt HealthCare) Australian Maritime Safety Authority (Service desk manager) Blue Hill Data Services, Inc. (Vtape Virtual Tape System) BMW (SiteMinder) BMIR PROTÉGÉ 27
Program BMIR Protégé byl vyvinut ve Stanford Center for Biomedical Informatics Research (Stanford University School of Medicine) jako volně šiřitelná platforma s nástroji pomocí, kterých lze vyvinout expertní systém na základě ontologií. 6.2.4.1 UŽIVATELSKÉ ROZHRANÍ Protégé mimo jiné lze implementovat jako plugin do aplikace Java, ve které se pomocí knihoven Javy vytvoří libovolné uživatelské rozhraní. Základní tvorbu komunikačního a vysvětlovacího modulu lze provést přímo uvnitř aplikace pomocí API Protégé, které zajištuje přístup k základní funkcionalitě i k bázi znalostí (včetně Protégé frames editor pro práci s ontologiemi). Dále 27
The G6G Consulting Group, LLC: The G6G Directory of Omics and Intelligent Software, Expert (Knowledge Based) Systems/Tools [Cit. 4.12.2011] http://www.g6g-softwaredirectory.com/apps/ai/expertsystems/ListingsByAppISExpertKBSysts.php Stanford University School of Medicine: Protégé [Cit. 4.12.2011] http://protege.stanford.edu/
37
uvnitř nalezneme OWL API (zkratka OWL znamená Ontology Web Language, byl schválen organizací W3C pro podporu sémantických webů), který slouží k druhému způsobu editace ontologií schválených pro sémantické weby.
Obrázek 15GUI Protégé 28
6.2.4.2 PRÁCE SE ZNALOSTMI Znalosti jsou zaznamenány v ontologiích (ve formě taxonomií, klasifikací, databázových schémat, axiomatických teorií) popisující pojmy a vztah důležité pro zaznamenání modelu v dané aplikační oblasti. Ontologie v poslední době získávají na svém významu, jsou využívány v mnoho vědeckých a obchodních aplikacích. Díky tomu se zlepšila možnost sdílení, nebo vícenásobného použití. Ontologie jako datový model obsahuje čtyři typy prvků: jedince, třídy jedinců, atributy jedinců a vazby mezi jedinci. Platforma Protégé umožnuje dva typy modelování ontologií: Editory Protégé rámců a Protégé OWL. 6.2.4.3 ZAŘAZENÍ ES Protégé se používá pro řešení v oblastech biomedicíny, sběru dat, nebo korporátního modelování. 6.2.4.4 CENA Jedná se o open source aplikaci. Zdarma se dá stáhnout na stránkách Stanfordské Univerzity Medicíny (http://protege.stanford.edu/download/download.html). 6.2.4.5 HARDWAROVÉ A SOFTWAROVÉ NÁROKY Protégé lze spustit pod platformami podporující JDK verzi 1.4., což splňují všechny moderní verze MS Windows (NT/2000/XP), běžné verze Unixu včetně Linuxů, Solarisu, AIX, a HP-UX, zároveň to splňuje i Mac OS X. 28
Stanford University School of Medicine: Protégé [Cit. 4.12.2011] http://protege.stanford.edu/
38
6.2.4.6 TECHNICKÁ PODPORA Existuje Protégé Programming Development Kit (PDK), jedná se o několik dokumentů a příkladů, které popisují průběh vývoje, instalaci samotného programu i pluginů, nebo také přesný popis API Protégé. Na stránkách lze najít rozsáhlou dokumentaci, tutoriály, prezentace, odkaz na Protégé wiki. Lidé vedoucí tento projekt nabízí placené konzultace, schůzky i přednášky. 6.2.4.7 KOMPATIBILITA Celá aplikace se skládá z pluginů, které se dají přidávat, odebírat, nebo přemisťovat do jiných programů. Například pomocí API Protégé lze přistupovat k bázi znalostí bez nutnosti pouštět samotnou aplikaci Protégé, protože je kompatibilní s OKBC (Open Knowledge Base Connectivity protocol). OKBC definujeme jako rozhraní pro přístup do báze znalostí uložených v KRSs (Knowledge representation systems). Samotné ontologie mohou být exportovány do mnoha různých formátů včetně RDF, OWL nebo XML schéma. 6.2.4.8 REFERENCE 6.2.5
AdWiser (PhD projekt investičního poradenství na University of Fribourg, Švýcarsko) BioPax (Výměna dat pro biologický výzkum) The Foundational Model of Anatomy (University of Washington) RadLex (radiologický lexikon, Radiological Society of North America) EZ-EXPERT 3.0 29
EZ-Expert 3.0 nabízí revoluční nástroj pro tvorbu plně automatizovaných expertních systémů bez inferenčního mechanismu. Výrobce uvádí, že bez IT a programovacích znalostí lze za den vytvořit systém o 500 pravidlech. Uživatel nepíše žádný kód, který ovšem automatický vzniká kompilací programu do C++ a Visual Basicu. Autorská práva na vzniklý kód má majitel zakoupené licence EZExpertu. Aplikace ověřuje nově vznikající systém pomocí 23 kritérií a provádí na pozadí interní testování. Vývoj řídí rigorózní metodiky uložené uvnitř programu. 6.2.5.1 UŽIVATELSKÉ ROZHRANÍ Integrované vývojové prostředí automatizuje mnoho procesů během vývoje. Ovládání řízené pomocí menu se uživatel naučí velice lehce, protože obsahuje rozsáhlého průvodce. Nabízí debugger analyzující stav systému včetně podrobných hlášení nejenom chyb, testovací prostředí. Aplikace sama řeší vznikající konflikty v pozadí vývoje. Projekt probíhá v osmi fázích (podle tutoriálu): návrh, inicializace, definování proměnných, vytváření pravidel, optimalizace projektu, testování, ladění detailů pro zákazníka, generování kódu.
29
A I Developers, Inc.: EZ-Xpert 3.0 [Cit. 4.12.2011] http://www.ez-xpert.com/index.html
39
Obrázek 16 GUI EZ-Expert (přidání nové proměnné) 30
Obrázek 17 GUI EZ-Expert (Editování pravidel) 31
6.2.5.2 INFERENČNÍ MECHANISMUS Přestože neexistuje samostatný inferenční mechanismus, tak aplikace používá stejné principy, které nejsou pouze oddělené od zbytku systému. Inference probíhá ve formě dopředné řetězení, zpětného řetězení a ve speciální formě pro monitorovací systémy, kdy se čeká na nesynchronizované vstupy, dokud nejsou známy všechny fakta pro úspěšnou diagnostiku. 6.2.5.3 PRÁCE SE ZNALOSTMI Aplikace podporuje 5 druhů pravidel: deterministické, nekompletní, CNF, výjimky a uživatelsky definované. Hodnoty do znalostní báze mohou být přidávány pomocí parametrů, konfiguračních souborů, informačních souborů, pomocí API (aplikační programovací prostředí), nebo uživatelsky dodaného kódu. Znalosti jsou reprezentovány kromě pravidel jako otypované (String, Integer, Long, Double, Boolean, Date) proměnné, u kterých lze nastavit podmínky.
30 31
A I Developers, Inc.: EZ-Xpert 3.0 [Cit. 4.12.2011] http://www.ez-xpert.com/index.html A I Developers, Inc.: EZ-Xpert 3.0 [Cit. 4.12.2011] http://www.ez-xpert.com/index.html
40
6.2.5.4 ZAŘAZENÍ ES EZ-Expert 3.0 řeší monitorovací a i diagnostické úlohy. Příklad na stránkách produktu je šachový program. 6.2.5.5 HARDWAROVÉ A SOFTWAROVÉ NÁROKY Vývojové prostředí běží na libovolné platformě Windows. 6.2.5.6 TECHNICKÁ PODPORA Společnost AI Developers, Inc. nabízí širokou nabídku možností např. vytvoření celých systémů, export a import stávajících systémů, konzultace, telefonickou podporu, pravidelné updaty, ukázkovou demoverzi expertního systému, tutoriál, metodologii tvorby expertních systémů, 6.2.5.7 KOMPATIBILITA Nově vznikající systém se kompiluje do kódu v C++ (Windows, Unix, nebo Linux), Java, nebo Visual Basicu, tak lze tento kód bez problému implementovat do jiné komplexnější aplikace, nebo funguje jako samostatná aplikace. Systém dokáže vkládat data do databáze, posílat emaily o stavu systémů, nebo vykonávat uživatelsky dodaný kód. 6.2.6
FLEX EXPERT SYSTEMS TOOLKIT 32
Flex Expert Systems Toolkit, flexibilní hybridní vývojový nástroj pro pravidlové, expertní systémy, mohou používat i neprogramátoři. Založen na jazyku Prolog. Neexistují pro něj žádné limity velikosti expertních systémů (pravidla, vztahy, rámce, otázky). 6.2.6.1 UŽIVATELSKÉ ROZHRANÍ Nově vznikající expertní systém lze kompilovat jako samostatnou aplikaci za použití LPA (Logic Programming Associates Ltd.) běhového jádra, nebo za použití jádra Java, C#, nebo .NET v kombinaci s LPA Intelligence Server nástrojem. Další možností je využití webové služby WebFlex od firmy LPA. Flex obsahuje integrované vývojářské prostředí s editorem, prohlížečem rámců (jejichž propojení a vztahy lze graficky zobrazit), debuggerem. Dále lze barevně odlišit jména tříd, čísla, akce, vztahy a další. Lze využít i nástroj od LPA VisiRule 1.5 popsaný níže.
32
The G6G Consulting Group, LLC: The G6G Directory of Omics and Intelligent Software, Expert (Knowledge Based) Systems/Tools [Cit. 4.12.2011] http://www.g6g-softwaredirectory.com/apps/ai/expertsystems/ListingsByAppISExpertKBSysts.php Logic Programming Associates Ltd.: Flex Toolkit [Cit. 4.12.2011] http://www.lpa.co.uk/flx.htm
41
Obrázek 18 GUI nástroje Flex 33
Flex obsahují vlastní podsystém s automatickým generováním dialogového menu s otázkami a odpověďmi. Nabízí několik různých možností pro otázky i odpovědi včetně vysvětlovací schopnosti pomocí příkazu because (jednovětý důvod) a browse file (otevře soubor s obsáhlejší odpovědí). 6.2.6.2 INFERENČNÍ MECHANISMUS Tento systém podporuje více způsobů odvozování. Kromě základního přímého a nepřímého řetězení, podporuje inferenci Flint využívající fuzzy logiku, Bayesovské přístupy i faktory jistoty. Při samotném odvozování se postupně všechny pravidla, která mají být prozkoumána, dávají do agendy. Zamezení vzniku konfliktu spočívá ve stanovení vah pravidel. Zároveň agenda nabízí několik možností své aktualizace: fixed (žádné pravidlo se nezmění), front (pravidlo se posune v zásobníku blíže ke zpracování), back (opak metody front), cycle (promění agendy v cyklickou frontu), possibles (odstraní nechtěná pravidla), once (projde pravidlo okamžitě), atn (kompletně vymění současnou agendu za novou). Kromě všech zmíněných funkcionalit Flex obsahuje další schopností jako skupiny (Groups), funkce (Functions), příkazy (Commands), akce (Actions), proměnné (Variables) Slouží jako pomocné funkce k lepšímu a srozumitelnějšímu chodu programu. 6.2.6.3 PRÁCE SE ZNALOSTMI Flex pracuje na základě rámců s možností dědičnosti. Daty řízený chod programu podpořený pravidly (v obvyklém formátu if-then). Všechny pravidla, rámce i procedury jsou definovány ve speciálním jazyku KSL (Knowledge Specification Language). Díky základu v angličtině mu rozumí i neprogramátoři a vývojářům usnadňuje práci. Kromě angličtiny KSL podporuje matematické, pravdivostní a podmíněné výrazy. Rámce se v mnoha věcech podobají objektově orientované struktuře zaznamenávání znalostí (dědičnost, vyhnutí se duplikaci znalostí, vícenásobné použití kódu, uzavřená komplexní datová struktura, atributy/sloty). Každý rámec obsahuje sloty podobné atributům objektů. Mohou nabývat defaultních hodnot, dědičných hodnot. Zároveň mohou obsahovat tzv. démony (demons), kteří se aktivují v momentě dosažení podmínky, tzv. hlídací psy (watchdogs), kteří zamezí přístupu v momentě dosažení podmínky, a tzv. omezení (constraints), které stanoví možné limity atributu. Existuje několik druhů propojení rámců ve Flexu. Rámec může mít jednoho rodiče a jednoho potomka, nebo více potomků, případně více rodičů.
33
Logic Programming Associates Ltd.: Flex Toolkit [Cit. 4.12.2011] http://www.lpa.co.uk/flx.htm
42
Vedle normálních pravidel lze ve flexu využít soustavu pravidel (rulesets), která spojuje více pravidel do jednoho seskupení. Lze tak speciálně pro tuto skupinu vybrat vhodný algoritmus prohledávání, případně tento postup upravit po vyhodnocení, nebo nastavit předčasné ukončení procházení této soustavy pravidel kvůli urychlení běhu programu, snadněji se také předchází selhání programu během testování. 6.2.6.4 ZAŘAZENÍ ES Flex byl v praxi použit pro vytvoření komerčních aplikací v oblastech poradenských systémů pro podporu rozhodování, business modelování, diagnostických systémů, plánovacích procesů, systémů pro dodržování legislativy a mnoho dalších. 6.2.6.5 CENA Cena začíná okolo $1000 za licenci. 6.2.6.6 HARDWAROVÉ A SOFTWAROVÉ NÁROKY
Microsoft Windows NT, 2000, 2003, XP nebo Vista. 100 megabytů volného místa na disku. Minimálně 256Mb operační paměti (v optimálním případě 512Mb). ODBC (Open Database Connectivity) ovladač vyžadovaný pro databázový přistup. WebFlex vyžaduje IIS nebo Apache.
6.2.6.7 TECHNICKÁ PODPORA Společnost Logic Programming Associates Ltd. nabízí technickou podporu, uživatelské školení, konzultace. Dále lze volně stáhnout uživatelského průvodce, technické reference a příklady k Flexu. Kromě toho pracuje na pravidelných aktualizací odstraňující chyby, vývoj na míry a hlubší spolupráci na projektech. 6.2.6.8 KOMPATIBILITA Flex definuje svůj vlastní jazyk Knowledge Specification Language (KSL). Zároveň se vyznačuje otevřenou architekturou, především díky přímé podpoře Prologu, který zajišťuje podporu procedur v jazycích C, C++ a Pascal. Dále firma LPA nabízí mnoho dalších nástrojů, které lze implementovat do Flexu. Přes ovladač ODBC lze komunikovat s databázemi. 6.2.6.9 REFERENCE 6.2.7
The Chessington Computer Centre (projekt Payrolls) The Forestry Commission (projekt Environmental Modelling) The Forestry Commission (projekt Fungus Identification) University of Wales (projekt Image Recognition)
LPA VISIRULE 1.5 34
Grafický nástroj LPA VisiRule 1.5 od britské společnosti Logic Programming Associates Ltd pro vytváření pravidlových systémů, které usnadní a zautomatizují rozhodování, jednoduchým 34
The G6G Consulting Group, LLC: The G6G Directory of Omics and Intelligent Software, Expert (Knowledge Based) Systems/Tools [Cit. 4.12.2011] http://www.g6g-softwaredirectory.com/apps/ai/expertsystems/ListingsByAppISExpertKBSysts.php Logic Programming Associates Ltd.: LPA VisiRule 1.5 [Cit. 4.12.2011] http://www.lpa.co.uk/vsr.htm
43
kreslením rozhodovací logiky. Díky srozumitelné intepretaci snadno sdílíme obsah grafu se svými kolegy. K běžnému používání VisiRule stačí minimální programovací dovednosti. 6.2.7.1 UŽIVATELSKÉ ROZHRANÍ VisiRule lze najít v produktu společnosti Logic Programming Associates Ltd WIN-PROLOG (běžící pod operačním systémem Windows) jako integrovaný modul vedle nástrojů Flexu, Flintu, CBR, Data Mining a ProData Database Interface. Tato integrace dovoluje využití všech postupů a algoritmů napříč celým WIN-PROLOGem. Z uživatelského pohledu se jedná o jednoduché kreslení grafů doplněné o automatické generování (zamezení triviálních typografických chyb) dialogů pro zisk dat k případu. Generování probíhá na základě logického stromu, který lze upravovat i nastavovat automatickým rozložením a odsazovat. Náhled na grafy lze měnit, existuje i automatická možnost upravit velikost celého projektu, aby se vešel na obvyklý formát A4. Uživatelské prostředí samotného expertního systému lze vytvořit pomocí kompilátoru systému na různých platformách (Java, Delphi, C/C++, .NET, C# s využitím LPA nástroje pro servery). Nebo můžeme systém publikovat na web pomocí WebFlexu s využitím HTML, nebo Flex KSL. Krok nezbytného testování správného průběhu grafů je umožněn již během vývoje díky možnému exportu kódu Flexu, nebo Prologu. Otázky v expertním systému lze nastavit na více typů (více možností, číselné, textové a další).
Obrázek 19GUI VisiRule 35
6.2.7.2 INFERENČNÍ MECHANISMUS Otázky jsou postupně kladeny podle diagramu, takže se jedná o dopředné řetězení, kde jdeme od startu k cíli. Pracovat s neurčitostí můžeme v takzvaných „Code Boxech“. Lze použít způsoby prologu, například Bayesovské přístupy, nebo fuzzy logiku. 6.2.7.3 PRÁCE SE ZNALOSTMI Logika včetně pravidel se zakresluje do grafu s ikonami a odkazy, které vyjadřují jejich propojení. Složitější problémy lze rozdělit do jednodušších podproblémů a zakreslit do jednoduchých grafů, které lze později spojit. Zároveň tato možnost přináší možnost znovuvyužití jednotlivých elementárních částí. Složení pravidel lze provést výrazy AND/OR/inkluze/exkluze. VisiRule podporuje 64bitovou aritmetiku. 35
Logic Programming Associates Ltd.: LPA VisiRule 1.5 [Cit. 4.12.2011] http://www.lpa.co.uk/vsr.htm
44
6.2.7.4 ZAŘAZENÍ ES S pomocí VisiRule lze vhodně řešit otázky z problematiky dodržování předpisů, finančního rozhodování a validace systémů. VisiRule se řadí mezi diagnostické nástroje pro tvorbu expertních systémů. 6.2.7.5 CENA Na stránkách výrobce lze stáhnout celý produkt WIN-PROLOG na zkušební dobu 28 dní včetně modulu VisiRule. I přes kontaktování podpory prodeje jsem cenu nedokázal zjistit, ale určitě se jedná o komerční software. 6.2.7.6 HARDWAROVÉ A SOFTWAROVÉ NÁROKY
Operační systém: Microsoft Windows NT, 2000, 2003, XP nebo Vista. 100 megabytů volného místa na disku. Minimálně 256Mb paměti (ideálně 512Mb). ODBC (Open Database Connectivity) ovladač potřebný pro databázový přístup. WebFlex vyžaduje IIS nebo Apache.
6.2.7.7 TECHNICKÁ PODPORA Na vlastních stránkách společnost Logic Programming Associates Ltd. poskytuje online tutoriál pro snazší práci s VisiRule včetně ukázek hotových grafů. Dále lze volně stáhnout uživatelského průvodce a tutoriál k jejich produktům. Kromě toho nabízí technickou podporu pro své klienty, pravidelné aktualizace odstraňující chyby, školení uživatelů, vývoj na míru, konzultace projektů i hlubší spolupráci na projektech. 6.2.7.8 KOMPATIBILITA Samotné grafy z programu VisiRule lze snadno exportovat do běžných formátů v podnikové informatice jako Word, Acrobat atd., není potřeba žádných dalších programů, které by zbytečně zvýšili cenu. 6.2.7.9 REFERENCE 6.2.8
Fire Services (projekt Fire Training) Advanced Sales and Skills Training (projekt Sales modelling) Shibutzit Software Development (projekt Shift allocation) Valdis Krebs Associates (projekt Management Consultancy)
XPERTRULE KNOWLEDGE BUILDER 36
Celým názvem XpertRule Knowledge Builder nabízí podnikové vývojové prostředí pro vývoj expertního systému včetně jeho komponent. Uživatel určuje pouze hodnocení řešení, omezení zdrojů a systém sám určí nejlepší způsob své práce. Jedná se o hybridní systém, který kombinuje znalostní bázi s vlastním optimalizátorem.
36
The G6G Consulting Group, LLC: The G6G Directory of Omics and Intelligent Software, Expert (Knowledge Based) Systems/Tools [Cit. 4.12.2011] http://www.g6g-softwaredirectory.com/apps/ai/expertsystems/ListingsByAppISExpertKBSysts.php XpertRule Software Ltd.: XpertRule Knowledge Builder [Cit. 4.12.2011] http://www.xpertrule.com/pages/info_kb.htm
45
6.2.8.1 UŽIVATELSKÉ ROZHRANÍ Nejnovější verze XpertRule Knowledge Builder obsahuje zamykání objektů pro současné užívání více uživateli, kompatibilitu s nejnovějšími operačními systémy včetně Windows 7, zlepšené (z hlediska přehlednosti, jednoduchosti, intuitivnosti) uživatelské rozhraní, zpřehledněné a zefektivněné nabídky nástrojů, úplná .NET podpora, vylepšení designu Ajax běhového programu s plnou podporou kaskádových stylů, zlepšená integrace aplikace jako webové služby, nový javaskriptové jádro.
Obrázek 20 GUI XpertRule Knowledge Builder 37
6.2.8.2 INFERENČNÍ MECHANISMUS Optimalizátor XpertRule pracuje v pěti krocích. V prvním náhodně vygeneruje omezený počet možných řešení ze skupiny první generace. Ve druhém posoudí kvalitu těchto řešení. Ve třetím kříží řešení s důrazem na zlepšení. V dalším kroku náhodně mutuje a mění některá řešení a zavádí změny. Na závěr pokračuje ve výběru, dokud se nenajdou dostatečně dobrá řešení. Veškeré techniky jsou inspirovány genetickým inženýrstvím. Vývojář pouze musí ocenit navrhnutá řešení algoritmem ať pozitivně, či negativně. Dochází tak k přirozenému výběru. Pro zpracování neurčitosti především v diagnostických úlohách XpertRule používá Fuzzy logiku. Grafické znázornění znalostí umožnuje lehké nastavit omezovací inference. Dále uživatel může využít hierarchické inference. 6.2.8.3 PRÁCE SE ZNALOSTMI Znalosti se zaznamenávají ve formě rozhodovacích stromů (Decision Trees), případových tabulek (Cases Tables) a vzorů pravidel. Formy obsahují atributy, které sami o sobě dokonce mohou být stromem nebo tabulkou, v takovém případě hovoříme o řetězení. Znalosti se dají pro lepší představu struktury znázornit pomocí znalostních map. Aplikace pomocí indukce získává nová pravidla. Tabulku příkladů lze převést do rozhodovacího stromu. Odhalují se tak obecné vzory, mezery a konflikty. Dále můžeme získat znalostí pomocí nástroje XMLMiner (popsán níže jako samostatný expertní systém), který dokáže dolovat data a pomocí vhodné XML struktury je lze využít v XpertRule. Dalším data miningovým nástroje, který lze použít pro zisk dat, vyrobil stejný výrobce jako XpertRule. Nazývá se XpertRule Miner. Jeho cílem se stalo odvození rozhodovacích stromů, nebo vzorů chování, které lze snadno expertovat do XpertRule Knowledge Builderu. 37
XpertRule Software Ltd.: XpertRule Knowledge Builder [Cit. 4.12.2011] http://www.xpertrule.com/pages/info_kb.htm
46
6.2.8.4 ZAŘAZENÍ ES¨ Díky flexibilnosti XpertRule nabízí širokou škálu uplatnění. Poskytuje rady a doporučení pro nejvhodnější produkty, služby a akce, řeší problémy vlastní diagnózou pro zákaznickou podporu, neboli helpdesk, řídí rizika, hodnotí a sleduje stav systému, dále pomáhá sledovat a řídit workflow ve firmě, optimalizuje zdroje. 6.2.8.5 CENA Základní Knowledge Builder Authoring Studio License stojí £5000. Za další rozšíření si zájemce musí připlatit (například Web deployment £15000). 6.2.8.6 HARDWAROVÉ A SOFTWAROVÉ NÁROKY
Microsoft Windows NT, 2000, 2003, XP, Vista, nebo 7. Minimum paměti 256Mb, Doporučeno 515Mb paměti, 1 GHz Pentium 4. Ovladač ODBC (Open Database Connectivity). 100 megabytů volného místa na disku.
6.2.8.7 TECHNICKÁ PODPORA Britská firma XpertRule Software Ltd. nabízí klasickou online technickou podporu, krátký tutoriál na webu, ukázky demoverzí expertních systémů, popis případových studií, spolupracuje s mnoha subjekty po celém světě. 6.2.8.8 KOMPATIBILITA Optimalizátor může ve svém jádře volat různé DLL knihovny. Lze snadno získat znalosti z dat pomocí XMLMineru, nebo XpertRule Miner. 6.2.8.9 REFERENCE 6.2.9
AOL Europe (telefonická technická podpora) GE Money Bank (analýza rizik) Hosokawa Micron (modelování business procesů) Ebara manufacturing (konfigurace produktů) ACQUIRE 38
Společnost Acquire Intelligence Inc. nabízí několik produktů pro vytvoření nového expertního systému. Především se jedná o Acquire, Acquire SDK (software Development Kit) a Acquire Service. Prvně jmenovaný představuje celý softwarový balíček pro tvorbu expertního systému. Acquire SDK poskytuje možnost integrace znalostní báze a inferenčního mechanismu do libovolné aplikace (do Visual Basic, Visual C++, Java, Delphi, nebo další prostředí podporující ActiveX nebo volání dynamických knihoven DLL). Poslední produkt umožnuje vytvořit architekturu klient-server pro expertní systém. Základními součástmi Acquire je editor báze znalostí a integrovaný inferenční mechanismus. 38
The G6G Consulting Group, LLC: The G6G Directory of Omics and Intelligent Software, Expert (Knowledge Based) Systems/Tools [Cit. 4.12.2011] http://www.g6g-softwaredirectory.com/apps/ai/expertsystems/ListingsByAppISExpertKBSysts.php Acquired Intelligence Inc.: Acquired Intelligence [Cit. 4.12.2011] http://www.aiinc.ca/ Carnegie Mellon University: Commercial Expert System Shells [Cit. 4.12.2011] http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/expert/part1/faq-doc-7.html
47
6.2.9.1 UŽIVATELSKÉ ROZHRANÍ Prostředí Acquire nabízí postup krok za krokem bez nutnosti specializovaného školení. Pro vytvoření uživatelského prostředí samotného expertního systému lze použít buď Acquire SDK, nebo webovou službu myAcquire.
Obrázek 21 GUI produktu Acquire - editace pravidel 39
6.2.9.2 INFERENČNÍ MECHANISMUS Systém Acquire získává faktory nejistoty komparativně (porovnáváním) na rozdíl od tradičního přístupu, kdy nejistota bývá vyjádřena absolutními čísly. 6.2.9.3 PRÁCE SE ZNALOSTMI Získávání znalostí vychází ze základních vzorů (předem stanovená situace vyvolává předem stanovený cíl), ze kterých se odvozováním mohou vytvářet vzory nové. Na základě expertovo chování lze i vytvářet originální vzory bez odvozování. Ke každému vzoru se uvádí tabulka akcí, která zaznamenává vstupní modely (vzory, od kterých se odvozuje) a shodné důsledky. Systém Acquire používá tři metody řešení konfliktů mezi pravidly, pokud vůbec nastanou. V první řadě se pomocí kontextů („contexts“) snaží vyhnout konfliktům. Dále nastavuje preferenční („preferences“) hodnocení pravidla. Existuje i předpojatost („biases“) k určitým závěrům. Díky vhodné struktuře báze znalostí, která vznikne přesně definovanou metodikou krok za krokem, nedochází k nekonzistentnosti nebo k neúplnosti. Již zmiňovaná metodika spočívá v pěti krocích stavění objektů (pojmenování objektů – data, proměnná, atributy, koncepty, hypotézy, závěry - a určení jejich možných hodnot), propojení objektů (propojení závislých objektů, vznik 39
Acquired Intelligence Inc.: Acquired Intelligence [Cit. 4.12.2011] http://www.aiinc.ca/
48
orientovaného grafu reprezentující obecný model bez hlubších znalostí), stavění pravidel (pravidla nám říkají, jak získáme potřebné informace v dané situaci, dvě možnosti vyjádření vztahů mezi objekty - vystavění pravidla z objektů, nebo sestavení rozhodovací tabulky), vyřešení konfliktů (může nastat situace, kdy dvě pravidla chtějí nastavit různou hodnotu jednomu objektu v jednom cyklu, řešení bylo zmíněno výše – tři metody: kontexty, preference a předpojatosti), vystavění uživatelského rozhraní (vznik sestav pro zadávání dat a zobrazování výsledků). Tyto kroky Vám pomohou při procesu zisku znalosti, lze jimi procházet libovolně (například lze vytvářet bázi znalostí po malých částech a několikrát pět základních kroků opakovat). 6.2.9.4 ZAŘAZENÍ ES Společnost Acquired Intelligence se zaměřuje na systémy řízení financí, dále byl jejich systém využit v řadě dalších oborů. Například chemický průmysl, lesnický průmysl, telekomunikace, neuropsychologie, analýza komodit, nebo letectví. 6.2.9.5 HARDWAROVÉ A SOFTWAROVÉ NÁROKY Operační systém: Windows 95, 98, NT, ME, 2000, nebo XP. Služba The Acquire NT/2000/XP Service je přístupná pouze pod NT, 2000, nebo XP. Ve speciálním režimu lze spustit pod většinou Unixových a Linuxových platforem. 6.2.9.6 TECHNICKÁ PODPORA Společnost Acquired Intelligence nabízí standartní podporu, konzultace i obsáhlý manuál k samotnému produktu. 6.2.9.7 REFERENCE
Systém řízení financí pro Finanční úřad Britské Kolumbie. Expertní systémy technického řízení pro společnost Huntsman Polyurethanes. Lesnický průzkum vedený Univerzitou Britské Kolumbie. Projekt The Radio Interference Advisor pro Industry Canada
6.2.10 INDUCE-IT 40 Nástroje Induce-It používá pro vznik expertních systémů znalostní bázi uloženou v databázových listech Microsoft Excel. 6.2.10.1 UŽIVATELSKÉ ROZHRANÍ Uživatelské rozhraní nástroje Induce-It vychází z velké části z produktu Microsoft Excel, jelikož se jedná o jeho doplněk. Lze tak použít grafy, databáze, tlačítka, dialogy a makra Excelu a podle sebe si vytvořit, jak by mělo uživatelské prostředí vypadat. Induce-It sám o sobě poskytuje 45 nových příkazů rozdělených do 4 menu položek.
40
The G6G Consulting Group, LLC: The G6G Directory of Omics and Intelligent Software, Expert (Knowledge Based) Systems/Tools [Cit. 4.12.2011] http://www.g6g-softwaredirectory.com/apps/ai/expertsystems/ListingsByAppISExpertKBSysts.php Inductive Solutions, Inc.: Induce-It [Cit. 4.12.2011]http://www.inductive.com/softcase.htm
49
Obrázek 22 GUI Induce-It 41
6.2.10.2 INFERENČNÍ MECHANISMUS Inferenční mechanismus pracuje v cyklu několika kroků. Nejdříve nalezne případy podobné tomu současnému. Dále adaptuje a extrapoluje odpovědi z minulých případů. A na závěr závěry aplikuje na současnou expertízu. Podporuje na základě důležitosti (váhy, fuzzy logika, Bernoulliho skóre), rutiny případů, vytváření konceptu a statistiky (Dixonův test) následující základní algoritmy porovnání polí: Free Form Text (srovnání dvou textových řetězců), Numbers (srovnání čísel s použitím čtyř různých metrik a jejich vzdáleností), Ranks (systém porovnává na základě hodnocení, které určuje seznam preferencí), User-defined Field (systém porovnává na základě uživatelem definovaných formulí), Ranges (mapuje číselné rozsahy na symbolické), Scales (převadí textové hodnoty na číselné a porovnává), Hierarchies (opět převádí textové hodnoty na číselné například pomocí svých předků a snaží se je porovnávat), Linear Weights (systém zjišťuje podobnosti na základě váhách jednotlivých polí), Fuzzy Logic Scores (srovnává podobné případy na základě operátorů konjunkce, disjunkce a negace), Euclidean Scores (počítá podobnost na základě Euklidické vzdálenosti), Cosine Scores (využívá koreláční měření), Extrapolation (předpovídá hodnotu pole díky nejlepším výsledkům), Adaptation (určuje podobné případy na základě faktů), Install New Case (přidává nový případ do báze znalostí), Extract Answers (extrahuje nejlepší možné odpovědi podle uživatelových kritérii), Run Shell (spouští dialogové okno pro nový případ). 6.2.10.3 PRÁCE SE ZNALOSTMI Báze znalostí se načítá z databázových listů Microsoftu Excel. V případě potřeby není problém přidat nový záznam. Velikost báze znalostí dosahuje u hranice 16000 případů o 256 polích, indexace veškerých záznamů pomáhá k rychlejšímu zpracování dat. Do aplikace vstupuje soubor případů v jednom ze 13 různých formátů, které umí přečíst Microsoft Excel, naopak vystupuje Excelovský list reprezentující případovou databázi, pravidla k případu, extrapolaci a uplatnění 41
Inductive Solutions, Inc.: Induce-It [Cit. 4.12.2011] http://www.inductive.com/softcase.htm
50
pravidel. Jednotlivá pole mohou nabývat hodnot symbolů (Symbol), volného textu (Free Form Text), čísla (Number), rozsahu (Range), škály (Scale), hodnocení (Rank), seznamu (List), hierarchie (Hierarchy), nebo uživatelem definovanou hodnotu (User-Defined). 6.2.10.4 ZAŘAZENÍ ES Vhodnými aplikacemi pro Induce-It jsou úlohy s dobře zaznamenatelnými prvky, jelikož se zakládá na případech z minulosti a jejich porovnání s aktuálně řešeným případem. 6.2.10.5 CENA Základní studentská licence stojí $85, pro komerční licence je nutné kontaktovat podporu Induce-It. 6.2.10.6 HARDWAROVÉ A SOFTWAROVÉ NÁROKY Spustitelné na všech strojích, kde lze spustit Microsoft Excel (4.0 nebo vyšší). V případě Windows vyžaduje 32bitovou verzi. 6.2.10.7 TECHNICKÁ PODPORA Samotný Induce-It obsahuje třicetiminutový tutoriál popisující proces vzniku expertního systému. Základní licence obsahuje online tutoriál, manuál, emailovou technickou podporu. 6.2.10.8 KOMPATIBILITA Lze využívat všech výhod excelovského listu, tj. vytváření tabulek, grafů, export včetně tisku. 6.2.11 XMLMINER 42 Nejedná se klasický vývojový nástroj pro expertní systém, ale spíše o komplexnější projekt ve formátu webové služby včetně dolování dat, reprezentace textu ve formátu XML a tvorby expertního systému. Znalosti ve formátu XML se používají ve formě fuzzy logických pravidel. Dále se XMLMiner dá využít jako online systém obchodních pravidel. 6.2.11.1 UŽIVATELSKÉ ROZHRANÍ Celé vývojové prostředí se integrovalo do webové služby (pomocí uživatelského rozhraní Silverligth 2.0), na druhou stranu také lze XMLMiner implementovat jako .NET nebo Java knihovnu a tím vytvořit expertní systém pod libovolnou platformou. Aplikace obsahuje editor pro interaktivní vytváření pravidel bez programovacích znalostí. Editor automaticky zajišťuje konzistenci pravidel (nenabízí syntakticky špatná pravidla), pravidla se vytvářejí uživatelovým výběrem z možných alternativ. I přes tuto konzistenci pravidel musíme otestovat správnou funkčnost systému. K tomu slouží Lacuna model testování, který byl vyvinut v rámci genetických algoritmů. Hledá prázdná a slabá místa v pravidlech, běží na serverech výrobce v případě využívání na webu. Lacuna model vytváří zprávu o pravidlech nevytvářejících žádný výstup, nebo o místech s nízkou spolehlivostí. 6.2.11.2 INFERENČNÍ MECHANISMUS 42
The G6G Consulting Group, LLC: The G6G Directory of Omics and Intelligent Software, Expert (Knowledge Based) Systems/Tools [Cit. 4.12.2011] http://www.g6g-softwaredirectory.com/apps/ai/expertsystems/ListingsByAppISExpertKBSysts.php Scientio LLC: XMLMiner [Cit. 4.12.2011] http://www.scientio.com/products/XmlMiner
51
Inferenční mechanismus pracuje na základě Metapravidel, která zpracovávají nová data. Druhý způsob zpracování dat je ruční zpracování pomocí interaktivního editoru. Jazyk metapravidel pro zaznamenání neurčitosti využívá teorii fuzzy množin a fuzzy čísel se stupněm jistoty v intervalu <0,1> (neznalost faktu se označuje -1). 6.2.11.3 PRÁCE SE ZNALOSTMI Veškeré znalosti se ukládají ve formátu XML stejně jako výsledky. Převádějí se ovšem do ifthen pravidel v angličtině pro lepší porozumění díky XSL transformacím. XMLMiner používá svůj jazyk pravidel, takzvaná Metapravidla (Metarules, obvyklý tvar if-then) uložená ve formátu fuzzy logických pravidel (existují tři formáty podle typu výstupu: kategorie, fuzzy množina a aritmetický výraz). Zapisují se ve standardizovaném XML. Pravidla obsahují logické i číselné výrazy. Metapravidla definují definované vstupy (categorical, numeric, textual, arity and presence) i výstupy (categorical, numeric, arity and presence). 6.2.11.4 ZAŘAZENÍ ES Využívá se ve spolupráci s dolováním dat, například při zisku lidských znalostí z textů (právo, knihy, podniková pravidla, velké příručky všech možných pravidel). Dalším vhodným použitím jsou simulace (analýza rizika, stavba systémových analýz, válečné hraní), business pravidla (účetní systémy). 6.2.11.5 CENA Komerční využití se oceňuje částkou $5,999.00 za každý počítač využívající expertní systém. Vývoj stojí $599.00 za každé vývojářské místo. 6.2.11.6 HARDWAROVÉ A SOFTWAROVÉ NÁROKY Nároky na podmínky aplikace běžícím na webu (provozuschopné servery). 6.2.11.7 TECHNICKÁ PODPORA Firma Scientio nabízí na svých stránkách konzultace, možnost kontaktování technické podpory během otevíracích hodin, i ukázku dema expertního systému vytvořeného pomocí XMLMiner. 6.2.11.8 KOMPATIBILITA XMLMiner si zakládá na standardech, dosahuje tak vysoké kompatibility s ostatními standardizovanými nástroji. 6.2.12 DATALOGIC/R 43 Jedná se o nástroj nejen pro vývoj expertních systémů, ale také pro zisk znalostí i prediktivní modelování (dolováním dat). DataLogic získává pravidla hledáním v databázi nejlepší reprezentace. Pracuje ve více vláknovém režimu. Vychází z nepřesných, neúplných a nekonzistentních dat., ze kterých zobecněním a ignorováním nerelevantních informací vznikají zákonitosti (znalosti). 43
The G6G Consulting Group, LLC: The G6G Directory of Omics and Intelligent Software, Expert (Knowledge Based) Systems/Tools [Cit. 4.12.2011] http://www.g6g-softwaredirectory.com/apps/ai/expertsystems/ListingsByAppISExpertKBSysts.php REDUCT & Lobbe Technologies Inc.: DataLogic [Cit. 4.12.2011] http://www.reduct.com/Solutions/Products/datalogic.htm
52
6.2.12.1 UŽIVATELSKÉ ROZHRANÍ
Obrázek 23GUI DataLogicu 44
6.2.12.2 INFERENČNÍ MECHANISMUS Reduct & Lobbe Technologies Inc. se chlubí svou schopností práce s neurčitostí, neúplnými a nekonzistentními daty. 6.2.12.3 PRÁCE SE ZNALOSTMI Reprezentaci modelů a znalostí porozumíme velmi snadno. Za jeden ze základních rysů DataLogicu můžeme považovat reprezentaci znalostí kombinací logických a pravděpodobnostních informací. Pravidla ve formátu if-then jsou generována automaticky ve formátu výrokové logiky s pomocí využití pečlivých matematických metod analýzy databáze. DataLogic data reprezentuje novou formou inteligentních dat založené na rozšířené teorii množin. Hlavní myšlenka se zakládá na zobecnění informací, které pomáhá odkrýt pravidelnosti v datech. 6.2.12.4 ZAŘAZENÍ ES DataLogic/R lze využít například v průzkumu trhu, analýze akciových trhů, analýze vědeckých dat, zemědělském výzkumu, výzkumu léku, modelech úvěrů a inkas, prognózách podniku, predikcích bankrotů, kontrolách kvality, podpoře rozhodování, jako deskhelp aplikaci, ve schvalování hypoték, zdravotních auditech, rozhodování poskytnutí úvěrů, oceňování nemovitostí, diagnostikách poruch, nebo v lékařských diagnostikách. 6.2.12.5 REFERENCE Optimalizace uhelných kotlů (REDUCT & Lobbe Technologies, Regina, SK, Canada.) Hodnocení karcinogenního potenciálu chemických látek (National Institute of Environmental Health Sciences, USA) Hybridní obchodovací systém (Ruggiero and Associates, USA)
44
REDUCT & Lobbe Technologies Inc.: DataLogic [Cit. 4.12.2011] http://www.reduct.com/Solutions/Products/datalogic.htm
53
7
ZHODNOCENÍ STUDIE
První tabulka (Tabulka 7.1 Porovnání programovacích nástrojů ITabulka 7.1 Porovnání programovacích nástrojů I) zahrnuje kritéria Zařazení (zdali se jedná o nástroj tvořící diagnostické, nebo generativní ES), Reprezentace znalostí (způsob jakým jsou reprezentována data), Pravidla (v případě jazyků se jedná o typ pravidel, v ostatních případech se jedná spíše o způsob propojení pravidel), Inference (typ odvození, nejčastěji Zpětné a přímé řetězení). Tabulka 7.1 Porovnání programovacích nástrojů I
Kritérium Nástroj
Zařazení
Reprezentace znalostí
Pravidla
Inference
D+G
Symboly, Seznamy
Logická pravidla
-
Prolog
D
Fakta
Deklarativní pravidla
ZŘ
Clips
G
Rámce
Procedurální pravidla
PŘ, Agenda, Rete
OPS5
D
Neotypované proměnné
Logická pravidla
PŘ, Rete
EXSYS
D+G
OOP
Logické bloky Tabulky, stromy Hiearchické struktury Ontologie
Lisp
G2 CA Aion BRE 11.0 BMIR Protégé
D
OOP
D+G
-
-
EZ-Expert 3.0
D
Ontologie Otypované proměnné
Flex ES Toolkit
D+G
LPA VisiRule 1.5
PŘ, ZŘ i kombinace PŘ, ZŘ -
Více druhů
PŘ, ZŘ
Rámce
Rulesets
PŘ, ZŘ, Flint, Agenda
D
Otypované proměnné
Grafická skládání
PŘ
XpertRule KB
D
Otypované proměnné
Stromy, tabulky, vzory pravidel
Vlastní optimalizátor
Acquire
G
OOP
Pravidlové grafy, rozhodovací tabulky
Vzorové odvozování
Induce IT
G
Otypované proměnné
Excelovské listy
Vzorové odvozování
XmlMiner
G
Metapravidla
Metapravidla
Zpracování metapravidly
D+G
Otypované proměnné
If-then
Generalizace dat
DataLogic/R
54
Legenda k Tabulka 7.2 Porovnání programovacích nástrojů II: Zařazení: D = Diagnostické expertní systémy, G = Generativní expertní systémy, - = Nelze určit z dostupných dat Reprezentace znalostí: OOP = objektově orientované proměnné (neboli data jsou reprezentovýny jako objekty), - = Nelze určit z dostupných dat Inference: PŘ = Přímé řetězení, ZŘ = Zpětné řetězení, - = Nelze určit z dostupných dat Další tabulka (Tabulka 7.2 Porovnání programovacích nástrojů II) obsahuje kritéria Práce s neurčitostí (způsob vypořádání nástroje s neurčitostí), Podporované platformy (na kterých platformách daný nástroj běží), Cena a Dostupná verze (dostupná verze bez kontaktování výrobce na internetu). Tabulka 7.2 Porovnání programovacích nástrojů II
Kritérium Nástroj Lisp Prolog Clips OPS5
Práce s neurčitostí BEZ BEZ BEZ BEZ
Podporované platformy Široká podpora Široká podpora Široká podpora Široká podpora
Cena
Dostupná verze
Zdarma Zdarma Zdarma Zdarma
Plná Plná Plná Plná
faktory důvěry, FL -
WIN
$12450
Demo
WIN, Linux
$6000-40000
-
-
Široká podpora
-
-
-
Široká podpora WIN
Zdarma Zdarma
Plná -
FL, BP, faktory jistoty
Široká podpora
od $1000
Demo
BP, FL
WIN
-
Demo
FL faktory nejistoty
WIN WIN, Linux
-
Induce IT
FL
WIN
XmlMiner
FL
Široká podpora
£5000 $85 pro studenty $5999 za pc, $599 za vývojáře
rozšířená teorie množin
-
-
-
EXSYS G2 CA Aion BRE 11.0 BMIR Protégé EZ-Expert 3.0 Flex ES Toolkit
LPA VisiRule 1.5 XpertRule KB Acquire
DataLogic/R
-
Legenda k Tabulka 7.2 Porovnání programovacích nástrojů II: Práce s neurčitostí: FL = Fuzzy logika, BP = Bayesovské přístupy, BEZ = nekompozicionální systém (bez neučitosti), - = Nelze určit z dostupných dat 55
Podporované platformy: WIN = operační systémy Windows, Široká podpora = zahrnuje většinu operačních systému na trhu (především Windows, Linux, Unix, IBM OS, Solaris a další), - = Nelze určit z dostupných dat Cena: - = Nelze určit z dostupných dat Dostupná verze: Demo = K dispozici je demoverze aplikace omezená svojí funkčností, nebo dobou fungování, Plná = Lze stáhnout plnou verzi programu, týká se většinou nekomerčních aplikací, - = Verze je přístupná pouze po kontaktování výrobce a po zaplacení licence Třetí tabulka v pořadí obsahuje kritéria Uživatelské rozhraní (ohodnocení uživatelského rozhraní z pohledu přehlednosti, jednoduchosti, komplexnosti), Složitost vůči IT znalostem (úroveň potřebných IT znalostí ke zvládnutí vývoje expertního systému), Technická podpora (úroveň technické podpory při vzniklých problémech), Dokumentace & Tutoriály (dostupná dokumentace, tutoriály pro snadnější pochopení práce s nástrojem). Tato tabulka obsahuje číselné hodnocení (čím nižší, tím lepší) na základě mnou provedeného průzkumu a mého hodnocení daných kritérií. Tabulka 7.3 Porovnání programovacích nástrojů III
Kritérium Nástroj Lisp Prolog Clips OPS5 EXSYS G2 CA Aion BRE 11.0 BMIR Protégé EZ-Expert 3.0 Flex ES Toolkit LPA VisiRule 1.5 XpertRule KB Acquire Induce IT XmlMiner DataLogic/R
Uživatelské rozhraní -
Složitost vůči IT znalostem 1 2 2 3
Technická podpora 3 3 1 3
Dokumentace & Tutoriály 3 1 1 3
1 1
1 2
1 2
1 -
1
1
1
1
2 2 2 1 2 2 2 2
2 2 1 1 3 1 2 3 2
2 2 2 2 2 2 2 2 2
1 1 1 1 2 1 1 2 3
Legenda k Tabulka 7.3 Porovnání programovacích nástrojů III: Uživatelské rozhraní: 1 = dobré, 2 = průměrné, 3 = špatné, - = nelze hodnotit Složitost vůči IT znalostem: 1 = snadno pochopitelné, 2 = průměrně náročné, 3 = hodně náročné Technická podpora: 1 = dobrá, 2 = průměrná, 3 = špatná Dokumentace & Tutoriály: 1 = dobré, 2 = průměrné, 3 = špatné Poslední tabulka obsahuje kritéria Vizualizace pravidel (ohodnocení kvality grafického zobrazení pravidel a jejich vztahů), Kompatibilita (ohodnocení spolupráce s ostatními systémy oběma směry), Náročnost na HW a SW, flexibilita (ohodnocení pružnosti systému na změny). Tato tabulka 56
obsahuje číselné hodnocení (čím nižší, tím lepší) na základě mnou provedeného průzkumu a mého hodnocení daných kritérií. Tabulka 7.4 Porovnání programovacích nástrojů IV
Kritérium Nástroj Lisp Prolog Clips OPS5 EXSYS G2 CA Aion BRE 11.0 BMIR Protégé EZ-Expert 3.0 Flex ES Toolkit LPA VisiRule 1.5 XpertRule KB Acquire Induce IT XmlMiner DataLogic/R
Vizualizace pravidel
Kombatibilita
3 3 3 3
Flexibilita
2 2 2 2
Náročnost na HW a SW 1 1 1 1
2 1
1 1
1 2
1 2
1
1
2
1
3 3 3 1 1 3 2 3 3
1 2 2 2 1 3 2 2 3
1 1 1 1 1 1 1 1 1
2 3 2 2 2 3 2 2 3
3 3 3 3
Legenda k Tabulka 7.4 Porovnání programovacích nástrojů IV: Vizualizace pravidel: 1 = dobrá, 2 = průměrná, 3 = špatná/žádná Kompatibilita: 1 = vysoká, 2 = průměrná, 3 = nízká Náročnost na HW a SW: 1 = nízká, 2 = průměrná, 3 = vysoká Flexibilita: 1 = vysoce flexibilní, 2 = průměrně flexibilní, 3 = špatně flexibilní
57
8
ZÁVĚR
Zhodnocení zkoumaných nástrojů jsem zanesl do několika tabulek, které porovnávají jednotlivé odlišnosti (viz kapitola 7.). Nelze určit, který systém se jeví lepší ve všech okolnostech. Každý nástroj přináší své vlastní prostředky a metody. Dnešní trh s programovacími nástroji se rozkládá do obrovské velikosti a přesahuje možnosti této práce, proto jsem vybral pouze malý zlomek jako ukázku možností a jejich porovnání. Původní návrh ohledně počtu vývojových prostředí jsem zredukoval zhruba na polovinu, což mi přišlo absolutně postačující vůči rozsahu bakalářské práce. Samotné testování nástrojů a zjišťování informací k vybraným kritériím nebylo vždy jednoduché, jelikož někteří výrobci nedávají k dispozici demoverze svých produktů ani pro studijní záležitosti. Zároveň se snaží si chránit své know-how, takže ani neuvádějí konkrétní informace ve veřejných manuálech o tom, jak se jejich programovací nástroje chovají (například ne vždy bylo zjištěno, jaké metody se používají pro práci s neurčitostí během inference). Tato práce by se dala rozšířit několika způsoby, například rozšířením výběru programovacích nástrojů, vypracováním porovnání vzniku stejného expertního systému ve všech nástrojích, selekcí aplikační oblasti a vyhodnocení všech nástrojů v dané oblasti, vytvořením skupiny respondentů popisující subjektivní hodnocení a zpracováním jejich výsledků do statistického souboru.
58
9
ZDROJE & LITERATURA
A I Developers, Inc.: EZ-Xpert 3.0 [Cit. 4.12.2011] http://www.ez-xpert.com/index.html Acquired Intelligence Inc.: Acquired Intelligence [Cit. 4.12.2011] http://www.aiinc.ca/ Baxant, P. — Sokanský, K.: Expertní systém pro návrh osvětlení, časopis Světlo [Cit. 3.12.2011] http://www.odbornecasopisy.cz/index.php?id_document=35933 Berka, P.: Expertní systémy. Praha: Vysoká škola ekonomická, 1998. ISBN 80-7079-873-4. Berka, P.: Úvod do umělé inteligence, přednáška č. 6, Prolog. [Cit. 3.12.2011] http://sorry.vse.cz/~berka/docs/4iz229/s06-Prolog-4p.pdf Berka, P.: Úvod do umělé inteligence, přednáška č. 7, Clips. [Cit. 3.12.2011] http://sorry.vse.cz/~berka/docs/4iz229/s07-CLIPS-4p.pdf CA Technologies: CA Aion® Business Rules Expert 11.0 [Cit. 4.12.2011] http://www.ca.com/us/products/detail/CA-Aion-Business-Rules-Expert.aspx Carnegie Mellon University: Free/Cheap Expert System Shells: CLIPS and Related Systems [3.12.2011] http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/expert/part1/faq-doc-6.html Carnegie Mellon University: Commercial Expert System Shells [Cit. 4.12.2011] http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/expert/part1/faq-doc-7.html Dictionary of Programming Languages: OPS5 [Cit. 4.12.2011] http://cgibin.erols.com/ziring/cgibin/cep/cep.pl?_key=OPS5 Dvořák, J.: Expertní systémy. VUT, Brno, 2004. 92s. [Cit. 3.12.2011] http://www.uai.fme.vutbr.cz/~jdvorak/Opory/ExpertniSystemy.pdf Dvořák, J.: Jazyky pro umělou inteligenci. VUT, Brno, 2005. 84s. [Cit. 3.12.2011] http://www.uai.fme.vutbr.cz/~jdvorak/Opory/OporaJUI.pdf Exsys Inc: The expert system experts [Cit. 4.12.2011] http://www.exsys.com/index.html Gensym: G2 2011 [Cit. 4.12.2011] http://www.gensym.com/ Giarratano, J. – Riley, G.: Expert Systems. Principles and Programming, PWS Publishing Co. 1993. Inductive Solutions, Inc.: Induce-It [Cit. 4.12.2011] http://www.inductive.com/softcase.htm Kučera, J.: Lisp [3.12.2011] http://www.fi.muni.cz/usr/jkucera/pv109/2005/xkuklin.htm Logic Programming Associates Ltd.: Flex Toolkit [Cit. 4.12.2011] http://www.lpa.co.uk/flx.htm Logic Programming Associates Ltd.: LPA VisiRule 1.5 [Cit. 4.12.2011] http://www.lpa.co.uk/vsr.htm PC AI Magazine: Expert Systems [Cit. 4.12.2011] http://www.pcai.com/web/ai_info/expert_systems.html PC AI Magazine: OPS Programming Language [Cit. 4.12.2011] http://www.pcai.com/web/ai_info/pcai_ops.html 59
REDUCT & Lobbe Technologies Inc.: DataLogic [Cit. 4.12.2011] http://www.reduct.com/Solutions/Products/datalogic.htm Scientio LLC: XMLMiner [Cit. 4.12.2011] http://www.scientio.com/products/XmlMiner SOURCEFORGE.NET: Clips: A Tool for Building Expert Systems [Cit. 3.12.2011] http://clipsrules.sourceforge.net/ Stanford University School of Medicine: Protégé [Cit. 4.12.2011] http://protege.stanford.edu/ Rubáček, F.: Programování v Prologu [Cit. 3.12.2011] http://iris.uhk.cz/logpro/ The G6G Consulting Group, LLC: The G6G Directory of Omics and Intelligent Software, Expert (Knowledge Based) Systems/Tools [Cit. 4.12.2011] http://www.g6gsoftwaredirectory.com/apps/ai/expert-systems/ListingsByAppISExpertKBSysts.php Ultrastudio.org: Lisp (language) [Cit. 3.12.2011] http://ultrastudio.org/en/Lisp_%28language%29 Vychodil, V.: Paradigmata programování IV, cvičení č. 1 [Cit. 3.12.2011] http://vychodil.inf.upol.cz/courses/cs2pp/practice1.html XpertRule Software Ltd.: XpertRule Knowledge Builder [Cit. 4.12.2011] http://www.xpertrule.com/pages/info_kb.htm
60