Forma normală disjunctivă ( DNF ) în logica booleană este o formă normală în care o formulă booleană are forma unei disjuncții de conjuncții de literali . Orice formulă booleană poate fi convertită într-un DNF. [1] Pentru a face acest lucru, puteți folosi legea dublei negații , legea lui de Morgan , legea distributivității . Forma normală disjunctivă este convenabilă pentru demonstrarea automată a teoremei .
Formule în DNF :
Formule care nu sunt în DNF :
Dar ultimele două formule sunt echivalente cu următoarele formule din DNF:
1) Scăpați de toate operațiile logice conținute în formulă, înlocuindu-le cu cele principale: conjuncție, disjuncție, negație. Acest lucru se poate face folosind formule echivalente:
2) Înlocuiți semnul de negație, referitor la întreaga expresie, cu semne de negație, referitor la declarații de variabile individuale, pe baza formulelor:
3) Scapa de semnele negative duble.
4) Aplicați, dacă este necesar, la operațiile de conjuncție și disjuncție proprietățile formulelor de distributivitate și absorbție.
Să reducem formula la DNF
Exprimăm operația logică → prin
În formula rezultată, transferăm negația la variabile și reducem negațiile duble:
Folosind legea distributivității obținem:
Folosind idempotenta conjuncției, obținem un DNF:
O formă normală k -disjunctivă este o formă normală disjunctivă în care fiecare conjuncție conține exact k literale .
De exemplu, următoarea formulă este scrisă în 2-DNF:
Dacă o variabilă, de exemplu, Z, lipsește într-o conjuncție simplă, inserăm expresia în ea
,după care deschidem parantezele (în același timp, nu scriem termenii disjuncți care se repetă, deoarece conform legii idempotității ). De exemplu:
Astfel, de la DNF am primit SDNF .
Următoarea gramatică formală descrie toate formulele reduse la DNF:
<DNF> → <conjuncție> <DNF> → <DNF> ∨ <conjuncție> <conjuncție> → <literal> <conjuncție> → (<conjuncție> ∧ <literal>) <literal> → <termen> <literal> → ¬<termen>unde <term> denotă o variabilă booleană arbitrară.
Trebuie remarcat faptul că, pentru comoditatea percepției, simbolurile înmulțirii și adunării aritmetice sunt adesea folosite ca desemnare pentru conjuncție și disjuncție, în timp ce simbolul înmulțire este adesea omis. În acest caz, formulele de algebră booleană arată ca polinoame algebrice, ceea ce este mai familiar pentru ochi, dar poate duce uneori la neînțelegeri.
De exemplu, următoarele intrări sunt echivalente:
Din acest motiv, DNF în literatura de limbă rusă este uneori numit „sum of products”, care este o hârtie de calc din termenul englez „sum of products”.