Ismeretalapú rendszerek alaptechnikái I. Szabályalapú rendszerek
Miről lesz szó? Alapvető következtetési technikák Produkciós rendszerek Szabályalapú rendszerek előrefelé haladó következtetés visszafelé haladó következtetés Rete algoritmus strukturált szabályalapú rendszerek előnyök/ hátrányok
Ismeretalapú rendszerek alaptechnikái tudásreprezentációs módszerek és következtetési/ keresési stratégiák számítógéppel megvalósított változatai Alapvető következtetési technikák: induktív technikák (gépi tanulás) szabályalapú technikák vezérlési stratégia iránya szerint: adatvezérelt/ célvezérelt TB szabályainak szerkezete szerint: egyszerű/ strukturált hibrid technikák szimbólum-manipulációs technikák modell-alapú következtetési technikák kvalitatív technikák eset-alapú technikák temporális következtetési technikák
Produkciós rendszerek MI legáltalánosabb problémamegoldó szemlélete az emberi problémamegoldás modellezésére produkciós szabályok (hosszútávú memória) globális adatbázis (rövidtávú memória) vezérlési stratégia és szabályinterpreter (következtető gondolkodás)
Produkciós szabály HA AKKOR tudásmorzsa (chunk of knowledge) reprezentálása feltétel: szabályalkalmazás feltételeit megadó tényállítás vagy ezek és/ vagy kapcsolata következmény: szabályalkalmazás egy vagy több következménye akciók (globális DB tartalmának módosítása) eljáráshívások (információcsere biztosítása) beavatkozások (rsz. által vezérelt folyamatba) információkérés (felhasználótól)
terminálási feltétel bekövetkeztének figyelése Globális adatbázis feladat kiinduló adatai, közbülső eredmények vezérlési stratégia és szabályinterpreter fő tevékenységei: mintaillesztés alkalmazható szabályok megkeresése tüzelőképes szabályok konfliktushalmazba szabály kiválasztása (beépített vezérlési stratégia) szabály alkalmazása (következmény végrehajtása) Vezérlő komponens
Szabályalapú rendszerek A szabályalapú rendszerek tudásbázisának elemei: tényállítások (predikátumok) deklaratív ismeretek a konkrét problémáról igaz (vagy hamis) értékű állítások értékük változhat a következtetés során (időben) szabályok meta-szabályok
Szabályalapú rendszerek A szabályalapú rendszerek tudásbázisának elemei: tényállítások (predikátumok) szabályok (feltételes állítások) HA AKKOR AKKOR HA heurisztika vagy „ökölszabályok” reprezentálása köznapi gondolkodás modellezésére szakértői tapasztalatok (heurisztikák) leírására adott szituációkban végrehajtandó akciók specifikálására tárgyköri tudásunk általánosan érvényes része működtetés: következtető gép meta-szabályok (szabályok szabályok használatáról)
ha A akkor B A: feltételrész (előtag) B: következmény rész (utótag) A, B: állítások állítások és/ vagy kapcsolata procedurális elemek (végrehajtandó tevékenységek) Szabályok
Ha x<y és y<z akkor x<z feltétel és következmény rész: állítás x y z x<y y<z x<z Ha az üres mező egyik szomszédja az n-nel számozott lapocskát tartalmazza, akkor húzd ezt a lapocskát az üres helyre. (szabály-séma) feltételrész: állítás következmény rész: végrehajtandó tevékenység pl. üres mező jobbra i, j: 1…4 m[i,j]: 0…15 ha j 3 és m[i,j]=0 akkor m[i,j]:=m[i,j+1] és m[i,j+1]:=0
Akkor lesz jó a lágytojás ha sót teszel a hideg vízbe és a vizet felforralod és beleteszed a tojást és 4 percig főzöd és hideg vizet engedsz rá. feltételrész: tevékenységek következmény rész: állítás (célállítás) Tények feltétel nélküli állítások pl.hőmérséklet > 50 o C 4x4-es játék „állása”
Szabályalapú következtetés cél: célállítás teljesülésének belátása célállapot elérése feladat: tények és célállítások között egy szabályok láncolatából álló megoldási út keresése következtetés eszköze: szabályalkalmazás/ illesztés modus ponens A A B B
MP alkalmazása szerint két különböző következtetési forma: adatvezérelt (előrefelé haladó) következtetés cél: egy célállapot elérése vagy megkonstruálása a kezdőállapotból új következtetések előállítása MP alkalmazásával következtetés a terminálási feltétel eléréséig vagy az összes következmény előállításáig (nincs több alkalmazható szabály) célvezérelt (visszafelé haladó) következtetés cél: egy feltételezett célállapot érvényességének igazolása kezdetben érvényes tényekre támaszkodva új részcélok előállítása MP alkalmazásával következtetés az összes részcél igazolásáig vagy amíg nincs több igazolható részcél (nincs több alkalmazható szabály) Kétféle következtetési módszer:
MP alkalmazása: A és A B B TB-hoz új tény (adat következményei) illesztés szabály feltételi része/ tények konfliktusfeloldás konfliktusfeloldó stratégiák szabályalkalmazás következmény rész végrehajtása Adatvezérelt következtetés
the problems of forward reasoning: forward reasoning with defined goal given: the initial state of fact-base, the rule-base, the goal state(s) of fact-base question: is goal state a consequence of initial state? can goal state be derived from initial state by the rules? decision problem: the whole search tree must be traversed in the worst case NP-complete (the size of the tree increases the number of computational steps exponentially) forward reasoning (without defined goal) given: the initial state of fact-base, the rule-base compute: all the possible consequences of initial state search problem: the whole search tree must be traversed NP-complete (follows from the problem specification)
Reasoning and search reasoning problems are solved by search in the state space (r 1 ): p 1 =t p 2 =t (r 2 ): p 2 =t p 3 =t (r 3 ): p 3 =u p 1 =u initial state: {p 1 =t, p 2 =f, p 3 =u}, (a 0 ) states: {p 1 =u, p 2 =f, p 3 =u}, (a 1 ) {p 1 =t, p 2 =t, p 3 =u}, (a 2 ) {p 1 =t, p 2 =t, p 3 =t}, (a 3 ) {p 1 =u, p 2 =t, p 3 =u}, (a 4 )
MP alkalmazása: cél B bizonyítása A B -ból B-re lehet következtetni, ha A igaz új cél: A bizonyítása illesztés szabály köv. része, tények/ cél(ok), részcél(ok) konfliktusfeloldás első alkalmazható szabály szabályalkalmazás szabály feltételi része: új részcél(ok) zsákutca visszalépés (backtrack) Célvezérelt következtetés
the problems of backward reasoning: backward reasoning with defined state given: the goal state of fact-base, the rule-base, one or more given states („s”) of fact-base question: can „s” be a reason of the goal state? (can goal state be derived from „s” by the rules?) decision problem: the whole search tree must be traversed in the worst case NP-complete (the size of the tree increases the number of computational steps exponentially) backward reasoning (without defined state) given: the goal state of fact-base, the rule-base compute: all the possible reasons of the goal state search problem: the whole search tree must be traversed NP-complete (follows from the problem specification)
4x4 kirakós játék cselekvési terv generálás diagnosztikai feladatok matematikai tételbizonyítás misszionáriusok/ kannibálok probléma N királynő probléma Melyik irányú következtetést használjuk?
lehetséges kezdő- és célállapotok száma útvonaltervezés, szimbolikus integrálás melyik irányban nagyobb az elágazási tényező tételbizonyítás szükség van-e magyarázatadásra orvosi szakértő rendszer bevált megfigyelés: kérdésre válaszadás esetén: visszafelé haladó következtetés ha új tények, állapotok elérése a cél: előrefelé haladó következtetés kétirányú keresés Prolog, MYCIN, M.1, CLIPS, GoldWorks, G2 A módszer kiválasztását befolyásoló tényezők:
problems where neither forward nor backward chaining is efficient, but they operate efficiently at an early stage combination of backward and forward techniques bidirectional reasoning the goal state can be reached from two directions at same time terminates when the reasoning bridge is built up Bidirectional reasoning
Példa célvezérelt rendszer működésére Sebesség Kép- nyomtatás Minőség Karakter- készlet ÁrNyomtató kicsinemlevélfixalacsonydaisy-wheel-type-11 kicsiigenvázlatváltoztathatóközepesdot-matrix-type-12 közepesigenvázlatfixalacsonydot-matrix-type-12 közepesigenközel-levélváltoztathatóközepesdual-dot-matrix3 nagyigen*változtathatómagaslaser-printer4 nagyigenközel-levélváltoztathatóközepesdot-matrix-type-25 nagynemlevélfixközepesdaisy-wheel-type-26 kicsiigenközel-levélváltoztathatómagasdual-dot-matrix3 *nemlevélfixközepesdaisy-wheel-type-26
Szabályok készítése: minden márix-sor egy szabály gyors prototípus szab-1: if sebesség=kicsi and képnyomtatás=nem and minőség=levél and karakterkészlet=fix and ár=alacsony then nyomtató=daisy-wheel-type-1 cf 80. Sebesség Kép- nyomtatás Minőség Karakter- készlet ÁrNyomtató kicsinemlevélfixalacsonydaisy-wheel-type-11
/* cél */ goal=nyomtató. /* következtetési szabályok */ szab-5: if sebesség=nagy and képnyomtatás=igen and karakterkészlet=változtatható and ár=magas then nyomtató=laser-printer cf 100. szab-1: if sebesség=kicsi and képnyomtatás=nem and minőség=levél and karakterkészlet=fix and ár=alacsony then nyomtató=daisy-wheel-type-1 cf 80. szab-6: If sebesség=nagy and képnyomtatás=igen and minőség=közel-levél and karakterkészlet=változtatható and ár=közepes then nyomtató=dot-matrix-type-2 cf 100. szab-2: If sebesség=kicsi and képnyomtatás=igen and minőség=vázlat and karakterkészlet=változtatható and ár=közepes then nyomtató=dot-matrix-type-1 cf 75. szab-7: if sebesség=nagy and képnyomtatás=nem and minőség=levél and karakterkészlet=fix and ár=közepes then nyomtató=daisy-wheel-type-2 cf 75. szab-3: if sebesség=közepes and képnyomtatás=igen and minőség=vázlat and karakterkészlet=fix and ár=alacsony then nyomtató=dot-matrix-type-1 cf 50. szab-8: if sebesség=kicsi and képnyomtatás=igen and minőség=közel-levél and karakterkészlet=változtatható and ár=magas then nyomtató=dual-dot-matrix-1 cf 60. szab-4: if sebesség=közepes and képnyomtatás=igen and minőség=közel-levél and karakterkészlet=változtatható and ár=közepes then nyomtató=dual-dot-matrix-1 cf 90. szab-9: if képnyomtatás=nem and minőség=levél and karakterkészlet=fix and ár=közepes then nyomtató=daisy-wheel-type-2 cf 90.
/* metadeklarációk a felhasználói párbeszéd támogatására */ question(sebesség)=„Milyen legyen a sebesség?”. legalvals(sebesség)=[kicsi, közepes, nagy]. question(képnyomtatás)=„Legyen-e képnyomtatás?”. legalvals(képnyomtatás)=[igen, nem]. question(minőség)=„Milyen legyen a minőség?”. legalvals(minőség)=[levél, vázlat, közel-levél]. question(karakterkészlet)=„Milyen legyen a karakterkészlet?”. legalvals(karakterkészlet)=[fix, változtatható]. question(ár)=„Milyen legyen az ár?”. legalvals(ár)=[alacsony, közepes, magas].
cél (kérdés) szabályok meta-deklarációk (párbeszéd támogatására) felhasználása mintaillesztéssel: kiírandó kérdést megkeresi, kiírja attribútum megengedett értékeit megkeresi, kiírja felhasználói menüként adatok Tudásbázis részei:
Példa adatvezérelt rendszer működésére (előző példa adatvezérelt módon) Tudásbázis részei: adatok szabályok meta-deklarációk Eltérés a célvezérelt esettől: problémamegoldás iránya végrehajtást a kezdeti adatok indítják
Adatvezérelt rendszerek általános felépítése
1Illesztés szabálykiválasztó minden szabály feltételi része/ MM adatai tüzelőképes szabály példány konfliktushalmaz 2Konfliktusfeloldás szabálykiválasztó szabálypéldány kiválasztása, tüzelésre kijelölése (stratégia) 3Végrehajtás szabályinterpreter MM tartalma általában módosul ha nincs kiválasztott szabály vagy halt utasítás leállás 4Ciklus újrakezdése (konfliktushalmaz törlése) Adatvezérelt KG “tölts és tüzelj” (recognize-act) ciklusa:
1kombinatorikus robbanás pl. s=150 szabály p=4 elem a feltételrészben szabályonként t=20 adat a MM-ban s*t p =150*20 4 = illesztés lehet ciklusonként! 3MM tartalma általában csak kicsit módosul egy tüzelőképes szabály általában tüzelőképes marad, mégis újraillesztődik a következő ciklusban! Problémák az adatvezérelt következtetési lépések során:
Rete algoritmus OPS-5 produkciós rsz. illesztési módszere előrefelé haladó következtetés mintaillesztési feladatának elvégzésére az illesztés állapotinformációit átmenti az előre következtetés egyes fázisai között, csak a MM változásaival végzi el az illesztést kiaknázza a szabályok feltételrészeinek strukturális hasonlóságában rejlő lehetőségeket
szabálymemória: A(x) B(x) C(y) D(x) (D hozzáadása) A(x) B(y) D(x) E(x) (E hozzáadása) A(x) B(x) E(x) A(x) (A törlése) munkamemória: {A(1), A(2), B(2), B(3), B(4), C(5)} Rete algoritmus: 1szabálymemória lefordítása Rete hálóvá szabálymemória: A(x) B(x) C(y) D(x) (D hozzáadása) A(x) B(y) D(x) E(x) (E hozzáadása) A(x) B(x) E(x) A(x) (A törlése) munkamemória: {A(1), A(2), B(2), B(3), B(4), C(5)} Rete algoritmus: 1szabálymemória lefordítása Rete hálóvá 2munkamemória elemek lekérdezése szabálymemória: A(x) B(x) C(y) D(x) (D hozzáadása) A(x) B(y) D(x) E(x) (E hozzáadása) A(x) B(x) E(x) A(x) (A törlése) munkamemória: {A(1), A(2), B(2), B(3), B(4), C(5)} Rete algoritmus: 1szabálymemória lefordítása Rete hálóvá 2munkamemória elemek lekérdezése 3egyesítések, cselekedetek elvégzése (MM módosítása), Rete háló módosítása
megszünteti a szabályok közti átfedéseket ( így egyazon ciklusban a szabályok illesztésénél minden MM-beli adattal egy illesztést kell elvégezni) megszünteti az időbeli ismétlődéseket (csak a módosításokat veszi figyelembe a törlések és hozzáadások után) Rete algoritmus előnye:
Konfliktusfeloldó stratégiák újrafelhasználhatóság vezérlés ciklusmentesítése pl. egy szabálypéldány csak egyszer tüzelhet vagy a rákövetkező ciklusban nem hajtható végre frissesség MM elemeihez időcímkék rendelése friss időcímkéjű adatok előnyben részesítése specifikusság több feltételt tartalmazó szabályok előnyben részesítése prioritásos rangsorolás Több stratégia támogatása választás
Struktúrált szabályalapú rendszerek sok szabály célszerű modulokra bontani “oszd meg és uralkodj” elv modulok (kontextusok) kontextusfa megoldásszerkezet szerinti hierarchikus csoportosítás hierachikus áttekintést tesz lehetővé feladatmegoldás kontextusfüggő KG az aktuális kontextushoz tartozó szabályokhoz fér hozzá átkapcsolás a kontextusok között kontextusváltás
Példa: borkiválasztó szakértő rendszer tudásbázisának modularizálása
rendszer viselkedésének könnyebb áttekinthetősége (könnyebb tesztelés, módosítás, karbantartás) ugyanannak a szabályhalmaznak többszörös aktivizálása lehetséges statikus kód redukálása célvezérelt/ adatvezérelt szabályok elkülönített kezelése kiválóan megoldható Szabályok strukturálásának előnyei:
Statikus kontextusfa a szabályok végrehajtás előtti struktúrája Dinamikus kontextusfa a feladat végrehajtása közben felépülő kontextusfa KG építi fel és bontja le mindig a fa valamely csúcsa van a figyelem középpontjában (az ahhoz rendelt szabályok esélyesek a végrehajtásra) Kontextusfák:
a végrehajtás alatt álló szabály (programozott kontextusváltás) a feladatmegoldás lépéseinek előjegyzését tartalmazó komponens: agenda (automatikus kontextusváltás) A kontextusváltás kezdeményezője lehet:
Szabályalapú rendszerek előnyei modularitás univerzális megjelenítés természetesség bizonytalanságkezelési lehetőségekkel könnyen kiegészíthető
Szabályalapú rendszerek hátrányai végtelen láncolás új, a korábbiakkal ellentmondó ismeret beépítése szabályok módosítása során ellentmondás szabályok/ meta-szabályok formailag nem különböznek, a kétféle ismeret keveredik zavaró, jól strukturáltságot rontja nincs szabványosítva a szabályok nyelve más rendszerre átvinni nehéz