Nulladrendű formulák átalakításai Az informatika logikai alapjai INBGM0101-17 Előadó: Dr. Mihálydeák Tamás Sándor Gyakorlatvezető: Kovács Zita 2017/2018. I. félév Nulladrendű formulák átalakításai
Nulladrendű formulák átalakításai Tartalom: 1. zárójelelhagyási konvenciók 2. normálformák
1. Zárójelelhagyási konvenciók A konvenciók célja az egyértelmű olvashatóság fenntartása mellett a formulákban előforduló zárójelek számának a csökkentése. A létrejött jelsorozatok betű szerint nem formulák, de egyértelműen előállítható belőlük egy formula. Az egyszerűség kedvéért az így létrejött jelsorozatokat is formuláknak nevezzük, s használatukkor mindig a belőlük egyértelműen előállítható formulákra gondolunk.
Zárójelelhagyási konvenciók A legkülső zárójelpár mindig elhagyható. A kétargumentumú logikai konstansok elsőbbségi (precedencia) sorrendje (csökkenő sorrendben): ∧, ∨, ⊃, ≡ A negáció erősebb bármely kétargumentumú logikai konstansnál. Az azonos kétargumentumú logikai konstansok egymás közötti elsőbbségét a balról jobbra szabály rendezi: először mindig a bal oldali formulát tekintjük külön műveleti komponensnek.
az A⊃B⊃C 'formula' egyértelműen zárójelezett alakja: Megjegyzések Az utolsó szabály a következőképpen is megfogalmazható: azonos kétargumentumú logikai konstansok esetén balról az első a formula fő műveleti jele. Az utolsó szabálynak csak az implikációnál van valódi jelentősége: az A⊃B⊃C 'formula' egyértelműen zárójelezett alakja: (A⊃(B⊃C)); A konjunkció, a diszjunkció és a (materiális) ekvivalencia esetében a műveltek asszociativitása miatt a szabályt nem követő zárójelezések is logikailag ekvivalens formulát eredményeznek. Pl.: az A∧B∧C 'formula' egyértelműen zárójelezett alakja: (A∧(B∧C)), de ez logikailag ekvivalens az ((A∧B)∧C) formulával.
Példák a zárójelelhagyási konvenciók alkalmazására Hagyjuk el az elhagyható zárójeleket! ((p∧(¬q⊃r)) ≡ (¬(p∧(¬r⊃(q⊃p))) ∨ (¬r ≡ p))) Először készítsük el a szerkezet felderítését a zárójelek összekötésével (belülről indulva): ( (p∧(¬q⊃r) ) ≡ (¬(p∧(¬r⊃(q⊃p))) ∨ (¬r ≡ p)))
Hagyjuk el az elhagyható zárójeleket! ( (p∧(¬q⊃r) ) ≡ (¬(p∧(¬r⊃(q⊃p))) ∨ (¬r ≡ p))) A legkülső zárójel mindig elhagyható, ez most a zöld ekvivalenciáé. (p∧(¬q⊃r) ) ≡ (¬(p∧(¬r⊃(q⊃p))) ∨ (¬r ≡ p))
Hagyjuk el az elhagyható zárójeleket! (p∧(¬q⊃r) ) ≡ (¬(p∧(¬r⊃(q⊃p))) ∨ (¬r ≡ p)) az első kék implikációhoz tartozó zárójel az implikáció és a konjunkció között van és a gyengébbhez tartozik, ezért nem hagyható el (p∧(¬q⊃r) ) ≡ (¬(p∧(¬r⊃(q⊃p))) ∨ (¬r ≡ p))
Hagyjuk el az elhagyható zárójeleket! (p∧(¬q⊃r) ) ≡ (¬(p∧(¬r⊃(q⊃p))) ∨ (¬r ≡ p)) az első piros konjunkcióhoz tartozó zárójel a konjunkció és az ekvivalencia között van és az erősebbhez tartozik, ezért elhagyható p∧(¬q⊃r) ≡ (¬(p∧(¬r⊃(q⊃p))) ∨ (¬r ≡ p))
Hagyjuk el az elhagyható zárójeleket! p∧(¬q⊃r) ≡ (¬(p∧(¬r⊃(q⊃p))) ∨ (¬r ≡ p)) a diszjunkcióhoz tartozó zárójel a diszjunkció és az (első!) ekvivalencia között van és az erősebbhez tartozik, ezért elhagyható p∧(¬q⊃r) ≡ ¬(p∧(¬r⊃(q⊃p))) ∨ (¬r ≡ p)
Hagyjuk el az elhagyható zárójeleket! p∧(¬q⊃r) ≡ ¬(p∧(¬r⊃(q⊃p))) ∨ (¬r ≡ p) a piros konjunkcióhoz tartozó zárójel előtt negáció áll ezért nem hagyható el p∧(¬q⊃r) ≡ ¬(p∧(¬r⊃(q⊃p))) ∨ (¬r ≡ p)
Hagyjuk el az elhagyható zárójeleket! p∧(¬q⊃r) ≡ ¬(p∧(¬r⊃(q⊃p))) ∨ (¬r ≡ p) a (második) kék implikációhoz tartozó zárójel két implikáció (sárga és kék) között van ilyenkor a balról-jobbra szabályt vesszük figyelembe és ezért elhagyható p∧(¬q⊃r) ≡ ¬(p∧(¬r⊃q⊃p)) ∨ (¬r ≡ p)
Hagyjuk el az elhagyható zárójeleket! p∧(¬q⊃r) ≡ ¬(p∧(¬r⊃q⊃p)) ∨ (¬r ≡ p) a sárga implikációhoz tartozó zárójel az implikáció és a konjunkció között van és a gyengébbhez tartozik ezért nem hagyható el p∧(¬q⊃r) ≡ ¬(p∧(¬r⊃q⊃p)) ∨ (¬r ≡ p)
Hagyjuk el az elhagyható zárójeleket! p∧(¬q⊃r) ≡ ¬(p∧(¬r⊃q⊃p)) ∨ (¬r ≡ p) a lila ekvivalenciához tartozó zárójel az ekvivalencia és a diszjunkció között van és a gyengébbhez tartozik ezért nem hagyható el p∧(¬q⊃r) ≡ ¬(p∧(¬r⊃q⊃p)) ∨ (¬r ≡ p)
Hagyjuk el az elhagyható zárójeleket! A megoldás: p∧(¬q⊃r) ≡ ¬(p∧(¬r⊃q⊃p)) ∨ (¬r ≡ p)
Példák a zárójelelhagyási konvenciók alkalmazására Adjuk meg a teljesen zárójelezett alakot! q∧¬r⊃p ≡ ¬r∧¬q⊃p⊃r ∨ ¬p ≡ q
Adjuk meg a teljesen zárójelezett alakot! A műveletek erősségi sorrendje: ¬ , ∧, ∨, ⊃, ≡ A negációkkal kapcsolatosan az alábbiakat tudjuk: nincs zárójele nem teszünk be közvetlenül mögé nyitózárójelet q ∧ ¬r ⊃ p ≡ ¬r ∧ ¬q ⊃ p ⊃ r ∨ ¬p ≡ q ¬ , ∧, ∨, ⊃, ≡
Adjuk meg a teljesen zárójelezett alakot! Ezután a legerősebb művelet zárójeleit tesszük ki legelőször, aztán a következőt és így tovább... Tehát most a konjunkciók kapják vissza a zárójeleiket: (q ∧ ¬r) ⊃ p ≡ (¬r ∧ ¬q) ⊃ p ⊃ r ∨ ¬p ≡ q ¬ , ∧, ∨, ⊃, ≡
Adjuk meg a teljesen zárójelezett alakot! Ezután a diszjunkció kapja vissza a zárójelét: (q∧¬r) ⊃ p ≡ (¬r∧¬q) ⊃ p ⊃ (r ∨ ¬p) ≡ q ¬ , ∧, ∨, ⊃, ≡
Adjuk meg a teljesen zárójelezett alakot! Ezután az implikációk kapják vissza a zárójeleiket: az első simán kirakható ((q∧¬r) ⊃ p) ≡ (¬r∧¬q) ⊃ p ⊃ (r∨¬p) ≡ q a másik kettő egymás mellett van, ezért alkalmazni kell a balról-jobbra szabályt és az utolsó fogja először megkapni a zárójelét: ((q∧¬r)⊃p) ≡ (¬r∧¬q) ⊃ (p ⊃ (r∨¬p)) ≡ q végül a középső implikáció: ((q∧¬r)⊃p) ≡ ((¬r∧¬q) ⊃ (p⊃(r∨¬p))) ≡ q ¬ , ∧, ∨, ⊃, ≡
Adjuk meg a teljesen zárójelezett alakot! Legvégül az ekvivalenciák kapják vissza a zárójeleiket: egymás mellett vannak, e ezért alkalmazni kell a balról-jobbra szabályt és az utolsó fogja először megkapni a zárójelét: ((q∧¬r)⊃p) ≡ (((¬r∧¬q)⊃(p⊃(r∨¬p))) ≡ q) végül az első ekvivalencia: (((q∧¬r)⊃p) ≡ (((¬r∧¬q)⊃(p⊃(r∨¬p)))≡q)) ¬ , ∧, ∨, ⊃, ≡
Adjuk meg a teljesen zárójelezett alakot! A megoldás: (((q∧¬r)⊃p)≡(((¬r∧¬q)⊃(p⊃(r∨¬p)))≡q))
Másik példa s ∧ p ∨ (¬p ∧ s ≡ t) Hagyjuk el az alábbi nulladrendű formulából a felesleges zárójeleket! ((s ∧ p) ∨ ((¬p ∧ s) ≡ t)) Megoldás: - a legkülső zárójelpár mindig elhagyható (s ∧ p) ∨ ((¬p ∧ s) ≡ t) - a belső zárójeleket figyelembe véve az erősebb művelet (∧) van zárójelezve, ezért elhagyható a hozzá tartozó zárójelpár (s ∧ p) ∨ (¬p ∧ s ≡ t) - az első zárójelpár elhagyható, mert a konjunkció erősebb, mint a diszjunkció s ∧ p ∨ (¬p ∧ s ≡ t) - az utolsó zárójel nem hagyható el, mert ez az ekvivalencia zárójele, amely a leggyengébb, s így gyengébb, mint a diszjunkció
Feladat Az alábbiak közül, melyik a p ∧ q ∨ r ∧ ¬p ⊃ s formula teljesen zárójelezett alakja? (p ∧ (q ∨ r) ∧ ¬p ⊃ s) ((p ∧ q) ∨ (r ∧ (¬p ⊃ s))) (p ∧ ((q ∨ r) ∧ ¬(p ⊃ s))) (((p ∧ q) ∨ (r ∧ ¬p)) ⊃ s) Amelyik nem az, az miért nem az?
2. Normálformák literál elemi konjunkció elemi diszjunkció diszjunktív normálforma konjunktív normálforma
Literál Ha p∈Con, akkor a p,¬p formulákat literálnak nevezzük. Legyen L(0)=〈LC, Con, Form〉 egy nulladrendű nyelv. Ha p∈Con, akkor a p,¬p formulákat literálnak nevezzük. A p,¬p literálok esetén a p paramétert a literál alapjának nevezzük. Példák literálra: p, ¬p, q, ¬q, r, ¬r, ….
Elemi konjunkció Ha az A∈Form formula Legyen L(0)=〈LC, Con, Form〉 egy nulladrendű nyelv. Ha az A∈Form formula literál vagy különböző alapú literálok konjunkciója, akkor A-t elemi konjunkciónak nevezzük. Példák elemi konjunkcióra: literálok: p, ¬p, q, ¬q, r, ¬r, … különböző alapú literálok konjunkciói: p∧q, ¬p∧q, ¬p∧¬q, p∧q∧¬r,…
Diszjunktív normálforma - DNF Legyen L(0)=〈LC, Con, Form〉 egy nulladrendű nyelv. Egy elemi konjunkciót vagy elemi konjunkciók diszjunkcióját diszjunktív normálformának nevezzük. Példák DNF-re: elemi konjunkciók: ¬p∧q, ¬p, p∧q,... elemi konjunkciók diszjunkciói: p∨q∨r, (¬p∧q)∨¬r, (¬p∧q)∨p, ¬p∨(p∧q), (¬p∧q)∨(p∧q),…
Elemi diszjunkció Ha az A∈Form formula Legyen L(0)=〈LC, Con, Form〉 egy nulladrendű nyelv. Ha az A∈Form formula literál vagy különböző alapú literálok diszjunkciója, akkor A-t elemi diszjunkciónak nevezzük. Példák elemi diszjunkciókra: literálok: p, ¬p, q, ¬q, … különböző alapú literálok diszjunkciói: p∨q, ¬p∨q, ¬p∨¬q, p∨q∨¬r,…
Konjunktív normálforma - KNF Legyen L(0)=〈LC, Con, Form〉 egy nulladrendű nyelv. Egy elemi diszjunkciót vagy elemi diszjunkciók konjunkcióját konjunktív normálformának nevezzük. Példák KNF-re: elemi diszjunkciók: ¬p∨q, ¬p, p∨q,… elemi diszjunkciók konjunkciói: p∧(q∨r), (¬p∨q)∧¬r, (¬p∨q)∧r, ¬p∧(p∨q), (¬p∨q)∧(p∨q∨r) …
Normálformára hozás Kétféleképpen tehetjük meg: átalakítással felhasználva a logikai ekvivalenciákat igazságtáblával ekkor a teljes/kitüntetett normálformát hozzuk létre: a teljes vagy kitüntetett diszjunktív (konjunktív) normálformában minden egyes elemi konjunkcióban (diszjunkcióban) szerepel a formula összes literálja pozitív vagy negatív (ekkor negálva van) literálként
1. Átalakítással Lépései: az implikációk és ekvivalenciák kifejezése p ⊃ q ¬p ∨ q p ≡ q (p ⊃ q) ∧ (p⊃q) negációk bevitele a zárójelen belülre (De Morgan segítségével) ¬ (p ∧ q) ¬p ∨ ¬q ¬ (p ∨ q) ¬p ∧ ¬q kettős tagadás törvénye ¬¬ p p disztributivitás, elnyelés, idempotencia, stb. p ∨ (q ∧ r) (p ∨ q) ∧ (p ∨ r) p ∧ (q ∨ r) (p ∧ q) ∨ (p ∧ r) p ∨ (q ∧ p) p p ∧ (q ∨ p) p p ∧ p p p ∨ p p
Példák Adjuk meg átalakítással az alábbi formulát DNF-ban! zárójelezünk ¬p ≡ ¬r∧¬q (¬p ≡ (¬r∧¬q)) (¬p ⊃ (¬r∧¬q)) ∧ ((¬r∧¬q) ⊃ ¬p) (¬¬p ∨ (¬r∧¬q)) ∧ (¬(¬r∧¬q) ∨ ¬p) (¬¬p ∨ (¬r∧¬q)) ∧ ((¬¬r ∨ ¬¬q) ∨ ¬p) (p ∨ (¬r∧¬q)) ∧ (r ∨ q ∨¬p) ((p ∨ (¬r∧¬q)) ∧ r) ∨ ((p ∨ (¬r∧¬q)) ∧ q) ∨ ((p ∨ (¬r∧¬q)) ∧ ¬p) ((p ∧ r) ∨ ((¬r∧¬q) ∧ r)) ∨ ((p ∧ q) ∨ ((¬r∧¬q) ∧ q)) ∨ ((p ∧ ¬p ) ∨ ((¬r∧¬q) ∧ ¬p)) (p ∧ r) ∨ (¬r∧¬q ∧ r) ∨ (p ∧ q) ∨ (¬r∧¬q∧ q) ∨ (p ∧ ¬p ) ∨ (¬r∧¬q ∧ ¬p) (p ∧ r) ∨ (p ∧ q) ∨ (¬r∧¬q ∧ ¬p) az ≡ kifejezése az ⊃ kifejezése De Morgan disztributivitás kettős tagadás ismét disztributivitás (3x) a biztosan hamis elemi konjunkciókat elhagyjuk Kész a DNF formula.
Példák Adjuk meg átalakítással az alábbi formulát DNF-ban! Ellenőrzés A kiinduló formula igazságtáblázata: ¬ P ≡ (¬ r ∧ q) 1
Példák Adjuk meg átalakítással az alábbi formulát DNF-ban! Ellenőrzés A normálformájú formula igazságtáblázata: (p ∧ r) ∨ ((p q) (¬ r q ¬ p))) 1
Példák Adjuk meg átalakítással az alábbi formulát DNF-ban! Ellenőrzés Minden interpretációban megegyezik az értékük, így logikailag ekvivalensek: ¬p ≡ ¬r∧¬q (p ∧ r) ∨ (p ∧ q) ∨ (¬r∧¬q ∧ ¬p) 1 =
2. Igazságtáblával Lépései: a formula zárójelezése az igazságtábla elkészítése (mellé külön oszlopokban a szereplő atomi formulák oszlopai) a kitüntetett normálforma létrehozása Megjegyzés: ha a formula főoszlopában szerepel: igaz érték, akkor tudunk készíteni DNF-et: kiválasztjuk azokat az interpretációkat, amelyek szerint a formula igaz, ezekben az interpretációkban készítünk igaz elemi konjunkciókat (minden tagja igaz kell legyen, minden betű kell szerepeljen, ami a formulában van) az elemi konjunkcióink közé diszjunkciókat írunk hamis érték, akkor tudunk készíteni KNF-et: kiválasztjuk azokat az interpretációkat, amelyek szerint a formula hamis, ezekben az interpretációkban készítünk hamis elemi diszjunkciókat (minden tagja hamis kell legyen, minden betű kell szerepeljen, ami a formulában van) az elemi diszjunkcióink közé konjunkciókat írunk
Példák Adjuk meg igazságtáblával az alábbi formulát DNF-ban! ¬p ≡ ¬r∧¬q (¬p ≡ (¬r∧¬q)) ¬ p ≡ (¬ r ∧ q) q 1 (¬p ∧ ¬q ∧ ¬r) (p ∧ ¬q ∧ r) IGAZAK (p ∧ q ∧ ¬r) (p ∧ q ∧ r) Tehát a megoldás az elemi konjunkcióink diszjunkciója: (¬p ∧ ¬q ∧ ¬r) ∨ (p ∧ ¬q ∧ r) ∨ (p ∧ q ∧ ¬r) ∨ (p ∧ q ∧ r)
Példák Adjuk meg igazságtáblával az alábbi formulát KNF-ban! ¬p ≡ ¬r∧¬q (¬p ≡ (¬r∧¬q)) ¬ p ≡ (¬ r ∧ q) q 1 (¬p ∨ q ∨ r) (p ∨ q ∨ ¬r) HAMISAK (p ∨ ¬q ∨ r) (p ∨ ¬q ∨ ¬r) Tehát a megoldás az elemi diszjunkcióink konjunkciója: (¬p ∨ q ∨ r) ∧ (p ∨ q ∨ ¬r) ∧ (p ∨ ¬q ∨ r) ∧ (p ∨ ¬q ∨ ¬r)
Példa, amikor az átalakítással éri meg dolgozni Hozzuk normálformára az alábbi formulát! ¬(r⊃p) ∧ (¬(r⊃p) ∨ (q≡ ¬r ∧ ¬s ⊃ t ⊃ u ≡ q)) Ennek az formulának az igazságtáblája 64 soros…. DE! Ha észrevesszük, hogy alkalmazható az elnyelési tulajdonság, akkor 4 lépésben megkapjuk a normálformát (ráadásul DNF és KNF is, amit kaptunk): ¬(r⊃p) ∧ (¬(r⊃p) ∨ (q≡ ¬r ∧ ¬s ⊃ t ⊃ u ≡ q)) ¬(r⊃p) ¬(¬r∨p) ¬¬r ∧ ¬p r∧¬p
Feladat Adjuk meg az alábbi formulák normálformáját! ¬(p ∧ ¬q) ¬(p ⊃ ¬r) ∨ ¬p ∧ r ¬(p ⊃ ¬q) ≡ ¬p ∧ ¬q ¬(p ⊃ ¬r ⊃ q) ≡ p ∧ r ∨ q ¬(p ⊃ q ⊃ ¬r) ≡ p ∨ q ∧ r