Intelligens irányító rendszerek Adat és tudás, adatábrázolás, tudásábrázolás
Adat/tudás 2 Tudásalapú rendszerek
Adat/tudás 3 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 Tudásalapú rendszerek
Adat/tudás 4 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ó) Miről lesz szó?
Adat/tudás 5 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/tudás 6 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/tudás 7 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/tudás 8 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/tudás 9 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/tudás 10 Adatábrázolás relációs adatbázisban Példa a)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 b)fájl_1:fájl_2: mért_adat recordnyers_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/tudás 11 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)
Adat/tudás 12 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) ab aaa ba ba ba b TTFTTTT TFFFTFF FTTFTTF FFTFFTT
Adat/tudás 13 Szabályok (rules) Ismétlés: logikai műveleti jelek algebrai tulajdonságai: kommutativitás a b = b aa 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
Adat/tudás 14 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 a b a b FTU FFTU TTTT UUTU a b a b FTU FTTT TFTU UUTU
Adat/tudás 15 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, sz 1, …) értékük: true / false / unknown pl. p 1 = (sz 1 =nyitva); p 2 = (T<100); p 3 = (h=magas); p 4 = (hiba=„tank overflow”) értékük a mért jelektől függ, időfüggő predikátumok logikai értékű jelek
Adat/tudás 16 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
Adat/tudás 17 Szabályok (rules) Példa: egy egyszerű szabályhalmaz: Predikátumok: P = {p 1, p 2, p 3, p 4 } Szabályok: if (p 1 and p 2 ) then p 3 if (p 3 and p 4 ) then p 1 Szabályokkal ekvivalens logikai formulák: (p 1 p 2 ) p 3 (p 3 p 4 ) p 1
Adat/tudás 18 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) a b a b FTU FTTT TFTU UUTU
Adat/tudás 19 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: s i : (p i1 … p in ) q i p i1, …, p in, q i : 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)
Adat/tudás 20 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, T l := log T, szabályban: T l 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. s i : (p i1 … p in ) (q i1 … q im ) helyett: s i1 : (p i1 … p in ) q i1 … s i1 : (p i1 … p in ) q im biztos szabályok (CCS-ben véges számábrázolás)
Adat/tudás 21 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 = (V D, E D ) csúcshalmaz: V D = P élek: (p i, p j ) E D ha van olyan szabály, amelynek feltételi része p i -t, következmény része pedig p j -t tartalmazza élek megcímkézése – szabály azonosítóval Példa: (p 1 p 2 ) p 3 (p 3 p 4 ) p 1
Adat/tudás 22 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 (p 2, p 4 ) ezeknek értéket kell adni irányított körök az eredmény függhet a végrehajtási sorrendtől (p 1, p 3 ) ha nincs kör – számítási sorrendtől függetlenül ugyanaz a következtetés eredménye
Adat/tudás 23 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 Objektumok passzív rész aktív rész
Adat/tudás 24 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ő} Objektumok, példa eljárás a szelep nyitására attribútumok különböző típusú objektumok osztálydefiníció feje osztálydefiníció törzse inicializálási tevékenységek példány létrehozásakor elvégzendő feladatok
Adat/tudás 25 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 Objektum orientált eszközök fő tulajdonságai, használata 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ő}
Adat/tudás 26 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)
Adat/tudás 27 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)
Adat/tudás 28 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)
Adat/tudás 29 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) Keretek (frames)
Adat/tudás 30 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)
Adat/tudás 31 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 Szemantikus hálók (semantic nets)
Adat/tudás 32 Szemantikus hálók (semantic nets)