Disjunktiv normalform

Disjunktiv normalform ( DNF ) i boolesk logik är en normalform där en boolesk formel har formen av en disjunktion av konjunktioner av bokstaver . Vilken boolesk formel som helst kan omvandlas till en DNF. [1] För att göra detta kan du använda lagen om dubbel negation , de Morgans lag , lagen om distribution . Den disjunktiva normalformen är lämplig för automatisk satsbevisning .

Exempel

Formler i DNF :

Formler som inte finns i DNF :

Men de två sista formlerna är ekvivalenta med följande formler i DNF:

Bygga en DNF

Algoritm för att konstruera en DNF

1) Bli av med alla logiska operationer som finns i formeln, ersätt dem med de viktigaste: konjunktion, disjunktion, negation. Detta kan göras med hjälp av motsvarande formler:

2) Ersätt negationstecken, med hänvisning till hela uttrycket, med negationstecken, med hänvisning till individuella variabelsatser, baserat på formlerna:

3) Bli av med dubbla negativa tecken.

4) Tillämpa, om nödvändigt, egenskaperna för fördelnings- och absorptionsformler på operationerna av konjunktion och disjunktion .

Ett exempel på att konstruera en DNF

Låt oss reducera formeln till DNF

Vi uttrycker den logiska operationen → genom

I den resulterande formeln överför vi negationen till variablerna och reducerar de dubbla negationerna:

Med hjälp av distributionslagen får vi:

Genom att använda konjunktionens idempotens får vi en DNF:

k -disjunktiv normalform

En k -disjunktiv normalform är en disjunktiv normalform där varje konjunktion innehåller exakt k literals .

Till exempel är följande formel skriven i 2-DNF:

Övergång från DNF till SDNF

Om en variabel, till exempel Z, saknas i någon enkel konjunktion, infogar vi uttrycket i den

,

varefter vi öppnar parenteserna (samtidigt skriver vi inte de upprepade disjunkta termerna, eftersom enligt lagen om idempotens ). Till exempel:

Från DNF fick vi alltså SDNF .

Formell grammatik som beskriver DNF

Följande formella grammatik beskriver alla formler reducerade till DNF:

<DNF> → <konjunkt> <DNF> → <DNF> ∨ <konjunkt> <konjunkt> → <bokstavlig> <konjunkt> → (<konjunkt> ∧ <bokstav>) <bokstavlig> → <term> <bokstavlig> → ¬<term>

där <term> anger en godtycklig boolesk variabel.

Notationsfunktioner

Det bör noteras att för att underlätta uppfattningen används ofta symbolerna för aritmetisk multiplikation och addition som en beteckning för konjunktion och disjunktion, medan multiplikationssymbolen ofta utelämnas. I det här fallet ser booleska algebraformler ut som algebraiska polynom, vilket är mer bekant för ögat, men ibland kan leda till missförstånd.

Till exempel är följande poster likvärdiga:

Av denna anledning kallas DNF i ryskspråkig litteratur ibland för "summan av produkter", vilket är ett spårningspapper från den engelska termen "summa av produkter".

Se även

Anteckningar

  1. Pozdnyakov S.N., Rybin S.V. Diskret matematik. - S. 303.

Litteratur

Länkar