Als Variablen können die kleinen Buchstaben von a bis z verwendet werden. Die booleschen Operatoren werden angegeben als AND: *, OR: +, NOT: ~. Zum Klammern von Teilausdrücken nur runde Klammern »(« und »)« verwenden.
Für TRUE und FALSE können 1 und 0 verwendet werden.
Das AND kann ausgelassen werden, da nebeneinander stehende Ausdrücke wie »ab« oder »(a+b)(a+b)« automatisch als »a*b« oder »(a+b)*(a+b)« interpretiert werden.
Der Operator »~« gilt im Normalfall nur für die direkt folgende Variabel oder den Operator, um ganze Teilausdrücke zu negieren muss die Thilde vor den geklammerten Ausdruck gesetzt werden »~(a+b)=~a~+~b = ~a~b«.
Es werden Ausdrücke mit maximal 26 Variablen und maximal 200 Zeichen bearbeitet. Je nach Ausdruck kann es aber sein, dass das Vereinfachen zu rechenintensiv ist, die Berechnung wird dann abgebrochen.
Eingabe: a+~b+~ab+(a+~b)(~ab) ---------- Ausmultipliziert: a+~b+~ab+a~ab+~b~ab ---------- Axiom 9: a * ~a = 0 Axiom 6: etwas * 0 = 0 => a+~b+~ab+~b~ab Axiom 9: b * ~b = 0 Axiom 6: etwas * 0 = 0 => a+~b+~ab Axiom 9x': ~ab + a = b + a => a+~b+b Axiom 9: b + ~b = 1 => a+1 Axiom 6': etwas + 1 = 1 => 1 ---------- Ergebnis: 1
Alle Ergebnisse mit Vorbehalt behandeln und selber nachrechnen!
Das Verfahren zum Vereinfachen der Ausdrücke stützt sich auf die Axiome
der booleschen Algebra.
Zuvor wird der eingegebene Ausdruck über eine rekursive Funktion in die einzelnen »Klammer-Ebenen« zerlegt und diese ausmultipliziert, sowie die Negierungszeichen interpretiert. Dieser Vorgang ist auf dem Papier leicht durchzuführen zeigt sich aber bei der Implementierung in einem Programm als sehr Komplex. Aus diesem Grund ist es wichtig, das alle Klammern korrekt gesetzt werden (Eingabebeispiele).
Nach dem alle Klammern aufgelöst wurden werden die Variablen sortiert und es werden die booleschen Axiome in fester Reihenfolge so lange angewandt, bis keine Kürzung mehr auftritt. Durch das vorherige Auflösen der Klammerung werden nicht alle Axiome benötigt. Die Nummerierung der Axiome folgt der von Wikipedia, für 9x' ist der richtige Name nicht bekannt. Es werden nicht alle Axiome angezeigt, einige einfache Regeln werden still angewandt.
Erstellt im Dezember 08