Portál AbcLinuxu, 30. dubna 2025 11:30
V úvodnej časti svojich zápiskov pod názvom Expertný systém CLIPS som letmo predstavil jedno prostredie na tvorbu expertných systémov a spomenul som aj prvé expertné systémy vznikajúce ešte v 60. rokoch minulého storočia. V tejto časti by som chcel bližšie vysvetliť, čo to ten expertný systém vlastne je, z čoho sa skladá a aký je rozdiel medzi ním a znalostným systémom.
Expertný systém hľadá riešenia problému vo vnútri istého súboru riešení alebo istej množiny znalostí, ktoré boli formulované expertami pre danú špecifickú oblasť. Je založený na reprezentácii znalostí týchto expertov. Znalosti využíva na riešenie daného problému. Sú to vzájomne kooperujúce programy na vymedzenie triedy úloh, ktoré sú inak riešené expertami. Obsahuje znalosti experta na určitú špeciálnu oblasť, je schopný v rozsahu týchto znalostí uskutočňovať rozhodnutia rýchlo a kvalitne.
Experné a znalostné systémy nie sú totožné. Platí, že každý expertný systém je tiež znalostným systémom. Opačne to platiť nemusí, keďže znalostnému systému môžu chýbať niektoré dôležité funkcie a mechanizmy expertných systémov. Najčastejšie je to absencia vysvetlenia a zdôvodnenia rozhodnutí. Znalostný systém je teda vpodstate širší pojem pre systémy spracovávajúce poznatky a už zo svojej podstaty sa u neho predpokladá znalosť problematiky. Expertné systémy sú už trochu sofistikovanejšie, vyššia liga. Vzťah medzi znalostným a expertným systémom by sa dal prirovnať ku vzťahu odborníka k expertovi - špecialistovi. Odborník "vie a dokáže to", od experta sa vyžaduje schopnosť zdôvodniť svoje riešenia a následné rozhodnutia.
Pre pochopenie problematiky by som rád pokračoval rozprávaním o základných komponentách znalostného systému, keďže každý expertný systém je zároveň aj znalostným systémom. V ďalšom pokračovaní by som potom popísal tú expertnú časť expertného systému.
Každý znalostný systém musí obsahovať minimálne bázu poznatkov, bázu faktov a inferenčný mechanizmus.
Najpoužívanejšími znalostnými systémami sú tzv. pravidlové systémy. CLIPS k nim patrí. Poznatky sú v takomto type znalostných systémov reprezentované v podobe pravidiel typu AK - POTOM (IF - THEN). Použitie pravidiel sa zakladá na známom logickom princípe modus ponens pre odvodzovanie.
Ak je fakt A pravdivý a platí pravidlo (ak A potom B), potom fakt B je odvodený ako pravdivý.
Pri aplikovaní tohoto princípu na množinu pravidiel vzniká inferenčná reťaz pravidiel nadväzujúcich na seba tak, že dôsledok jedného pravidla je prdpokladom toho nasledujúceho. Reťazenia môžu byť dvoch typov: dopredné reťazenie a reťazenie spätné. Pri doprednom reťazení inferenčný mechanizmus interpretuje pravidlá s ohľadom na známe fakty, až dospeje k výsledku, kedy už nemôže odvodiť nový fakt. Pri spätnom reťazení inferenčný mechanizmus vychádza z cieľa a rozhoduje sa, či existujúce fakty umožňujú jeho dosiahnutie.
Výhodou pravidlových systémov je jednotnosť vo všetkých použitýh poznatkoch a prirodzenosť, ktorá je blízka uvažovaniu človeka. Pravidlové systémy majú však aj svoje muchy. Jednou z nich môže byť nebezpečenstvo nekonečného reťazenia, toto by už malo byť v najnovšom CLIPS-e odstránené. Pri pridávaní nového pravidla do systému môže prísť k rozporu s už reprezentovanými poznatkami. Báza faktov sa môže stať neprehľadnou pri veľkom počte pravidiel.
V nasledujúcej časti by som sa chcel zaoberať tým, čo obsahuje expertný systém naviac od toho znalostného. Nechajte sa prekvapiť.
Bibliografické údaje:
Znalostné systémy - [Rich, Knight 1990], [Popper, Kelemen 1989]
Pravidlové systémy - [Harmon, Sawyer 1990], [Gonzales, Dankel 1993]
Odporúčaná literatúra v českom a slovenskom jazyku:
Berka, P.: Tvorba znalostních systému. Vysoká škola ekonomická, Praha 1994
Bíla, J.: Umělá inteligence a neuronové sítě v aplikacích. Strojní fakulta, ČVUT, Praha 1998
Gál, E., Kelemen, J.: Myseľ, telo, stroj. Bradlo, Bratislava 1992
Kelemen, J.: Budoucí Altamira. Votobia, Olomouc 1996
Kelemen, J., Ftáčnik, M., Kalaš, I., Mikulecký, P.: Základy umelej inteligencie. Alfa, Bratislava 1992
Tiskni
Sdílej:
Nebyl by tu někdo schopný porovnat (aspoň zhruba) CLIPS s Lisou, případně jinými podobnými nástroji?
Hm, jak jsi hraji s tim CLIPSem, neni mi jasna jedna vec. Hodne tech prikladu je na prochazeni stavoveho prostoru, a pritom generuji vsechna mozna reseni jako fakta, a vyuzivaji tech pravidel, aby je testovali. Tento postup mi ovsem pripada znacne pametove narocmy, protoze uz zavrhnuta reseni zustavaji v pameti, nebo se pletu?
Ptam se proto, ze resim podobny problem - mam vicero moznosti, co neco muze byt/znamenat, a teprve na zaklade dalsich faktu (plynuvsich z dalsich pravidel) se rozhodne, ktera varianta je ta spravna. Nepripada mi ovsem efektivni mit vsechny varianty naraz ulozene v pameti.
Neviem s ako rozsiahlymi dátovými súbormi sa pokúšate pracovať, ale CLIPS som skúšal na PC so 64MB RAM na Win95 a enormný nárast spotreby RAM som nezaznamenal. Do zdrojákov CLIPSu som nepozeral ale myslím, že s uvoľňovaním pamäti problémy nemá. V Linuxe to už vôbec neriešim.
Neslo mi ani tak o to, kolik pameti sezere CLIPS, jako spis o techniku programovani v nem. Ale koukal jsem znovu do tech prikladu, a asi jsem se mylil - negeneruji se vsechny varianty jako fakta, takze to asi bude v pohode, pokud se to rozumne udela.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.