Konjunktiivinen normaali muoto - Conjunctive normal form

On Boolen logiikan , joka on kaavan on konjunktiivisessa normaalissa muodossa ( CNF ) tai Clausal normaali muodossa , jos se on yhdessä yhden tai useamman lausekkeita , jossa lauseke on Ulkopuolelle on literaaleja ; muuten se on summien tai syrjäisimpien alueiden tulo . Koska kanoninen normaali muoto , se on käyttökelpoinen automatisoitu lause todistaminen ja piiri teoria .

Kaikki literaalien yhdistämiset ja kaikki literaalien dissjunktiot ovat CNF: ssä, koska ne voidaan nähdä yhden kirjaimen lausekkeiden ja yhden lausekkeen konjunktioina. Kuten Disjunktiivinen Normaalimuoto (DNF), vain propositionaalinen konnektiivit kaavaa, CNF voi sisältää ovat ja , tai , ja ei . Ei -operaattoria voidaan käyttää vain osana literaalia, mikä tarkoittaa, että se voi edeltää vain ehdotusmuuttujaa tai predikaattisymbolia .

Automaattisessa lausevarmennuksessa käsitettä " clausal normal form " käytetään usein suppeammassa merkityksessä, mikä tarkoittaa tiettyä CNF -kaavan esitystä kirjainsarjoina .

Esimerkkejä ja ei-esimerkkejä

Kaikki seuraavat kaavat muuttujat , ja ovat konjunktiivisessa normaalissa muodossa:

Selvyyden vuoksi erottavat lausekkeet on kirjoitettu yllä oleviin sulkeisiin. Vuonna Disjunktiivinen Normaalimuoto kanssa suluissa konjunktiivista lausekkeita, viimeinen asia on sama, mutta vieressä viimeinen on . Vakioita tosi ja epätosi merkitään tyhjällä sidoksella ja yhdellä lauseella, joka koostuu tyhjästä disjunktiivista, mutta ne kirjoitetaan yleensä nimenomaisesti.

Seuraavat kaavat eivät ole yhdistävässä normaalimuodossa:

  • , koska TAI on sisäkkäin NOT: n sisällä
  • , koska AND on sisäkkäin OR: n sisällä

Jokainen kaava voidaan kirjoittaa vastaavasti kaavaksi konjunktiivisessa normaalimuodossa. Kolme ei-esimerkkiä CNF: ssä ovat:

Muuntaminen CNF: ksi

Jokainen ehdotuskaava voidaan muuntaa vastaavaksi kaavaksi, joka on CNF: ssä. Tämä muutos perustuu sääntöihin, jotka koskevat loogisia vastaavuuksia : kaksinkertaisen kieltämisen poistaminen , De Morganin lait ja jakelulaki .

Koska kaikki lausekaavat voidaan muuntaa vastaavaksi kaavaksi konjunktiivisessa normaalimuodossa, todisteet perustuvat usein oletukseen, että kaikki kaavat ovat CNF -kaavoja. Joissakin tapauksissa tämä muuntaminen CNF: ksi voi kuitenkin johtaa kaavan räjähdysmäiseen räjähdykseen. Esimerkiksi seuraavan ei-CNF-kaavan kääntäminen CNF: ksi tuottaa kaavan, jossa on lausekkeita:

Erityisesti luotu kaava on:

Tämä kaava sisältää lausekkeita; jokainen lauseke sisältää joko tai kunkin .

On olemassa muutoksia CNF: ksi, jotka välttävät eksponentiaalisen koon kasvun säilyttämällä tyydyttävyyden eikä vastaavuuden . Nämä muunnokset lisäävät kaavan kokoa vain lineaarisesti, mutta ottavat käyttöön uusia muuttujia. Esimerkiksi yllä oleva kaava voidaan muuntaa CNF: ksi lisäämällä muuttujia seuraavasti:

Tulkinta täyttää tämän kaavan vain, jos vähintään yksi uusia muuttujia on totta. Jos tämä muuttuja on , niin molemmat ja ovat myös totta. Tämä tarkoittaa, että jokainen malli, joka täyttää tämän kaavan, täyttää myös alkuperäisen. Toisaalta vain jotkut alkuperäisen kaavan malleista täyttävät tämän: koska niitä ei mainita alkuperäisessä kaavassa, niiden arvoilla ei ole merkitystä sen tyydyttämiselle, mikä ei pidä paikkaansa viimeisessä kaavassa. Tämä tarkoittaa, että alkuperäinen kaava ja käännöksen tulos ovat tyydyttäviä, mutta eivät vastaavia .

Vaihtoehtoinen käännös, Tseitin -muunnos , sisältää myös lausekkeet . Näiden lausekkeiden mukaan kaava merkitsee ; tämän kaavan katsotaan usein "määrittelevän" nimen .

Ensimmäisen asteen logiikka

Ensimmäisen asteen logiikassa konjunktiivinen normaalimuoto voidaan viedä pidemmälle, jotta saadaan loogisen kaavan clausal-normaalimuoto , jota voidaan sitten käyttää suorittamaan ensimmäisen asteen päätöslauselma . Erottelupohjaisessa automaattisessa lauseen todistuksessa CNF-kaava

, kirjaimilla, on yleisesti esitetty joukkona joukkoja
.

Katso esimerkki alla .

Laskennallinen monimutkaisuus

Tärkeä laskennallisen monimutkaisuuden ongelmasarja sisältää tehtävien etsimisen konjunktiivisessa normaalimuodossa ilmaistun boolen kaavan muuttujille siten, että kaava on totta. K -la ongelma on ongelma löytää täyttävän toimeksiannon boolean kaava ilmaistaan CNF, joissa kukin disjunktio sisältää enintään k muuttujia. 3-SAT on NP-täydellinen (kuten mikä tahansa muu k -SAT - ongelma, jonka k > 2), kun taas 2-SAT: llä tiedetään olevan ratkaisuja polynomiajassa . Tämän seurauksena kaavan muuttaminen DNF: ksi ja tyydyttävyyden säilyttäminen on NP-vaikeaa ; kaksinkertaisesti , muuntaminen CNF: ksi, voimassaolon säilyttäminen , on myös NP-kovaa; näin ollen vastaavuutta säilyttävä muuntaminen DNF: ksi tai CNF: ksi on jälleen NP-kovaa.

Tyypillisiä ongelmia tässä tapauksessa ovat kaavat "3CNF": konjunktiivinen normaalimuoto, jossa on enintään kolme muuttujaa konjunktiota kohden. Esimerkkejä tällaisista kaavoista käytännössä voi olla hyvin suuria, esimerkiksi 100 000 muuttujaa ja 1 000 000 konjunktiota.

Kaava on CNF voidaan muuntaa equisatisfiable kaavan " k CNF" (for k ≥3) korvaamalla kukin yhtymä, joissa on enemmän kuin k muuttujaa kaksi conjuncts ja jossa Z uuden muuttujan, ja toistamalla niin usein kuin on tarpeen.

Muuntaminen ensimmäisen asteen logiikasta

Muuntaa ensimmäisen kertaluokan logiikka on CNF:

  1. Muunna kielteiseksi normaalimuotoon .
    1. Poistaa vaikutuksia ja vastaavuudet: toistuvasti vaihda kanssa ; vaihda kanssa . Lopulta tämä poistaa kaikki esiintymät ja .
    2. Siirry NOTs sisäänpäin soveltamalla toistuvasti De Morganin lakia . Korvaa nimenomaan ; korvata kanssa ; ja korvata kanssa ; korvata kanssa ; kanssa . Tämän jälkeen a voi esiintyä vain välittömästi ennen predikaattisymbolia.
  2. Standardoi muuttujat
    1. Jos lauseet käyttävät samaa muuttujanimeä kahdesti, muuta jonkin muuttujan nimi. Näin vältetään sekaannus myöhemmin pudotettaessa kvanttoreita. Esimerkiksi on nimetty uudelleen .
  3. Skolemize lausunto
    1. Siirrä kvanttorit ulospäin: toistuvasti vaihda kanssa ; korvata kanssa ; korvata kanssa ; vaihda kanssa . Nämä korvaukset säilyttävät vastaavuuden, koska edellinen muuttujan standardointivaihe varmisti, että sitä ei tapahdu . Kun nämä vaihdot, kvantisointi voi tapahtua vain ensimmäisen etuliite, jolla on kaava, mutta ei koskaan sisällä , tai .
    2. Toistuvasti korvaa kanssa , jossa on uusi aarisen funktion symboli, niin sanottu " Skolem toiminto ". Tämä on ainoa askel, joka säilyttää vain tyydytyksen eikä vastaavuuden. Se poistaa kaikki eksistentiaaliset kvantorit.
  4. Pudota kaikki yleismittarit.
  5. Jakaa syrjäisimmät alueet sisäänpäin yli JAtoiminnon: toistuvasti vaihda kanssa .

Esimerkiksi kaavan sanonta "Joka rakastaa kaikkia eläimiä, on puolestaan rakastama joku" muunnetaan CNF (ja tämän jälkeen lauseke muotoon viimeisellä rivillä) seuraavasti (korostus korvaava sääntö redexes vuonna ):

1.1
1.1
1.2
1.2
1.2
2
mennessä 3.1
mennessä 3.1
3.2
4
5
( lausekkeen esitys)

Epämuodollisesti Skolem -funktion voidaan ajatella tuottavan sen henkilön, jota rakastetaan, samalla kun se tuottaa eläimen (jos sellainen on), joka ei rakasta. Kolmas viimeinen rivi alhaalta kuuluu sitten " ei rakasta eläintä tai muuten hän rakastaa " .

Toinen viimeinen rivi ylhäältä , on CNF.

Huomautuksia

  1. ^ Peter B. Andrews, Johdatus matemaattiseen logiikkaan ja tyyppiteoriaan ,2013, ISBN  9401599343 , s. 48
  2. ^ a b Tekoäly: Moderni lähestymistapa arkistoitu 2017-08-31 Wayback Machine [1995 ...] Russell ja Norvig
  3. ^ Tseitin (1968)
  4. ^ Jackson ja Sheridan (2004)
  5. ^ Koska yksi tapa tarkistaa CNF: n tyydyttävyys on muuntaa se DNF: ksi , jonka tyydyttävyys voidaan tarkistaa lineaarisessa ajassa

Katso myös

Viitteet

Ulkoiset linkit