====== Normalformen ======
===== Disjunktive Normalform =====
Die **disjunktive Normalform** bietet ein Verfahren, mit dem man systematisch einen Logik-Term zu einer Wahrheitstabelle finden kann, bei dem der entstehende Term eine Disjunktion von Konjunktionstermen ist -- also eine Oder-Verknüpfung von Und-Verknüpfungen.
**Vorgehen**:
Zu jeder Zeile der Wahrheitstafel, bei der das Ergebnis 1 ist, bildet man einen **Minterm**. Dies ist ein Term, in dem alle Eingangsvariablen mit der **Und-Verknüpfung** verbunden werden. Hat eine Variable den Wert 0, steht sie negiert im Minterm.
Die **disjunktive** Normalform erhält man, indem man alle Minterme durch **Oder**-Verknüpfungen verbindet.
**Beispiel:**
{{ :faecher:informatik:oberstufe:techinf:formale_logik:normalformen:disj_nf.drawio.png |}}
* Für jede Zeile, die "wahr" ist, bildet man den Minterm mit "und". Alle "falsch" Werte werden dabei einfach negiert.
* Alle so gefundenen Zeilen verknüpft man mit "oder"
Die disjunktive Normalform für die Wahrheitstafel im Beispiel ist also $(\lnot x_1 \land \lnot x_2) \lor (x_1 \land \lnot x_2)$.
===== Konjunktive Normalform =====
Die **konjunktive Normalform** bietet ein Verfahren, mit dem man systematisch einen Logik-Term zu einer Wahrheitstabelle finden kann, bei dem der entstehende Term eine Konjunktion von Disjunktionstermen ist -- also eine Und-Verknüpfung von Oder-Verknüpfungen.
**Vorgehen**:
Zu jeder Zeile der Wahrheitstafel, bei der das Ergebnis 0 ist, bildet man einen **Maxterm**. Dies ist ein Term, in dem alle n Eingangsvariablen mit der **Oder-Verknüpfung** verbunden werden, alle "wahr"-Werte werden dabei negiert.
Die **konjunktive** Normalform erhält man, indem man alle Maxterme durch **Und**-Verknüpfungen verbindet.
**Beispiel:**
{{ :faecher:informatik:oberstufe:techinf:formale_logik:normalformen:knf.drawio.png |}}
* Für jede Zeile, die "falsch" ist, bildet man den Maxterm mit "oder". Alle "wahr" Werte werden dabei einfach negiert.
* Alle so gefundenen Zeilen verknüpft man mit "und"
Eine konjunktive Normalform für die Wahrheitstafel im Beispiel ist also $(x_1 \lor \lnot x_2) \land (\lnot x_1 \lor \lnot x_2)$.
----
{{:aufgabe.png?nolink |}}
=== (A1) ===
Stelle zum Term $(\lnot(x_1 \lor x_2) \lor x_3)$ die Wahrheitstafel auf und ermittle daraus die DNF und eine KNF. Versuche dann DNF und KNF durch Umformungen des Terms zu erhalten - welche Rechenregeln verwendest du dabei?
++++ Lösungshinweis 1 - Wahrheitstabelle |
{{ :faecher:informatik:oberstufe:techinf:formale_logik:normalformen:2024-09-26_07-57.png |}}
++++
++++ Lösungshinweis 1 - DNF |
{{ :faecher:informatik:oberstufe:techinf:formale_logik:normalformen:unbenannt-2024-09-26-0758.png |}}
++++
----
{{:aufgabe.png?nolink |}}
=== (A2) ===
Gesucht ist eine boolesche Funktion mit drei Variablen E1, E2 und E3, deren Ausgang A genau dann den Wert TRUE annimmt, wenn die Dualzahl[E3 E2 E1]2 eine Primzahl ist.
* Ermittle die DNF der Funktion.
* Vereinfache die DNF der Funktion so weit wie möglich.
* Erstelle die KNF der Funktion.
* Vereinfache die KNF der Funktion so weit wie möglich.
* Überprüfe ob die beiden vereinfachten Terme aus DNF und KNF zum gleichen Resultat führen.
++++ Lösungsvorschlag für KNF/DNF |
{{ :faecher:informatik:oberstufe:techinf:formale_logik:normalformen:primzahlen_lsg01.png |}}
++++
----
Diese Seite ist sehr stark an das Material auf https://inf-schule.de/rechner/digitaltechnik/Schaltnetze/Fachkonzept_Normalform angelehnt, das unter einer CC-BY-SA Lizenz veröffentlicht ist.