310 likes | 425 Views
Szakértői rendszerek - CLIPS. Bogdan Kinga. Bevezetés. Az ember régi vágya, hogy olyan szerkezetet készítsen, amely az emberi agyat tudja helyettesíteni. Az emberi gondolkodás kutatásával a kognitív pszichológia foglalkozik. Azokat a folyamatokat vizsgálja, amikor az ember: feldolgozza
E N D
Szakértői rendszerek - CLIPS Bogdan Kinga
Bevezetés • Az ember régi vágya, hogy olyan szerkezetet készítsen, amely az emberi agyat tudja helyettesíteni. • Az emberi gondolkodás kutatásával a kognitív pszichológia foglalkozik. Azokat a folyamatokat vizsgálja, amikor az ember: • feldolgozza • tárolja az őt érőingereket • majd a megszerzett ismereteket később esetleg később más problémák megoldásában alkalmazza • Ezen kutatások végcélja a mesterséges intelligencia megteremtése lenne.
Emberi vs. Mesterséges szaktudás EMBERI SZAKTUDÁS Hátrányok • Mulandó • Csak oktatással fejleszthető • Nehezen dokumentálható • Nem mindig következetes • Nagyon meg kell fizetni MESTERSÉGES SZAKTUDÁS Előnyök • Állandó, tartós • Könnyű reprodukálni • Könnyen dokumentálható • Mindig következetes • Elérhető áron beszerezhető
Emberi vs. Mesterséges szaktudás EMBERI SZAKTUDÁS Előnyök • Kreatív és innovatív • Tanulva idomul a környezetéhez • Többféle érzékszervet használ • Gondolkodási folyamatai változatosak gazdagok • Széles látószögből, több aspektusból vizsgálja a problémákat • Józan ítélőképessége van a fals adatok kiszűrésére MESTERSÉGES SZAKTUDÁS Hátrányok • Lélektelen, nincs ihlete • Csak azt tudja amit beletápláltak • Egyfajta kommunikációt használ • Szimbólumokkal, numerikus értékekkel operál • Szűk látószögből, csak a beépített aspektusból képes a problémákhoz hozzáállni • Technikai tudása van, nem lehet vakon hinni neki
Szimbolikus programozás • Heurisztikának nevezünk minden olyan elvet, szabályt, következtetést, értékelést, amely bizonyos fajta szituációban érvényes, de nem mindig. • Az ember szinte minden gondolatmenetében heurisztikákat alkalmaz, csak így tud a döntési lehetőségek sokaságának és ezek következményeinek „tengerében”. • Szimbolikus programozás esetén a program futását nem algoritmusok, hanem heurisztikák határozzák meg.
Szakértői rendszerek (Expert System) • Olyan programok, melyekbe be van építve bizonyos feladat-specifikus tudás és azok az analitikus képességek, melyekkel általában a szakértő emberek is rendelkeznek. Ezek segítségével von le következtetéseket szakértő rendszerünk. • Az ilyen rendszereknek olyan képességei vannak melyekkel látszólag logikusan érvelve vonnak le következtetéseket. • Olyan ismeretalapú rendszer, mely magas szintű teljesítményt nyújt egy szűk problémakör kezelésében.
Szakértői rendszer - definíciók • „Számítógépes rendszer, az emberi szakértői tevékenység szimulálására, amely a logikai következtetés szabályai szerint végez műveleteket az adott információkkal”(Jonson 1984) • „A szakértőrendszer a szakértői ismeretanyag egy komponensének tudásbázissal történő reprezentálása számítógépen olyan formában, hogy lehetőséget nyújtson intelligens tanácsadásra, vagy egy folyamattal kapcsolatos intelligens döntéshozatalra. A rendszer képes megindokolni döntéseit.”(Brit Számítástecn. Int.)
Szakértő rendszerek jellemzői • Hasonlójavaslatokat képes tenni mint egy emberi szakértő • Speciális ismeretekkel rendelkezik • Intelligens párbeszédre képes • Partnere a felhasználónak, mindkét fél kezdeményezhet beszélgetést • Kérdéseit magyarázza, következtetéseit indokolja • Szimbolikus információkat tárol, ezen információkat heurisztikus módszerekkel dolgozza fel
Mire jó egy szakértő rendszer? • Növeli a munka hatékonyságát: • Kevesebb idő • Kevesebb ember • Kevesebb hibás döntés • Tudásuk mindig elérhető • Tudásuk egyszerűen és olcsón többszörösíthető
Mit várunk el egy szakértő rendszertől? • Adjon javaslatot • Egyenrangú fél legyen a „társalgásban” • Tegyen fel kérdéseket • Magyarázza meg a kérdéseit • Indokolja meg a válaszait • Bizonytalan helyzetekben is adjon elfogadható javaslatot
Szakértő rendszerek története • 1950-1970 – általános problémamegoldó módszerek • 1970-1990 – szűk problémakör megoldására alkalmas rendszerek • Minél általánosabb egy program annál gyengébb a teljesítménye, konkrét feladatok megoldása esetén • Felmérték, hogy egy program erőssége a benne tárolt ismeretanyag minőségétől és mennyiségétől függ elsősorban
Szakértői rendszer burok Felhasználói felület Eset-specifikus adatok Magyarázórendszer Következtető motor Felhasználó Tudásbázis Tudásbázis-szerkesztő Szakértői rendszerek felépítése
Szakértői rendszerek szerkezete • Tudásbázis – tények, kapcsolatok, heurisztikák, szabályok, vezérlési ismeretek • Következtető motor – megoldáskereső stratégia implementált változata • Magyarázó alrendszer – megmagyarázza a kérdéseket valamint a javaslatokat • Tudásbázis-szerkesztő: az ismeretbázis megépítéséhez, teszteléséhez és módosításához nyújt segítséget • Felhasználói felület: felhasználóbarát lehetőséget nyújt az ember-gép párbeszédhez • Eset-specifikus adatok: tárgyköri ismeretek
Szakértőrendszerek előnyei • Pótolják a szakértőhiányt –elérhető áron terjesztik a szakértő ismereteit • Jól követik a tárgyterület változásait –az ismeretbázist könnyű módosítani • Növelik a szakértő képességeit • Fokozzák a szakértő produktivitását • Megőrzik a szakértelmet • Mindig következetesek a tanácsadásban –nincsenek emocionális tényezők, nem fáradt... • Állandóan rendelkezésre áll • Részleges és nem-teljes adatokkal is tudnak dolgozni • Képesek megindokolni az eredményt
Szakértői rendszerek hátrányai • Ismereteik egy adott szűk tárgyterületről származnak –nincsenek tudatában ennek • Válaszaik nem mindig helyesek –mindig meg kell fontolni a javaslatukat • Nincs hétköznapi józan eszük • Az ismeretszerzés bonyolult folyamat • A fejlesztés gyakran évekig tart
Alkalmazások • Orvosi diagnosztika (tünet elemzés) • Műszaki diagnosztika (hibaelemzés) • rezgés, zaj, részecskevizsgálat • Erőművi, közlekedésbiztonsági rendszerek • Geológia(kőzetelemzés) • Matematika • Gazdasági döntéshozatal(tender értékelés)
Napjainkban használt szakértő rendszerek • Provider Selection Tool: Web-alapú tanácsadórendszer, amely a munkáltatókat és a munkavállalókat segíti megfelelő belgyógyász kiválasztásában • Eszközök: • ART*Enterprise • OrACLE7.1 • Netscape • Web böngészők
Napjainkban használt szakértő rendszerek • FASTrakAPT: • lakások felújítását tervező rendszer • Évente 6 millió dollár megtakarítást eredményez • Eszközök: • UNIX expert system tool • VisualC++ • Crew_NS: • a Holland Vasutak 5000 vonatkísérőjének és vezetőjének beosztását ütemező rendszer
Napjainkban használt szakértő rendszerek • Rail Train Scheduler: • termékek csomagolását tervező és ütemező rendszer • évente félmillió dollár a megtakarítás • Eszközök: • ART*Enterprise
CLIPS - Bevezetés • Egy közkincs, szakértői rendszerek kidolgozására létrehozott fejlesztői eszköz. • A CLIPS név a „CLanguageIntegratedProductionSystem” rövidítése • A CLIPS első verziói 1985-től egész 1990-ig a NASA- Johnson Űrközpont által került kifejlesztésre. A fejlesztés eredeti neve NASA’sArtificialInteligenceLanguage (NAIL) volt. • Valószínűleg a legelterjedtebben használt szakértői rendszer írására szolgáló eszköz, hiszen gyors, hatékony és ingyenes. • Annak ellenére, hogy már közkincs, még mindig frissíti és támogatja eredeti szerzője GaryRiley.
CLIPS – Programozási nyelve • Olyan programozási nyelv, mely támogatja a : • Szabályalapú • Objektumorientált - COOL • Eljárás-orientált programozást • A CLIPS alapvetően szabály-alapú rendszer • Csak előrefele haladó levezetési szabályokat használ • Szabályalapú nyelve: • Ténylistát tud létrehozni • Szabálylistát tud létrehozni • Illeszti a tényeket a szabályokra • Lehetőség van a szabályok súlyozására.
A CLIPS telepítése • Letöltés: • http://clipsrules.sourceforge.net/ • Itt minden szükséges tutorial is megtalálható • Telepítés: • A letöltött file egy MSI file, mely a windows installation wizard használatával kényelmes felületet biztosít a CLIPS rendszer telepítéséhez.
Példa – Hello, world! • Parancssoros ablakunk van. • “Hello, world!” a képernyőn • (printout t "Hello, world!" crlf)
CLIPS – Tények és szabályok • Mint minden más szakértői rendszer, CLIPS-ben is szabályokkal és tényekkel dolgozunk. • Több tény együttes fennállása teszi lehetővé egy szabály alkalmazását. • A szabályokat a következő módon hozhatjuk létre: (defrule rule1 (car_problem (name ignition_key) (status on)) (car_problem (name engine) (status wont_start)) => (assert (car_problem (name starter) (status faulty))) • A tényeket a következő módon definiálhatjuk: (deffactstrouble_shooting (car_problem (name ignition_key) (status on)) (car_problem (name engine) (status wont_start)) (car_problem (name headlights) (status work)))
CLIPS - függvények • Függvény létrehozása • deffunction
CLIPS – Program működése • Létrehozzuk a tényeket egymás után, ekkor ezek állapotot generálnak a memóriában. • Az állapotok függvényében megnézzük az alkalmazható szabályokat. • Ha egy szabály alkalmazható, akkor alkalmazzuk, azaz megnézzük milyen következményei vannak és végrehajtjuk őket. • Pl. rendszerem
1. Példa – What’s that fruit? Red “Grapes” Y Diameter > 4 Vine Color ? Green “Watermelon” N Red “Cherry” Color ? Tree Green “Apple”
; ********************************** ; rules ; ********************************** (defrule vine (diameter ?dia) (test (> ?dia 4)) => (assert (fruitclass vine))) (defrule tree (diameter ?dia) (test (< ?dia 4)) => (assert (fruitclass tree))) ;========================= (defrule watermelon (fruitclass vine) (color green) =>(printout t “Watermelon." crlf)) (defrule watermelon (fruitclass vine) (color red) => (printout t “Grapes." crlf)) (defrule cherry (fruitclass tree) (color red) => (printout t “Cherry." crlf)) (defrule apple (fruitclass tree) (color green) => (printout t “Apple." crlf)) Ex 1 – Source
; ******************************** ; facts ; ******************************** (deffacts fruit_conditions (diameter 1) (color red)) CLIPS CLIPS> (load “ex1.clp”) CLIPS> (defffacts fruit_conditions (diameter 1) (color red)) CLIPS> (reset) CLIPS> (run) Cherry. 1. Példa – Futtatás