Expertní systém
Z Wikipedie, otevřené encyklopedie
Expertní systém je počítačový program, který má za úkol poskytovat expertní rady, rozhodnutí nebo doporučit řešení v konkrétní situaci.
Expertní systémy jsou navrženy tak, aby mohly zpracovávat nenumerické a neurčité informace a řešit tak úlohy, které nejsou řešitelné tradičními algoritmickými postupy.
Expertní systém má dvě základní komponenty, které jsou na sobě relativně nezávislé. Řídící mechanismus pro odvozování závěrů a bázi znalostí.
Obsah |
[editovat] Funkce expertního systému
V praxi expertní systémy plní celou řadu funkcí:
- knihovník – pomáhají lidem hledat, organizovat a interpretovat informace potřebné k řešení úloh,
- rádce – shromažďuje a poskytuje specializované expertní znalosti,
- instruktor – pomáhá uživatelům získávat potřebné znalosti a řešit úkoly,
- asistent – zabezpečuje řešení některých rutinních úloh a umožňuje lidem věnovat se kreativnějším aspektům řešení úkolu.
[editovat] Výhody expertních systémů
- Poskytuje stále stejné výsledky, může pracovat 24 hodin denně, nemusí si brát dovolenou, nedá výpověď, rozhodování expertního systému neovlivňuje únava, časový stres a jiné faktory.
- Dokáže svůj výrok jednoznačně zdůvodnit.
- Pokud je potřeba více expertů, stačí je pouze kopírovat.
[editovat] Nevýhody expertních systémů
- Lidský expert v dané oblasti nedokáže své vědomosti expertnímu systému předat přímo, ale je odkázaný na prostředníka – expertního inženýra.
- Lidský expert obvykle nedokáže podrobně popsat všechny aspekty, které se podílí na jeho rozhodnutí.
- Lidský expert provádí svá rozhodnutí také tak, že je nedokáže nijak přesně zdůvodnit. Jednoduše proto, že nezná, nebo zapomněl zdroj svého poznání a tvrdí: „Nevím, ale vždycky to dělám tak a všichni to tak v tomto případě dělají.“
- Lidský expert má další vlastnosti, které do expertního systému nelze vůbec promítnout – tzv. selský rozum, intuici, schopnost rozpoznat velmi vzácné výjimky a okamžitě se jim přizpůsobit.
- Na lidském rozhodování se podílí i další znalosti a schopnosti, které s problémem na první pohled přímo nesouvisí – všeobecný přehled, lidská životní zkušenost a moudrost, zdravý úsudek, vtip.
[editovat] Rozdíl mezi expertním systémem a jiným počítačovým programem
Běžný počítačový program je obvykle navržen tak, že zpracovává nějaká vstupní data a pomocí algoritmů, které jsou naprogramovány v určitém programovacím jazyce, dospěje k nějakým závěrům – výsledkům.
Při tvorbě počítačového programu proto musí nejprve specialista (počítačový analytik) velmi přesně a detailně popsat řešení daného problému a rozdělit řešení na dílčí kroky, které jsou algoritmizovatelné. Podle tohoto popisu pak programátor vytvoří počítačový program. Část inteligence programu může být uložena mimo samotný program v souborech nebo databázích, část inteligence je realizovaná v programovém kódu samotném.
Expertní systém používá úplně jiný model. Veškerá inteligence je uložena mimo programový kód. Programový kód řídícího mechanismu má za úkol pouze vyhodnocovat stav, který je ovlivněn expertními znalostmi uloženými v bázi znalostí a informacemi získanými z okolního světa (například odpovědi na otázky kladené uživateli, výsledky měření nějakých čidel apod.). Na základě toho expertní systém samostatně rozhoduje o tom, zda je schopen poskytnout expertní radu nebo zda je potřebné získat ještě další informace. Expertní systém se dokáže rozhodnout i při odpovědích, které nejsou úplně přesné (asi ne, nevím, velký, hodně velký apod.) nebo si vzájemně protiřečí.
Vytváření expertního systému proto pobíhá jinak. Řídící mechanismus je nezávislý, a tak nový expertní systém znamená vytovření nové báze znalostí. Transformovat poznatky lidského experta do této podoby není vůbec jednoduché. Expertní znalosti nejsou reprezentovány pouze holými fakty (tzn. všechno co se musel expert naučit nazpamět), ale i vztahy mezi jednotlivými aspekty problému se všemi pravidly i výjimkami. Obvykle tuto činnost provádí specialista – znalostní inženýr. Tento mezičlánek je kritickou slabinou dnešních expertních systémů. Proto ještě dnes neexistují softwaroví daňoví poradci, účetní, právníci apod.
[editovat] Strategie usuzování
Expertní systémy používají při řešení úlohy dvě základní strategie procesu usuzování.
[editovat] Dopředné řetězení
Jedná se o usuzování řízené daty (dopředné řetězení, forward chaining).
Expertní systém postupuje tak, že získává potřebná data a na jejich základě se rozhoduje. Používá se při řešení problému zahrnující syntézu (navrhování, konfigurace, plánování apod.).
- Příklad
Expertní systém mi může vyřešit problém, co si dám dnes k večeři. Zeptá se, na co mám chuť (má to být něco sladkého, nebo pikantního?), jaké mám zásoby v ledničce (máš kuřecí maso?) a ve spíži (máš rýži?), a podle toho doporučí ten správný recept.
[editovat] Zpětné řetězení
Jedná se o usuzování řízené cíli (zpětné řetězení, backward chaining).
Expertní systém postupuje tak, že vybere možný závěr a pokouší se dokázat jeho platnost hledáním dat, které tento závěr podporují. Tato strategie je vhodná pro diagnostické problémy, které mají malý počet cílových hypotéz.
- Příklad
Dnes večer přijdu domů a budu mít chuť na Kung Pao. Expertní systém mi potvrdí, zda je to možné (na základě stavu mé ledničky a spíže). Na rozdíl od mechanického porovnání seznamu obsahu ledničky s receptem, expertní systém potvrdí, že je to možné i v případě, že bude chybět nějaká nepodstatná záležitost nebo pokud bude možné nahradit požadovanou surovinu něčím jiným.