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 .
Formler i DNF :
Formler som inte finns i DNF :
Men de två sista formlerna är ekvivalenta med följande formler i 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 .
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:
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:
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 .
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.
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".