Boolen kaavojen tyydyttävyysongelma

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 15.6.2021 tarkistetusta versiosta . tarkastukset vaativat 3 muokkausta .

Boolen kaavojen ( SAT , vyp ) tyydyttävyysongelma on laskennallisen monimutkaisuuden teorialle tärkeä algoritminen ongelma .

Tehtäväilmentymä on Boolen kaava , joka koostuu vain muuttujien nimistä, suluista ja operaatioista ( AND ), ( OR ) ja ( HE ). Ongelmana on: onko mahdollista antaa vääriä ja tosi arvoja kaikille kaavassa esiintyville muuttujille niin, että kaavasta tulee tosi.

Stephen Cookin vuonna 1971 todistaman Cookin lauseen mukaan konjunktiiviseen normaalimuotoon kirjoitettujen Boolen kaavojen SAT-ongelma on NP-täydellinen . Konjunktiivimuodossa kirjoittamisen vaatimus on olennainen, sillä esimerkiksi disjunktiivisessa normaalimuodossa esitettyjen kaavojen SAT-ongelma ratkeaa triviaalisti lineaarisessa ajassa riippuen kaavatietueen koosta (jotta kaava olisi tyydyttävä, vain läsnäolo vaaditaan vähintään yksi konjunktio , joka ei sisällä samanaikaisesti ja negatiivista jollekin muuttujalle ).

Tarkka sanamuoto

Tunnistusongelman täsmällisen muotoilemiseksi kiinnitetään äärellinen aakkoset, joiden avulla määritellään kieliinstanssit. Hopcroft , Motwani ja Ullman kirjassaan Introduction to Automata Theory , Languages, and Computation ehdottavat seuraavan aakkoston käyttöä : . 

Tätä aakkosta käytettäessä sulut ja operaattorit kirjoitetaan luonnollisesti, ja muuttujat saavat seuraavat nimet: , numeroidensa mukaan binäärimuodossa .

Olkoon jollain boolen kaavalla , joka on kirjoitettu tavallisella matemaattisella merkinnällä, merkkien pituus. Siinä kunkin muuttujan jokaista esiintymistä kuvattiin vähintään yhdellä symbolilla, joten tässä kaavassa ei ole enempää kuin muuttujia. Tämä tarkoittaa, että yllä ehdotetussa merkinnässä jokainen muuttuja kirjoitetaan symboleilla. Tässä tapauksessa koko kaava uudessa merkinnässä on merkkien pituinen, eli merkkijonon pituus kasvaa polynomimäärän kertoja.

Esimerkiksi kaava saa muotoa .

Laskennallinen monimutkaisuus

Stephen Cookin vuonna 1970 julkaisemassa artikkelissa termi " NP-täydellinen ongelma " esiteltiin ensimmäisen kerran , ja SAT-ongelma oli ensimmäinen ongelma, jolle tämä ominaisuus todistettiin.

Cookin lauseen todistuksessa jokainen luokan NP tehtävä pelkistetään eksplisiittisesti SAT:ksi. Cookin tulosten ilmestymisen jälkeen NP-täydellisyys todettiin moniin muihin ongelmiin. Tässä tapauksessa useimmiten tietyn tehtävän NP-täydellisyyden todistamiseksi annetaan SAT-tehtävän polynomipelkistys annettuun ongelmaan, mahdollisesti useassa vaiheessa, eli useaa välitehtävää käyttäen.

SAT-ongelman erikoistapaukset

Mielenkiintoisia tärkeitä erityistapauksia SAT-ongelmasta ovat:

CDCL-ratkaisijat

Yksi tehokkaimmista SAT-tehtävien rinnakkaismenetelmistä on CDCL-ratkaisijat (CDCL, englantilainen  konfliktilähtöinen lauseoppiminen ), jotka perustuvat DPLL-algoritmin ei-kronologisiin muunnelmiin [1] [2] .

Katso myös

Muistiinpanot

  1. Marques-Silva JP GRASP: Hakualgoritmi ehdotuksen tyydyttävyyttä varten / JP Marques-Silva, KA Sakallah // IEEE Transactions on Computers. - 1999. - Voi. 48, nro 5. - P. 506-521.
  2. Semenov A. A., Zaikin O. S. Algoritmit hajotusjoukkojen rakentamiseen SAT-ongelmien suurten lohkojen rinnastukseen. Sarja "Mathematics" 2012. V. 5, No. 4. S. 79-94

Linkit