Készítette: Ősz Edina 2012. október 31. Szakértő rendszerek verifikálása, validálása Szakértő rendszer problématípusok Készítette: Ősz Edina 2012. október 31.
Áttekintés Tesztelés Verifikálás Validálás Problématípusok Alaptechnikák Problématípusok és alaptechnikák kapcsolata
Követelmények Hiteles szakértő rendszerrel kapcsolatos minőségi követelmények: megbízhatóság védelem illetéktelen felhasználókkal szemben biztonságosság felhasználó védelme karbantarthatóság hordozhatóság
Hibaforrások Hiányzó követelményspecifikáció (vagy ha nem tartják be) – rendszerhibák 97 %-a Szintaktikai és szemantikai hibák a tudásbázisban Nem megfelelően reprezentált ismeretanyag A következtetések nem illeszkednek a problémához hibás, vagy nincs megoldás
Verifikálás és validálás összehasonlító ellenőrzés egy fejlesztési fázis eredményének értékelése az eredmény megfelel-e a fázis kezdetén szabott követelményeknek és szabványoknak követelményspecifikáció szintaktikai és szemantikai hibák tudásbázis konzisztenciája és teljessége
Verifikálás és validálás az elkészült rendszer kiértékelési eljárása a szoftver és dokumentáció megfelel-e a minőségi jellemzőknek nincs megfelelően reprezentálva a tárgyköri ismeretanyag a következtetések nem illeszkednek a problémához
Tesztelés Hagyományos szoftverek Tudásalapú szoftverek Előre meghatározható tesztesetek A rendszer videlkedésének megfigyelése révén szerezhetőek be a tesztesetek Adott bemenethez meghatározható kimenet Adott bemenethez szakértő függő (elfogadható) kimenet, bizonytalanságkezelés Objektív és teljes körű ellenőrzés A tesztsorozat lefuttatása után a rendszer érvényesnek mondható Szubjektív és nem teljes körű ellenőrzés, az esetek sikeres lefuttatása még nem jelenti a rendszer érvényességét Laboratóriumi környezetben tesztelhető Laboratóriumi környezetben nem tesztelhető
Tesztelés Nem lehet objektív Nem lehet teljeskörű különböző szakemberek eltérő véleménye Nem lehet teljeskörű
Verifikálás Eleget tesz-e a rendszer a specifikációnak? Nincsenek-e hibák a rendszerben? A verifikálás hasonló a hagyományos rendszerekéhez Fejlesztés verifikált eszközzel → elegendő a tudásbázist ellenőrizni
Verifikálás Specifikáció teljesítése megfelelő a tudásreprezentációs módszer? megfelelő a következtetési módszer? megfelelő felhasználói felület? megfelelő magyarázatadás? …
Jellemző programozási hibák Redundáns szabályok szintaktikailag Szab-a1 if páratartalom = magas and hőmérséklet = forró then zivatar = várható Szab-a2 if hőmérséklet = forró and páratartalom = magas then zivatar = várható
Jellemző programozási hibák Redundáns szabályok szemantikailag Szab-a3 if páratartalom = magas and hőmérséklet = forró then zivatar = várható Szab-a4 if páratartalom = magas and hőmérséklet = forró then villámlás-dörgés-zápor = várható
Jellemző programozási hibák Egymásnak ellentmondó szabályok if páratartalom magas and hőmérséklet=forró then napsütés = várható. if páratartalom magas and hőmérséklet=forró then not napsütés = várható
Jellemző programozási hibák Magában foglaló szabályok Szab-c1 if páratartalom = magas and hőmérséklet = forró then zivatar = várható Szab-c2 if páratartalom = magas and hőmérséklet = forró and légnyomás = alacsony then zivatar = várható
Jellemző programozási hibák Körkörös szabályok Szab-d1 if testvérek(X,Y) then szülők-azonosak(X,Y) Szab-d2 if szülők-azonosak(X,Y) then testvérek(X,Y)
Jellemző programozási hibák Szükségtelen feltétel Szab-e1 if piros-foltos = igen and lázas = igen then betegsége = kanyaró Szab-e2 if piros-foltos = igen and lázas = nem then betegsége = kanyaró
Jellemző programozási hibák Zsákutca szabályok a szabály nem tesz tüzelőképessé más szabályokat Hiányos vagy hiányzó szabályok Elérhetetlen szabályok
Jellemző programozási hibák Bizonyossági értékek esetén változik a helyzet Szab-c1 if páratartalom = magas and hőmérséklet = forró then zivatar = várható Szab-c2 if páratartalom = magas and hőmérséklet = forró and légnyomás = alacsony then zivatar = várható
Jellemző programozási hibák Bizonyossági értékek esetén változik a helyzet Szab-c1 if páratartalom = magas and hőmérséklet = forró then zivatar = várható cf 80 Szab-c2 if páratartalom = magas and hőmérséklet = forró and légnyomás = alacsony then zivatar = várható cf 90
Validálás Utolsó minőségellenőrzési lépés Következtetések elfogadhatósága Eleget tesz-e a felhasználói elvérésoknak
Validálás Informális szakértők és felhasználók bevonása rendszer futtatása javaslatok megvitatása modul fejlesztéséhez megfelelő rendszer validálásához nem kielégítő
Validálás Validálás teszteléssel előkészített tesztesetek futtatása szakértők megkérdezése javaslatok összevetése a szakértők minősítik a rendszer javaslatait fekete doboz Turing teszt
Validálás Helyszíni teszt Validálás modulonként Érzékenység elemzés valós esetek futtatása a helyszínen nem várt hibák léphetnek fel Validálás modulonként független modulokra bontható rendszer kisebb, kevésbé bonyolult rendszerszintű validálás is kell Érzékenység elemzés bemenetek kismértékű módosítása
Validálás kritériumai Összehasonlítás ismert korábbi eredményekkel Összehasonlítás szakértői problémamegoldással Összehasonlítás elméleti lehetőségekkel Pontosság Teljeskörűség
Validálás Lehetséges hibák legális bemenet, téves következtetés A rendszer nem szabatos. fel nem dolgozható bemenet A rendszer nem teljes körűen fogja át a problémát.
Szakértő rendszer problématípusok
Problématípusok Hayes-Rooth osztályozás, 1983: interpretáció előrejelzés diagnózis objektumtervezés tevékenységtervezés őrzés vagy monitorozás hibaelhárítás javítás oktatás szabályozás
Problématípusok Probléma a Hayes-Rooth osztályozással: nem minden típus elemi hibaelhárítás = diagnózis + javítás diagnózis részosztálya az interpretációnak Ezért nem lehet ezekre alaptechnikákat javasolni Más típusú osztályozás
Problématípusok Harmon-féle osztályozás, 1990 procedurális problémák diagnosztizáló problémák monitorozó vagy őrző problémák objektumtervező (design) vagy konfiguráló problémák tevékenységtervező (planning) vagy ütemező (scheduling) problémák
Procedurális problémák A tárgyköri ismeretanyag leírható egyszerű eljárással Probléma leírása: egymás utáni lépések sorozatával döntési fával
Procedurális problémák Jellemző megvalósítási alaptechnikák: hagyományos programozás esetleg tudásalapú technikák – amennyiben gyors fejlesztés inkrementális fejlesztés gyakran módosuló program a szakember nem ismeri a hagyományos nyelveket
Diagnosztizáló problémák Következtetés megfigyelésekből okokra A lehetséges okok adottak, számuk kevés Jellemző problémakör: hibakezelés zajos adatokon problématér nagy és életlen bonyolultan kapcsolódó lépések döntési fa reprezentáció nem lehetséges
Diagnosztizáló problémák A szakértő saját és más emberek megfigyeléseire is támaszkodik egy vagy több okot választ ki, és megpróbálja igazolni Példák: orvos: a beteg panaszaiból és saját megfigyeléseiből következtet autószerelő: hasonlóan
Diagnosztizáló problémák Jellemző megvalósítási alaptechnikák: szabályalapú technika, célvezérelt következtetéssel hibrid keretalapú technika ha nem nagyon bonyolítja a problémát
Monitorozó vagy őrző problémák Jelek folyamatos figyelése Hibás jel-minta esetén „akcióba lépés” Hasonlít a diagnosztizáló problémára de csak a saját maga által észlelt jelben bízik A környezetéből érkező összes jelet feldolgozza míg a diagnosztizáló csak a szükséges adatokat kérdezi meg a felhasználótól
Monitorozó vagy őrző problémák Az észlelt jeleket elemzi, kevés transzformációval következtetést von le Jellemző megvalósítási alaptechnikák: szabályalapú technika, adatvezérelt következtetéssel hibrid keretalapú technika (amennyiben indokolt)
Objektumtervező problémák Másnéven konfiguráló problémák Nincs előre megadva az összes lehetséges megoldás A megfigyelések és a felhasználói igények alapján a rendszer dolgoz ki javaslatokat
Objektumtervező problémák Adott: a részegységek halmaza ezek kapcsolata a felhasználói igények tervezzünk elfogadható konfigurációt Kétféle problématípus: korlátozásokkal megszorított objektumtervező problémák nyílt vagy kreatív objektumtervező problémák
Objektumtervező problémák Korlátozásokkal megszorított problémák másnéven strukturált obj. tervező problémák egyszerű objektumokra vonatkozó megszorítások bonyolult (konfliktusfeloldó) a különböző korlátozások konfliktusba kerülhetnek Nyílt objektumtervező problémák megoldásuk túl sok józan észt követel
Objektumtervező problémák Jellemző megvalósítási alaptechnikák: szabályalapú technika, adatvezérelt következtetés hibrid keretalapú technika bonyolultabb esetben alkalmazható specifikus technikák alkalmazása szükséges
Tevékenységtervező és ütemező problémák Tevékenységek sorozatát határozzák meg amelyek végrehajtása a célhoz vezet Események strukturált választása adott erőforrások és feladatsorrend mellett Időkezelést is biztosító strukturált konfiguráló rendszer
Tevékenységtervező és ütemező problémák Példák: orvosi kezelések beosztása pl. egymás utáni kezelések közti idő korlátozott termeléstervezés gépek optimális kihasználása Jellemző bemenő adatok: igények források korlátozások
Tevékenységtervező és ütemező problémák Jellemző megvalósítási alaptechnikák egyszerű esetben adatvezérelt technika hibrid keretalapú technika nagyobb rendszer kivitelezésére specifikus technikák szükségesek
Alapvető következtetési technikák Induktív technikák Szabályalapú technikák célvezérelt (visszafelé haladó) adatvezérelt (előrefelé haladó) strukturált Hibrid keretalapú technikák Szimbólum-manipulációs technikák
Induktív technikák Egyedi esetekből jut általános következtetésre Gépi tanulás korai eredménye: következtetés példák és ellenpéldák alapján Procedurális és egyszerű diagnosztizáló problémáknál jellemző Gond: flexibilitás hiánya – többszintű heurisztikák kezelésére nem alkalmas
Szabályalapú technikák Adat- és célvezérelt stratégiák A legtöbb szabályalapú rendszer kombinálja a kettőt Hibrid rendszereknél célvezérelt stratégiát használnak
Szabályalapú technikák Célvezérelt szabályalapú technika Adatvezérelt szabályalapú technika Kevés cél (megoldási javaslat), sok kiinduló adat Sok cél (lehetséges megoldás), kevés kiinduló adat. Csak annyi kiinduló adatot kér be, amennyi az igazolandó cél, megoldási javaslat alátámasztásához szükséges Beéri annyi bemenettel, amennyit a felhasználó megad, és ezekből konstruál elfogatható célt vagy megoldást. Megadja az összes lehetséges javaslatot (közelebb áll a procedurális megoldáshoz, mint az adatvezérelt következtetés) Nem állít elő minden lehetséges megoldást – általában csak egyet, esetleg többet is. Jellemző problématípus: 1.diagnosztizáló: A megoldás oldaláról, a célból indul ki, amit a kiinduló adatokkal próbál igazolni Jellemző problématípusok: 1.konfiguráló/objektumtervező: 2.monitorozó/őrző: 3.tevékenységtervező/ütemező:
Hibrid keretalapú technikák Az egyszerű esetek kivételével minden típusra alkalmazható Nagyobb méretű rendszerek esetén specifikus eszközök ajánlottak
Problématípusok és alaptechnikák Könnyebb Jól definiált PROBLÉMA-TÍPUSOK Procedurális és Induktív eszközök Diagnosztizáló Célvezérelt szabályalapú Monitorozó/őrző Adatvezérelt Hibrid eszközök Konfiguráló és objektumtervező (Keret-struktúrák és Szabályok) Rosszul Nehezebb Tevékenység-tervező vagy ütemező Kisméretű, egyszerű Középméretű Nagy, bonyolult A FELADAT MÉRETE ÉS BONYOLULTSÁGA Hagyományos nyelvek és CASE eszközök
Köszönöm a figyelmet! Sántáné-Tóth Edit: Tudásalapú technológia, szakértő rendszerek Németh Nóra és Horváth Milán hasonló munkája