Logika és informatikai alkalmazásai 4. gyakorlat Németh L. Zoltán http://www.inf.u-szeged.hu/~zlnemeth SZTE, Informatikai Tanszékcsoport 2011 tavasz
Irodalom Szükséges elmélet a mai gyakorlathoz Előadás fóliák: #52-#63, #70-#76 A konjunktív normálformára hozás algoritmusa gyak. fóliáinak végéről. (Akinek kell, HF gyakorolni!) Feladatsorok FZ1 Fülöp Zoltán: Gyakorló feladatok a "Logika a számítástudományban" tárgyhoz I. "Ítéletkalkulus" LM I. A. Lavrov L. L. Makszimova: Halmazelméleti, matematikai logikai és algoritmuselméleti feladatok, Műszaki Könyvkiadó, Budapest, 1987
Formulák és Boole-függvények (új) Formulák és Boole-függvények kapcsolata Jelölések: x y := y x (fordított irányú implikáció); x y := (x y) (az implikáció tagadása); x y := (x y) (a fordított implikáció tagadása); x y := (x y) (nem ekvivalencia, más jelöléssel x y, kizáró vagy, XOR);
A legfeljebb 2 változós Boole függvények A 16 legfeljebb kétváltozós Boole-függvény: 0 100% és tagadása: 25 75%,,, és tagadásuk:,,, 50 50% x 1, x 2, és tagadásuk: x 1, x 2, Itt természetesen x 1, az f(x 1, x 2 ) = x 1 függvényt jelöli. x y = (x y) a NAND függvény, (néhol jele, de az nálunk más!) x y = (x y) a NOR függvény, (néhol jele, de az nálunk más!) Bővebben lásd: http://en.wikipedia.org/wiki/logical_connective
Teljes rendszerek I Definíció Boole függvények egy rendszere teljes vagy adekvát, ha segítségükkel minden (akárhány változós!) Boole-függvény felírható. Tétel. Az alábbi rendszerek teljesek: (ld. előadás) {,, }, {, }, {, }, {, }. FZ1. II/8. Mutassuk meg, hogy {, } adekvát, azaz teljes rendszert alkot! Megoldás. x y = x y, és a {, } halmazról pedig már tudjuk, hogy teljes.
Teljes rendszerek II LM II 2/4. Fejezzük ki a) -t és -t a és a művelet segítségével; x y = ( x y), x y = x y; b) -t és -t a és a művelet segítségével; x y = ( x y), x y = (x y); c) -t és -t a és a művelet segítségével; x y = (x y), x y = x y; d),, -t és -t a művelet segítségével; x = (x x), x y = (x y) (x y), x y = (x x) (y y), x y = x (y y); e) -t a és a művelet segítségével; x = x ; f) -t a (kizáró vagy, ) a művelet segítségével; x = x ; g) -t az művelet segítségével; x y = (x y) y;
Teljes rendszerek III Feladat. Bizonyítsuk, be hogy az alábbi rendszerek teljesek! (HF!) a) {, }; b) {, }; c) {, }; d) {, }; e) {, }; f) {,, }; Az összes, (17 darab) legfeljebb kételemű, legfeljebb kétváltozós függvényekből álló minimális (= már semmi nem hagyható el belőle) teljes rendszert, lásd a Wikipedián!
Teljes rendszerek IV FZ1 II/6. Mutassuk meg, hogy a {,, } halmaz nem adekvát (azaz nem alkot teljes rendszert.) Megoldás. A negáció nem fejezhető ki. Minden a halmaz műveleteiből felépített egyváltozós f(x) függvényre, f(1) = 1, mert 1 1 = 1 1 = 1 1 = 1. De 1 = 0, ezért a negáció nem fejezhető ki.
Teljes rendszerek V LM II 2/6. Mutassuk meg, hogy nem fejezhető ki a) a,, és segítségével; b) a és segítségével; c) a és segítségével. a) HF. b) Minden a halmaz műveleteiből felépített kétváltozós f(x, y) függvényre, f(0, 0) = 0, mert 0 0 = 0 0 = 0. De 0 0 = 1, ezért az implikáció nem fejezhető ki.
Teljes rendszerek V c) megoldása c) nem fejezhető ki és segítségével. Azok az f(x 1, x 2,..., x n ) függvények, melyek kifejezhetők és segítségével rendelkeznek a következő tulajdonsággal: Létezik i, hogy x i = 1 esetén mindig f(x 1, x 2,...,x n ) = 1 teljesül, azaz egyetlen változó igazzá tételével az egész függvény igazzá tehető. és rendelkezik ezzel a tulajdonsággal. Az is könnyen látható, hogy ezt a tulajdonságot a függvénykompozíció megőrzi: A külső függvényt igazzá tevő változó helyére helyettesített belső függvényt egy változóval igazzá téve az összetett függvény is igazzá tehető. ellenben nem rendelkezik ezzel a tulajdonsággal, sem az első sem a második változójával nem tehető igazzá.
Teljes rendszerek VI FZ1 II/7. Mutassuk meg, hogy a, halmaz nem adekvát! (Van olyan kétváltozós igazságtábla, ami nem fejezhető ki.) 1. Megoldás. Mutassuk meg, hogy -val és -val csak olyan kétváltozós igazságtáblák fejezhetők ki, melyekben páros sok 1-es szerepel, így pl. nem fejezhető ki. Valóban, világos, hogy igazságtáblája ilyen, és hogy a alkalmazása megőrzi ezt a tulajdonságot. Lássuk, be hogy, ha f 1 (x, y) és f 2 (x, y) ilyen tulajdonságú, akkor f 1 f 2 is. (HF.) 2. Megoldás. Egy Boole-függvényt lineárisnak hívunk, ha x 1 x 2... x n vagy x 1 x 2... x n alakú. Megmutatjuk, hogy -val és -val csak lineáris függvények fejezhetők ki. Valóban x = x és x y = x y lineáris. Továbbá, ha f és g lineáris függvények, akkor könnyen látható, hogy f = f és f g = f g szintén lineáris függvények. (Ehhez fel kell használni, hogy asszociatív és kommutatív, x x = és x = x.) De például a konjunkció nem lineáris, ezért nem fejezhető ki.
Jövő hétre HF, a kimaradt példák és még TF 4.2. KNF-re hozás. Szükséges az előadás további részének ismerete, különösen a Horn-formulák és a rezolúció alapfogalmai és algoritmusa.
Konjunktív és diszjunktív normálformára hozás FZ1 II/3. c Hozzuk DNF-ra és KNF-re következő formulát: (p q) (r s) 1.lépés: F G helyett F G F G helyett (F G) (G F) ( F G) ( G F) (p q) (r s) (p q) (r s) ( p q) ( q p) (r s) 2.lépés: bevitele (F G) F G, (F G) F G, és F F alapján. ( p q) ( q p) (r s) ( p q) ( q p) r s (p q) (q p) r s. Ez már DNF, a harmadik lépésre most nincs szükség.
Folytatás A KNF-hez szükséges még a 3. lépés: a disztributivitás használata KNF-nál a kivitele: (F G) H (F H) (G H) alapján. DNF-nál a kivitele: (F G) H (F H) (G H) alapján. (p q) (q p) r s (p q) (p p) ( q q) ( q p) r s (p q) ( q p) r s (p q r s) ( p q r s) Ez már KNF!
Gyakoroláshoz A TF 4.2. a-e = FZ1 II/3. feladat megoldásai: a) ( p q r) ( r p) ( r q) ( r p) ( r q) (p q r) b) ( p q r) ( p q r) p (q p) (q r) (p q r) p (r q) ( q r) c) ( p q r s) (p q r s) ( p q) ( q p) r s d) (tautológia) (üres KNF) pl: p p VIGYÁZAT az üres DNF azonosan HAMIS! e) ( p q r) ( p q r) (p q r) (p q r) ( p q r) ( p q r) (p q r) (p q r) Konjunktív és diszjunktív normálformák ellenőrzéséhez (és még sok minden máshoz) ajánlom még a következő linket: logik.phl.univie.ac.at/~chris/formular-uk.html
Szorgalmi: Formalizáslás SGY2 2.3.(ii) Formalizáljuk az alábbi következtetéseket és állapítsuk meg, melyik helyes, melyik nem! Válaszunkat indokoljuk meg! Az ilyen alakú következtetéseket kategórikus szillogizmusoknak nevezzük, a feltételek neve: premissza, a következményé: konklúzió. Ezeket egy vízszintes vonallal szoktuk elválasztani egymástól. Például: (1) Minden ember halandó (2) Szokratész ember (3) Tehát Szokratész halandó.
Megoldása Egy lehetséges megoldás Univerzum (individuum tartomány): minden objektum Predikátum szimbólumok: E(x) : x ember, H(x) : x halandó Függvény szimbólumok: s : Szokratész (konstans) (1) Minden ember halandó: x(e(x) H(x)) (2) Szokratész ember: E(s) (3) Tehát Szokratész halandó: H(s) Igaz-ez a következtetés? Könnyen látható, hogy a következtetés helyes.
Még egy példa SGY2 2.3.(ii) / (14) Bolond aki megcsinálja. Én nem csinálom meg. Tehát nem vagyok bolond. Univerzum (individuum tartomány): az emberek halmaza Predikátum szimbólumok: B(x) : x bolond, M(x) : x megcsinálja. Függvény szimbólumok: e : én (konstans) (1) Bolond, aki megcsinálja. másként: Mindenki, aki megcsinálja az bolond. x(m(x) B(x)) (2) Én nem csinálom meg. M(e) (3) Nem vagyok bolond: B(e) A következtetés nem helyes. Ha én bolond vagyok és nem csinálom meg, attól még az első mondat igaz marad. Hiszen az első mondat csak azokról beszélt, akik megcsinálják.
További példák (HF) SGY2 2.3.(ii) Minden holló fekete. Ez a kréta nem fekete. Tehát ez a kréta nem holló. Nincs tökéletes ember. Minden görög ember. Tehát nincsen olyan görög, aki tökéletes. Van olyan férfi, akinek minden nő teszik. Tehát minden nő tetszik valakinek. Nincs olyan férfi, aki legalább egy nőnek ne tetszene. Tehát minden nőnek teszik valaki. Nincs olyan férfi, aki legalább egy nőnek ne tetszene. Tehát minden férfi tetszik valakinek. Minden gazdag nő csúnya. Tehát minden szegény nő szép. (Itt szegény és gazdag, szép és csúnya legyen egymás ellentéte.) További példák a Serény jegyzetben...
Néhány megoldás SGY2 2.3.(ii) Minden holló fekete. Ez a kréta nem fekete. Tehát ez a kréta nem holló. Univerzum: minden tárgy és élőlény Predikátum szimbólumok: H(x) : x holló, F(x) : x fekete. Függvény szimbólumok: c : ez a kréta (konstans) (1) Minden holló fekete. x(h(x) F(x)) (2) Ez a kréta nem fekete. F(c) (3) Ez a kréta nem holló: H(c) A következtetés helyes.
Ugyanez máshogy Többféle jó formalizáció elképzelhatő. Pl. Univerzum: minden tárgy és élőlény Predikátum szimbólumok: H(x) : x holló, K(x) : x kréta, F(x) : x fekete. Függvény szimbólumok: c : ez (a tárgy amiről beszélünk, konstans.) (1) Minden holló fekete. x(h(x) F(x)) (2) Ez a kréta nem fekete. K(c) F(c) (3) Ez a kréta nem holló: K(c) H(c) A következtetés így is helyes. Majd később tanuljuk, hogyan lehet ilyen következtetéseket rezolúcióval be is bizonyítani...
Na még egyet... SGY2 2.3.(ii) Nincs olyan férfi, aki legalább egy nőnek ne tetszene. Tehát minden nőnek teszik valaki. Univerzum: minden ember. Predikátum szimbólumok: N(x) : x nő. F(x) : x férfi. T(x, y) : x-nek tetszik y. (1) Nincs olyan férfi, aki legalább egy nőnek ne tetszene. x[f(x) y(n(y) T(y, x))] (2) Tehát minden nőnek teszik valaki. y(n(y) xt(y, x)) Igaz? A következtetés nem helyes, például elképzelhető, hogy egyáltalán nincsenek férfiak, de nők vannak, és senki nem tetszik senkinek... Vagy csak két nő van, az egyiknek minden férfi tetszik, a másiknak senki sem.