Forma normală disjunctivă perfectă (PDNF) este una dintre formele de reprezentare a unei funcții a algebrei logicii (funcția booleană) sub forma unei expresii logice. Este un caz special de DNF care îndeplinește următoarele trei condiții [1] :
Orice formulă booleană care nu este identic falsă poate fi redusă la SDNF, și într-un mod unic, adică pentru orice funcție satisfăcătoare a algebrei logice, există propriul SDNF, și singurul [2] .
DNF este „suma produselor”, iar operația AND (conjuncția) acționează ca operație de „înmulțire”, iar operația SAU (disjuncție) acționează ca operație de „adunare”. Factorii sunt variabile variabile și pot fi incluși în produs atât sub formă directă, cât și inversă.
Mai jos este un exemplu de DNF:
În general, un DNF poate conține termeni care se repetă și fiecare termen poate conține factori care se repetă, de exemplu:
Din punct de vedere matematic, o astfel de clonare este lipsită de sens, deoarece în algebra booleană, înmulțirea oricărei expresii prin ea însăși și adăugarea expresiei la sine nu schimbă rezultatul ( ), ci adăugarea unei expresii cu propriul invers și înmulțirea cu propria sa inversare dă constante ( ). În ultima expresie, puteți elimina termenii și factorii repeți, după cum urmează:
Din acest motiv, DNF-urile cu termeni și factori repeți sunt utilizate de obicei doar în scopuri auxiliare, de exemplu, în transformarea analitică a expresiilor.
SDNF este forma canonică de reprezentare a unei funcții booleene ca DNF, în care repetările termenilor și factorilor sunt interzise. În plus, fiecare termen trebuie să conțină toate variabilele (în formă directă sau inversă).
Mai jos este un exemplu de SDNF:
Sensul SDNF este că
Pentru a obține SDNF-ul unei funcții, este necesar să compilați tabelul de adevăr al acesteia . De exemplu, luați unul dintre tabelele de adevăr:
0 | 0 | 0 | unu |
0 | 0 | unu | unu |
0 | unu | 0 | unu |
0 | unu | unu | 0 |
unu | 0 | 0 | 0 |
unu | 0 | unu | 0 |
unu | unu | 0 | unu |
unu | unu | unu | 0 |
În celulele rezultatului sunt marcate doar acele combinații care aduc expresia logică la starea unu. În plus, sunt luate în considerare valorile variabilelor, la care funcția este egală cu 1. Dacă valoarea unei variabile este egală cu 0, atunci se scrie cu inversare. Dacă valoarea variabilei este 1, atunci nicio inversare.
Prima linie conține 1 în câmpul specificat. Sunt notate valorile tuturor celor trei variabile, acestea sunt:
Valorile zero - aici toate variabilele sunt reprezentate prin zerouri - sunt scrise în expresia finală prin inversul acestei variabile. Primul membru al SDNF al funcției luate în considerare arată astfel:
Variabile ale celui de-al doilea membru:
în acest caz vor fi reprezentate fără inversare:
Astfel, toate celulele sunt analizate . DNF perfect al acestei funcții va fi disjuncția tuturor termenilor rezultați ( conjuncții elementare ).
DNF perfect al acestei funcții este: