Ja, dann wollen wir mal. Ist das gut?
Gutes Video. Okay, Aussagenlogik. Letzte Woche haben wir
Sintak-Semantik von Aussagenlogik gemacht und Folgebarkeit und Äquivalenz haben wir schon eingeführt.
Und unter anderem das Ersetzbarkeitstheorien bewiesen.
Und heute wollen wir normal Formen und Hornformeln machen.
Einmal kurz die Buzzwords, die wir so hatten von
der Sintaks da
Die ganzen Begriffe, Strukturbäume hatten wir ja nur so am Rande,
dass man die mal gesehen hat, die sind primär jetzt ganz nützlich,
um Grad und Tiefe zu illustrieren.
Aber die wichtigen Sachen, da wären strukturelle Induktionen und strukturelle Rekursionen
und halt hier nur die ganzen Begriffe, so Negation,
des Funktionen und so weiter.
Habt ihr da Fragen zu zu diesen Sintax-Geschichten?
Nee, okay. Dann Semantik hatten wir die ganzen Buzzwords,
so Belegung, Auswertung, also Auswertung einer Formel,
wenn man die Belegung erweitert,
nennt man üblicherweise auch einfach Belegung
Wahrheitstafeln, Wahrheitswerteverlauf und so weiter. Und unten einmal die Symbolik für A,
also die Belegung A ist ein Modell für F,
die Belegung A ist kein Modell für F,
also falsifiziert F,
als drittes IRF ist eine Chautologie und F ist eine Kontradition.
Da fragen zu, also Grundlagen von Sintax und Semantik
irgendwie, da noch, okay.
Und dann hatten wir halt diese Begriffe folgerbar kalt und Äquivalenz.
Und wie man die nachweist oder wie man halt ein Gegenbeispiel findet.
Wir hatten so etliche Sätze dazu und zuletzt hatten wir
diese Ersetzbarkeitstheorie
Sachen gucken, wir uns gleich nochmal so ganz kurz
ein bisschen an. Also die Definition von Folgebarkeit und Äquivalenz
gucken wir uns nochmal an und ein paar Sätze nochmal dazu.
Und was wir dann heute machen wollen, sind die unteren vier Punkte,
dass wir eine Normalform für Aussagen logische Formeln definieren wollen,
also eine Form,
in die wir jede Formel der Aussagenlogik bringen können und die eben ganz praktische Eigenschaften hat.
Und das ist einmal die konjunktive Normalform und einmal die disjunktive
Normalform und wir werden eben uns zwei Verfahren angucken,
wie man die herstellen kann und zu Anfang einmal diskutieren,
warum die denn überhaupt praktisch sind
Und wenn wir dann noch dazu kommen, dann machen wir
heute auch noch Hornformeln. Aber erst mal so,
das ist so erst mal das, was wir heute machen wollen.
Noch einmal zur Wiederholung von der Dienstagsvorlesung, das waren die beiden Begriffe,
Vollgabarkeit und Äquivalenz, eine Formel folgt aus einer Formelmenge,
wenn jede Belegung die Modell für die Formelmenge ist,
auch Modell für die Formel F ist.
Wenn man das mit einer Wahrheitstafel machen will,
dann guckt man sich halt all die Zeilen an,
wo alle Formeln in M zu 1 ausgewertet werden und er
muss Efter auch zu 1 ausgewertet werden.
Ja, und Äquivalenz, zwei Formeln heißen Äquivalent,
wenn sie unter jeder Belegung
den gleichen Wahrheitswert kriegen
Also wenn AF gleich AG für jede Belegung gilt oder auch wieder in
der Wahrheitstafeldenkweise so, wenn die Wahrheitswerteverläufe komplett identisch sind.
Das ist Folgeaufbarkeit und Äquivalenz. Wenn man ein Gegenbeispiel angeben will,
dann reicht es immer im ersten Fall,
also für Vollgabbarkeit wäre ein Gegenbeispiel eine Belegung,
die alles in M wahrmacht,
aber er falsch macht und im zweiten Fall ja
eine Äquivalenz wäre ein Gegenbeispiel eine Belegung,
die beispielsweise F zu 1 auswertet und G zu null oder
andersrum F zu 0 und G zu 1. Also für ein Gegenbeispiel braucht man nicht irgendwie die ganze Wahrheitstafel angeben oder so,
sondern eben die eine Zeile quasi,
die relevant ist
Genau. Und dann hatten wir so unterschiedliche Sätze,
das sind nochmal die drei aus den Präsenzaufgaben,
glaube ich, die meisten Gruppen meiner eingeschlossen,
da gar nicht mehr so richtig hingekommen sind.
Dachte ich, können wir jetzt nochmal kurz drüber reden.
Ähnliche Sätze hatten wir ja schon in der letzten Vorlesung.
Hier ist das meist nur so ein bisschen gedreht,
in der Vorlesung haben wir gezeigt,
wenn F und G Äquivalent sind und gehen eine Tautologie,
dann ist auch F eine Tautologie.
Hier jetzt halt mit Kontradition, wenn F und G
Äquivalent ist und Genekontradition, dann will ich jetzt zeigen,
auch F ist eine Kontradition.
Sprich, ich will zeigen, jede Belegung, A,
die passend ist zu F,
für die gilt A von F
Ja, und dann fange ich an mit einer, zur F&G passenden Belegung.
Und weil jene Kontraktion ist, weiß ich, AfonG ist null.
Und eigentlich will ich ja dahin, dass A von F0 ist,
aber wegen dieser Äquivalenz hier weiß ich auch,
dass A von F das Gleiche ist,
VR von G, und dann bin ich schon fertig.
Also AffenG ist null, da ferner F-Equilentsu-G ist,
sind die beiden wahrheitswerte hier gleich. Und da muss auch
A von F.0 sein. Dann bin ich schon fertig.
Wo will ich hin und was weiß ich alles?
Und dann die Lücken füllen und die Lücke ist in dem Fall ziemlich gering.
Und hier, wenn F und G Tautologien sind,
dann sollen sie beide Äquivalent sein,
mit der Wahrheitstafel relativ klar so,
wenn es beides Tautologien sind,
stehen da nur Einsen,
dann müssen die Äquivalent sein
Wir haben uns ein bisschen,
wenn man es mehr auf diese Art und Weise machen will,
mit sei a eine Belegung, so mit diesen Formulierungen zu arbeiten,
dann kann man das wie folgt machen,
wenn das eine passende Belegung ist,
dann gilt auf jeden Fall a von FSA von g. Quatsch,
das will ich zeigen, a von F-Köcher,
von geblich zeigen.
So, dann nehme ich mir eine, die zur F&G passt.
Und weil jetzt ja sowohl F als auch genetautologie ist,
gilt halt stets a von F gleich a von g
gleich eins und dann ist man schon fertig.
Das ist auf jeden Fall gleich. Ist also
sehr einfach da. Und dann hier genau dann Van-Beziehung,
einmal von links nach rechts,
einmal von rechts nach links
Ich nehme wieder eine passende Belegung. Ich will jetzt zeigen,
dass FB impliziert gehende Tautologie ist. Jetzt kann ich mir überlegen,
wie sieht die Wahrheitstafel von FB impliziert G aus?
Das wird immer genau dann eins, wenn F und G
in den gleichen Wahrheitswert haben. Das muss ich also irgendwie zeigen,
naja, das F-Equialent zu G bedeutet ja,
die müssen immer den gleichen Wahrheitswert haben.
Also gibt es da nicht so viel Lücke zu schließen?
Also ich nehme eine passende Belegung wegen F-Equalent zu G gilt stets,
dass sie den gleichen Wahrheitswert haben und dann folgt das sofort.
FB impliziert G gleich eins, folgt sofort aus der Semantik
, folglich.
Ist das
eine Tautologie
Umgekehrt, wenn es eine Tautologie ist und ich nehme jetzt eine zur F- und die passende Belegung,
dann gilt ja A von F-B-Impliziert gleich eins.
Das ist ja eine Tautologie, also muss das gelten.
Dann kann ich mir wieder diese Mantik angucken und dann weiß ich,
das passiert nur, wenn A von F gleich A von G ist.
Wenn das unterschiedlich wäre, dann wäre es nicht nur,
also dann wäre, wenn A von F-Ungleich A von G wäre,
dann wäre hier A von F-B-Impliziert G nicht 1,
sondern 0. Und schon hat man auch da die Äquivalenz bewiesen.
Also die Sätze waren relativ einfach, aber die dienen halt dazu,
so ein bisschen reinzukommen in diese Formulierung,
dass man eben nicht nur sagt so, naja,
das sieht man ja an der Wahrheitstafel oder so,
sondern er sollte halt trainieren an den einfachen Beispielen,
Sachen so aufzuschreiben
Damit ihr es dann mal komplizierteren Formulierungen, wo man,
oder bei komplizierteren Sätzen, wo man eben nicht mehr
mit Wahrheitstafel argumentieren könnt, kann dann machen können.
Okay, das nochmal dazu. Und dann hatten wir noch dieses Ersetzbarkeitstheorien,
was im Grunde genommen gesagt hat,
wenn ich eine Formel habe, mit irgendeiner Teilformel F,
dann kann ich diese Teilformel F durch die Äquivalente Teilformel G
ersetzen und die daraus entstehende Formel ist eben Äquivalent zu ursprünglichen Formeln.
Also dürfen Teilformel durch andere Formeln ersetzen, wenn die Emi-Curlens sind.
Und da unten das Beispiel im ersten Schritt
irgendwie nicht nicht B durch B ersetzt.
Nicht B ist eine Teilformel von dieser ganzen Form,
die da link steht
Und dann halt im zweiten Schritt die Bimplikation aufgelöst.
F impliziert G ist ja immer nicht F oder G
und dann nochmal die doppelte Negation aufgelöst.
Sowas kann man dann halt dank des Ersetzbarkeitstheoriens machen. So,
das war das, was wir letzte Woche gemacht haben,
fragen. Fragen zum ersten, zum zweiten. Ist euch
allen alles klar? Das ist ja schön. Dann,
was wir darauf aufbauen und jetzt machen dürfen,
also warum wir überhaupt dieses Ersetzbarkeitstheorie machen,
das Ersetzbarkeitstheorie erlaubt uns ja jetzt Teilformeln durch äquivalente Teilformeln zu ersetzen.
Und damit können wir jetzt probieren, gegeben irgendeine Formel durch verschiedene Äquivalenzumformungen,
durch verschiedene Äquivalenzumformen zu einer Form zu kommen,
die wir irgendwie besonders schön finden.
Also beispielsweise ist es relativ einfach, zu einer Form zu kommen,
die keine Implikationen enthält. Dann sage ich, naja,
solange der Implikationen drin sind, benutze ich eben diese Äquivalenz,
F-Impliziert-G ist das Gleiche wie Nicht-F-Oder-G. Das Maße mache ich so lange,
bis keine Implikationen mehr da sind und dann bin ich fertig.
Das ist relativ einfach. Was wir machen wollen,
ist, wir wollen gleich zur KNF und DNF kommen,
Und der Grund, warum man diese Normalform einführt,
ist, steht das hier schon?
Genau hier, ne? Die soll dann eine praktische Form haben für Berechnungen oder Beweise.
Also ich will irgendwie was haben, wo ich sagen kann,
naja, die Form hat so viel Struktur,
da kann ich jede Menge draus ablesen.
Da kann ich entweder Dinge sehr schnell machen oder kann bei
Beweisen mich nur auf wenige Fälle einschränken.
Irgendwie sowas. Dafür will ich diese Normalform haben,
genauso wie bei der Trumpskindomalform auch.
Begrifflichkeiten vorweg, damit wir diese KNFOD-NF überhaupt definieren können
Literal, atomare Formel oder negierte atomare Formel, also A,
nicht B, nicht C, das sind Literale.
Positives Literal, wenn es nicht negiert ist, also A,
negatives Literal, wenn es negiert ist, nicht B.
Zwei Literale heißen Komplementär, wenn eins halt A ist und
das andere nicht A. Und jetzt kommen die beiden Begriffe,
warum man das einführt überhaupt mit den Literalen,
wenn ich eine Dissuktion von mehreren Literalen habe,
also A oder Nicht B oder C,
dann nenne ich das eine Klausel.
Wenn ich eine Konjunktion von Literalen habe,
A und nicht B und C,
nenne ich es
eine duale Klausel
Und jetzt kann man sagen, eine Formel ist ein konjunktiver Normalformen,
wenn es eine Konjunktion, hier ist immer das Und dazwischen, von Klauseln ist.
Also eine Konjunktion von Disjunktionen von Literalen. Hier habe ich
immer irgendwie Disjunktionen von Literalen und die sind dann mit Konjunktionen verknüpft.
Da kann man sich so merken, dass man sagt,
bei der konjunktiven Normalform ist diese konjunktive Verknüpfung quasi der Hauptoperator. Ich habe,
wenn ihr an diesen Strukturbaum denkt und ihr erlaubt jetzt irgendwie nicht nur zwei Kinder im Strukturbaum,
sondern beliebig viele Kinder,
weil wir auch Assoziativgesetz haben und so,
dann wäre jetzt ganz oben die Wurzeln und,
und das hätte ganz viele Kinder,
die wären alle Odas und die Odas,
die haben dann eben als Kinder ihre Literale,
also entweder ein A oder
eben nicht B oder irgendwie sowas
Deswegen konjunktive Normalformen. Konjunktion als Hauptoperator. Und disjunktive Normalformen
im Grunde genommen sehr ähnlich. Disjunktionen als Hauptoperator, das Uder
. Und dann habe ich eine Disjunktion von dualen Klauseln.
Wo geht denn ganz schnell ein Gültigkeitstest? Gültigkeitstest würde ja normal,
also Test auf Tautologie, das würde normalerweise bedeuten,
ich male die ganze Wahrheitstafel auf und ich gucke,
ob im Weißwerteverlauf nur Einsen stehen
Da brauche ich zwei hochendviele Zeilen, dauert ganz schön lange.
Bei einer von den beiden geht es deutlich schneller,
bei welcher und wie?
Bei welcher weiß ich, dass sie gültig ist unter
bestimmten Umständen
Nochmal, unten muss nur eine duale Klausel. Ja,
jetzt sagt er unten bei der disjunktiven Normalform,
wenn eine duale Klausel quasi eine Tautologie ist,
dann wäre das Ganze eine Tautologie,
weil das ist ja alles oder verknüpft.
Jetzt haben wir das Problem, wie kriegst du denn
eine Tautologie hin mit einer Konjunktion von Literalen?
Also sowas wie A und B und nicht C oder so
, wird irgendwie hässlich.
Ansonsten hast du recht, aber da wird es doof.
Zweiter Versuch.
Das Oder ist doof
Wo kann ich das schnell lesen und warum? Bei welcher
der beiden KNF oder DNF, habe ich einen schnellen Gültigkeitstest.
Bei einer von beiden kann ich rüberlesen und kann feststellen,
wenn diese Bedingung erfüllt ist, ist das eine Tautologie.
Wenn sie nicht erfüllt ist, keine Tautologie.
Bitte? Nee, zwei hat er
schon gesagt
Bitte? Nochmal? Ja. Wenn wir in,
du meinst bei der konjunktiven Normalform, ne?
Er sagt jetzt, wenn ich bei der konjunktiven Normalform,
in jeder der Klauseln B sehe, dann ist es eine Tautologie.
Wenn du jeder der Klauseln B siehst, heißt das nur,
sobald du B zu 1 auswertest, ist die Formel wahr.
Aber wenn du jetzt B zu Null auswertest,
du musst ja immer zu wahrkommen,
ist aber schon fast richtig,
was kann ich machen
Bitte? Nicht nur das Literal, sondern was noch?
Ein Literal reicht nicht. Guck mal, was passiert,
wenn in dieser konjunktiven Normalform, was passiert, wenn in der konjunktiven Normalform,
wir nehmen uns jetzt eine Klausel raus, also ein so ein oder verknüpftes Ding.
Wenn das jetzt an einer, und nur das werten wir mal kurz aus,
wenn das an einer Stelle seines Wahrheitswertes Verlaufs eine Null hat,
Kriege ich diese Null irgendwann wieder weg? Ist ja alles unverknüpft.
Genau, wir brauchen die Negation, brauche ich nämlich auch noch.
Das Blöde ist ja bei diesen Klauseln,
genau, bei den Klauseln, oder bei den Oder-Verknüpfungen,
wenn diese Klausel nicht selbst schon eine Tautologie ist,
dann bedeutet das der Wahrheitswerteverlauf der Klausel, ist nicht überall eins,
hat also an einer Stelle eine Null.
Und wenn ich jetzt diese ganzen Klauseln mit unverknüpfe,
diese Null, die bleibt da, die kriege ich nicht weg,
null und null ist 0, 0 und 1 ist null,
die bleibt da also.
Das heißt, ich muss dafür sorgen,
oder es muss gegeben sein,
dass jede Klausel für sich genommen schon
eine Tautologie ist
Damit diese ganze Unverknüpfung eine Tatoologie wird. Ergo,
eine KNF ist nur dann eine Tatoologie,
wenn in jeder Klausel ein Pärchen komplementäre Literale auftritt,
also A oder Nicht-A, B oder Nicht-B, irgendwie sowas.
Das heißt, ich lese einmal rüber über die Formel und gucke,
ob bei jeder Klausel ein Pärchen komplementäre Literale auftritt,
falls ja, weiß ich es eine Tatoologie,
falls nein, weiß ich es keine Tatoologie.
Dafür muss ich einmal über die Formel lesen,
deutlich schneller als so eine Wahrheitstafel mit zwei hoch
in vielen Zeilen aufzubauen
Und bei der distunktiven Normalform,
da kann man sich so ähnlich überlegen,
da habe ich einen schnellen, was habe ich da oben,
habe ich noch einen Gültigkeitstest?
Unten habe ich einen schnellen Unerfüllbarkeitstest. Die distunktive Normalform ist unerfüllbar,
genau dann, wenn jede duale Klausel unerfüllbar ist.
Also wenn jede duale Klausel ein Pärchen von komplementären Literalen enthält.
KNFDLF da oben steht es nochmal für als Merkhilfe,
wie die so aussehen. Und dann hier die beiden Sätze.
Also eine KNF ist gültig, genau dann,
wenn alle ihre Klauseln gültig sind
Weil sobald eine Klausel nicht gültig ist,
hat die an einer Stelle eine Null in der Wahrheitstafel,
das flankst sich fort. Und das gilt genau dann,
wenn alle Klauseln mindestens ein Pierre paar komplementäre Literale enthalten.
Und bei der DNF im Grunde genommen genauso,
gültig durch unerfüllbar ausgetauscht, DNF ist unerfüllbar, genau dann,
wenn alle dualen Klauseln unerfüllbar sind, genau dann,
wenn in allen dualen Klauseln mindestens ein Pärchen komplementäre, literale vorkommt.
Also da kann man schon mal sagen, okay,
Kern-FDADNF, bestimmte Sachen kann ich damit jetzt schnell prüfen.
Für DNFs kann ich auch noch den Erfüllbarkeitstest an sich schnell machen,
das ist irgendwie klar, wenn nicht Unerfüllbarkeit schnell testen kann,
kann ich auch Erfüllbar schnell testen,
wenn sie nicht unerfüllbar ist,
ist sie erfüllbar
Wir werden später sehen, dass die Laufzeit in P ist,
schon mal so. Fürs Nachbereiten steht das da.
Und für KNFs geht der Füllbarkeitstest aber wahrscheinlich nicht schnell.
Da werden wir später sagen, dass das MPV ständig ist.
Aber das nur so als Ausblick fürs Merken kann man sich schon mal merken,
irgendwie DNFs, schneller Erfüllbarkeitstests, KNF wahrscheinlich nicht.
DNF ist ja erfüllbar, sobald ich eine duale Klausel da drin finde,
die kein Pärchenkomplementäre Literale enthält, dann bin ich schon fertig.
So, und die wollen wir jetzt herstellen.
Zu jeder Formel gibt es mindestens eine konjunktive Normalform und mindestens
eine disjunktive Normalform
Das heißt, zu dieser Formel F gibt es eine äquivalente Formel K und eine äquivalente Formel D,
Cars in Konjunktiver Normalform, die ist indistruktiver Normalform.
Und im Schöning macht er das mit struktureller Induktion,
ich gebe jetzt einfach eine Konstruktion an und zeigt dann, dass die korrekt ist.
Könnt ihr euch dann beides mal angucken, ihr könnt mal gucken,
wie ihr das im Schöning mit struktureller Induktion macht, auch schön.
Idee, also nehmen wir mal erstmal die KNF, hier will ich hinkommen.
Wenn ich euch jetzt irgendwie eine außerahnlogische Formel F gebe,
dann enthält die jetzt irgendwie Implikationen,
Biimplikationen, Negationen noch an beliebiger Stelle,
bei der KNF da, Wenn ihr euch das anguckt,
die Negation ist immer ganz dicht an den atomaren Formeln dran.
Sowas wie Nicht-Klammer auf, A oder B,
Klammer zu, gibt's nicht. Oder das Nicht ist,
wenn überhaupt, dann ist es am Literal dran.
Will ich noch was sicherstellen? Ja, und dann will
ich noch sicherstellen, dass das und und das oder,
dass die quasi an der richtigen Stelle sind.
Also und als Hauptoperator oder als zweiter Operator.
Wie könnte ich das machen mit Äquivalenzumformungen?
Grobe Idee einer? Kriege ich zum Beispiel die,
also Implikation und Biomplikation sollen ja nicht mehr auftreten.
Die muss ich also
irgendwie wegkriegen
Nö, minimal nicht. Nie meine ich. Einfach nur
irgendeine KNF und irgendeine DNF. Oh, ihr hattet ihr
ein RS-Minimale? Hatte den Rechnerstrukturen minimale erzeugen? Ja,
ne, mit diesen Diagrammgeschichten, okay. Aber mit Äquivalenzumformung
, ihr kennt ja eine Äquivalenzumformung für die Implikation.
Also F-Impliziert-G ist Äquivalent zu Nicht-F oder G.
Dann wendet ihr die so lange an,
bis es nicht mehr geht
Die Implikation schon mal weg. Und dann kennt ihr noch irgendwie FB impliziert G,
ist auch irgendwie äquivalent zu, was hatten wir da so,
F impliziert G und G impliziert F,
dann kann man die anwenden und danach noch mal diese Implikationslöschung,
dann ist das auch weg.
Also dann haben wir alle Implikationen und Biomplikationen schon mal weg.
Was nervt jetzt noch, die Negation, wie kriegen wir
die möglichst nicht dran? Genau. Den Morgen bis zum
Gehtnichtmehr so und vielleicht noch mal doppelte Negation zwischendrin,
dass man irgendwie nicht nicht A durch A ersetzt, fertig.
Jetzt ist die Implikation weg,
die Biomplikation weg und die Negation ist ganz dicht an
den Literalen dran
Und das Einzige, was jetzt noch fehlt,
ist die richtige Struktur, also dass das und an der
richtigen Stelle ist und das oder an der richtigen Stelle,
können jetzt also noch irgendwie anders aussehen.
Man könnte jetzt noch sowas haben wie A und B oder C
und man will aber eigentlich eine KNF haben.
Was macht man dann noch? Ich habe nur ein Gesetz,
was uns da helfen kann, oder zwei.
Wie kriegt man das hin? Das ist zum Motivitätsgesetz.
Fertig. Distributivitätsgesetz sorgt genau dafür,
ihr klammert aus und dann verschiebt sich der Jungtor halt,
also wird in der Höhe verstellt.
Und das ist eigentlich auch schon die ganze Beweisidee.
Also diese Art von Umformung zu machen und dann ist man
Gucken wir uns das mal im Detail an,
wir konstruieren zu F mittels den folgenden Equalenzumformungen,
so um das nur die jungen Toren davor kommen,
indem wir Implikationen und Biomplikationen löschen.
Weiter so umfahren, dass Negationen nur vor atomaren Formen vorkommen,
doppelte Negationen und dem Morgen und dann mittels Distributivgesetz weiter so umformen,
dass eben eine DNF oder KNF entsteht.
Das ist so grob die Idee und wenn man es genauer ausführt,
im ersten Schritt, wo wir so umformen wollten,
dass nur noch Negationen, Konjunktionen und Distunktionen vorkommt,
Da setzen wir halt F-Impliziert-G durch Nicht-F-Oder-G.
Und F-B-Impliziert-G beispielsweise dadurch. Kann man auch ersetzen durch F-
und G oder Nicht-G und Nicht-F. Aber so eins davon,
kann man machen. Dann habe ich eine neue Formel F-1,
die ist Äquivalent zur ursprünglichen wegen des Ersetzbarkeitstheoriens.
Das ist Ersetzbarkeitstheorien, sagt mir, wenn ich eine Taiformel habe,
kann ich die durch eine äquivalente Taiformel ersetzen.
Was anderes passiert da nicht. Wenn da irgendwo in der
Formel F impliziert G auftritt, ersetzt sich das durch Nicht-F
oder G,
Jetzt F1 durch wiederholte Anwendung von der doppelten Detegration und von dem Morgen.
Da sieht man schon, hier sind die zwei Negationszeichen
komplett weg und hier geht die Integration dichter ran.
Also hier ist sie noch außerhalb der Klammer,
hier ist sie jetzt irgendwie dichter rangezogen, wenn ich das wiederholt mache,
dann ist die irgendwann ganz dicht bei den Literalen.
Also so um das Negation nur noch vor den atomaren Formen vorkommen.
Muss man manchmal so ein bisschen mischen,
also dass man erste Morgen macht, dann doppelte Negation,
dann wieder den Morgen oder irgendwie so oder andersrum.
Aber so die beiden halt im Wechsel immer wieder anwenden,
Und dann hat man eine neue Formel F2,
die keine Implikationen mehr enthält, keine Biamplikation mehr enthält und
wo die Negation an den Literalen dran ist.
Und dann entweder Schritt 3B, wenn ich eine KNF erzeugen will oder,
das müsste eigentlich 3A sein, entweder Schritt 3A,
wenn ich eine KNF erzeugen will oder 3B für die DNF.
Durch wiederholte Anwendung dieser Distributivsgesetze, wenn ich das jetzt in eine KNF um.
Hier ist das Problem, ich habe noch das Uder,
außen sozusagen, will ich aber nicht haben,
und soll der Hauptapparator sein.
Durch Anwendung von dem Distributivgesetz hier sieht man,
ist das und jetzt der Hauptapparator
Und das ist da drunter, dass dieses gleiche Gesetz,
nur halt mit Kommentativität nochmal gedreht. Oder,
wenn ich eben das oder nach oben haben möchte,
dann, wenn dich wiederholt, diese Disziputivgesetze an,
wo das Oder eben noch nicht ganz oben ist, sondern das und gerade.
Und dann, wenn ich das Distributivgesetz an,
was mir erlaubt ist, oder zum Hauptoperator zu machen.
Und dann, wenn ich dir immer weiter an,
bis das eben fertig ist. Ja,
und für die Korrektheit kann man sich relativ schnell überlegen,
die Schritte von vorher, die kann ich nur endlich oft ausführen.
Also die Umformung hier, die lesen sich immer von links nach rechts.
Also ich ersetze nie den rechten Teil durch den linken Teil,
sondern immer nur den linken durch den rechten Teil,
sonst wäre es natürlich nicht so,
dass es nach endlich vielen Schritten aufhört.
Also wenn ich immer F wieder durch Nicht-Nicht-F ersetzen kann und
nicht nur F durch F,
dann bin ich irgendwie
der Endlosschleife
Aber ansonsten terminieren die vorherigen Schritte. Und der Schritt hier
terminiert auch, weil bei jedem dieser Umformungsschritte wandert irgendwie so ein
Und in der, wenn man jetzt an Strukturbäume denkt,
in den Strukturbäumen eine Ebene nach oben. Also hier war das,
oder der Hauptoperator und das und auf der zweiten Ebene.
Hier ist das und auf der ersten Ebene und das Oder
ist auf der zweiten. Also hat man das und eine Ebene
nach oben gezogen. Das passiert bei jedem dieser Schritte.
Das heißt, der Baum ist nur endlich groß.
Irgendwann muss das und ganz oben sein.
Hier nochmal die einzelnen Schritte so in der Übersicht,
was man so macht.
Also erstmal Biimplikation und Implikation ersetzen
Bei zweitens doppelte Negationen und dem Morgen benutzen und dann eben die Distributivitätsgesetze.
Entweder Schritt 3 oder Schritt 4. Erstens kann man hintereinander ausführen,
also sich erstmal um alle Bimplikationen kümmern, dann um alle Implikationen.
Zweitens mischt man, also doppelte Negationen und dem Morgen
so einen Wechsel, bis das nicht mehr geht.
Und dann macht man entweder den dritten oder den vierten Schritt
, Distributivitätsgesetz anwenden.
Warte. Nochmal kurz zum Beweis, was wir eben auch so
ein bisschen schon diskutiert haben. Warum muss es die geben
? Warum muss es so eine KNF und DNF geben?
In jedem Schritt mache ich ja Äquivalenzumformungen. Dann weiß ich
schon mal, wegen des Ersetzbarkeitstheoriens, das,
was nachher rauskommt, ist Äquivalent zur ursprünglichen.
Ich wollte ja eine KNF und eine DNFDE-Qualent ist zu ursprünglichen.
So, Äquivalent ist es schon mal auf jeden Fall.
Das ist gut. Dann muss ich mir überlegen,
terminiert wirklich jeder Schritt oder komme ich so in Endlosschrittleifen.
Im ersten gibt nur endlich viele von diesen Implikationen Biimplikationen,
also höre ich nach
endlich vielen Schritten auf
Im Zweiten, die Negationen gehen immer eine Ebene tiefer
im Strukturbaum, müssen also irgendwann auch unten ankommen quasi.
Kann auch nur endlich oft umgeformt werden. Und im dritten
Schritt rutschen die Distunktionen bzw. Konjunktionen im Strukturbaum nach oben,
muss also auch irgendwann aufhören. Also terminieren alle Schritte und nach Konstruktionen,
dadurch, dass ich diese, nur die richtigen Distributivitätsgesetze anwende,
also die,
die mir eben gerade das und immer weiter nach oben wandern lassen bei der KNF,
entsteht am Ende auf jeden Fall eine KNF bzw. eine DNF.
Da habe ich ein Verfahren, das terminiert,
das eine äquivalente Formel ausspuckt und die Formel ist tatsächlich eben
auch ein KNF bzw. DNF
Verfahren, korrekt. An der Stelle mit Äquivalenz und Formung
relativ schnell zu sehen, dass das Verfahren richtig ist,
aber man muss halt darauf kommen, was man Schritt für Schritt machen muss.
Ja, genau. Hier nochmal, da dreht die dem.
Bei dem Schritt hier mit diesem Distributivitätsgesetzen,
da tritt halt relativ häufig der Fall auf,
genauso wie in der Algebra auch,
dass man hier auf der linken Seite nicht eine Formel F hat,
sondern vielleicht sowas wie A und B.
Da hat man so A und B oder C und D.
Da kann man so ein verallgemeinertes Distributivitätsgesetz anwenden, dass man
eben hier Hier habe ich F und I oder G und H.
Und dann halt jeder mit jedem, ne?
F oder GF oder H-I oder G-I oder H. Und die
alle mit unverknüpft. Genauso wie man es in der Algebra
auch macht. Und dem Morgen kann man eben auch so verallgemeinern.
Auch klar, oder? Also wenn ihr habt,
nicht, Klammer auf, A oder B,
Klammer zu, dann wird das nicht A und nicht B.
Und wenn ihr halt drei da drin habt,
hier G oder H oder I, dann werden das auch drei.
So, Beispiel. Die Formel hier,
A und B impliziert C und das Ganze impliziert D.
Und da wollen wir eine KNF erzeugen.
Erster Schritt, Elimination der Implikation
Die innere habe ich genommen als erstes. Man kann
auch die andere nehmen, aber die erste genommen.
B impliziert sie, Äquivalent zu Nicht-B oder C. Nächster Schritt,
die zweite Implikation da löschen.
Es ist dieses A und Nicht-B oder C vorne,
das ist die Prämisse von der zweiten Implikation.
Das heißt, da muss ich ganz vorne die Negation vormachen.
Da kommt die Negation hin oder die. Den Morgen anwenden,
hier die Negation reinziehen, wird nicht A oder Nicht,
Klammer auf,
nicht B oder C
Klammer zum Klammer
Nochmal den Morgen. Hier steht wieder die Negation außerhalb von
der Klammer, also nochmal den Morgen. Nicht nicht,
B und nicht C. Doppelte Negation bei dem Nicht-Nicht-B. Und ja,
jetzt ist Implikation weg.
B Implikationen weg und die Negation steht ganz dicht an den Literalen.
Und ich wollte ja aber eine KNF und jetzt stört mich gerade,
im Moment ist das uns sogar auf der untersten Ebene,
also hier das oder und das oder die stören mich beide.
Also wenn dich einmal das Distributivgesetz hier an,
auf den ersten Thermen Nicht-A oder B
und nicht
Nicht A oder B und nicht A oder nicht C.
Und dann stört mich immer noch,
jetzt ist das und zwar schon auf der zweiten Ebene,
aber das Oder ist immer noch auf der ersten,
also mache ich nochmal Distributivitätsgesetz und dann bin ich bei Nicht-A oder B oder D
und nicht A oder nicht C oder D. Kann man sparen und dann habe ich die KNF.
Welche DNF haben wollte und zwischendurch nicht schon eine DNF war,
dann könnte ich jetzt nochmal das Distributivitätsgesetz anwenden und halt hier mit jedem,
mit jedem,
also nicht A und Nicht-A oder nicht A
und nicht C oder nicht A oder D und D
und so weiter und dann kriege ich
eine DNF
Aber die wird deutlich länger. Jo. Und da noch kurz.
Zwischendurch kann man, es wird in Beweisheit nicht gemacht,
weil es nur ein Existenzbeweis ist,
aber man kann halt zwischendurch noch die anderen Äquivalenzregeln,
die wir so hatten, benutzen, um Sachen zu verkürzen.
Also wenn ich an irgendeiner Stelle die Klausel A oder
nicht A habe oder nicht A und F,
dann kann ich das A oder nicht da auch wegfallen lassen.
Dann weiß ich ja, oder nicht A ist 1 und F,
1 und F muss irgendwie F sein.
Also solche Absorptions-Idempotenz, Tautologie, Kontraditionsregeln,
die kann man oft Anwendung zwischendurch die Formel zu vereinfachen
Fragen? Das ist das erste Verfahren im KNF und DNA4 zu stellen,
Fragen in Fragen. Okay. Dann gibt es noch eins,
das ist ja mit Äquivalenzumformung gewesen und man kann das auch mit Warztafeln machen.
Problem dabei war jetzt, Tafeln werden sehr, sehr großen,
also ich muss erstmal die Wahlstafel erstellen, deswegen wird das meist ineffizient,
aber um nochmal so ein Verfahren kennenzulernen, Aber das ist einfach eine Wahrheitstaffel machen.
Wenn ich die Tabelle da habe, eine Formel F,
in der die atomaren Formeln ABC auftreten,
und jetzt hat man das irgendwie ausgewertet,
also die ganzen Zwischenschritte sind da jetzt mal nicht drin,
aber hier ABC, ist klar,
von 0-0 bis 1-1-1 und nehmen wir meinen F hat den Wahrheitswerteverlauf hier.
Wie könnte ich aus der Tafel eine DNF ablesen?
DNF nochmal ist eine Oder-Verknüpfung von dualen Klauseln.
Und oder Verknüpfung hat den Vorteil bei einer Oder-Verknüpfung,
pflanzen sich Einsen fort
Also wenn ich irgendwie einen Wahrheitswerteverlauf habe, wo an einer Stelle
eine Eins auftritt und ich verodere das mit einem anderen Formel,
dann pflanze ich die Eins im Wahrheitswerteverlauf vor Ort.
Die ist dann auch weiterhin in der Zeile. Ja,
also du guckst dir die Zeilen an, wo eins ist
und was machst du jetzt zum Beispiel mit der Zeile hier mit der vierten?
Ja,
und dann
Wenn du B und C nimmst, dann würdest du auch,
hierfür, in dem Fall wird es sogar gehen,
hättest du auch hier für eine 1. Aber wenn du bei der hier zum Beispiel sagst,
hier habe ich bei Arne 1,
also nehme ich A und verknüpfe das irgendwie oder,
dann wäre hier überall eins.
Ja, genau, muss das nicht da auch mit reinnehmen. Also die Idee,
ne, ich nehme mir die Zeilen,
die zu eins ausgewertet werden und mache mir aus den atomaren Formeln da links davon,
mache ich mir eine DNF,
also eine duale Klausel nur,
die genau an der Stelle eine 1 hat und an
allen anderen
eine Null
Wenn ich jetzt nämlich nehme, nicht A und B oder nicht A und B und C,
dann kriege ich genau hier eine Eins und sonst habe ich überall Nullen.
Und wenn ich das für alle Zeilen mache,
die zu eins ausgewertet werden, dann habe ich eine duale Klausel,
die hat an dieser Stelle eine Eins und ist sonst überall Null,
eine duale Klausel,
die ist hier an der fünften Stelle eine Eins und sonst überall Null und eine,
die ist hier an der achten der Eins und sonst überall Null.
Und wenn die alle mit Oder verknüpft werden,
dann pflanzen sich halt die Einsen fort und dann habe ich
genau den Wahrheitswerteverlauf, den ich haben möchte.
Also erste Nicht-A und B und C,
zweite A und Nicht-B und Nicht-C, dritte A und B und C.
Also wenn da wenn, ich gucke mir die Zeilen an,
wo F zu 1 ausgewertet wird.
Und wenn in dieser Zeile die atomare Formel A zu 1 ausgewertet wird,
dann nehme ich A in meine duale Klausel, so wie hier.
Und wenn A zu null ausgewertet wird, dann nehme ich
nicht A in meine duale Klausel, so wie hier.
Und all die Dinger da, die da rauskommen,
die verknüpfe ich dann mit oder. Und dann habe ich
eine DNF, die genau den gleichen Wahrheitswerteverlauf hat wie S.
Eben mit der Begründung, dass jede dieser dualen Klauseln
nur an genau der Stelle eine Eins hat,
wo die Formel F eben in der Zeile auch eine Eins hat.
Und wenn ich die dann oder verknüpfe,
dann habe ich in genau all den Zeilen,
wo F zu 1 ausgewertet wird,
eine Eins
Ja. Und Carnev? Gleich Formel? Carnev? Die
sind ja unverknüpft. Was pflanzt sich da vor Ort?
Also bei Carnev ist ja, da habe ich Klauseln,
die unverknüpft sind. Was pflanzt sich da vor Ort?
Ehe man sich die Einsen fortgepflanzt, ne? Und jetzt?
Null, ne? Also wenn ich jetzt einen Wahrheitswerteverlauf habe,
der an einer Stelle eine Null hat und ich verknüpfe die duale Klausel mit einer anderen,
dann kriege ich die Null dann nicht weg.
Also dann pflanzt die Null fort. Das heißt,
jetzt gucke ich mir hier die Zeilen an,
die zu Null ausgewertet werden
Und versuche, eine Klausel zu erzeugen,
die genau an der Stelle null hat und sonst überall eins.
Und wenn ich die dann mit unverknüpfe,
dann kriege ich einen Breitswerteverlauf, der genau an den Stellen null ist,
wo die Formel F auch zu null ausgewertet wird und sonst dem zu eins,
genau wie F. Fertig.
Wie kriege ich das hin? Genau, also das Oberste
ist A oder B oder C. Für die erste Zeile hier,
ich mache im Grunde genommen alles genau andersrum als eben,
eben habe ich mir die Zeilen angeguckt, die eins sind,
jetzt gucke ich mir die Zeilen an, die null sind.
Dann habe ich gesagt,
wenn eben in der Zeile A zu eins ausgewertet wurde,
nehme ich A auf, jetzt sage ich,
wenn A zu eins ausgewertet wird,
nehme ich nicht A auf
Wenn A zu 0 ausgewertet wird, dann nehme ich A auf.
Das führt dazu, wenn ich für die Zeile hier,
A oder B oder C nehme,
wenn ich für die erste Zeile A oder B oder C nehme,
diese Formel A oder B oder C,
deren Wahrheitswerte Verlauf hat genau hier eine Null in der ersten Zeile und ist sonst überall eins.
Und für die anderen ist das genauso. Die haben immer genau an der Stelle,
wo sie da stehen, eine Null,
sind sonst überall eins, wenn ich die Dinger und verknüpfe,
dann pflanzen sich überall die Nullen fort.
Dann kriege ich dann genau den Stellen Null. Hier zum Beispiel in der vierten Zeile,
da sind all diese Klauseln, die werden da alle zu eins ausgewertet,
weil die eben nur an einer Stelle zu Null ausgewertet werden,
genau da, wo sie stehen.
Dann habe ich halt eins und eins und eins und eins
und eins und dann bleibt das eben eins
Also das ist die KNF. Da nochmal zusammengefasst,
wenn ich eine DNF4 stellen will, ich erstelle pro Zeile,
die zu eins ausgewertet wird, eine duale Klausel.
Und zwar mache ich das wie folgt,
wenn ein Aussagesymbol A in der Zeile zu eins ausgewertet wird,
dann nehme ich A in die Klausel,
wenn A zu 0 ausgewertet wird,
nehme ich nicht A in die Klausel.
Und all die so gewonnenen dualen Klauseln, hier müsst ihr entstehen,
in die duale Klausel, nehme nicht da in die duale Klausel.
Und all die so gewonnenen dualen Klauseln werden mit oder verknüpft, fertig.
Und der Spezialfall, wenn es gar keine Zeile gibt,
die zu eins ausgewertet wird, dann ist es also eine Kontradition,
naja,
dann nehme ich mir A und nicht A,
das ist eine DNF
Jo. Das ist das. Und KNF sieht fast genauso aus, ne?
Erstelle pro Zeile, die zu null ausgewertet wird, eine.
Und wenn A zu 1 ausgewertet wird in der Zeile Nymne
nicht A, wenn A zu null ausgewertet wird, nehme A.
Und alle so gewonnen in Klausel mit Unverknüpfen, wieder fertig.
Spezialfall gibt es gar keine Zeile,
die zu null ausgewertet wird, ist das Ganze eine Tautologie,
nimm als Formel A oder nicht A, ist eine KNF.
Das ist die spezielle KNF-Dinos einer Klausel besteht.
Joa,
Fragen dazu
Auch klar, ne? Okay. Korrektheitsbeweis, hier haben wir eben schon diskutiert,
aber offensichtlich werden DNFs und KNS erstellt, einfach nach Konstruktion.
Und jetzt kann man halt argumentieren, die müssen Äquivalent zur ursprünglichen Formel sein,
eben wegen diesem sich fortpflanzen von null oder eins.
Bei der DNF werden mit diesen einzelnen dualen Klauseln gerade Formeln,
die genau an der Stelle der Zeile eine Eins haben und
sonst eine Null hergestellt und durch die oder Verknüpfung hat man dann eine,
die Äquivalent zu ursprünglich ist.
Bei der KNF genauso, nur dass hier eben
die Nullen fortpflanzen
Hocke. Also KNF selbst ist auf keinem Fall eindeutig,
weil du ja einfach, keine Ahnung,
die gleiche Klausel noch mal dahin schreiben könntest oder so und
dann hast du eine längere, die Äquivalent ist.
Ob die kürzeste eindeutig ist,
nee,
ich glaube auch nicht
Nö. Ja, nee, glaube ich auch nicht.
Brauchen wir noch ein Beispiel angeben. Ja, allein schon
wegen Kommentativität nicht. Könnte man jetzt noch irgendwie versuchen,
Kombinativität und Assoziativität rauszunehmen, aber ich glaube auch dann nicht.
Ja. Ja, aber das... Ja,
ich überlege gerade hier mit diesem,
aber dann ist es nicht modulo,
Kommentativität und Assoziativität,
passt das immer noch?
Okay. Gut
Gibt es ja auch so Techniken für minimale zu bestimmen,
weil man KNFs dann gerne irgendwie in Schaltkreise gießen will.
Und das ist natürlich praktisch, wenn die minimal ist.
Und dann gibt es halt Verfahren,
um zu einer KNF eine möglichst kurze KNF zu erstellen.
Wir wollten erstmal nur überhaupt eine KNF in der DNF haben.
Ja, da Zusammenfassung. Also Erfüllbarkeit zu prüfen ist bei KNF schwierig.
Sehen wir noch genauer, aber ihr könnt ja mal überlegen,
wenn ich eine KNF habe, ob es einfach ist,
die wahr zu machen.
Ihr guckt euch eine Klausel an,
da ist sowas mit Ola-Verknüpfung drin.
Dann macht ihr das wahr
Und jetzt müsst ihr aber jede Klausel wahrmachen.
Und dann kann es halt passieren, dass ihr sagt,
okay, ich habe gerade die erste wahr gemacht,
die zweite, die dritte.
Und ich stellte fest, oh,
die vierte kriege ich nicht wahrgemacht mit meinen vorherigen Entscheidungen.
Also müsst ihr wieder zurückgehen und eure Entscheidung hinterfragen.
Und dadurch könnt ihr eben nicht so einmal rüberlesen und dass überall die Aussagensymbole belegen,
wie ihr wollt und eine erfüllende Belegung rauskriegen.
Deswegen ist das sehr wahrscheinlich schwierig, das zu machen.
Schwierig soll bedeuten, dauert lange.
Das kam von draußen, ne? Dann kann man Schluss folgern,
dann ist es auch allgemein schwierig für Aussagen logische Formeln,
Erfüllbarkeit zu prüfen, wenn es schon für den Spezialfall der KNF schwierig ist,
kann es für den allgemeinen Fall nicht leichter werden.
Bei DNFs ist es einfach, naja, dann kann man Schluss folgen,
dann ist es wahrscheinlich teuer, die herzustellen, ist auch so.
Bei DNFs könnt ihr euch mal überlegen,
wenn ihr irgendwie eine KNF habt mit zwei Klauseln,
aus jeweils vier Literalen, und ihr macht eine DNF,
jeder mit jedem, dann habt ihr plötzlich sowas der Länge 16 und so,
das bläht sich irgendwie hässlich auf.
Genau, deswegen wird das da irgendwie teuer,
die herzustellen
Also es geht einfach, aber es dauert ja lange.
Ja, dann kann man hier schon mal sagen,
irgendwie Erfüllbarkeit zu testen, ist bereits in der Aussagenlogik im Allgemeinen schwierig.
Ist nicht unmöglich, dauert aber vielleicht lange. Und das
ist irgendwie doof, weil das möchte man gerne machen,
zumal mit Erfüllbarkeit oder Unerfüllbarkeit ja auch diese ganzen Sachen zusammenhängen,
wie Äquivalenz und Vollgabarkeit.
Folgebarkeit kann ich zurückführen auf die Frage, ist F impliziert gehende Tautologie,
Äquivalenz kann ich zurückführen auf die Frage, ob FB impliziert gehende Tautologie ist.
Das heißt, wenn ich Unerfüllbarkeit testen könnte,
dann könnte ich auch solche Sachen testen.
Unerfüllbarkeit, Erfüllbarkeit und so, alles relativ ähnlich.
Ergo, eigentlich will ich das machen können.
Jetzt stört mich das, dass das scheinbar lange dauert und
schwierig ist
Jetzt kann ich versuchen, mir zu überlegen,
wie kann ich es irgendwie, wie kann ich es trotzdem machen?
Also Wahrheitstafel geht zwar immer, dauert aber lange. DNF erzeugen und das da machen,
geht zwar auch immer und es geht auch schnell, wenn es eine DNF ist,
aber ich müsste erstmal die DNF hier stellen, ist also auch doof.
Jetzt gibt es zwei Möglichkeiten, was man machen kann.
Entweder man guckt sich sein Problem an und sagt,
ich brauche gar nicht die ganze Aussagenlogik,
mir reicht für meinen, wenn ich irgendwas spezifizieren will,
brauche ich vielleicht gar nicht die ganze Aussagenlogik,
sondern nur einen Teil davon.
Und für den Teil geht es vielleicht schnell. Also ich kann versuchen,
die Logik einzuschränken sodass ich mit der Formelmenge,
die ich jetzt noch habe, weiterhin genug machen kann für meinen Anwendungsfall,
aber der Führbarkeitstest geht jetzt vielleicht schnell.
Oder eine andere Möglichkeit, ich versuche mir Verfahren zu überlegen,
die zumindest oft schnell arbeiten.
Also wie auch im Allgemeinen dann nicht schnell arbeiten,
aber vielleicht möglichst häufig. Wir haben ja noch gut gezeigt,
da können wir ja nochmal hier reingucken.
Horn formeln ist für die erste Möglichkeit bei Horn formeln,
sagt man,
ich schränke die Aussagenlogik ein
Kann tatsächlich relativ viel schon nicht mehr ausdrücken,
aber spannenderweise immer noch sehr, sehr viel,
sodass es eine praktische Teilmenge der Aussagenlogik ist.
Und die Hornformeln, die haben dann sehr schnell einen Erfüllbarkeitstest.
Im Vergleich, normales Verfahren, ich meine Wahrheitstafel auf,
zwei hochendviele Schritte, Hornformeln, nur so grob endviele Schritte.
Also das klafft deutlich auseinander. Also so für 30,
da ist man bei der Hornformel,
braucht man dann 30 Schritte und bei dem anderen braucht man
irgendwie eine Milliarde.
Das ist irgendwie deutlich auseinander
Angucken, Horn formeln. Hat ihr überhaupt Fragen bis dahin?
Ist das alles irgendwie oder döst ihr so in der Hitze vor euch hin?
Ah, es gibt Lebenszeichen. Fragen bis dahin irgendwie.
KNSDNS erstellen geht, ne? Dann Horn formeln. Wir
machen wieder Klauseln, Klauseln waren die Dinger mit oder Verknüpfung,
also A oder nicht B oder C, sowas, ne?
Und jetzt sagen wir eine Klausel ist genau dann
eine Hornklausel wenn K höchstens ein positives Literal enthält.
Also ich darf sowas haben wie Nicht-A oder Nicht-B oder Nicht-C oder Nicht-A oder Nicht-B
oder C. Also ein positives Literal ist okay, null oder eins.
Zwei ist doof. A oder B ist doof.
Und wenn ich jetzt eine Formel in KNF habe,
bei der jede Klausel eine Hornklausel ist, dann nenne ich das eine Hornformel.
Also da unten Hornklauseln, A selbst,
hat genau ein positives Literal und gar keine negativen Nicht-A oder B,
ein Negatives, ein positives, nicht A oder B oder Nicht-C,
zwei negative, ein positives Nicht-A oder Nicht-B, zwei negative Nullpositive, alles okay.
Keine Hornklauseln, A oder B, zwei positive,
Nicht-A oder B oder C, zwei positive,
alles doof
Und da drunter nochmal eine Hornformel, so eine Unverknüpfung von
Klauseln, die maximal ein positives Literal enthalten.
Das sind Hornformeln. Jetzt kann man, deswegen sind die
überhaupt interessant hier, diese Einschränkung mit ein positives Literal.
Die führt dazu, dass man diese Oder-Verknüpfung hier,
dass man die sehr schönen Implikationsschreibweise schreiben kann.
Kann nämlich Folgendes machen, wenn K nur negative Literale enthält
und wenn Karl negative Literalen enthält und genau ein positives.
Wenn das also irgendwie diese Form hat
Dann ist die Idee, ich gucke mir die ganzen Negativen im Blog
an und ziehe die Negation raus mit verallgemeinertem The Morgan.
Ich ziehe einmal, hier, das ist sogar nochmal extra geklammert,
dass ich mir nur diesen Blog angucke und jetzt ziehe ich einmal
die Negation raus und dann habe ich hier ganz viele positive,
die mit unverknüpft sind.
Und jetzt habe ich eben quasi nicht F oder AK und nicht F oder AK,
das kann ich dann mit der Implikation machen und dann habe
ich hier die ganzen uns vorne, implizieren AK.
Das ist quasi, also Regel deswegen, weil man jetzt sagt,
wenn A1 stimmt und A2 und A3 und AI,
dann stimmt auch AK.
Deswegen Regeln
Und jetzt gibt es noch die beiden Fälle,
nur genau ein Positives und nur negative.
Und die kann man eben auch in dieser Implikationsschreibweise ausdrücken,
wenn man noch Top und Bottom benutzt.
Also wenn ich nur negative habe, dann sieht das so aus.
Jetzt könnte ich natürlich auch die erstmal im Blog betrachten und die Negation rausziehen,
aber dann habe ich nichts, wohin ich implizieren kann.
Und das Element, was aber nichts tut bei der Oder-Verknüpfung,
das ist das Bottom, also die Kontradition. Das heißt,
ich betrachte die Vorderen hier wieder im Blog,
aber verudere die noch mit dem Bottom,
kann ich wieder dem Morgen anwenden und jetzt kann ich Implikationen anwenden,
die alle hier implizieren,
Das ist deswegen eine Beschränkung, weil man damit sagt,
wenn A1 gilt und A2 und dödödödö und AI,
dann ist irgendwas falsch gelaufen,
weil dann kann ich die ganze Formel nicht mehr warm machen.
Das führt quasi zum Fehler, zur Kontraliktion,
weil das Ganze, wenn hier vorne alle wahr sind,
dann kann ich die Implikation nicht mehr wahrmachen.
Dann steht da nämlich eins impliziert, null, das ist falsch.
Deswegen eine Beschränkung. Und wenn Karnur genau ein positives Literal enthält,
dann nennt man das ein Faktum,
also etwas, was immer gelten muss,
wenn KA1 ist,
dann kann ich das
wieder oder verknüpfen mit nicht top
Verknüpfe das oder mit Bottom,
jetzt muss ich noch irgendwo eine Negation hier haben,
damit ich wieder eine Implikation machen kann,
also mache ich Oda Bottom und das Bottom mache ich nicht top und dann
habe ich nicht top oder A1 und das ist top impliziert A1.
Das sind meine drei Regeln, die ich haben kann in Implikationsschreibweise.
Ich brauche das nicht unbedingt als Infikationsschreibweise ausdrücken, hilft aber manchmal.
So, jetzt nochmal Braucht man für die Beweise,
brauchen wir ja nicht so dringend, aber eine Hornklausel,
die ja kein Aussagensymbol mehrfach auftritt, heißt reduziert.
Okay, wenn ich da irgendwie A oder nicht A oder nicht A drin habe,
dann reicht es auch da einmal nicht da hinzuschreiben.
Hornformel heißt reduziert, genau dann, wenn alle Klauseln reduziert und verschieden sind.
Okay, also man macht das möglichst klein und dann
sagt man auch für jede nicht allgemeine Hornformel existiert,
so eine Äquivalente reduzierte. Allgemeingültig ist sie halt nur,
wenn man hat A oder nicht A und dann habe ich
eine Hornklausel, in deren Aussage sind wohl mehrfach Auftritt.
Deswegen gilt das nur für die Nicht-Allgemeingültigen und um mal
die Schranke zu sehen für die Hornformel,
es gibt bereits für A oder B
keine Äquivalente Hornformel
Jetzt kann man sagen, oh, da ist man ja deutlich eingeschränkt,
aber in den Anwendungen ist es so,
dass man relativ häufig prologbasiert, zum Beispiel sehr stark auf diesen Hornformeln,
relativ häufig sowas gar nicht braucht,
sondern dass man mit dem, was wir eben hatten,
dieses Fakten und Regeln und Beschränkungen damit schon super viel machen kann und dass das dann eben genügt.
Hängt auch damit zusammen, dass sowas wie A oder B
als Aussage so, das hilft einem meistens nicht.
Wenn ich weiß, A oder B gilt,
dann frage ich mich so ein bisschen von der konstruktiven Sichtweise,
ja, was gilt denn nun?
Deswegen, wenn ich in Anwendung bin,
weiß ich meistens irgendwie,
eins davon gilt nicht oder genau eins davon gilt und dann
baue ich deswegen so ein A oder B
gar nicht
Da steht es nochmal, sind also in gewisser Weise
recht eingeschränkt, wenn A oder B schon nicht geht.
Trotzdem geht eben ziemlich viel, insbesondere eben Logikprogrammierung,
also Grundlage für Prolog und sowas,
wäre das in SE3 sich mal anguckt, wird das da wiederfinden.
Und weil man mit denen eben so ziemlich viel machen kann,
lohnt es sich eben da jetzt Gedanken,
sich zu machen über so einen effizienten Erfüllbarkeitstest.
Und da kommen wir ja auch ursprünglich her. Ja,
wenn man sich das da so anguckt,
oben als KNF, alle Klauseln sind Hornklauseln,
also das Ganze eine Hornformel und dann einmal in
diese Implikationsschreibweise gebracht
Was man übrigens recht häufig tut bei den Hornformeln, ist,
diese Klammern hier bei der Prämisse, dass man die weglässt.
Wenn ich weiß, dass ich im Setting von Hornformeln bin,
dann sage ich einfach, das Unt-Bindet stärker als die Implikationen,
dann kann ich mir das sparen damit in Klammern.
Da besteht dann keine Verwechslungsgefahr. Die äußeren Klammern um die
einzelnen Klauseln, die macht man immer zur Übersichtlichkeit,
aber innerhalb kann man dann nicht mehr.
Das weiß man dann ja. Wenn ich unstärker bin als
Implikation, bin ich fertig.
Ideen für einen schnellen Erfüllbarkeitstest
Nicht ganz so schnell wie dieses,
bei DNS und Carnas, wo wir gesagt haben,
wir lesen da einmal drüber und sind schon fertig,
ein bisschen aufwendiger ist es, aber nicht deutlich viel aufwendiger.
Was könnte ich denn so sehen? Oder wenn ihr es noch nicht ganz seht,
was kann man schon, also ein paar Sachen kann man sehen,
ohne gleich den zweiten,
dritten, vierten Schritt machen zu wollen,
so im ersten Schritt kann man schon mal sich
ein paar Sachen überlegen
Dabei, was war das letzte? Stell dir die
mal größer vor. Das war jetzt sehr menschlich rangegangen,
dass du schon irgendwie versucht hast, so naja,
wenn ich das weiß und das weiß,
kann ich dann die Schlussfolgern und so.
Aber wenn die Formel jetzt deutlich größer ist und du überlegst
dir erstmal nur, was für einzelne Aussagensymbole.
Man geht jetzt mal so über die Formel rüber und versucht sich zu überlegen,
welche Aussagesymbole müssten wahr sein oder welche müssten falsch sein oder so.
Bei welchen wüsste ich sofort, dass die wahr sein müssen,
wenn ich überhaupt eine Chance haben will,
die ganze Formel wahrzumachen
Genau, die, die quasi hier in diesen sogenannten Fakten
auftreten oder da oben eben einfach so als atomare Formel.
Wenn da ein A steht, dann weiß ich, muss ich warm machen.
Und wenn da nicht alleine steht, wüsste ich,
das muss ich falsch machen, aber das kann man erstmal zu ignorieren.
So, wir wissen, A, muss ich warm machen.
Was sehe ich jetzt als nächstes? Ich bin einmal durchgegangen
und ich weiß, A, muss ich warm machen.
Das muss ich dann auch warm machen. C, genau.
Weil da ja A impliziert C steht, ich habe gerade herausgefunden,
A, muss ich auf jeden Fall wahrmachen.
Dann ist also alles, alle Prämissen bei der alle Prämissen
bei dieser Regel A impliziert, C sind wahr.
Da muss ich also auch die Konklusion wahr machen.
Also muss ich auch C warm machen. Das habe ich
A und C wahr gemacht. Ja,
so kann ich jetzt immer weitermachen, bis ich irgendwann nichts mehr,
man sagt dann markiere, bis ich irgendwann nichts mehr finde,
wo ich weiß, das muss ich warm machen.
Und dann kann man sich gleich überlegen, dass das genügt.
Oder ich habe so ein Problem, so wie hier,
dass ich so eine Einschränkung habe,
wo ich jetzt alles von den Prämissen markiert habe.
Also ich weiß, ich muss A aber machen, ich weiß,
ich muss C warm machen und dann sehe ich, oh,
führt aber dazu, dass ich die Formel nicht wahrmachen kann.
Dann weiß ich, die Formel muss unerfüllbar sein.
Weil ich habe ja gerade festgestellt,
A und C muss ich auf jeden Fall wahrmachen und
dann wird das Ganze aber nicht wahr
Und das ist auch die ganze Idee so.
Immer wieder über die Formel rüberzulesen und Aussagensymbole zu markieren.
Als erstes markiere ich die Fakten, das ist quasi meine Basis,
von denen weiß ich, die musste ich bar machen.
Und dann gucke ich immer wieder, finde ich so Implikationen,
bei denen alles auf der linken Seite wahrgemacht werden muss,
also bei denen alles auf der linken Seite markiert ist.
Falls ja, muss die Formel auf der rechten Seite
auch markiert werden und immer so weiter. Also Grundidee,
markiere Aussagensymbole, die in jeder erfüllenden Belegung wahr sein müssen.
Erster Schritt, wenn mein AI eben in so einem Faktum vorliegt,
also top impliziert AI,
dann weiß ich
AI markieren
Die markiere ich am Anfang. Und jetzt gehe ich
in so eine Schleife rein und gucke immer,
ob ich eine Klausel von dieser Form 1 finde,
also eine Regel oder eine Klausel von dieser Form 2,
also eine Einschränkung.
Und zwar von der Art, dass alles aus den Prämissen markiert ist.
Wenn da alles markiert ist und es ist etwas vom ersten Schritt hier,
von der ersten Form, dann markiere ich auch AI,
also FG hat die Form 1, dann markiere jedes Vorkommen von AI.
Und wenn eine von der zweiten Form auftritt und
auch wieder alles markiert ist, dann sage ich,
ist unerfüllbar
Und das mache ich halt so lange,
bis ich solche Teilformen hier nicht mehr finde,
also bis ich keine Klauseln des Typs eins oder zwei mehr habe,
bei denen alles von den Prämissen markiert ist.
Und wenn dieser Punkt erreicht ist, dann höre ich auf,
gebe erfüllbar aus und bände eben.
Und die erfüllende Belegung, die ist so gegeben,
dass man alle markierten Aussagensymbole zu eins auswertet und die unmarkierten zu null.
Und die Behauptung gerade ist, dass das dann eine erfüllende Belegung ist.
Wenn man sich überlegen will, dass das klappt,
erstens terminiert das Ding immer
Erster Schritt terminiert auf jeden Fall, da gehe ich einmal
rüber und gucke mir an, ob ich Fakten finde.
Das terminiert auf jeden Fall. Spannend ist der zweite Schritt mit der Schleife,
terminiert der auf jeden Fall. Das kann man sich überlegen,
es wird ja in jedem Schritt, also immer in jedem Schleifendurchlauf,
wird ein weiteres Aussagensymbol markiert oder mindestens eins,
je nachdem, wie man das genau implementiert.
Es gibt aber nur endlich viele verschiedene in der Formel,
dann nehmen wir mal an,
ich habe k viele Aussagensymbole in der Formel,
dann kann ich nur k mal in diesen Schleifen rum reingehen.
Danach ist ja alles markiert. Wenn ich im ersten Schritt
A markiere, im zweiten B, im dritten C,
im vierten D und so,
wenn er die irgendwann alle markiert
Und entweder tritt dabei,
soll eine Formel 2 auf und ich gebe unerfüllbar aus.
Na, dann stoppe ich ja auch. Oder ich führe
die Schleife maximal Karma aus und terminiere dann mit dem dritten Schritt.
Also terminieren tut das Ding. Jetzt muss man sich
noch überlegen, gibt es auch die richtigen Antworten?
Also gibt es auch im richtigen Fall erfüllbar aus und im richtigen Fall unerfüllbar.
Im ersten Schritt, das, was ich im ersten Schritt markiere,
das muss auf jeden Fall wahrgemacht werden.
Von jeder Belegung, die überhaupt nur eine Chance haben kann,
die Formel zu erfüllen.
Die muss im ersten Schritt diese AIs warm machen.
Also die muss diese AIs
warm machen aus dem ersten Schritt
Und jetzt überlegt man sich im zweiten Schritt,
dass ich ja nur dann wieder ein Aussagensymbol markiere, Neues,
wenn so eine Formel von der Form 1 da auftritt.
Und da ist es ja auch so,
alles vorher aus den Prämissen habe ich schon wahrgemacht.
Dann muss ich, um die Simplikation wahrzumachen,
eben auch die hintere Formel dieses AI hier wahrmachen.
Also stimmt auch die Markierung. Die Markierungen führen immer nur dazu,
die Aussagensymbole zu markieren, die zwingend wahrgemacht werden müssen.
Also okay. Das heißt, wenn ich irgendwann hier aufhöre mit unerfüllbar,
dann passiert das genau dann, wenn ich bei Formel des zweiten Typs,
alles vorne wahrgemacht habe, dann weiß ich,
die muss sich wahr machen.
Und dann habe ich aber keine Möglichkeit mehr, die Implikation wahrzumachen.
Also unerfüllbar auszugeben ist richtig. Damit, also terminiert ist
gut, unerfüllbar gibt er in den richtigen Fällen aus.
Jetzt ist noch die Frage, gibt er auch erfüllbar in den richtigen Fällen aus?
Also wenn er jetzt terminiert mit erfüllbar, ist das ja auch wirklich eine erfüllende Belegung.
Man muss sich überlegen, so wenn ich,
jetzt gehe ich einfach alle Klauseltypen, die es gibt, durch.
Bei Fakten, das sind die vom ersten Typ,
die habe ich markiert, also werden sie jetzt zu eins ausgewertet,
also werden Fakten zu eins ausgewertet, alles gut.
Bei Regeln Also Sachen vom ersten Typ,
da gibt es den Fall, entweder ist vorne was aus dieser Prämisse,
etwas davon wird zu falsch ausgewertet, dann ist okay,
dann ist die Implikation wahr.
Oder, das wird alles zu wahr ausgewertet,
also es ist alles markiert, wird alles zu wahr ausgewertet,
dann sagt der Algorithmus ja aber gerade, dann markiere auch die Konklusion.
Also wird da alles markiert, alles zu eins ausgewertet,
also ist auch die Implikation wahr, auch okay.
Dritte mögliche Klausel, die sie vom zweiten Typ,
da wiederum kann es nicht sein,
dass alles von der Prämisse zu eins ausgewertet wird.
Denn wenn das der Fall wäre,
dann hätten wir mit unerfüllbar abgebrochen,
wir haben immer mit erfüllbar abgebrochen
Ergo wird da nicht alles zu eins ausgewertet aus der Prämisse,
sondern irgendwas zu null ist die Implikation auch wahr.
Also ist das tatsächlich eine erfüllende Belegung. Also korrekter,
terminierender Algorithmus, alles super. Da nochmal im Ablaufdiagramm ist aber das Gleiche. Genau,
am Anfang hier der erste Schritt,
die Fakten markieren und dann eben immer gucken,
finde ich eine Formel vom Typ 1 oder 2,
falls ja,
welche Form hat sie und dann gebe ich ihm entweder unerfüllbar aus oder ich markiere wieder und gehe da neu rein.
Und hier in der Schreibweise wird immer gesagt,
mit so einem hochgestellten
Ja, Beispiel. Oben die ersten zwei Zeilen,
die Formel als KNF und da drunter die vier Zeilen die Formel in Implikationsschreibweise.
E sollte nicht markiert werden und G sollte auch nicht markiert werden.
Da steht bei beiden, dass die Bottom implizieren.
Und irgendwo oben hat man top impliziert,
C und top impliziert, A, also weiß ich,
die müssen auf jeden Fall markiert werden.
Also erste Runde A und C
werden markiert
Jetzt geht man über die Formel rüber und guckt,
ob man irgendwo Regeln findet, wo auf der linken Seite
nur markierte Formen, nur markierte Aussagensymbole stehen.
Also gibt es irgendwo linke Seiten, die nur aus As und Cs bestehen?
Findet man hier halt irgendwie zehn pliziert B und A impliziert D.
Also werden B und D in der zweiten Runde markiert wegen CMPCP und Ampliziti.
Jetzt habe ich A, C, B und D markiert.
Jetzt guck mal wieder, finde ich irgendwo was,
wo die linke Seite nur aus A, B,
Cs und Ds besteht.
Und hier finde ich C und D impliziert
Ah, habe ich aber schon markiert, da passiert also nichts.
Und hier habe ich A und B impliziert eh,
also wird das eh jetzt noch markiert.
Dritte Runde, eh wird markiert.
Ist genau das passiert, was ich nicht haben wollte.
Hier gibt es eh impliziert Bottom und das Ehe ist markiert.
Also höre ich in der vierten Runde auf und sage,
die Formel ist leider unerfüllbar. A, B,
C, D und E müssen alle wahrgemacht werden und
dann kann ich aber eh impliziert Bottom nicht wahrmachen.
Also unerfüllbar. Zweites Beispiel, haben die CB top impliziert,
ah, erste Runde A wird markiert
Zwei, also top impliziert A, deswegen wird A markiert.
Zweite Runde B wird markiert wegen A.M. PCB,
dritte Runde C wird markiert, wegen A und B impliziert C.
Und vierte Runde, keine weiteren Markierungen. Es gibt nichts,
wo auf der linken Seite A, Bs und Cs stehen würden,
was zu einer rechten Seite führt, die ich noch nicht markiert hätte.
Hier bei dem impliziert C,
da ist die linke Seite nicht markiert und die Rechte ist markiert,
das ist aber nicht das, worum es geht.
Wir wollen immer gucken, ist die linke Seite irgendwo komplett markiert,
falls ja, markiere ich die rechte Seite.
Das heißt, ich bin fertig und eine erfüllende Belegung ist
eben gegeben mit A, B und C
zu 1 auswerten und D
zu 0 auswerten
Das hätte man in dem Fall auch schneller sehen können,
warum? Es gibt so zwei Spezialfälle im Algorithmus,
warum weiß ich da sofort, dass das Ding erfüllbar sein muss?
Warum weiß ich das zur Frau
Ganz einfach. Warum weiß ich das sofort? Was ist
das Abbruchkriterium im Algorithmus für, gib unerfüllbar aus?
Man gibt ja unerfüllbar aus. Wenn er... Das ist top,
nicht Bottom. Genau, das zweite ist richtig. Es gibt diese Formel,
die wir für die Ausdauer wohnerfüllbar brauchen,
also etwas vom Typ 2,
wo irgendwo hinten von der Implikation Bottom steht,
die gibt es da
gar nicht
Naja, dann, wenn es die nicht gibt,
dann kann der Algorithmus also gar nicht unerfüllbar ausgeben.
Man wird also auf jeden Fall erfüllbar ausgeben. Wenn es
das nicht gibt, was ist immer eine erfüllende Bewegung,
wenn es den Fall, ich impliziere Bottom nicht gibt,
was ist jetzt immer eine erfüllende Belegung?
Paul. Bitte? Ja, genau. Alles auf eins setzt,
ne? Wenn es diese Regeln nicht gibt zu impliziert Bottom,
dann heißt es, es gibt diese Klausel,
nicht wo nur negative Literale auftreten.
Das war die Klausel, wo das herkam. Das heißt,
in jeder Klausel tritt mindestens ein positives Literal auf,
wenn ich also alle positiven,
alle Literale zu eins auswerte,
wird jede Klausel wahrgemacht.
Bin ich sofort fertig
Wann weiß ich auch, dass die Formel auf jeden Fall erfüllbar ist?
Gibt noch einen Fall, der genauso schnell zu sehen wäre,
da werde ich mir dann noch auftreten.
Das war jetzt der Fall, es gibt gar nicht die Möglichkeit, unerfüllbar auszugeben.
Naja, da muss sie erfüllbar sein. Bei welchem Fall
weiß ich auch sofort, dass sie Formel erfüllbar sein muss?
Wenn sie nur aus Fakten besteht, noch ein dritter Fall,
ja genau, wenn die nur aus Fakten besteht,
dann weiß ich es auch.
Noch einer, quasi das Gegenteil dazu
Wir machen das doch alles. Genau. Wenn sie gar keine Fakten enthält,
dann gehe ich gar nicht erst in diese Waldschleife rein.
Dann wird also nie was markiert. Alles zu null auswerten
, fertig. Dann lassen sie die zwei,
drei Spezialfälle, die da noch so rumlaufen.
Ja, Markierungsalgorithmus ist korrekt. Das heißt, wenn F
eine unerfüllbare Hornformel ist, dann gibt er Algorithmus unerfüllbar aus.
Und wenn F erfüllbar ist, dann gibt der Algorithmus eine
erfüllende Belegung aus. Das haben wir ja eben schon diskutiert.
Nochmal, man überlegt sich halt, der erste Schritt terminiert
auf jeden Fall
Der zweite mit der Wahlschleife überlegt man sich dann auch,
in jedem Schritt wird ein weiteres Aussagensymbol markiert oder eben unerfüllbar ausgegeben.
Und da ich nur endlich viele Aussagensymbole zu markieren habe,
muss ich irgendwann zwangsläufig aufhören.
Irgendwann gibt es nichts Neues mehr zu markieren.
Und dann bin ich fertig. Insbesondere deswegen, ja,
ich prüfe immer, ob alles vorne,
alles in der Prämisse markiert ist und der hintere Bereich nicht.
Dann höre ich eben zwingend irgendwann auf. Also ich terminiere
auf jeden Fall. Und dann überlegt man sich eben,
dass man tatsächlich nur Aussagensymbole markiert,
die zu eins ausgewertet werden müssen
Das heißt, wenn die zweite Form auftritt,
dann ist es richtig unerfüllbar auszugeben und sonst,
wenn ich erfüllbar ausgebe, dann überlegt man sich eben,
es reicht tatsächlich die Markierten zu eins auszuwerten.
Geht man alle Klauseltypen durch und überlegt sich das.
Es kann auch der Fall auftreten, dass eins von den Aussagesymbolen,
dass man nicht markiert hat, nicht markiert zu sein,
bedeutet, es wird zu null ausgewertet und es kann sein,
dass es für einige aber okay ist,
die zu eins auszuwerten.
Also das hier muss sein, A von AI muss zu eins ausgewertet werden,
wenn es markiert ist, dass vier A von AI gleich null
Da gibt es Fälle, wo es sein muss,
dass ich das zu null auswerte und welche,
wo es okay ist, aber nicht zwingt.
Deswegen spricht man hier bei dieser erfüllenden Belegung auch von minimalen Modellen.
Das bewertet quasi eine minimale Anzahl von Aussagensymbolen mit eins.
Deswegen minimal. Und hier in dem Beispiel hat man
es auch gesehen, hier wurde D zu null ausgewertet.
Es kann aber auch zu eins ausgewertet werden,
dann ist trotzdem die ganze Formel zu eins ausgewertet.
Wenn hier aber nicht stehen würde, dempliziert C,
sondern wenn hier stehen würde, deimpliziert Bottom,
dann wäre es zwingend nötig, D zu null auszuwerten.
Die Belegung, die der Markierungsalgorithmus liefert,
ist eine minimale erfüllende Belegung bezüglich der Anzahl der atomaren Formel,
die ich zu eins auswerte
Jo. Das dazu. Genau, Beweis hat mir mündlich.
Könnt ihr auch noch mal nachlesen im Schöning. Und da
das Ergebnis noch mal, der Markierungsaggrethmus ist eben sehr effizient,
weil im Grunde genommen nur, wenn ihr enfiele Aussagesymbole habt,
lest ihr im Grunde genommen nur en-mal über die Formel rüber und markiert immer.
Und dann seid ihr fertig. Also ein deutlicher Unterschied zu
den zwei hochenfielen Zeilen, die man in der Wahrheitstafel aufmalen muss.
Problem, nicht jede Formel ist als Hornformel darstellbar.
Und was wir dann morgen machen, heute, morgen,
was wir morgen machen,
ist dass wir uns mit der Resolution noch ein deutlich komplizierteres Verfahren angucken.
Also das Verfahren selbst ist eigentlich okay, aber der Beweis ist deutlich komplizierter.
Das gucken wir uns morgen nochmal an. Das arbeitet pur,
sind taktisch. Also hier steckt ihr ja so semantische Überlegungen drin,
dass man gesagt hat, naja, das markiere ich, wenn und so.
Im Endeffekt ist auch der Markierungsalgorithmus ja eher ein sehr taktisches Verfahren,
weil ich einfach nur gucke, was steht links,
was steht rechts von den Implikationen.
Aber die Resolution treibt das dann eben auf die Höhe,
arbeitet pur, sinntax-basiert und ist ein Unerfüllbarkeitstest.
Die ist auch deswegen wichtig, weil die dann in
der Prädikatenlogik eben auch geht
Und war jetzt Tafeln aufmal, geht der Predikat-Logik eben nicht mehr.
Deswegen ist da Resolution dann praktisch. Ja. Zusammengefasst,
das haben wir alles gesehen heute. Naja,
die ersten vier, fünf haben wir eigentlich letztes Mal gesehen.
Und genau, was ihr wissen solltet,
wie stelle ich so eine DNF und KNF4 durch Äquivalenzumformungen,
Klammer auf, und warum ist das Verfahren korrekt?
Klammer zu, wie stelle ich DNF und KNF mit Wahrheitstaffeln
her? Klammer auf, und warum ist das korrekt?
Klammer zu. Was sind Hornformeln und wie funktioniert dieser Markierungsalgorithmus
für Hornformeln? Plus, was sind da so die Spezialfälle
und so
Und für morgen brauchen wir noch ganz dringend die KNFs.
Fragen? Fragen? Okay, dann genießt noch anderthalb Stunden
Sommel oder so. Wahrscheinlich regnet es ja noch,
aber bis morgen