Szakértői rendszerek - CLIPS

Post on 02-Jan-2016

70 views 0 download

description

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 - PowerPoint PPT Presentation

Transcript of Szakértői rendszerek - CLIPS

BOGDAN KINGA

Szakértői rendszerek - CLIPS

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 vs. Mesterséges szaktudás

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 rendelkezikIntelligens párbeszédre képesPartnere a felhasználónak, mindkét fél

kezdeményezhet beszélgetéstKérdéseit magyarázza, következtetéseit indokoljaSzimbolikus 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 javaslatotEgyenrangú 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 rendszerek felépítése

Felhasználói felület

Tudásbázis-szerkesztő

Magyarázórendszer

Következtető motor

Eset-specifikus

adatok

Tudásbázis

Szakértői rendszer burok

Felh

asz

náló

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égeitFokozzák a szakértő produktivitásátMegőrzik a szakértelmetMindig következetesek a tanácsadásban –

nincsenek emocionális tényezők, nem fáradt...Állandóan rendelkezésre állRészleges és nem-teljes adatokkal is tudnak

dolgozniKé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ükAz ismeretszerzés bonyolult folyamatA 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 rendszerekGeoló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 „C Language Integrated Production System” 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’s Artificial Inteligence Language (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 Gary Riley.

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ú rendszerCsak előrefele haladó levezetési szabályokat

használSzabá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.

23

A CLIPS kezdőképernyője

24

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:(deffacts trouble_shooting (car_problem (name ignition_key) (status on)) (car_problem (name engine) (status wont_start)) (car_problem (name headlights) (status work)))

26

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

28

1. Példa – What’s that fruit?

Diameter > 4 VineY

Tree

N

Red

Green

Red

Green

“Grapes”

“Watermelon”

“Cherry”

“Apple”

Color ?

Color ?

29

Ex 1 – Source

; **********************************; 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))

30

1. Példa – Futtatás

; ********************************

; 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.

Köszönöm a figyelmet!