Teil der zentralen Verarbeitungen meines Logikübergangs ist ein aussagenlogischer Optimierer, der eine recht schnelle heuristische Variante des Quine-McCluskey-Algorithmus benützt. Dieses Verfahren bildet zu einer gegebenen KDNF eine äquivalente DNF, die höchstens ebenso lang (meistens aber viiieeel kürzer) ist.
Angewandt wird die Quine-McCluskey-Optimierung vor allem im Bereich der digitalen Schaltungstechnik, wo es sich bisweilen zuträgt, dass zu einem gegebenen Wahrheitswertverlauf eine möglichst einfache aussagenlogische Realisierung gesucht wird. Aus dieser Herkunft erklärt es sich, dass der Optimierer im Gegensatz zu den anderen Verarbeitungen des Logikübergangs in zwei Versionen vorliegt: Einer gewöhnlichen, die wie die anderen Verarbeitungen arbeitet und aussagenlogische Ausdrücke entgegennimmt; und einer tabellenbasierten, die auf eine Menge von Wahrheitswertzuordnungen angewendet wird, unter denen die Schaltung den Wahrheitswert wahr liefern soll.
Gewöhnlicher Optimierer
Der gewöhnliche Quine-McCluskey-Optimierer ist, äh, gewöhnlich. Er erwartet ebenso wie die anderen Verarbeitungen des Logikübergangs eine Aussage im Eingabebereich, reduziert sie und zeigt das Ergebnis der Vereinfachung an.
Ein Beispiel hierzu
Um die Aussage (A & B & ~C) v (A & ~B & D) v (A & ~B) zu reduzieren, gehen Sie wie folgt vor:
- Geben Sie sie die Aussage (A & B & ~C) v (A & ~B & D) v (A & ~B) im Eingabebereich ein.
- Wählen Sie die Verarbeitungsart "Quine-McCluskey" (niiicht "Quine-McCluskey mit Tabelle")
- Starten Sie durch Wahl von "Verarbeitung" den Optimierungslauf. Der Optimierer reduziert die Aussage zu A & ~B v A & ~C".
Um das Beispiel selbst zu versuchen, wählen Sie dasda.
Tabellenbasierte Optimierung
Der tabellenbasierte Optimierer verarbeitet im Gegensatz zu den anderen Verarbeitungen keine Aussage, sondern eine Liste von Wahrheitswertzuordnungen, unter denen die Schaltung den Wahrheitswert wahr liefern soll. Ein Beispiel mag des Gesagten Verständnis befördern:
Ein Beispiel, als das hilfreicher kein Beispiel gedacht werden kann
Ausgangspunkt des Beispiels ist, dass Sie eine möglichst einfache Aussage finden möchten, die folgenden Wahrheitswertverlauf aufweist:
A B C | -------+-------- 1 1 1 | 1 1 1 0 | 0 1 0 1 | 0 1 0 0 | 0 0 1 1 | 1 0 1 0 | 1 0 0 1 | 1 0 0 0 | 1
Also: Möchten Sie eine möglichst einfache Aussage mit diesem Wahrheitswertverlauf finden!
Diese Aussage ist in der ersten, fünften, sechsten, siebenten und achten Zeile wahr. Mit anderen Worten sind die Bewertungen, die diese Aussage wahrmachen, die Folgenden:
A B C ----- 1 1 1 0 1 1 0 1 0 0 0 1 0 0 0
Diese Bewertungen sind es, die dem Quine-McCluskey-Optimierer vorgelegt
werden müssen. Jede wahr machende Bewertung muss als eine Zeile eingegeben
werden, ermangelnd jeglicher führender, abschließender oder sonstiger
Leerzeichen. So muss z.B. die erste Bewertung als
Es muss sohin die Anwenderin folgenden Text im Eingabebereich des Logikübergangs eingeben:
111 011 010 001 000
Verschließen Sie Ihre Aufmerksamkeit bitte nicht vor der Tatsache, dass diese Zuordnungsmenge als die KDNF einer zu optimierenden Aussage interpretiert werden kann: (A & B & C) v (~A & B & C) v (~A & B & ~C) v (~A & ~B & C) v (~A & ~B & ~C). Dies ist die KDNF, die der erste Absatz erwähnt und zu der das Verfahren eine äquivalente DNF bildet.
Nach einer kleinen Denkpause liefert der Optimierer eine Aussage, die der solcherart eingegebenen KDNF äquivalent, dabei aber zumeist kürzer als diese ist. Im Beispiel liefert das Verfahren die Aussage b & c v ~a. Obwohl sie nicht wirklich kürzer ist als A->(B&C), ist sie doch um ein Erhebliches kompakter als die KDNF, die am Beginn der Verarbeitung stand. Hinzu kommt, dass sie in ihrer Eigenschaft als DNF strukturell einfacher ist als A->(B&C) und sich einfacher mit Standardschaltungen verwirklichen lässt.
Wenn Sie dieses Beispiel selbst versuchen möchten: Wählen Sie dasda.