Perfekt disjunktiv normalform (PDNF) er en af formerne til at repræsentere en funktion af logikkens algebra (boolsk funktion) i form af et logisk udtryk. Det er et særligt tilfælde af DNF , der opfylder følgende tre betingelser [1] :
Enhver boolsk formel , der ikke er identisk falsk, kan reduceres til SDNF, og på en unik måde, det vil sige for enhver tilfredsstillende funktion af den logiske algebra, er der sin egen SDNF, og den eneste ene [2] .
DNF er "summen af produkter", og AND-operationen (konjunktion) fungerer som "multiplikations"-operationen, og OR-operationen (disjunktion) fungerer som "additions"-operationen. Faktorer er forskellige variable, og de kan indgå i produktet både i direkte og omvendt form.
Nedenfor er et eksempel på en DNF:
Generelt kan en DNF indeholde gentagne udtryk, og hver term kan indeholde gentagne faktorer, for eksempel:
Fra et matematisk synspunkt er en sådan kloning meningsløs, da det i boolsk algebra ikke ændrer resultatet ( ), at gange ethvert udtryk med sig selv og tilføje udtrykket til sig selv, men at tilføje et udtryk med sin egen inverse og multiplicere med sin egen inversion giver konstanter ( ). I det sidste udtryk kan du fjerne gentagne udtryk og faktorer som følger:
Af denne grund bruges DNF'er med gentagne termer og faktorer normalt kun til hjælpeformål, for eksempel i den analytiske transformation af udtryk.
SDNF er den kanoniske form for at repræsentere en boolsk funktion som en DNF, hvor gentagelser af termer og faktorer er forbudt. Derudover skal hvert led indeholde alle variabler (i direkte eller omvendt form).
Nedenfor er et eksempel på SDNF:
Meningen med SDNF er det
For at opnå SDNF for en funktion, er det nødvendigt at kompilere dens sandhedstabel . Tag for eksempel en af sandhedstabellerne:
0 | 0 | 0 | en |
0 | 0 | en | en |
0 | en | 0 | en |
0 | en | en | 0 |
en | 0 | 0 | 0 |
en | 0 | en | 0 |
en | en | 0 | en |
en | en | en | 0 |
I cellerne i resultatet er kun de kombinationer markeret, der bringer det logiske udtryk til tilstanden ét. Yderligere overvejes værdierne af variabler, hvor funktionen er lig med 1. Hvis værdien af en variabel er lig med 0, skrives den med inversion. Hvis værdien af variablen er 1, så ingen inversion.
Den første linje indeholder 1 i det angivne felt. Værdierne for alle tre variable er noteret, disse er:
Nulværdier - her er alle variable repræsenteret af nuller - er skrevet i det endelige udtryk med det omvendte af denne variabel. Det første medlem af SDNF af den betragtede funktion ser sådan ud:
Andet medlemsvariable:
i dette tilfælde vil blive repræsenteret uden inversion:
Således analyseres alle celler . Den perfekte DNF for denne funktion vil være disjunktionen af alle resulterende termer (elementære konjunktioner ).
Den perfekte DNF for denne funktion er: