Algebraiczna postać normalna

W algebrze Boole'a algebraiczna postać normalna ( ANF ), postać normalna sumy pierścieniowej ( RSNF lub RNF ), postać normalna Zhegalkina lub rozwinięcie Reeda-Mullera to sposób pisania formuł logiki zdań w jednej z trzech podform:

  • Cała formuła jest całkowicie prawdziwa lub fałszywa:
  • Jedna lub więcej zmiennych jest łączona w termin przez ( ) a następnie jeden lub więcej warunków jest łączony przez XOR ( razem w ANF Negacje są niedozwolone:
  • Poprzedni podformularz z wyrazem czysto prawdziwym:

Formuły napisane w ANF są również znane jako wielomiany Zhegalkina i wyrażenia Reeda-Mullera o dodatniej polaryzacji (lub parzystości) (PPRM).

Typowe zastosowania

ANF ​​jest formą kanoniczną , co oznacza, że ​​dwie logicznie równoważne formuły zostaną przekształcone w tę samą ANF, łatwo pokazując, czy dwie formuły są równoważne w przypadku automatycznego dowodzenia twierdzeń . W przeciwieństwie do innych postaci normalnych, można ją przedstawić jako prostą listę list nazw zmiennych — koniunkcyjne i dysjunkcyjne również wymagają zapisania, czy każda zmienna jest zanegowana, czy nie. Postać normalna negacji nie nadaje się do określania równoważności, ponieważ w przypadku form normalnych negacji równoważność nie implikuje równości: a ∨ ¬a nie jest redukowane do tego samego co 1, mimo że są one logicznie równoważne.

Umieszczenie formuły w ANF ułatwia również identyfikację funkcji liniowych (używanych na przykład w rejestrach przesuwnych z liniowym sprzężeniem zwrotnym ): funkcja liniowa to taka, która jest sumą pojedynczych literałów. Właściwości rejestrów przesuwnych z nieliniowym sprzężeniem zwrotnym można również wywnioskować z pewnych właściwości funkcji sprzężenia zwrotnego w ANF.

Wykonywanie operacji w algebraicznej postaci normalnej

Istnieją proste sposoby wykonywania standardowych operacji boolowskich na wejściach ANF w celu uzyskania wyników ANF.

XOR (logiczna wyłączna dysjunkcja) jest wykonywana bezpośrednio:

( 1 ⊕ x ) ⊕ ( 1 ⊕ x ⊕ y )
1 ⊕ x 1 ⊕ x ⊕ y
1 ⊕ 1 ⊕ x ⊕ x ⊕ y
y

NOT (negacja logiczna) to XORing 1:

¬ (1 ⊕ x ⊕ y)
1 ⊕ (1 ⊕ x ⊕ y)
1 ⊕ 1 ⊕ x ⊕ y
x ⊕ y

AND (spójnik logiczny) ma rozkład algebraiczny

( 1 x ) (1 ⊕ x ⊕ y)
1 (1 ⊕ x ⊕ y) x (1 ⊕ x ⊕ y)
(1 ⊕ x ⊕ y) ⊕ (x ⊕ x ⊕ xy)
1 ⊕ x ⊕ x ⊕ x ⊕ y ⊕ xy
1 ⊕ x ⊕ y ⊕ xy

OR (alternatywa logiczna) używa albo 1 ⊕ (1 ⊕ a) (1 ⊕ b) (łatwiej, gdy oba operandy mają czysto prawdziwe wyrazy) albo a ⊕ b ⊕ ab (łatwiej w innym przypadku):

( 1 ⊕ x ) + ( 1 ⊕ x ⊕ y )
1 ⊕ (1 ⊕ 1 ⊕ x )(1 ⊕ 1 ⊕ x ⊕ y )
1 ⊕ x(x ⊕ y)
1 ⊕ x ⊕ xy

Konwersja do algebraicznej postaci normalnej

Każda zmienna w formule jest już w czystym ANF, więc wystarczy wykonać operacje logiczne formuły, jak pokazano powyżej, aby przenieść całą formułę do ANF. Na przykład:

x + (y ⋅ ¬z)
x + (y(1 ⊕ z))
x + (y ⊕ yz)
x ⊕ (y ⊕ yz) ⊕ x(y ⊕ yz) x
⊕ y ⊕ xy ⊕ yz ⊕ xyz

Formalna reprezentacja

ANF ​​jest czasami opisywane w równoważny sposób:

gdzie w pełni opisuje .

Rekurencyjne wyprowadzanie wieloargumentowych funkcji boolowskich

Istnieją tylko cztery funkcje z jednym argumentem:

Aby przedstawić funkcję z wieloma argumentami, można użyć następującej równości:

gdzie

Rzeczywiście,

  • jeśli wtedy i tak
  • jeśli to i

Ponieważ zarówno i mniej argumentów niż , zakończymy funkcjami z jedną zmienną. Na przykład skonstruujmy ANF z (logiczne lub):

  • ponieważ i
  • wynika z tego, że
  • przez rozkład otrzymujemy ostateczny ANF:

Zobacz też

Dalsza lektura