ismeretalapú rendszerek alaptechnikái i
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
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áitudá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 <feltétel> AKKOR <tevékenység>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ú rendszerekA 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ú rendszerekA szabályalapú rendszerek tudásbázisának elemei: tényállítások (predikátumok) szabályok (feltételes állítások)
HA <feltétel> AKKOR <következmény>
AKKOR <következmény> HA <feltétel> 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 kapcsolataprocedurális elemek (végrehajtandó tevékenységek)
Szabályok
Ha x<y és y<z akkor x<zfeltétel és következmény rész: állítás
xyz 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 j3 é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ényekfeltétel nélküli állításokpl. hőmérséklet > 50oC
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
AA BB
Reasoning
Fact-base New fact-base Newer fact-base
Rules
Reasoning . . .
. . .
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
(r1): p1=t p2=t(r2): p2=t p3=t(r3): p3=u p1=u
initial state: {p1=t, p2=f, p3=u}, (a0)
a0
a2a1
a4
r3r1
r3
a3
r2p1
p2
p3f
t
t
tu
u
u
a0
a1
a2a3
a4
r1
r2
r3
r3
states: {p1=u, p2=f, p3=u}, (a1){p1=t, p2=t, p3=u}, (a2){p1=t, p2=t, p3=t}, (a3){p1=u, p2=t, p3=u}, (a4)
MP alkalmazása: cél B bizonyításaAB -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ásraorvosi 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
Facts
Goals
Forward Backward
Példa célvezérelt rendszer működésére
SebességKép-
nyomtatásMinőség
Karakter-készlet
Ár Nyomtató
kicsi nem levél fix alacsony daisy-wheel-type-1 1
kicsi igen vázlat változtatható közepes dot-matrix-type-1 2
közepes igen vázlat fix alacsony dot-matrix-type-1 2
közepes igen közel-levél változtatható közepes dual-dot-matrix 3
nagy igen * változtatható magas laser-printer 4
nagy igen közel-levél változtatható közepes dot-matrix-type-2 5
nagy nem levél fix közepes daisy-wheel-type-2 6
kicsi igen közel-levél változtatható magas dual-dot-matrix 3
* nem levél fix közepes daisy-wheel-type-2 6
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égKép-
nyomtatásMinőség
Karakter-készlet
Ár Nyomtató
kicsi nem levél fix alacsony daisy-wheel-type-1 1
/* 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írjaattribútum megengedett értékeit megkeresi, kiírja felhasználói
menüként adatok
Tudásbázis részei:
goal=nyomtató. szab-5:if sebesség=nagy and képnyomtatás=igen and karakterkészlet=változtatható and ár=magasthen nyomtató=laser-printer.
szab-1:if sebesség=kicsi and képnyomtatás=nem and minőség=levél and karakterkészlet=fix and ár=alacsonythen nyomtató=daisy-wheel-type-1.
szab-10:if éjszakai-batch-nyomtatás=igen and rövid-levél-nyomtatások=igenthen sebesség=kicsi.
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
szab-1:if sebesség=kicsi and képnyomtatás=nem and minőség=levél and karakterkészlet=fix and ár=alacsonythen nyomtató=daisy-wheel-type-1.
szab-5:if sebesség=nagy and képnyomtatás=igen and karakterkészlet=változtatható and ár=magasthen nyomtató=laser-printer.
szab-10:if éjszakai-batch-nyomtatás=igen and rövid-levél-nyomtatások=igenthen sebesség=kicsi.
Adatvezérelt rendszerek általános felépítése
1 Illesztés szabálykiválasztó minden szabály feltételi része/ MM adatai tüzelőképes szabály példány konfliktushalmaz
2 Konfliktusfeloldás szabálykiválasztó szabálypéldány kiválasztása, tüzelésre kijelölése (stratégia)
3 Végrehajtás szabályinterpreter MM tartalma általában módosul ha nincs kiválasztott szabály vagy halt utasítás leállás
4 Ciklus újrakezdése (konfliktushalmaz törlése)
Adatvezérelt KG “tölts és tüzelj” (recognize-act) ciklusa:
1 kombinatorikus robbanáspl. s=150 szabály
p=4 elem a feltételrészben szabályonként
t=20 adat a MM-ban
s*tp=150*204=24.000.000 illesztés lehet ciklusonként!
3 MM 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éreaz 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:1 szabá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:1 szabálymemória lefordítása Rete hálóvá2 munkamemó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:1 szabálymemória lefordítása Rete hálóvá2 munkamemória elemek lekérdezése3 egyesí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 kontextusfaa szabályok végrehajtás előtti struktúrája
Dinamikus kontextusfaa feladat végrehajtása közben felépülő kontextusfaKG építi fel és bontja lemindig 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