A tökéletes diszjunktív normálforma (PDNF) a logikai algebra függvényének (Boole-függvény) logikai kifejezés formájában történő megjelenítésének egyik formája. Ez a DNF egy speciális esete, amely teljesíti a következő három feltételt [1] :
Bármely Boole-képlet , amely nem azonosan hamis, redukálható SDNF-re, és egyedi módon, azaz a logikai algebra bármely kielégíthető függvényéhez létezik saját SDNF, és az egyetlen [2] .
A DNF a „szorzatok összege”, és az ÉS művelet (kötőszó) „szorzás” műveletként, az VAGY művelet (disjunkció) pedig „összeadás” műveletként működik. A faktorok különféle változók, amelyek direkt és inverz formában is szerepelhetnek a termékben.
Az alábbiakban egy példa látható a DNF-re:
Általánosságban elmondható, hogy a DNF tartalmazhat ismétlődő kifejezéseket, és minden kifejezés tartalmazhat ismétlődő tényezőket, például:
Matematikai szempontból az ilyen klónozás értelmetlen, mivel a Boole-algebrában bármely kifejezés önmagával való szorzása és a kifejezés önmagához való hozzáadása nem változtatja meg az eredményt ( ), de ha hozzáadunk egy kifejezést a saját inverzével és megszorozzuk a saját inverzével állandókat ad ( ). Az utolsó kifejezésben a következőképpen távolíthatja el az ismétlődő kifejezéseket és tényezőket:
Emiatt az ismétlődő kifejezéseket és faktorokat tartalmazó DNF-eket általában csak segédcélokra használják, például a kifejezések analitikus átalakítása során.
Az SDNF a Boole-függvény DNF-ként való megjelenítésének kanonikus formája, amelyben a kifejezések és tényezők ismétlése tilos. Ezenkívül minden kifejezésnek tartalmaznia kell minden változót (direkt vagy inverz formában).
Az alábbiakban egy példa az SDNF-re:
Az SDNF jelentése az
Egy függvény SDNF értékének megszerzéséhez le kell fordítani annak igazságtáblázatát . Például vegyük az egyik igazságtáblázatot:
0 | 0 | 0 | egy |
0 | 0 | egy | egy |
0 | egy | 0 | egy |
0 | egy | egy | 0 |
egy | 0 | 0 | 0 |
egy | 0 | egy | 0 |
egy | egy | 0 | egy |
egy | egy | egy | 0 |
Az eredmény celláiban csak azok a kombinációk vannak megjelölve, amelyek a logikai kifejezést egy állapotba hozzák. Továbbá figyelembe veszik a változók értékeit, amelyeknél a függvény egyenlő 1-gyel. Ha egy változó értéke 0, akkor inverzióval írjuk. Ha a változó értéke 1, akkor nincs inverzió.
Az első sor 1 -et tartalmaz a megadott mezőben. Mindhárom változó értéke fel van jegyezve, ezek a következők:
A nulla értékeket - itt minden változót nullák képviselnek - a végső kifejezésben ennek a változónak az inverze írják be. A vizsgált függvény SDNF első tagja így néz ki:
Második tag változók:
ebben az esetben inverzió nélkül ábrázoljuk:
Így az összes sejtet elemzik . Ennek a függvénynek a tökéletes DNF-je az összes eredményül kapott tag diszjunkciója lesz (elemi kötőszó ).
Ennek a funkciónak a tökéletes DNF -je: