• 320 likes • 454 Views
Intelligens irányító rendszerek. Adat és tudás, adatábrázolás, tudásábrázolás. Tudásalapú rendszerek. Tudásalapú rendszerek. Mi van a tudásbázisban feladattól függ Hogyan van benne következtető géptől is függ Tudásbázis részei: tények (adatok), pl. mért adatok
E N D
Intelligens irányító rendszerek Adat és tudás, adatábrázolás, tudásábrázolás
Tudásalapú rendszerek • Mi van a tudásbázisban feladattól függ • Hogyan van benne következtető géptől is függ Tudásbázis részei: • tények (adatok), pl. mért adatok • összefüggések (adatok között), tények közötti kapcsolatok Megfelelő tudásreprezentációs módszer szükséges feladatok: TB megszervezése, verifikációja, validációja, hatékony következtetés
Miről lesz szó? • adat és tudás (hasonlóságok, különbségek, reprezentációs módszerek) • szabályok (összefüggések leírására, leggyakrabban használt tudásreprezentációs módszer) • objektumok (strukturált TB elemek leírására) • keretek (rekordok kiterjesztése, standard aktív elemek az összefüggések leírására) • szemantikus hálók (TB szerkezetének leírására, grafikus eszköz, TB verifikálására használható)
Adat és tudás • intelligens szoftver rendszer „passzív” (futtatható) része : TB AB, TB szerepe hasonló különbség: komplexitás • AB: sok adat, kevés összefüggés • TB: több/kevesebb adat, sok összefüggés • intelligens rendszer feladatainak megoldásához szükséges: • sok információ (adat) tények • adatok közötti relációk összefüggések • módszerek, algoritmusok információ felhasználásával a probléma megoldását megkeresik
Adatábrázolás közönséges adatbázisban • összetartozó adatcsoportok rekordok • adatelem rekord egy mezője Rekord: • szerkezete rögzített pr. deklarációs részében definiált • fix típusú mezőket tartalmaz Példa: nyers_mért_adat record azonosító: string; típus: character; {‘R’, ‘B’} érték: real if típus = ‘R’ boolean if típus = ‘B’; {típusfüggő!} mérés ideje: integer array[6]; {mp perc óra nap hó év} hibakód: string; end; {nyers_mért_adat}
Adatábrázolás közönséges adatbázisban • azonos típusú rekordok rendezett halmaza fájl • közönséges DB-ban a fájl attribútumai: • azonosító • rekord típus • használati mód (read only, read/write) • rendezés (soros, indexelt) • hossz (fix, változó) • fájlok halmaza DB • DB feltöltése/módosítása DB kezelő feladata Közönséges DB jellemzői (lehetséges tudásreprezentációs módszer szempontjából): • tények fix struktúrájú rekord mezőkben tárolva • összefüggések meglehetősen korlátozott • adatszerkezet teljesen passzív
Adatábrázolás közönséges adatbázisban Problémák: • merev • minden rekordban ugyanolyan sorrendben vannak a mezők • a mezők típusa kötött • rekordon belüli, rekordok közötti összefüggéseket nem veszi figyelembe • típusellenőrzésen kívül semmiféle feldolgozási előírást nem biztosít Előnyei: • gyors, biztos • erőforrás-kezelés egyszerű Közönséges DB-okkal csak programozással lehet a TB-t megvalósítani!
Adatábrázolás relációs adatbázisban Relációs DB tulajdonságai: • összetartozó adatcsoportok rekordok • adatelem rekord egy mezője • de: • rekord adategységek logikai csoportja • default érték, összefüggés adható meg relációk mezők és mező csoportok között relációk lehetnek: logikai/aritmetikai típusúak relációk használhatóak: • mezők default és megengedett értékeinek definiálására • azonos rekordban levő mezők értékeinek definiálására • különböző rekordban vagy különböző típusú rekordokban levő mezők értékeinek definiálására
Adatábrázolás relációs adatbázisban Példa • a + b = c művelet és eredményeinek tárolása add_rekord record a: real; {op_1} b: real; {op_2} c: real; {eredmény} end; {add_rekord} reláció: a + b = c • fájl_1: fájl_2: mért_adat record nyers_mért_adat record azonosító: string; azonosító: string; érték: real; érték: long_integer; … … reláció: ha mért_adat.azonosító = nyers_mért_adat.azonosító akkor mért_adat.érték := conv(nyers_mért_adat.érték)
Adatábrázolás relációs adatbázisban • relációs rekordok halmaza + relációk relációs fájl • relációs fájlok halmaza + összekapcsoló relációk relációs DB Relációs DB jellemzői (lehetséges tudásreprezentációs módszer szempontjából): • tények relációs DB rekordokban tárolva • összefüggések relációkkal leírva • flexibilisebb, mint a közönséges DB • DB manager biztosítja a DB konzisztenciáját, a relációk teljesítését, a default értéket a TB elvileg megvalósítható relációs adatbázissal Probléma: az adatszerkezet még mindig merev De: megjelenik az aktív elem (összefüggés)
Szabályok (rules) ES és AI eszközökben legelterjedtebb tudásreprezentációs forma szabályok • heurisztikus ismeretek leírása (fekete doboz szerű) • validálása nehéz Ismétlés: logika (ítéletkonstansok / logikai konstansok, ítéletváltozók / logikai változók, logikai műveletek, formulák)
Szabályok (rules) Ismétlés: logikai műveleti jelek algebrai tulajdonságai: • kommutativitás a b = b a a b = b a • asszociativitás (a b) c = a (b c) (a b) c = a (b c) • disztributivitás a (b c) = (a b) (a c) a (b c) = (a b) (a c) • de Morgan azonosságok (a b) = a b (a b) = a b
Szabályok (rules) Ismétlés: kanonikus alakok (normálformák) • diszjunktív normálforma (DNF) ( a b) (c d) • konjunktív normálforma (CNF) ( a b) (c d) • implikációs normálforma (INF) klózok (pl. (a b) (c d)) konjunkciója Ismeretlen / bizonytalan információ leírására: kétértékű logika kiterjesztése: unknown = true false műveleti táblák kiterjesztése
Szabályok (rules) Szabály: logikai kifejezés (formula) / feltételes állítás if … then … … … szintaxis: • predikátumok • elemi logikai kifejezések / atomi formulák • tartalmazhatnak: • aritmetikai relációkat (, , <, >, , ) • kvalitatív / szimbolikus állandókat (alacsony, magas, nyitva, …) • (időben) változókat (T, h, sz1, …) • értékük: true / false / unknown pl. p1 = (sz1=nyitva); p2 = (T<100); p3 = (h=magas); p4 = (hiba=„tank overflow”) értékük a mért jelektől függ, időfüggő predikátumok logikai értékű jelek
Szabályok (rules) szintaxis: • logikai kifejezések (formulák) • atomi formulák, „összetett” formulák • tartalmazhatnak: • atomi formulákat (predikátumok, logikai változók, logikai konstansok) • logikai műveleteket • formulákat logika (formula építés) szabályai szerint • értékük: true / false / unknown • szabályok • (speciális szintaxissal rendelkező) logikai kifejezések feltétel következmény if feltétel then következmény feltétel, következmény: logikai kifejezés
Szabályok (rules) Példa: egy egyszerű szabályhalmaz: Predikátumok: P = {p1, p2, p3, p4} Szabályok: if (p1 and p2)then p3 if (p3 and p4)then p1 Szabályokkal ekvivalens logikai formulák: (p1 p2) p3 (p3 p4) p1
Szabályok (rules) szabályok szemantikája: • igazságtábla • szabályok használata (általában): • feltétel ellenőrzése (igaz-e) • ha igaz, a szabály alkalmazható (tüzel) • alkalmazás: következmény rész teljesítése (igazzá tétele) használati módot befolyásolja a következtetés célja • problémák: • szabályok végrehajtási sorrendjétől függően más eredményt kaphatunk • nem biztos, hogy ellentmondásmentesek a szabályok • lehet olyan eset, amire nincs szabály (nem teljes) • sok szabály áttekinthetetlen lehet (mo. strukturált szabályhalmaz / modulok)
Datalog szabályhalmaz Szabályok normálformája Tulajdonságai: • szabályok predikátumaiban nincs függvényszimbólum • nincs negáció, a szabályok alakja: si : (pi1 … pin) qi pi1, … , pin, qi: predikátumok • biztos (safe) szabályok – értékük véges számú lépéssel meghatározható IIR-ben a szabályok majdnem mindig datalog formájúak (ha nem, könnyen átalakíthatóak)
Datalog szabályhalmaz Datalog formára hozás: • függvényszimbólumok eltávolítása pl. sin, exp Taylor sorba fejtés új változók bevezetése: pl. log T < 0.3, Tl := log T, szabályban: Tl • negáció és diszjunkció eltávolítása • kiküszöbölése: aritmetikai predikátumok pl. (a > b) (a b), (a = b) (a b) • implikációs normálformára hozás: (… …) (… …) • kiküszöbölése: szabályok megtöbbszörözése pl. si : (pi1 … pin) (qi1 … qim) helyett: si1 : (pi1 … pin) qi1 … si1 : (pi1 … pin) qim • biztos szabályok (CCS-ben véges számábrázolás)
Datalog szabályhalmaz szerkezete / függőségi gráfja analízis / végrehajtás szempontjából fontos tulajdonságok szerkezete leírható függőségi gráffal – irányított gráf D = (VD, ED) • csúcshalmaz: VD= P • élek: (pi, pj) ED ha van olyan szabály, amelynek feltételi része pi-t, következmény része pedig pj-t tartalmazza • élek megcímkézése – szabály azonosítóval Példa: (p1 p2) p3 (p3 p4) p1
Függőségi gráf használata információt szolgáltat a predikátumok egymástól való függésétől • függőségi gráf „belépési” pontjai (nincs bemenő él) gyökér predikátumok (p2, p4) ezeknek értéket kell adni • irányított körök az eredmény függhet a végrehajtási sorrendtől (p1, p3) ha nincs kör – számítási sorrendtől függetlenül ugyanaz a következtetés eredménye
Objektumok • figyelem középpontjában álló dolgok, egységek: objektumok • osztályozás (közös tulajdonságaik alapján: osztályok) • osztályra jellemző attribútumok (közös tulajdonságok) • egyedi tulajdonságok • eljárások (objektumok zártak – csak az eljárásaikon keresztül lehet hozzáférni) • konkrét objektumok: példányok (létrehozás után önálló életet élnek) • osztályhierarchia (szigorú fa struktúra), öröklődés • osztályok leírása: program deklarációs részében • példányok létrehozása: végrehajtható részben • paraméterek megváltoztatása, objektumok működése: végrehajtható részben passzív rész aktív rész
Objektumok, példa class cső sz: szelep; T, v: mérőműszer; procedure szelepnyitás (hibakód) … sz.érték := 1; … {nyitási tevékenységek} end; {szelepnyitás} … end; {cső} osztálydefiníció feje attribútumok különböző típusú objektumok eljárás a szelep nyitására osztálydefiníció törzse inicializálási tevékenységek példány létrehozásakor elvégzendő feladatok
Objektum orientált eszközök fő tulajdonságai, használata • példányok az osztályokból készíthetők megfelelő paraméterezéssel pl. cső_be := new cső; cső_ki := new cső; • objektumok zártak (önálló életet élnek, tulajdonságaik eljáráshívásokkal változtathatóak meg) pl. cső_be.szelepnyitás (hibakód_2); • szülő osztály tulajdonságait öröklik az alosztályok class cső sz: szelep; procedure szelepnyitás (hibakód) … sz.érték := 1; … {nyitási tevékenységek} end; {szelepnyitás} … end; {cső} cső class műszerezett_cső T,v: mérőműszer; procedure mérés (érték) … … {mérési tevékenységek} end; {mérés} … end; {műszerezett_cső}
Keretek (frames) • tudásdarabok speciális, előre definiált tudáselemekkel • tudáselemek között szemantikai összefüggések vannak • rekordok kiterjesztéseként értelmezhető, standard aktív elemekkel • objektumokhoz hasonló (keret hierarchia, öröklődés, példányok) TB leírására alkalmasak
Keretek (frames) keretek részei: • rések (slots) • rekordok mezőinek felelnek meg • attribútumai: • azonosító (név) • típus (flexibilis típusdeklaráció, működés során változhat, nem kötelező megadni) • érték (default: nil (ha nincs típusa), korlátozások/megszorítások: pl. intervallum, lehetséges érték lista) • démonok (daemons) – beépített eljárások rések értékváltozásaihoz rendelve szokásos démonok: if-added, if-removed, if-needed, if-changed pl. mért_adat frame érték: real or byte; állapot: byte; end; {mért_adat}
Keretek (frames) keretek használata: • objektumok használatára emlékeztet • fő különbség: • eljárások száma (kötött készletből választhatók) • eljárások szerepe (megváltoztathatják a rés értékét bármely keret példányban továbbgyűrűzés) • hasonlóság: • keretek definiálása (deklarációs rész) • keret hierarchia, öröklődés • példányok definiálása (futtatható részben) pl. T := new mért_adat; létrejön egy üres keret, nil (default) rés-értékekkel pl. T.érték = 285 rés-érték megváltoztatása
Keretek (frames) keretek jellemzői: • passzívelemek: rés értékei (nem merev szerkezetű, nincs típusmegkötés) • aktív elemek: démonok (implicit aktív rész) • keret rendszer működése indirekt módon írható le (a keret példányokban levő démonok határozzák meg) keret-alapú tudásreprezentáció flexibilis (túl flexibilis, ezért a nyomkövetés nehéz, nehéz átlátni, verifikálni, validálni óvatosan kell programozni!) Hibrid rendszerek: keret tudáselemek leírására szabály heurisztika leírására pl. GoldWorks (keretek, szabályok), G2 (objektumok, szabályok)
Szemantikus hálók (semantic nets) • grafikus eszköz a TB-ban levő tudáselemek közötti szemantikai összefüggések leírására (TB szerkezete) • irányított gráf • csúcsok: objektumoknak, attribútumoknak felelnek meg • élek: csúcsok közötti összefüggések / relációk • élsúlyok: címkével ellátott élek a tudáselemek között • legáltalánosabb relációk: • is_a: alosztály – osztály közötti kapcsolat leírására pl. class_A is_a class_B • instance_of: példány – osztály közötti kapcsolat leírása pl. object_A instance_of class_A • part_of: attribútum – osztály közötti kapcsolat leírása pl. attribute_A part_of class_A
Szemantikus hálók (semantic nets) • szemantikai összefüggések – bináris relációkkal írhatók le class_A is_a class_B is_a(class_A, class_B) • szemantikus háló – meta-tudás (TB elemeiről szóló tudás) más tudásreprezentációs módszerrel együtt használható (pl. objektum, keret) • TB szerkezetét mutatja meg, használható TB verifikálására, validálására, diagnosztikai célra