Disjunktiivinen normaalimuoto

Disjunktiivinen normaalimuoto ( DNF ) Boolen logiikassa on normaalimuoto , jossa Boolen kaava on muodoltaan literaalien konjunktioiden disjunktio . Mikä tahansa Boolen kaava voidaan muuntaa DNF:ksi. [1] Voit tehdä tämän käyttämällä kaksoisnegaation lakia , de Morganin lakia , distributiivisuuden lakia . Disjunktiivinen normaalimuoto on kätevä automaattiseen lauseen todistamiseen .

Esimerkkejä

Kaavat DNF:ssä :

Kaavat , jotka eivät ole DNF :ssä :

Mutta kaksi viimeistä kaavaa vastaavat seuraavia DNF:n kaavoja:

DNF:n rakentaminen

Algoritmi DNF:n muodostamiseksi

1) Päästä eroon kaikista kaavan sisältämistä loogisista operaatioista korvaamalla ne tärkeimmillä: konjunktiolla, disjunktiolla, negaatiolla. Tämä voidaan tehdä vastaavilla kaavoilla:

2) Korvaa koko lausekkeeseen viittaava kieltomerkki kieltomerkeillä, jotka viittaavat yksittäisiin muuttujalauseisiin kaavojen perusteella:

3) Päästä eroon kaksinkertaisista negatiivisista merkeistä.

4) Käytä tarvittaessa konjunktio- ja disjunktiooperaatioihin distributiivisuus- ja absorptiokaavojen ominaisuuksia.

Esimerkki DNF:n muodostamisesta

Pelkistetään kaava muotoon DNF

Ilmaisemme loogisen operaation → kautta

Tuloksena olevassa kaavassa siirrämme negaation muuttujiin ja vähennämme kaksoisnegatiointeja:

Jakavuuslakia käyttämällä saamme :

Konjunktion idempotenssia käyttämällä saamme DNF:n:

k -disjunktiivinen normaalimuoto

K -disjunktiivinen normaalimuoto on disjunktiivinen normaalimuoto, jossa jokainen konjunktio sisältää tarkalleen k literaalia .

Esimerkiksi seuraava kaava on kirjoitettu 2-DNF:ssä:

Siirtyminen DNF:stä SDNF:ään

Jos muuttuja, esimerkiksi Z, puuttuu jostain yksinkertaisesta konjunktiosta, lisäämme lausekkeen siihen

,

jonka jälkeen avaamme sulut (samaan aikaan emme kirjoita toistuvia disjunktteja, koska idempotenssilain mukaan ). Esimerkiksi:

Siten DNF:stä saimme SDNF:n .

Muodollinen kielioppi, joka kuvaa DNF:ää

Seuraava muodollinen kielioppi kuvaa kaikkia kaavoja, jotka on pelkistetty DNF:ksi:

<DNF> → <yhteys> <DNF> → <DNF> ∨ <konjunkti> <konjunktio> → <kirjaimellinen> <conjunct> → (<conjunct> ∧ <kirjaimellinen>) <kirjaimellinen> → <termi> <kirjaimellinen> → ¬<termi>

jossa <termi> tarkoittaa mielivaltaista loogista muuttujaa.

Merkintäominaisuudet

On huomattava, että havainnoinnin helpottamiseksi aritmeettisen kertolasku- ja yhteenlaskumerkkejä käytetään usein konjunktion ja disjunktion nimityksinä, kun taas kertolasymboli jätetään usein pois. Tässä tapauksessa Boolen algebrakaavat näyttävät algebrallisilta polynomeilta, mikä on silmälle tutumpaa, mutta voi joskus johtaa väärinkäsityksiin.

Esimerkiksi seuraavat merkinnät ovat vastaavia:

Tästä syystä venäjänkielisessä kirjallisuudessa DNF:ää kutsutaan joskus "tuotteiden summaksi", joka on englanninkielisestä termistä "tuotteiden summa".

Katso myös

Muistiinpanot

  1. Pozdnyakov S.N., Rybin S.V. Diskreetti matematiikka. - S. 303.

Kirjallisuus

Linkit