Ringsummennormalform

Die Ringsummennormalform (kurz RSNF oder RNF) (auch: Algebraische Normalform (kurz ANF), Reed-Muller-Entwicklung, Ringsummenexpansion oder Schegalkinsches Polynom) ist eine Darstellungsform einer Booleschen Funktion. Diese Normalform verwendet ausschließlich die Operatoren XOR (Kontravalenz) und UND (Konjunktion).

Definition

Die beiden Operatoren Kontravalenz und Konjunktion { , , 1 } {\displaystyle \{\oplus ,\wedge ,1\}} bilden eine vollständige Basis der booleschen Funktionen. Damit wird die folgende Definition möglich.

Eine Formel ist in Ringsummennormalform, wenn sie eine Kontravalenz ( {\displaystyle \oplus } ) von Konjunktionen ( {\displaystyle \wedge } ) der Eingabevariablen x 1 , , x n {\displaystyle x_{1},\dots ,x_{n}} und der Konstanten 0 , 1 {\displaystyle 0,1} ist. Eine Formel in RSNF hat folgende Form:

T { 1 , , n } ( a T i T x i ) {\displaystyle \bigoplus _{T\subseteq \{1,\dots ,n\}}(a_{T}\wedge \bigwedge _{i\in T}x_{i})} ,

wobei a T { 0 , 1 } {\displaystyle a_{T}\in \{0,1\}} für jede Teilmenge T {\displaystyle T} ist.

Berechnung der RSNF

Man geht von einer orthogonalen disjunktiven Normalform (also einer disjunktiven Normalform, deren Konjunktionen alle gegenseitig disjunkt sind, d. h. 0 ergeben) aus. Das kann z. B. auch die kanonisch disjunktive Normalform sein. In dieser ersetzt man den Disjunktionsoperator durch den Antivalenzoperator (Ringsumme), was aufgrund der Orthogonalität möglich ist. Danach schreibt man die Negationen in die (geklammerte) Antivalenz mit 1 um. Anschließend „multipliziert“ man unter besonderer Beachtung der Rechenregel für die Antivalenz x x = 0 {\displaystyle x\oplus x=0} aus.

Beispiel

Die disjunktive Normalform A B A ¯ B ¯ A C ¯ {\displaystyle AB\vee {\bar {A}}{\bar {B}}\vee A{\bar {C}}} kann wie folgt in ihre RSNF umgeformt werden:

Orthogonalisierung (z. B. mit Hilfe eines Karnaugh-Planes): A B A ¯ B ¯ A B ¯ C ¯ {\displaystyle AB\vee {\bar {A}}{\bar {B}}\vee A{\bar {B}}{\bar {C}}}

Ersetzen der Disjunktion durch die Antivalenz: A B A ¯ B ¯ A B ¯ C ¯ {\displaystyle AB\oplus {\bar {A}}{\bar {B}}\oplus A{\bar {B}}{\bar {C}}}

Umschreiben der Negation: A B ( A 1 ) ( B 1 ) A ( B 1 ) ( C 1 ) {\displaystyle AB\oplus (A\oplus 1)(B\oplus 1)\oplus A(B\oplus 1)(C\oplus 1)}

Ausmultiplizieren: A B A B A B 1 A B C A C A B A {\displaystyle AB\oplus AB\oplus A\oplus B\oplus 1\oplus ABC\oplus AC\oplus AB\oplus A}

Durch „Wegstreichen“ von jeweils zwei gleichen Termen erhält man nach dem Umsortieren schließlich:

1 B A B A C A B C {\displaystyle 1\oplus B\oplus AB\oplus AC\oplus ABC}

Folgerungen

  • Jede beliebige boolesche Funktion kann in Ringsummennormalform überführt werden.
  • Die Ringsummennormalform einer booleschen Funktion ist (bis auf die Reihenfolge) eindeutig.

Literatur

  • Ingo Wegener: The complexity of Boolean functions. Wiley-Teubner, 1987, ISBN 3-519-02107-2, S. 6 (Online-Ausgabe)
  • Präsentation der Uni Duisburg