Lauselogiikan toteutuvuustarkastus: käytännönläheistä teoriaa
|
|
- Kirsi Ranta
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 Tietojenkäsittelytiede 22 Joulukuu 2004 sivut Toimittaja: Antti Valmari c kirjoittaja(t) Lauselogiikan toteutuvuustarkastus: käytännönläheistä teoriaa Matti Järvisalo Teknillinen korkeakoulu Tietojenkäsittelyteorian laboratorio matti.jarvisalo@tkk.fi Tiivistelmä Tämä artikkeli käsittelee loogisten lauseiden toteutuvuutta laskennallisena ongelmana. Tavoitteena on esittää tutkimusalueena teorian ja käytännön välimaastoon sijoittuvan toteutuvuustarkastusmenetelmien kehittämisen ja tehokkuusvertailun perusideoita. Lisäksi pyritään kartoittamaan toteutuvuustarkastusmenetelmien nykyisiä käyttökohteita sekä tutkimusalueen haasteita. 1 Johdanto Laskennan vaativuusteoriassa tavoitteena on selvittää, mitkä ongelmat ovat ratkaistavissa algoritmisesti ja kuinka tehokkaasti. Ehkä olennaisin tutkimusalueen kysymyksistä on, voidaanko tietyille, ns. NPtäydellisille, ongelmille [28] löytää tehokas eli polynomiaikainen algoritmi. Kauppamatkustajan ongelma, jossa tavoitteena on löytää annettua rajaa lyhyempi n:n kaupungin kautta kulkeva kierros, lienee yleisesti tunnetuin NPtäydellinen ongelma. Tietojenkäsittelytieteen näkökulmasta lauselogiikan toteutuvuusongelma (propositional satisfiability problem, SAT) [28, sivu 77] on kuitenkin olennaisempi monista syistä. Yksinkertaisesta esitysmuodosta johtuen lauselogiikan toteutuvuusongelma on tärkeässä asemassa usein haluttaessa todistaa jokin ongelma laskennan näkökulmasta haastavaksi. Stephen Cookin 1971 SAT:lle esittämä NP-täydellisyystodistus [12] oli ensimmäinen laatuaan, luoden toteutuvuusongelmasta yhden laskennan vaativuusteorian kulmakivistä. Nyt, yli neljännesvuosisata myöhemmin, P? =NP, eli onko NP-täydellisille ongelmille (kuten SAT) olemassa yleistä polynomiaikaista ratkaisualgoritmia, on yhä yksi tietojenkäsittelytieteen alan tärkeimmistä avoimista ongelmista, lukuisista ratkaisuyrityksistä huolimatta. Ongelman olennaisuutta on omiaan luonnehtimaan se, että P? =NP on Clay Mathematics Instituten vuonna 2000 nimeämän seitsemän avoimen klassisen matemaattisen ongelman joukossa [2]. Ratkaisun esittäjälle on luvassa miljoonan dollarin palkinto. Yleisesti uskotaan, että polynomiaikaisen algoritmin löytäminen NP-täydellisille ongelmille on hyvin epätodennäköistä. Lauselogiikalla, joka on tietojenkäsittelytieteen alan opintojen loogisten perusteiden olennainen osa, voidaan ilmaista yksinkertaisia ehtoja. Tällaisesta esimerk- OHJE KIRJAPAINOLLE: B5-arkin vasen- ja yläreuna kohdistetaan A4-arkin vasempaan ja yläreunaan. Näin pitäisi marginaaliksi tulla taitteen puolella noin 33 mm ja muualla noin 22 mm.
2 48 Lauselogiikan toteutuvuustarkastus kinä olkoon täsmälleen toinen, joko Anssi tai Bettiina, voi osallistua juhliin. Ehto voidaan kirjoittaa toisin Anssi osallistuu juhliin TAI Bettiina osallistuu juhliin, JA Anssi EI osallistu juhliin TAI Bettiina EI osallistu juhliin. Ottamalla käyttöön loogiset muuttujat a = Anssi osallistuu juhliin ja b = Bettiina osallistuu juhliin, voidaan yllä oleva ehto kirjoittaa muotoon (a TAI b) JA (( EI a) TAI ( EI b)), eli lauselogiikan merkintöjä käyttäen (a b) ( a b). (1) Yksi ratkaisu ongelmaan on, että Anssi osallistuu juhliin ja Bettiina ei. Tätä vastaava lauselooginen ratkaisu eli lauseen toteuttava totuusjakelu on antaa arvo tosi muuttujalle a ja arvo epätosi muuttujalla b. Esimerkkiin peilaten lauselogiikan toteutuvuusongelman Onko annetulle lauselogiikan lauseelle olemassa sen toteuttavaa totuusjakelua? NP-täydellisyys yleisessä tapauksessa on hämmästyttävää. Käytännössä kiinnostavat loogiset lauseet ovat kuitenkin usein huomattavan monimutkaisia, ja niille on näin ollen laskennallisesti haastavaa löytää toteuttava totuusjakelu tai todeta, että toteuttavaa jakelua ei ole olemassa. Ongelman oletettavasta vaikeudesta huolimatta lauselogiikan toteutuvuuden tarkastusmenetelmät ja niiden toteutukset, ns. toteutuvuustarkastimet, ovat kehittyneet huomattavasti erityisesti viimeisimpien vuoden aikana. Sekä täydellisiä systemaattisia että satunnaistettuja paikalliseen hakuun perustuvia toteutuvuustarkastimia on käytetty onnistuneesti monien erilaisten ongelmien tehokkaaseen ratkaisemiseen; katso esimerkiksi [17, 39] katsauksina erilaisiin toteutuvuustarkastustekniikoihin. Muun muassa suunnittelu-, testaus- sekä mallintarkastus- ja muita verifiointiongelmia [24, 25, 10, 9] voidaan ratkaista toteutuvuusongelmatapauksina, mistä johtuen tehokkaille toteutuvuustarkastimille on syntynyt suuri kysyntä. Esimerkiksi prosessorivalmistaja Intel on panostanut erityisesti verifiointiyksikköönsä Pentiumprosessorin laskuyksiköstä vuonna 1994 löytyneen, huomattavan kalliiksi koituneen vian löytämisen jälkeen. Näin alunperin yksinomaan teoreettisesta näkökulmasta mielenkiintoisesta ongelmasta on kehittynyt ratkaisumenetelmien kehittymisen myötä kiinnostava myös käytännön näkökulmasta. Toteutuvuustarkastukseen keskittyvä International Conference on Theory and Applications of Satisfiability Testing järjestetään vuonna 2005 jo kahdeksatta kertaa [1]. Osana konferenssia on vuosittain kilpailu tehokkaimmasta toteutuvuustarkastimesta. Tyypillistä on, että edeltävän vuoden voittaja sijoittuu sellaisenaan seuraavan vuoden kilpailijoihin verrattuna vasta keskikastiin, mikä kuvaa hyvin menetelmien kiivasta kehitystä. Teorian ja käytännön välimaastoon asettuva, toisaalta täsmällisiin matemaattisiin todistuksiin, toisaalta teollisuudesta kumpuavien ongelmatapausten ratkaisuajan vertailuun perustuva toteutuvuustarkastusmenetelmien tehokkuuden arviointi on saanut yhä enemmän huomiota osakseen viime vuosina. Yhtenä syynä tähän lienee, että teoreettisten tulosten ja käytännön välinen kuilu on melko kapea; usein teoreettisia tuloksia voidaan soveltaa helposti uusia tarkastusmenetelmiä kehitettäessa. Tämä pätee myös yleisemmin ns. laskennallisen logiikan [32] tutkimusalueella, jonka yhtä osaa toteutuvuustarkastustutkimus edustaa. 1 1 Ainoa laskennallisen logiikan tutkimusryhmä Suomessa toimii osana Tietojenkäsittelyteorian labo-
3 Järvisalo 49 On hämmästyttävää, että nykyiset käytännössä tehokkaimmat täydelliset toteutuvuustarkastimet tyypillisesti perustuvat jo 1960-luvulla esiteltyyn Davis-Putnam-Logemann-Lovelandmenetelmään (DPLL) [16], joka on pohjimmiltaan varsin yksinkertainen hakumenetelmä. Yksi hypoteesi on, että DPLLpohjaiset tarkastusmenetelmät alkavat olla varsin huippuunsa viritettyjä. Eräitä tämän päivän tutkimussuuntauksia ovatkin (i) sallivampiin, ongelmaspesifisempiin kuvausmuotoihin perustuvien toteutuvuustarkastusmenetelmien kehittäminen, (ii) toteutuvuustarkastusmenetelmien laajentaminen tehokkaiksi rajoitetuiksi lineaarirajoiteratkaisimiksi ja (iii) tehokkaimpien toteutuvuustarkastusmenetelmien valjastaminen uusien, esimerkiksi bioinformatiikan alalta kumpuavien, ongelmien ratkaisemiseen. Huomattavaa on, että nämä kolme kehityssuuntaa ovat läheisessä yhteydessä toisiinsa. Tässä artikkelissa pyritään esittelemään lauselogiikan toteutuvuusongelmaa (kappale 2), sen ratkaisemisessa yleensä käytettäviä, käytännössä tehokkaita algoritmisia ideoita (kappale 4) ja ratkaisumenetelmien sovellutuskohteita (kappale 3) ja arviointimenetelmiä (kappale 5), sekä kartoittamaan hieman, mitä haasteita toteutuvuustarkastus nyt ja tulevaisuudessa tarjoaa (kappale 6). Erityisesti keskitytään täydellisiin tarkastusmenetelmiin ja käytännöstä kumpuaviin ongelmatapauksiin. 2 Toteutuvuusongelman määrittely Lauselogiikan lauseet koostuvat Boolen muuttujista (arvoalueena {tosi, epätosi}) ja niitä yhdistävistä konnektiiveista (looginen ei, negaatio), (looginen tai, disjunktio) ja (looginen ja, konjunktio). Lisäksi tyypillisesti määritellään implikaatio a b a b ja ekvivalenssi a b ( a b) (a b). Esimerkkinä lauselogiikan lauseesta toimii johdannon ehto toisensa poissulkevasta Anssin ja Bettiinan juhliin osallistumisesta. Esimerkki voidaan ekvivalenssin avulla kirjoittaa muodossa a b. Literaali on looginen muuttuja x tai sen negaatio, x. Muotoa l 1 l n olevaa lausetta sanotaan klausuuliksi, missä jokainen l i on literaali. Jokainen lauselogiikan lause voidaan ilmaista ekvivalenttina ns. konjunktiivisessa normaalimuodossa (KNM) olevana lauseena. Lause on KNM:ssa, jos se on muotoa C 1 C n, missä jokainen C i on klausuuli. Esimerkiksi (1) on KNM:ssa. Kuten yleisesti on tapana, tässä artikkelissa käytetään tarvittaessa lyhennysmerkintöjä ja k_ P i = P 1 P k i=1 k^ P i = P 1 P k. i=1 ratoriota Teknillisen korkeakoulun tietotekniikan osastolla, katso Logic/.
4 50 Lauselogiikan toteutuvuustarkastus Lauseen totuusjakelu asettaa kullekin lauseen muuttujalle totuusarvon tosi tai epätosi. Näin ollen totuusjakeluiden määrä on 2 n, kun n on lauseessa olevien muuttujien määrä. Totuusjakelu toteuttaa lauseen, jos lause toteutuu totuusjakelun määräämillä muuttujien arvoilla; esimerkiksi x toteutuu, kun muuttujalle x asetetaan arvo epätosi, ja mielivaltainen klausuuli toteutuu, jos jokin klausuulin literaali toteutuu. Tällaista totuusjakelua sanotaan lauseen toteuttavaksi totuusjakeluksi tai malliksi. Lause, jolle on olemassa malli, on toteutuva, ja toteutumaton, jos mallia ei ole olemassa. Esimerkiksi (1) on toteutuva; sen malleja ovat ja {a tosi, b epätosi} {a epätosi, b tosi}. Lauselogiikan toteutuvuusongelmassa (SAT) kysytään, onko annettu lauselogiikan lause toteutuva. Toteutuvuusongelmatapaukseksi kutsutaan lauselogiikan lausetta. Toteutuvuusongelma on NPtäydellinen, vaikka rajoituttaisiin KNMmuotoisiin lauseisiin, ja jopa vaikka jokaisessa klausuulissa olisi tasan kolme literaalia [28, Prop. 9.2]. 3 Ongelmat toteutuvuusongelmina Toteutuvuustarkastusmenetelmien kysynnän kasvun syinä voidaan mainita tarkastusmenetelmien huiman kehityksen lisäksi menetelmien laajat käyttömahdollisuudet. Edellämainitut suunnittelu-, testausja verifiointiongelmat ovat vain esimerkkejä ongelmatyypeistä, joita voidaan ratkaista toteutuvuusongelmatapauksina tehokkaasti. Menetelmien tehokkuutta kuvaa se, että jopa satojatuhansia muuttujia ja klausuuleja sisältäviä mallintarkastusongelmia on kyetty ratkaisemaan tavallisilla tietokoneilla. Yleisesti ideana on kuvata alkuperäinen ongelma lauselogiikan lauseena siten, että lause toteutuu jos ja vain jos alkuperäiselle ongelmalle on olemassa ratkaisu, ja lisäksi lauseen toteuttavasta totuusjakelusta voidaan lukea suoraan ratkaisu alkuperäiselle ongelmalle. Kuvaustapa vaikuttaa olennaisesti menetelmän tehokkuuteen. Tämä pätee myös yleisemmin, ja tästä johtuen kompaktien, käytännössä hyvin toimivien kuvausideoiden kehittäminen on vireä tutkimusalue. Tässä kappaleessa keskitytään hieman tarkemmin tarkastelemaan, miten suunnitteluongelmia voidaan ratkaista ja ns. rajoitettua mallintarkastusta (bounded model checking, BMC) voidaan tehdä käyttäen toteutuvuustarkastusmenetelmiä. 3.1 Rajoitettu mallintarkastus Digitaalijärjestelmiä suunniteltaessa laaditaan järjestelmästä järjestelmäkuvaus, joka koostuu järjestelmän toiminnallisuuden yksityiskohtaisesta määrittelystä. Verifioinnin tavoitteena on tarkastaa, toteuttaako annettu järjestelmäkuvaus tietyn ominaisuuden esimerkiksi järjestelmä ei voi päätyä lukkiumatilaan eli järjestelmää ei ole mahdollista ajaa millään syötejonolla tilaan, jossa se ei kykene tekemään mitään. Ongelma voidaan periaatteessa ratkaista simuloimalla järjestelmän kaikkia mahdollisia suorituksia. Nykyisissä järjestelmissä mahdollisten suoritusten määrä on kuitenkin huikea, mistä johtuen ongelmaksi voi muodostua tilaavaruusräjähdys [37]. Mallintarkastus [11] on kirjoittajasta riippuen synonyymi sanalle verifiointi, tai verifioinnin alalaji, jossa verifioitava ominaisuus ilmaistaan loogisella kaavalla. Symbolisessa mallintarkastuksessa
5 Järvisalo 51 tila-avaruusräjähdys pyritään välttämään luopumalla järjestelmän tilojen eksplisiittisestä esittämisestä. Perinteiset symboliset menetelmät perustuvat ns. binäärisiin päätöskaavioihin (binary decision diagram, BDD) [4]. Noin viiden viime vuoden aikana on kuitenkin tutkittu toteutuvuustarkastukseen perustuvaa symbolista mallintarkastusta. Rajoitettu mallintarkastus [10] on toteutuvuustarkastusmenetelmiin pohjautuva symbolinen mallintarkastusmenetelmä. Rajoitetussa mallintarkastuksessa tavoitteena on tarkastaa, toteuttavatko järjestelmän kaikki enintään k:n mittaiset suoritukset tietyn ominaisuuden. Rajoitettua mallintarkastusta voidaan suorittaa toteutuvuustarkastusmenetelmiin pohjautuen. Tällöin ideana on kuvata halutun ominaisuuden negaatio sekä järjestelmän k:n askeleen tilasiirtymät lauselogiikan lauseena ja tarkastaa, onko tälle lauseelle mallia toteutuvuustarkastinta käyttäen. Tavoitteena on löytää iteratiivisesti k:n arvoa kasvattaen vastaesimerkki, joka osoittaa järjestelmän kuvauksen virheellisyyden. Kuvaus muodostetaan niin, että mahdollinen vastaesimerkki voidaan lukea suoraan löydetystä mallista. Tästä johtuen menetelmä soveltuu erityisesti järjestelmien virheiden etsintään (debugging). Seuraavassa käydään esimerkin kautta läpi yksi mahdollinen tapa kuvata rajoitettu mallintarkastusongelma lauselogiikalla. Oletetaan, että halutaan tarkastaa, että järjestelmä ei voi millään k:n askeleen suorituksella käydä tilassa, jossa ominaisuus P pätee. Tätä voidaan tarkastella tutkimalla seuraavan lauselogiikan lauseen toteutuvuutta: k 1 ^ k_ I(v 0 ) R(v i,v i+1 ) ( P(v i )), i=0 i=0 missä v i on järjestelmätilamuuttujien vektori i:n tilasiirtymän jälkeen, lause I(v 0 ) luonnehtii järjestelmän alkutilat, R järjestelmän siirtymärelaation, ja P(v i ) kuvaa ominaisuuden P voimassaolemista v i :n määrittelemässä tilassa. Jos tälle lauseelle on olemassa malli, jokin P(v i ) on tosi. Mahdollinen malli toimii siis suoraan vastaesimerkkinä, joka kertoo, mikä P(v i ) on tosi, eli millä ajanhetkellä ominaisuus P on voimassa, sekä operaatiojonon, jolla ko. tilaan päästiin. 3.2 Suunnittelu Monet tekoälyongelmat, kuten aikataulutus (scheduling), ovat suunnitteluongelmia. Seuraavassa esitellään suunnitteluongelma klassisen esimerkin kautta. Kyseessä on palikkamaailma (blocks world) ns. Sussmanin anomalian tapauksessa. Siinä tarkastellaan kolmea palikkaa a, b ja c. Alkutilassa palikat a ja b ovat pöydällä, ja c on a:n päällä. Tavoitteena on siirtää palikat päällekkäin järjestykseen, jossa c on pöydällä, b on c:n päällä ja a b:n päällä. Alkutila ja tavoitetila on esitetty kuvassa 1. c a b a b c Kuva 1: Sussmanin anomalian alkutila (vasemmalla) ja tavoitetila (oikealla). Vain palikkaa, jonka päällä ei ole toista palikkaa, voidaan siirtää. Palikka voi olla vain pöydällä tai toisen palikan päällä.
6 52 Lauselogiikan toteutuvuustarkastus Mallin yksinkertaistamiseksi pöytä ajatellaan palikaksi d, jota ei voi siirtää, mutta jonka päälle ja päältä voi siirtää. Suunnitteluongelmassa tila voidaan nähdä totuusarvojakeluna joukolle tilamuuttujia. Palikkamaailmaesimerkissä valitaan tilamuuttujiksi kahdentyyppisiä ehtoja. Kullekin palikalle P otetaan ehto, joka kertoo, onko palikan P päällinen tyhjä. Lisäksi kullekin parille palikoita P 1,P 2 otetaan ehto, joka kertoo, onko palikka P 1 palikan P 2 päällä. Käytämme seuraavassa näistä tilamuuttujista merkintöjä clear(p) ja on(p 1,P 2 ), missä P, P 1 ja P 2 ovat joukosta {a,b,c,d}. Siis esimerkiksi tilamuuttuja on(a, c) saa arvon tosi tilassa, jossa palikka a on palikan c päällä. Palikkamaailmassa mahdolliset toiminnot ovat muotoa MOVE(P 1,P 2,P 3 ) (siirrä palikka P 1 palikan P 2 päältä palikan P 3 päälle), missä P 1, P 2 ja P 3 ovat joukosta {a,b,c,d}. Toiminnoille on olemassa rajoittavia ehtoja, jotka kuvataan esiehtojen ja jälkiehtojen avulla; nykyinen tila voidaan muuntaa jälkiehtojen määrittelemäksi tilaksi vain jos esiehdot ovat voimassa nykyisessä tilassa. Jos esi- tai jälkiehdot eivät koske tiettyä tilamuuttujaa, pysyy tämän totuusarvo ennallaan. Toimintoon MOVE liittyvät esi- ja jälkiehdot ovat seuraavat. Esiehdot: clear(p 1 ), clear(p 3 ), on(p 1,P 2 ). Jälkiehdot: clear(p 1 ), clear(p 2 ), on(p 1,P 3 ), clear(p 3 ), on(p 1,P 2 ). Suunnitteluongelmassa on siis annettu alkutila, mahdolliset toiminnot ja ehdot hyväksyttävälle lopputilalle. Ongelman ratkaisu eli suunnitelma on jono toimintoja, jotka peräkkäin suoritettuna muuntavat alkutilan sellaiseksi tilaksi, jossa lopputilaehdot ovat voimassa. Palikkaesimerkissä (lyhyimmäksi) suunnitelmaksi saadaan seuraava jono toimintoja: (MOVE(c,a,d), MOVE(b,d,c), MOVE(a,d,b)). Toiminnon MOVE(c, a, d) jälkeinen tila on esitetty kuvassa 2 ja toiminnon MOVE(b,d,c) jälkeinen tila kuvassa 3. a b c Kuva 2: Tila toiminnon MOVE(c, a, d) suorittamisen jälkeen. a b c Kuva 3: Tila toiminnon MOVE(b, d, c) suorittamisen jälkeen. Edellä annettu suunniteluongelman määrittely lähtee siitä, että ratkaisuna saatavassa suunnitelmassa kussakin tilassa yksi toiminto aiheuttaa tilan muuttumisen toiseksi. Seuraavassa esitettävää suunnitteluongelman lauselogiikan toteutuvuusongelmakuvausta varten otetaan käyttöön k + 1 ajanhetkeä t = 0,1,...,k siten, että ajanhetki 0 tarkoittaa järjestelmän alkutilaa ja yleisesti ajanhetkellä t tarkoitetaan järjestelmän tilaa t:n toiminnon jälkeen. Kuvauksessa vaaditaan siis, että jokaisena ajanhetkenä t suoritetaan täsmälleen yksi toiminto. Jokaista tilamuuttujaa kohden otetaan muuttuja jokaiselle t {0,...,k} ja jokaista toimintoa kohden muuttuja jokaiselle t {0,...,k 1}; palikkamaailmatapauksessa siis on(p 1,P 2,t) ja clear(p,t), missä t = 0,...,k, ja MOVE(P 1,P 2,P 3,t), missä t = 0,...,k 1. Palikkamaailmatapauksessa yksi mahdollinen lauselooginen kuvaus on
7 Järvisalo 53 muotoa missä k 1 ^ A (Y t V t K t ) L, t=0 A kuvaa alkutilan, L tavoitetilan, Y t vaatimuksen, että ajanhetkellä t suoritetaan täsmälleen yksi toiminto, V t ajanhetkellä t suoritettavan toiminnon esi- ja jälkiehdot, ja lisäksi K t ns. kehysaksioomat, jotka huolehtivat siitä, että tila säilyy ajanhetkestä t ajanhetkeen t + 1 ennallaan niiden tilamuuttujien osalta, joihin ei kohdistu toimintoa hetkellä t. Seuraavassa pyritään antamaan idea siitä, miten yllämainitut kuvauksen osat muodostetaan. Alkutilan (t = 0) kuvaus A on muotoa on(c,a,0) on(a,d,0) on(b,d,0) clear(c, 0) clear(b, 0). Tavoitetilan (t = k) kuvaus L on muotoa on(a,b,k) on(b,c,k) on(c,d,k). Vaatimuksen jokaisena ajanhetkenä suoritetaan täsmälleen yksi toiminto kuvaus Y t on muotoa Yt 1 Yt 2, missä Yt 1 sallii, että enintään yksi toiminto suoritetaan ja Yt 2 että vähintään yksi toiminto suoritetaan ajanhetkellä t. Esimerkiksi Yt 1 :n osana on palikan a siirtämisen ajanhetkellä t palikan b päältä sekä palikan c päälle että pöydälle (d) kieltävä lause MOVE(a,b,c,t) MOVE(a,b,d,t). Jatkoa varten tarvitaan läpikäytävien muuttujien x, y ja z arvoyhdistelmiä rajoittava kaava: x,y,z {a,b,c,d} x y x z y z x d (2) Lause Y 2 t on muotoa _ MOVE(x,y,z,t). (2) Lisäksi pitää kuvata toiminnon MOVE vaikutukset tilaan jokaisella ajanhetkellä t, eli esi- ja jälkiehdot kyseiselle toiminnolle: V t = ^ (MOVE(x,y,z,t) (2) (clear(x,t) on(x,y,t) clear(z,t) on(x,z,t + 1) clear(y,t + 1) clear(x,t + 1) clear(z,t + 1) on(x,y,t + 1))). Ylläolevalla lauseella vaaditaan, että joko toimintoa MOVE(x,y,z,t) ei suoriteta tai esi- ja jälkiehtojen on oltava voimassa. Lisäksi jokaista toiminto/tilamuuttujaparia kohden on lisättävä jokaiselle ajanhetkelle edellämainittu kehysaksiooma. Määritellään esityksen avuksi rajoitus x,y,z {a,b,c,d} (x x (y y y z)). (3) Nyt esimerkiksi toiminnolle MOVE ja ontyyppiselle tilamuuttujalle kirjoitetaan kehysaksiooma K MOVE,on t, joka on muotoa ^ (MOVE(x,y,z,t) (2) ^ (on(x,y,t) on(x,y,t + 1))). (3) Merkittäessa kaikkien ajanhetkeä t koskevien kehysaksioomien voimassaoloa vaativaa lausetta K t :llä tässä tapauksessa
8 54 Lauselogiikan toteutuvuustarkastus siis K MOVE,on t K MOVE,clear t on kaikki kuvauksen osat saatu määriteltyä. 4 Toteutuvuustarkastusmenetelmistä Toteutuvuusongelman NP-täydellisyydestä huolimatta suuri joukko erityyppisiä lauselogiikan toteutuvuustarkastukseen tarkoitettuja menetelmiä on esitetty erityisesti 1980-luvulta tähän päivään (katso [17]). Lähestymistapoja perustuen esimerkiksi neuroverkkoihin tai (globaaliin/lokaaliin, lineaariseen/epälineaariseen) optimointiin on esitetty. Erityisesti viimeksi kuluneiden noin vuoden aikana toteutuvuustarkastusmenetelmien kehitys on ollut huomattavaa. Menetelmät voidaan luokitella niiden systemaattisuuden mukaan. Systemaattinen menetelmä on tyypillisesti täydellinen; jos lause on toteutuva, menetelmä löytää sille mallin, ja erityisesti jos lause on toteutumaton, menetelmä pystyy toteamaan tämän. Ei-systemaattiset menetelmät sisältävät satunnaisen komponentin ja perustuvat tyypillisesti paikalliseen hakuun (katso esimerkiksi [34, 35, 20]). Ei-systemaattisia menetelmiä on käytetty erityisesti satunnaisten toteutuvuusongelmatapausten ratkaisemiseen. Tässä artikkelissa keskitymme systemaattisiin menetelmiin. On hämmästyttävää, että nykyiset käytännössä tehokkaimmat systemaattiset toteutuvuustarkastimet tyypillisesti perustuvat jo 1960-luvulla esiteltyyn Davis-Putnam-Logemann-Lovelandmenetelmään (DPLL) [16], joka on pohjimmiltaan varsin yksinkertainen syvyyssuuntainen hakumenetelmä. Seuraavassa käsitellään DPLL-menetelmän perusideaa ja sen tehokkuutta huomattavasti parantavaa, nykyisissä tarkastimissa käytettävää oppimista. 4.1 DPLL DPLL-menetelmä olettaa syötteenä annettavan toteutuvuustarkastustapauksen olevan KNM:ssa. Menetelmän esittäminen selkeytyy, kun KNM:ssa oleva lause nähdään joukkona klausuuleja ja klausuulit edelleen joukkoina literaaleja. Näin esimerkiksi lause (a b) ( a b) voidaan nähdä joukkona {{a,b},{ a, b}}. Algoritmi A kuvaa DPLL-menetelmän perusperiaatteen. Algoritmi valitsee klausuulijoukon muuttujista yhden (x), ns. haarautumismuuttujan, käytetyn heuristiikan mukaan (HeuristiikkaA), ja edelleen tälle muuttujalle arvon v (tosi tai epätosi) toisen heuristiikan (HeuristiikkaB) mukaan. Merkintä C[x v] tarkoittaa klausuulijoukkoa, joka on saatu klausuulijoukosta C muuttamalla sitä seuraavilla kahdella tavalla. (i) On poistettu jokainen sellainen klausuuli, jossa on muuttujan x ilmentymä (literaali), joka toteutuu totuusarvojakelulla {x v}. (ii) On poistettu jokainen muuttujan x ilmentymä, joka ei toteudu totuusarvojakelulla {x v}. Jos A(C[x v]) palauttaa arvon toteutumaton, haarasta, jossa x saa arvon v, ei löydetty mallia. Tällöin kokeillaan sijoittaa muuttujaan x arvon v vasta-arvo v. Jos kummastakaan haarasta ei löydetä mallia, on klausuulijoukon C oltava toteutumaton.
9 Järvisalo 55 Algoritmi A Syöte: Klausuulijoukko C Palauttaa: toteutuva tai toteutumaton 1. C Yksinkertaista(C) 2. If C = /0 return toteutuva 3. If /0 C return toteutumaton 4. muuttuja x HeuristiikkaA(C) 5. arvo v HeuristiikkaB(C, x) 6. If A(C[x v]) = toteutuva return toteutuva 7. If A(C[x v]) = toteutuva return toteutuva 8. return toteutumaton Jos kaikki klausuulit poistetaan klausuulijoukosta, kohdan (i) perusteella jokainen klausuuli toteutuu, ja näin ollen klausuulijoukko on toteutuva (rivi 2). Toisaalta, jos jonkin klausuulijoukon klausuulin kaikki literaalit on poistettu haun aikana, kohdan (ii) perusteella kyseinen klausuuli ei toteudu tehdyillä totuusarvovalinnoilla (rivi 3). Lausejoukkoa voidaan yksinkertaistaa aina ennen uuden haarautumismuuttujan valintaa. Esimerkkinä käytettävistä yksinkertaistamissäännöistä voidaan mainita ns. monotonisen literaalin sääntö: jos jonkin muuttujan x kaikki jäljellä olevat ilmentymät ovat samaa polariteettia (eli x literaalit ovat kaikki muotoa x tai kaikki muotoa x), korvataan C joukolla C[x v], missä v on se totuusarvo, jolla x:n literaalit toteutuvat. Olennaisin DPLL-algoritmien yksinkertaistamismenetelmä on kuitenkin ns. yksikkövyörytys (unit propagation). Oletetaan, että klausuulijoukko C sisältää klausuulin, jossa on ainoastaan yksi literaali l (ns. yksikköklausuuli). Olkoon l muuttujan x ilmentymä. Yksikkövyörytyssäännön mukaan lausejoukko C voidaan tällöin korvata joukolla C[x v], missä v on se totuusarvo, jolla l toteutuu. Yksikkövyörytyksessä yksikkövyörytyssääntöä sovelletaan, kunnes sen hetkisessä klausuulijoukossa ei enää ole yksikköklausuuleja. Yksikkövyörytys ei teoriassa tehosta DPLL-algoritmia; sama vaikutus saadaan aikaan pakottamalla heuristiikat valitsemaan mahdollisten yksikköklausuulien sanelemia muuttuja/totuusarvo-pareja. Yksikkövyörytys voidaan kuitenkin käytännössä toteuttaa erittäin tehokkaasti. Lisäksi monotonisen literaalin sääntöä ei pystytä suoraan simuloimaan yksikkövyörytyksen tapaan heuristisilla valinnoilla; vaikkakin monotoninen literaali ja sille sopiva arvo voidaan tunnistaa sopivilla heuristiikoilla, ilman monotonisen literaalin säännön käyttöä voidaan joutua tilanteeseen, jossa algoritmin A rivin 7 rekursiivinen kutsu suoritetaan turhaan. 4.2 Heuristiikoista ja oppimisesta Haarautumismuuttujien ja niiden arvojen valintaan vaikuttavilla heuristiikoilla on käytännössä erittäin suuri vaikutus DPLLmenetelmään pohjautuvan toteutuvuustarkastimen tehokkuuteen. Monenlaisia heuristiikkoja on esitetty, katso esimerkiksi [27, 26, 6, 21, 19]. Intuitiivisesti ajatellen ahne heuristiikka pyrkii tekemään valintoja, jotka johtavat nopeasti mallin löytymiseen tai ristiriitaan. Kuvan 4 hakupuu on syntynyt tällaisen valinnan (vasen haara) kautta. Kuvassa vasen haara edustaa jäljellejäävää hakua, kun valittuun muuttujaan sijoitetaan arvo epätosi, oikea haara taas sijoitusta tosi. Mahdollinen ongelma on silminnähtävä. Vaikka ahne valinta on joh-
10 56 Lauselogiikan toteutuvuustarkastus tanut tavoitteena olleeseen pieneen alihakupuuhun (vasen alipuu), ei valinta ole ottanut huomioon jäljellejäävää hakua (oikea alipuu) siinä tapauksessa, että ratkaisua ei löydy vasemmasta haarasta. Oikean alipuun koko saattaa tässä muodostua pullonkaulaksi. Kuva 4: Epätasapainoinen hakupuu. Kuvassa 5 esitetty hakupuu on tasapainoinen; on päädytty suurinpiirtein samankokoiseen hakuun kummassakin alipuussa. Kumman tahansa totuusarvon sijoittaminen valitulle muuttujalle johtaa siis kohtuullisen kokoiseen hakuun. Verrattaessa kuvien 4 ja 5 alihakupuita huomataan, että kuvan 5 alihakupuiden yhteispinta-ala on pienempi (eli haku lyhyempi) kuin kuvan 4. Tähän vedoten voidaan argumentoida, että hyvä heuristinen idea olisi pyrkiä valitsemaan sellaisia muuttujia, joilla haarauduttaessa hakupuusta tulee tasapainoinen ja molemmat alihakupuut ovat kohtuullisen pieniä. Kuva 5: Tasapainoinen hakupuu. Tehokas hakuavaruuden karsinta osana syvyyssuuntaista hakua on erittäin olennaista toteutuvuustarkastuksessa, sillä muutoin haun tehokkuus ei missään nimessä riittäisi suurten teollisuusongelmatapausten ratkaisemiseen. Nykyiset tehokkaimmat DPLL-pohjaiset toteutuvuustarkastimet käyttävät hyväksi ns. ristiriitoihin perustuvaa oppimista (conflict driven learning) [38]. Intuitiivisesti oppimisen integroiminen osaksi toteutuvuustarkastinta johtaa hakuavaruuden huomattavaan karsimiseen verrattuna perus-dpllalgoritmiin. Oppimisessa muodostetaan hakua ohjaavia ns. konfliktiklausuuleja, joilla eksplisiittisesti kielletään totuusarvoyhdistelmiä, joiden on haun aikana todettu johtavan totuusarvojakeluihin, jotka eivät toteuta klausuulijoukkoa. Yksinkertainen esimerkki tästä on, että valintojen johtaessa ristiriitaan voidaan käsiteltävään klausuulijoukkoon lisätä tehtyjen valintojen vastakohtaa esittäviä klausuuleja. Esimerkiksi jos valintojen x tosi, y epätosi jälkeen voidaan yksinkertaistamalla johtaa tyhjä klausuuli, pätee yleisesti, että klausuulijoukkoa ei toteuta mikään totuusarvojakelu, jossa muuttujaan x sijoitetaan arvo tosi ja muuttujaan y arvo epätosi. Tästä voidaan oppia klausuuli x y, joka ilmaisee, että molempia valinnoista x tosi, y epätosi ei voida tehdä. Opittu klausuuli voidaan nyt lisätä osaksi alkuperäistä klausuulijoukkoa. Oppimisen haasteena on löytää lyhyitä (ja näin ollen hakua tehokkaasti rajaavia) konfliktiklausuuleja. Tässä mielessä yllä kuvattu yksinkertainen oppimisidea ei ole suoraan käyttökelpoinen. Käytännössä tehokkaissa menetelmissä oppiminen on yhdistetty ns. epäkronologiseen peruuttamiseen (nonchronological backtracking), jossa valintoja peruutetaan (backtracking) monta kerrallaan. On osoitettu, että konflikteihin perustuva oppiminen tehostaa sekä käytännössä että teoreetti-
11 Järvisalo 57 sesti toteutuvuustarkastusmenetelmää huomattavasti. Useissa tarkastimissa valintaheuristiikka ottaa huomioon opitut klausuulit. Seuraava, käytännössä toimiva, ns. VSIDS-heuristiikka (variable state independent decaying sum) on osana erityisesti rakenteisten ongelmien tapauksessa yhtä parhaista toteutuvuustarkastimista nimeltä zchaff [27]. VSIDS ylläpitää jokaiselle literaalille l pistearvoa s(l) ja laskuria c(l). Aluksi kaikille literaaleille l asetetaan c(l) = 0. Ennen haun aloittamista s(l):n arvoksi asetetaan literaalin esiintymiskertojen määrä syötteenä saatavassa lausejoukossa. Opittaessa konfliktiklausuuli C korotetaan jokaisen C:n sisältämän literaalin arvoa c(l) yhdellä. Lisäksi määräajoin tehdään jokaisen literaalin l osalta päivitys s(l) := c(l)+ s(l) ; c(l) := 0. 2 Muuttujaa valittaessa VSIDS-heuristiikka valitsee literaalin l, jolla arvo s(l) on suurin, ja asettaa literaalia vastaavalle muuttujalle arvon, joka toteuttaa literaalin. Intuitiivinen oletus VSIDS-heuristiikan takana on, että uusimmat opitut klausuulit ovat olennaisimpia. Tämä pyritään ottamaan huomioon sillä, että literaalien pistearvoa jaetaan määräajoin vakiolla, ja pistearvo kasvaa ainoastaan opittaessa konfliktiklausuuli, jossa kyseinen literaali on. 5 Tarkastusmenetelmien arvioinnista Eri menetelmien tehokkuusvertailu on olennaista tehokkaita toteutuvuustarkastusmenetelmiä kehitettäessä. Vertailua voi 2 Katso tehdä joko empiirisesti tai analyyttisesti. Näistä jälkimmäinen, matemaattista pohjaa hyödyntävä keino voidaan edelleen jakaa pahimman tapauksen analyysiin ja todistuskompleksisuustarkasteluihin. Huomattavaa on, että vertailumenetelmät eivät suinkaan ole toisensa poissulkevia, vaan toisiaan tukevia, ja jokaisella niistä on omat hyvät ja huonot puolensa. 5.1 Empiirinen arviointi 5.2 Pahimman tapauksen analyysi Tarkastusmenetelmien empiirisen arvioinnin osalta toteutuvuustarkastusyhteisö on huomattavan organisoitunut. Tunnetusti vaikeita, yleisesti käytössä olevia ns. benchmark-tapauksia on koottu yhteen 2. Tarve laajalle valikoimalle erityyppisiä (satunnaisia, teollisuudesta kumpuavia, jne.) ongelmia on selvä; yleisesti tehokas toteutuvuustarkastin on huomattavasti hankalampi toteuttaa kuin vain tietynlaisia tapauksia tehokkaasti ratkaiseva tarkastin. Ongelma empiirisessä arvioinnissa on benchmark-tapausten kattavuudessa ja objektiivisuuden säilyttämisessä eri menetelmiä vertailtaessa. Empiiriset kokeet ovat kuitenkin erittäin tärkeä osa käytännön sovellutuksiin tähtäävää toteutuvuustarkastustutkimusta. Mielenkiinto toteutuvuustarkastusmenetelmien pahimman tapauksen analyysia kohtaan on kasvanut erityisesti viime vuosien aikana, katso esimerkiksi [15]. Pahimman tapauksen analyysi on kuitenkin useissa tapauksissa varsin haastavaa. Tällä hetkellä parhaimman tunnetun täydellisen menetelmän pahimman tapauksen laskenta-aika on luokkaa O(1,3 n ), missä n
12 58 Lauselogiikan toteutuvuustarkastus on tapauksen muuttujien määrä [15]. Eksponentin kantaa on saatu tasaisesti pienennettyä. Tällä rintamalla tutkimustyö on aktiivista ja erityisesti teoreettisesta näkökulmasta hyvin mielenkiintoista. Analyysin luonteenomaisen haastavuuden lisäksi ongelmana on, että tunnetusti pahimman tapauksen käyttäytymiseltään parhaimmat menetelmät ovat hankalasti toteutettavissa. Usein hyvin optimoitu DPLL-pohjainen menetelmä onkin empiirisesti tällaista menetelmää tehokkaampi käytännössä. Pahimman tapauksen käytös onkin usein varsin karkea vertailuparametri käytännössä tehokkaille menetelmille. 5.3 Todistuskompleksisuus Lauselogiikan lauseelle voidaan määrittää ns. todistuskompleksisuus [8] jonkin tarkastusmenetelmän suhteen. Intuitiivisesti todistuskompleksisuus on mitta pienimmälle askelmäärälle, jossa menetelmällä on mahdollista osoittaa lause toteutuvaksi tai toteutumattomaksi. Todistuskompleksisuuskäsite mahdollistaa eri tarkastusmenetelmien teoreettisen vertailun. Todistuskompleksisuuteen pohjautuen voidaan sanoa, että menetelmä M polynomisesti simuloi [13] menetelmää M, jos on olemassa polynomi p(n) siten, että jokaiselle lauseelle C pätee, että jos C on mahdollista osoittaa toteutuvaksi (toteutumattomaksi) menetelmässä M askelmäärällä n, niin C on mahdollista osoittaa toteutuvaksi (toteutumattomaksi) menetelmässä M askelmäärällä p(n). Erityisesti voidaan eräissä tapauksissa osoittaa, että jollakin menetelmällä M ei voida polynomisesti simuloida toista menetelmää M. Tästä seuraa, että on tapauksia, joilla menetelmä M on huomattavasti tehokkaampi kuin M. Todistuskompleksisuustarkastelu on arviointimenetelmistä kenties matemaattisin. Esimerkkinä klassisista tuloksista mainittakoon Hakenin todistus [18], josta suoraan seuraa, että DPLL-menetelmä on pohjimmiltaan eksponentiaaliaikainen. On myös osoitettu [7], että DPLLmenetelmä ilman oppimista ei kykene polynomisesti simuloimaan oppimisella varustettua DPLL-menetelmää. 6 Yleistyksistä Tässä kappaleessa keskitytään toteutuvuustarkastusmenetelmien yleistyksiin, jotka mahdollisesti lyövät itsensä läpi tulevaisuudessa. Eräs tutkimussuunta liittyy toteutuvuusongelman esitysmuotoon; kömpelön konjunktiivisen normaalimuodon käyttämisen sijaan voidaan käyttää muun muassa ns. Boolen piirejä, jotka esitellään seuraavassa. Toisena suuntauksena mainitaan 0 1-kokonaislukuoptimointi- ja mallienlaskentaongelmien tehokkaat toteutuvuustarkastukseen pohjautuvat ratkaisumenetelmät. 6.1 Esitysmuodosta Konjunktiivinen normaalimuoto on varsin kömpelö, vaivalloisesti käytettävissä oleva esitysmuoto monissa tapauksissa. Esimerkiksi mallintarkastusongelman toteutuvuusongelmakuvaus tehdään usein välimuotoisen esityksen kautta. Lisäksi KNM:oon käännettäessä joudutaan usein lisäämään ylimääräisiä muuttujia käännöksen koon hallittavuuden takia; ilman ylimääräisiä muuttujia käännöksen koko kasvaa pahimmassa tapauksessa eksponentiaalisesti. Ylimääräisten muuttujien esittely taas huonontaa DPLLpohjaisten toteutuvuustarkastimien pahimman tapauksen käyttäytymistä johtuen käyttäytymisen eksponentiaalisesta riippuvuudesta muuttujien määrästä.
13 Järvisalo 59 Monissa tapauksissa tiivis, luonnollinen ja alkuperäisen ongelman rakenteen säilyttävä kuvaus saadaan käyttämällä Boolen piirejä. Boolen piirit ovat suunnattuja, asyklisiä verkkoja, joiden solmuja kutsutaan porteiksi. Portit voidaan jakaa kolmeen joukkoon: tulosportteihin, väliportteihin ja syöteportteihin. Jokaiseen tulos- ja väliporttiin liittyy Boolen funktio. Esimerkki Boolen piiristä on kuvassa 6. Kuvan piirissä v on tulosportti, c, d, e, f, g, h väliportteja ja a, b syöteportteja. and e or f or or g or h a v not c Kuva 6: Esimerkki Boolen piiristä. b not d Piirin kaaret kuvaavat porttien funktionaalista riippuvuutta toisistaan. Esimerkiksi kuvan 6 piirissä porttien b, c, f välinen riippuvuus on muotoa f = or(b, c), ja edelleen porttien a, c välillä on riippuvuus c = not(a). Boolen piirien semantiikka on ilmeinen: kiinnitettäessä totuusarvot syöteportteihin määrittyvät muiden porttien totuusarvot yksikäsitteisesti. Rajoitetussa Boolen piirissä sallitaan piirin porttien totuusarvojen rajoittaminen. Esimerkiksi kuvan 6 piiriin voitaisiin lisätä rajoite portti v on tosi. Boolen piirien toteutuvuusongelmassa kysytään, onko annetun rajoitetun Boolen piirin syöteporteille olemassa sellaista totuusarvojakelua, joka toteuttaa piirin rajoitteet. Jos tällainen totuusjakelu on olemassa, sanotaan kyseistä piiriä toteutuvaksi, ja muulloin toteutumattomaksi. Kuten lauselogiikan tapauksessa, myös Boolen piirien toteutuvuusongelma on NP-täydellinen. Esimerkiksi kuvan 6 piirille ei ole sen toteuttavaa totuusjakelua rajoitteella portti v on tosi. Toisaalta rajoitteilla portti e on epätosi ja portti g on tosi totuusjakelu {a epätosi, b epätosi} toteuttaa piirin. Erityisen mielenkiintoista on, että DPLL-menetelmälle on määriteltävissä vastine Boolen piireille, katso esimerkiksi [22]. Lisäksi useat nykyisten tehokkaimpien DPLL-pohjaisten tarkastimien käyttämät tekniikat ovat hyödynnettävissä myös Boolen piirejä käsittelevässä vastineessa [36]. Boolen piirien etu KNMesitykseen nähden on se, että piirien säilyttämää alkuperäistä rakennetta voidaan käyttää suoraan syötteestä lukien hyödyksi haun aikana. Rakenteen säilyttävien KNM-käännöksien aikaansaaminen on haastavaa; katso esimerkiksi [30]. Boolen piireillä operoiviin DPLL:ään pohjautuviin menetelmiin keskittyvä tutkimus onkin tällä hetkellä suuren mielenkiinnon kohteena. Lisäksi Boolen piirien rakenteellisuus antaa oivallisen pohjan muun muassa todistuskompleksisuustarkasteluille [23]. 6.2 Lineaarirajoitteista ja mallienlaskennasta Lineaariset 0 1-rajoitteet ovat muotoa a i x i b, i missä a i, b ovat kokonaislukuja, x i {0,1} ja { =, <,, >, }. Huomattavaa on, että mielivaltainen klausuuli x 0 x 1 x i x i+1 x n voidaan esittää lineaarirajoitteena x x i +(1 x i+1 )+...+(1 x n ) 1.
14 60 Lauselogiikan toteutuvuustarkastus Yleisesti lineaariset 0 1-rajoitteet voidaan kuvata polynomisen kokoisena (mutta suurena) klausuulijoukkona. Osa rajoitteista voidaan tosin usein kuvata tiiviisti ja luonnollisesti klausuuleina. Tehokkaaksi todettuja toteutuvuustarkastustekniikoita onkin pyritty laajentamaan hyväksymään myös lineaarisia 0 1-rajoitteita loogisten rajoitteiden lisäksi. Ajatuksena on hyväksikäyttää tehokkaita toteutuvuustarkastusmenetelmiä klausuulimuotoisiin rajoitteisiin ja samalla hyväksyä myös tiiviimpien lineaaristen 0 1-rajoitteiden käyttö osana ongelmakuvausta. On alustavaa näyttöä siitä, että tämä lähestymistapa on kilpailukykyinen tietyillä sovellutusalueilla jopa kaupallisten huippuunsaviritettyjen ja huippukalliiden lineaariepäyhtälöryhmien ratkaisimien 3 kanssa [3]. Tämänkaltaisia menetelmiä olisi mahdollista soveltaa esimerkiksi bioinformatiikan alalta kumpuavien ongelmien, kuten NP-täydellisen usean merkkijonon sovitusongelman (multiple sequence alignment) [31], ratkaisemiseen. Mallienlaskentaongelmassa kysymys on annetun toteutuvuusongelmatapauksen mallien lukumäärän määrittämisestä. Mallienlaskentaongelma on vaativuusteoreettisesti toteutuvuusongelmaa vaikeampi, ns. #P-täydellinen [28]. On ilmiselvää, että toteutuvuustarkastumenetelmiä voidaan käyttää suoraan hyväksi mallienlaskentaongelmatapausten ratkaisemisessa hakemalla yksinkertaisesti kaikki ko. tapauksen mallit. Viimeisimpien parin vuoden aikana on herännyt kiinnostus yhä tehokkaampien mallienlaskentaongelmaratkaisimien kehittämiseen pohjautuen toteutuvuustarkastusmenetelmiin. Joitakin lupaavia tuloksia on jo esitetty [33, 5]. Kiinnostus mallienlaskentaongelman ratkaisumenetelmiä kohtaan 3 Esimerkiksi ILog CPLEX-ratkaisin. johtuu sen läheisestä suhteesta probabilistiseen päättelyyn [29]. 7 Lopuksi Lauselogiikan toteutuvuusongelma on yksi tutkituimmista NP-täydellisistä ongelmista. Tähän teorian ja käytännön välimaastoon asettuvaan ongelmaan liittyvä algoritmitutkimus on edistynyt huimasti erityisesti viimeksi kuluneiden noin vuoden aikana. Toteutuvuustarkastimia on viime vuosina käytetty laajalti erilaisten käytännön ongelmien ratkaisemisessa. Tässä artikkelissa pyrittiin tuomaan esille lauselogiikan toteutuvuustarkastuksen perusperiaatteita sekä tutkimusongelmia, keskittyen systemaattisiin tarkastusmenetelmiin ja käytännöstä kumpuavien ongelmien ratkaisemiseen. Toteutuvuustarkastukseen liittyvä tutkimusalue on kenties yllättävänkin laaja. Tämä artikkeli käsitteli ainoastaan pientä, epätasapainoisesti valittua osaa alueeseen liittyvistä tutkimusongelmista (ja sitäkin hyvin pintapuolisesti). Käsittelyn ulkopuolelle jääneistä aiheista mainittakoon satunnaisiin toteutuvuusongelmatapauksiin liittyvä faasitransitioilmiö [14], jolla on vahva kytkentä materiaalifysiikkaan, ja PSPACEtäydellisen kvantifioidun toteutuvuusongelman (QSAT) [28] ratkaiseminen, sekä stokastiset toteutuvuustarkastusmenetelmät. Pintapuolisen käsittelyn johdosta lukijaa lämpimästi kehoitetaan tutustumaan hänessä kiinnostusta herättäneisiin toteutuvuustarkastuksen osa-alueisiin artikkelin viitteiden kautta.
15 Järvisalo 61 Viitteet [1] Eighth International Conference on Theory and Applications of Satisfiability Testing. [2] Clay Mathematics Institute. Millennium Problems. millennium/. [3] Fadi A. Aloul, Arathi Ramani, Igor L. Markov ja Karem A. Sakallah. Generic ILP versus 0-1 specialized ILP: An update. Technical Report CSE-TR , University of Michigan [4] Henrik Reif Andersen. An introduction to binary decision diagrams, Lecture notes for Advanced Algorithms E97, Department of Information Technology, Technical University of Denmark. [5] Fahiem Bacchus, Shannon Dalmao ja Toniann Pitassi. Algorithms and complexity results for #SAT and Bayesian inference. Proceedings of the 44th Annual Symposium on Foundations of Computer Science (FOCS 03), s IEEE [6] Roberto J. Bayardo ja Robert C. Schrag. Using CSP look-back techniques to solve real-world SAT instances. Proceedings of the Fourteenth National Conference on Artificial Intelligence (AAAI 97), s AAAI Press [7] Paul Beame, Henry Kautz ja Ashish Sabharwal. Understanding the power of clause learning. Proceedings of the 18th International Joint Conference on Artificial Intelligence (IJCAI-2003), s Morgan Kaufmann [8] Paul Beame ja Toniann Pitassi. Propositional proof complexity: past, present, and future. Bulletin of the European Association for Theoretical Computer Science, 65:66 89, [9] Armin Biere ja Wolfgang Kunz. SAT and ATPG: Boolean engines for formal hardware verification. Proceedings of 20th IEEE/ACM International Conference on Computer Aided Design (ICCAD 02), s IEEE Press [10] Edmund Clarke, Armin Biere, Richard Raimi ja Yunshan Zhu. Bounded model checking using satisfiability solving. Formal Methods in System Design, 19(1):7 34, [11] Edmund Clarke, Orna Grumberg ja Doron A. Peled. Model Checking. The MIT Press [12] Stephen A. Cook. The complexity of theorem proving procedures. Proceedings of the 3rd Annual Symposium on Theory of Computing, s ACM [13] Stephen A. Cook ja Robert A. Reckhow. The relative efficiency of propositional proof systems. Journal of Symbolic Logic, 44(1):36 50, [14] James M. Crawford ja Larry D. Auton. Experimental results on the crossover point in random 3SAT. Artificial Intelligence, 81(1 2):31 57, [15] Evgeny Dantsin, Andreas Goerdt, Edward A. Hirsch, Ravi Kannan, Jon Kleinberg, Christos Papadimitriou, Prabhakar Raghavan ja Uwe Schöning. A deterministic (2 2/(k + 1)) n algorithm for k-sat based on local search. Theoretical Computer Science, 289(1):69 83, [16] Martin Davis, George Logemann ja Donald Loveland. A machine program for theorem proving. Communications of the ACM, 5(7): , [17] Jun Gu, Paul W. Purdom, John Franco ja Benjamin W. Wah. Algorithms for the satisfiability (SAT) problem: a survey. Satisfiability Problem: Theory and Applications, DIMACS: Series in Discrete Mathematics and Theoretical Computer Science 35, s American Mathematical Society, [18] Armin Haken. The intractability of resolution. Theoretical Computer Science, 39(2 3): , 1985.
16 62 Lauselogiikan toteutuvuustarkastus [19] John N. Hooker ja V. Vinay. Branching rules for satisfiability. Journal of Automated Reasoning, 15: , [20] Holger H. Hoos ja Thomas Stützle. Local Search Algorithms for SAT: An Empirical Evaluation. Journal of Automated Reasoning, 24: , [21] Jinbo Huang ja Adnan Darwiche. A structure-based variable ordering heuristic for SAT. Proceedings of the 18th International Joint Conference on Artificial Intelligence, s , Morgan Kaufmann [22] Tommi A. Junttila ja Ilkka Niemelä. Towards an efficient tableau method for Boolean circuit satisfiability checking. Computational Logic CL 2000; First International Conference, Lecture Notes in Artificial Intelligence 1861, s Springer [23] Matti Järvisalo, Tommi A. Junttila ja Ilkka Niemelä. Unrestricted vs restricted cut in a tableau method for Boolean circuits. AI&M , 8th International Symposium on Artificial Intelligence and Mathematics, Julkaisu saatavilla: %7Eamai/aimath04/. [24] Henry Kautz ja Bart Selman. Planning as satisfiability. Proceedings of the 10th European Conference on Artificial Intelligence, s Wiley [25] Tracy Larrabee. Test pattern generation using Boolean satisfiability. IEEE Transactions on Computer-Aided Design, 11(1):6 22, [26] Chu Min Li ja Anbulagan. Heuristics based on unit propagation for satisfiability problems. Proceedings of the 15th International Joint Conference on Artificial Intelligence, s Morgan Kaufmann [27] Matthew W. Moskewicz, Conor F. Madigan, Ying Zhao, Lintao Zhang ja Sharad Malik. Chaff: Engineering an efficient SAT solver. Proceedings of the 38th Design Automation Conference, s ACM [28] Christos H. Papadimitriou. Computational Complexity. Addison-Wesley [29] Judea Pearl. Probabilistic Reasoning in Intelligent Systems. Morgan Kaufmann [30] David A. Plaisted ja Steven A. Greenbaum. A structure preserving clause form translation. Journal of Symbolic Computation, 2: , [31] Steve Prestwich, Des Higgins ja Orla O Sullivan. A SAT-based approach to multiple sequence alignment. Proceedings of the Ninth International Conference on Principles and Practice of Constraint Programming, Lecture Notes in Computer Science 2833, s Springer [32] John Alan Robinson. Computational logic: Memories of the past and challenges for the future. Computational Logic CL 2000; First International Conference, Lecture Notes in Artificial Intelligence 1861, s Springer [33] Tian Sang, Fahiem Bacchus, Paul Beame, Henry Kautz ja Toniann Pitassi. Combining component caching and clause learning for effective model counting. Seventh International Conference on Theory and Applications of Satisfiability Testing, Julkaisu saatavilla: [34] Bart Selman, Henry A. Kautz ja Bram Cohen. Local search strategies for satisfiability testing. Proceedings of the Second DIMACS Challenge on Cliques, Coloring, and Satisfiability, [35] Bart Selman, Hector J. Levesque ja David Mitchell. A new method for solving hard satisfiability problems. Proceedings of the Tenth National Conference on Artificial Intelligence, s AAAI Press [36] Christian Thiffault, Fahiem Bacchus ja Toby Walsh. Solving non-clausal formulas with DPLL search. In Proceedings of the 10th International Conference on
17 Järvisalo 63 Principles and Practice of Constraint Programming, Lecture Notes in Computer Science 3258, s Springer [37] Antti Valmari. The State Explosion Problem. Lectures on Petri Nets I: Basic Models, Lecture Notes in Computer Science 1491, s Springer [38] Lintao Zhang, Conor F. Madigan, Matthew W. Moskewicz ja Sharad Malik. Efficient conflict driven learning in boolean satisfiability solver. Proceedings of the International Conference on Computer Aided Design (ICCAD), s IEEE Computer Society [39] Lintao Zhang ja Sharad Malik. The quest for efficient Boolean satisfiability solvers. Automated Deduction CADE- 18, Lecture Notes in Computer Science 2392, s Springer 2002.
Matti Järvisalo. Constraint Reasoning and Optimization group Tietojenkäsittelytieteen laitos Helsingin yliopisto Complexity theory SAT
Moderni näkökulma logiikkaan tekoälytutkimuksessa Matti Järvisalo Constraint Reasoning and Optimization group Tietojenkäsittelytieteen laitos Helsingin yliopisto 29.2.2016 Complexity theory Formal logic
Johdatus logiikkaan I Harjoitus 4 Vihjeet
Johdatus logiikkaan I Harjoitus 4 Vihjeet 1. Etsi lauseen ((p 0 p 1 ) (p 0 p 1 )) kanssa loogisesti ekvivalentti lause joka on (a) disjunktiivisessa normaalimuodossa, (b) konjunktiivisessa normaalimuodossa.
= k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko
238 7.2 Luokka NP Luokka NP on: NP = { NTIME(t) t on polynomi } = k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko P NP Luokan NP ongelmista
T Logiikka tietotekniikassa: perusteet Kevät 2008 Laskuharjoitus 5 (lauselogiikka ) A ( B C) A B C.
T-79.3001 Logiikka tietotekniikassa: perusteet Kevät 2008 Laskuharjoitus 5 (lauselogiikka 6.1 7.2) 27. 29.2.2008 Ratkaisuja demotehtäviin Tehtävä 6.1 a) A (B C) Poistetaan lauseesta ensin implikaatiot.
T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 2 (opetusmoniste, lauselogiikka )
T-79.144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 2 opetusmoniste, lauselogiikka 2.1-3.5) 21 24.9.2004 1. Määrittele lauselogiikan konnektiivit a) aina epätoden lauseen ja implikaation
HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 4 Ratkaisuehdotukset
HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 4 Ratkaisuehdotukset 1. Etsi lauseen (p 0 (p 1 p 0 )) p 1 kanssa loogisesti ekvivalentti lause joka on (a) disjunktiivisessa
Laskennan vaativuus ja NP-täydelliset ongelmat
Laskennan vaativuus ja NP-täydelliset ongelmat TRAK-vierailuluento 13.4.2010 Petteri Kaski Tietojenkäsittelytieteen laitos Tietojenkäsittelytiede Tietojenkäsittelytiede tutkii 1. mitä tehtäviä voidaan
SAT-ongelman rajoitetut muodot
SAT-ongelman rajoitetut muodot olemme juuri osoittaneet että SAT on NP-täydellinen perusidea on nyt osoittaa joukolle kiinnostavia ongelmia A NP että SAT p m A, jolloin kyseiset A myös ovat NP-täydellisiä
T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet )
T-79.144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 12 (opetusmoniste, kappaleet 9.1 9.5) 30.11. 3.12.2004 1. Osoita lauselogiikan avulla oheisten ehtolausekkeiden ekvivalenssi. (a)!(a
Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna
Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna. q 0 x solmuina laskennan mahdolliset tilanteet juurena alkutilanne lehtinä tilanteet joista ei siirtymää,
Algoritmit 1. Luento 1 Ti Timo Männikkö
Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017
Lauselogiikan toteutuvuusongelman ratkaiseminen laskennallisessa gridissä
Lauselogiikan toteutuvuusongelman ratkaiseminen laskennallisessa gridissä Antti E. J. Hyvärinen Teknillinen korkeakoulu Tietojenkäsittelyteorian laboratorio Antti.Hyvarinen@tkk.fi 1 Johdanto Laskennalliset
Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m.
Väite: T (n) (a + b)n 2 + a. Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m. Huomaa että funktion x x 2 + (m 1 x) 2 kuvaaja on ylöspäin aukeava paraabeli, joten funktio saavuttaa suurimman
-Matematiikka on aksiomaattinen järjestelmä. -uusi tieto voidaan perustella edellisten tietojen avulla, tätä kutsutaan todistamiseksi
-Matematiikka on aksiomaattinen järjestelmä -uusi tieto voidaan perustella edellisten tietojen avulla, tätä kutsutaan todistamiseksi -mustavalkoinen: asia joko on tai ei (vrt. humanistiset tieteet, ei
Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä
Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,
Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
Satunnaisalgoritmit Topi Paavilainen Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 1 Johdanto Satunnaisalgoritmit ovat algoritmeja, joiden
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. syyskuuta 2016 Sisällys a https://tim.jyu.fi/view/kurssit/tie/ tiea241/2016/videoiden%20hakemisto Matemaattisen
Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005
Graafin 3-värittyvyyden tutkinta T-79.165 Graafiteoria, projektityö (eksakti algoritmi), kevät 2005 Mikko Malinen, 36474R 29. maaliskuuta, 2005 Tiivistelmä Artikkelissa käydään läpi teoriaa, jonka avulla
T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )
T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen
T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut
T-79.5101 kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut 1. Jokaiselle toteutuvalle lauselogiikan lauseelle voidaan etsiä malli taulumenetelmällä merkitsemällä lause taulun juureen
Lisää pysähtymisaiheisia ongelmia
Lisää pysähtymisaiheisia ongelmia Lause: Pysähtymättömyysongelma H missä H = { w111x w validi koodi, M w ei pysähdy syötteellä x } ei ole rekursiivisesti lueteltava. Todistus: Pysähtymisongelman komplementti
verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari
Tehtävä 9 : 1 Merkitään kirjaimella G tehtäväpaperin kuvan vasemmanpuoleista verkkoa sekä kirjaimella H tehtäväpaperin kuvan oikeanpuoleista verkkoa. Kuvan perusteella voidaan havaita, että verkko G on
Ratkaisu: Yksi tapa nähdä, että kaavat A (B C) ja (A B) (A C) ovat loogisesti ekvivalentit, on tehdä totuustaulu lauseelle
HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 3 Ratkaisuehdotukset 1. Olkoot A, B ja C propositiolauseita. Näytä, että A (B C) (A B) (A C). Ratkaisu: Yksi tapa
Esimerkkejä polynomisista ja ei-polynomisista ongelmista
Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia
LOGIIKKA johdantoa
LOGIIKKA johdantoa LUKUTEORIA JA TO- DISTAMINEN, MAA11 Logiikan tehtävä: Logiikka tutkii ajattelun ja päättelyn sääntöjä ja muodollisten päättelyiden oikeellisuutta, ja pyrkii erottamaan oikeat päättelyt
T Kevät 2005 Logiikka tietotekniikassa: erityiskysymyksiä I Kertausta Ratkaisut
T-79.146 Kevät 2005 Logiikka tietotekniikassa: erityiskysymyksiä I Kertausta Ratkaisut 1. Jokaiselle toteutuvalle lauselogiikan lauseelle voidaan etsiä malli taulumenetelmällä merkitsemällä lause taulun
HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 5 Ratkaisuehdotukset
HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 5 Ratkaisuehdotukset 1. Päättele resoluutiolla seuraavista klausuulijoukoista: (a) {{p 0 }, {p 1 }, { p 0, p 2 },
Ratkaisu: Käytetään induktiota propositiolauseen A rakenteen suhteen. Alkuaskel. A = p i jollain i N. Koska v(p i ) = 1 kaikilla i N, saadaan
HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 2 Ratkaisuehdotukset 1. Olkoon totuusjakauma v sellainen että v(p i ) = 1 kaikilla i N ja A propositiolause, jossa
T Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 2 (lauselogiikka )
T-79.3001 Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 2 (lauselogiikka 2.1 3.4) 5.2. 9.2. 2009 Ratkaisuja demotehtäviin Tehtävä 2.1 Merkitään lausetta φ:llä, ja valitaan atomilauseiden
Nimitys Symboli Merkitys Negaatio ei Konjuktio ja Disjunktio tai Implikaatio jos..., niin... Ekvivalenssi... jos ja vain jos...
2 Logiikkaa Tässä luvussa tutustutaan joihinkin logiikan käsitteisiin ja merkintöihin. Lisätietoja ja tarkennuksia löytyy esimerkiksi Jouko Väänäsen kirjasta Logiikka I 2.1 Loogiset konnektiivit Väitelauseen
Pikapaketti logiikkaan
Pikapaketti logiikkaan Tämän oppimateriaalin tarkoituksena on tutustua pikaisesti matemaattiseen logiikkaan. Oppimateriaalin asioita tarvitaan projektin tekemisessä. Kiinnostuneet voivat lukea lisää myös
Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.
Approbatur 3, demo 1, ratkaisut 1.1. A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat. Käydään kaikki vaihtoehdot läpi. Jos A on rehti, niin B on retku, koska muuten
LAUSELOGIIKKA (1) Sanalliset ilmaisut ovat usein epätarkkoja. On ilmaisuja, joista voidaan sanoa, että ne ovat tosia tai epätosia, mutta eivät molempia. Ilmaisuja, joihin voidaan liittää totuusarvoja (tosi,
Toinen muotoilu. {A 1,A 2,...,A n,b } 0, Edellinen sääntö toisin: Lause 2.5.{A 1,A 2,...,A n } B täsmälleen silloin kun 1 / 13
2 3 Edellinen sääntö toisin: Lause 2.5.{A 1,A 2,...,A n } B täsmälleen silloin kun {A 1,A 2,...,A n,b } 0, jatkoa jatkoa 1 / 13 2 3 Edellinen sääntö toisin: Lause 2.5.{A 1,A 2,...,A n } B täsmälleen silloin
Tehtävä 1. Päättele resoluutiolla seuraavista klausuulijoukoista. a. 1 {p 3 } oletus. 4 {p 1, p 2, p 3 } oletus. 5 { p 1 } (1, 2) 7 (4, 6)
Tehtävä 1 Päättele resoluutiolla seuraavista klausuulijoukoista. a. {{p 0 }, {p 1 }, { p 0, p 2 }, {p 1, p 2, p 3 }, { p 2, p 3 }, {p 3 }}, b. {{ p 0, p 2 }, {p 0, p 1 }, {{ p 1, p 2 }, { p 2 }}, c. {{p
Johnson, A Theoretician's Guide to the Experimental Analysis of Algorithms.
Kokeellinen algoritmiikka (3 ov) syventäviä opintoja edeltävät opinnot: ainakin Tietorakenteet hyödyllisiä opintoja: ASA, Algoritmiohjelmointi suoritus harjoitustyöllä (ei tenttiä) Kirjallisuutta: Johnson,
Rajoittamattomat kieliopit (Unrestricted Grammars)
Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli
Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Roolit Verkostoissa: HITS. Idea.
Roolit Tommi Perälä Department of Mathematics, Hypermedia Laboratory Tampere University of Technology 25.3.2011 J. Kleinberg kehitti -algoritmin (Hypertext Induced Topic Search) hakukoneen osaksi. n taustalla
Todistusmenetelmiä Miksi pitää todistaa?
Todistusmenetelmiä Miksi pitää todistaa? LUKUTEORIA JA TO- DISTAMINEN, MAA11 Todistus on looginen päättelyketju, jossa oletuksista, määritelmistä, aksioomeista sekä aiemmin todistetuista tuloksista lähtien
Mallintarkastus. Mallin generointi. Esimerkki mallin SMV-kuvauksesta. Tila-avaruuden symbolinen esitys (I)
/ Kevät 2005 ML-10 1 Mallintarkastus / Kevät 2005 ML-10 3 Esimerkki mallin SMV-kuvauksesta Onko annettu lause P tosi annetussa mallissa M? Malli M: järjestelmän malli Saadaan järjestelmän kuvauksesta,
V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen
V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen Luento omatoimisen luennan tueksi algoritmiikan tutkimusseminaarissa 23.9.2002. 1 Sisältö Esitellään ongelmat Steiner-puu Kauppamatkustajan
4.3. Matemaattinen induktio
4.3. Matemaattinen induktio Matemaattinen induktio: Deduktion laji Soveltuu, kun ominaisuus on osoitettava olevan voimassa luonnollisilla luvuilla. Suppea muoto P(n) : Ominaisuus, joka joka riippuu luvusta
1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.
Algoritmien DP ja MF vertaileminen tapahtuu suoraviivaisesti kirjoittamalla kummankin leskimääräinen kustannus eksplisiittisesti todennäköisyyksien avulla. Lause T MF ave = 1 + 2 1 i
Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.
Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta
Muita vaativuusluokkia
Muita vaativuusluokkia Käydään lyhyesti läpi tärkeimpiä vaativuusluokkiin liittyviä tuloksia. Monet tunnetuista tuloksista ovat vaikeita todistaa, ja monet kysymykset ovat vielä auki. Lause (Ladner 1975):
13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
Algoritmit 2. Luento 1 Ti Timo Männikkö
Algoritmit 2 Luento 1 Ti 14.3.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin valinta Algoritmin analysointi Algoritmin suoritusaika Peruskertaluokkia Kertaluokkamerkinnät Kertaluokkien ominaisuuksia
A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.
Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =
Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014
Yhtälönratkaisusta Johanna Rämö, Helsingin yliopisto 22. syyskuuta 2014 Yhtälönratkaisu on koulusta tuttua, mutta usein sitä tehdään mekaanisesti sen kummempia ajattelematta. Jotta pystytään ratkaisemaan
KNM:ien toteutumattomuuden todistaminen paikallisesti
TEKNILLINEN KORKEAKOULU Tietotekniikan osasto Tietojenkäsittelyteorian laboratorio T-79.194 Tietojenkäsittelyteorian seminaari KNM:ien toteutumattomuuden todistaminen paikallisesti Pauli Aho Ti III, 51023K
Vaihtoehtoinen tapa määritellä funktioita f : N R on
Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: 1 (Alkuarvot) Ilmoitetaan funktion arvot
T Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )
T-79.144 Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet 2.3-3.4) 2 5.11.2005 1. Olkoon R kaksipaikkainen predikaattisymboli, jonka tulkintana on relaatio R A
Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on
Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: Rekursio Funktio f : N R määritellään yleensä
Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:
Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: S A S B Samaan jäsennyspuuhun päästään myös johdolla S AB Ab ab: S A S B Yhteen jäsennyspuuhun liittyy aina tasan yksi vasen
Lisää kvanttoreista ja päättelyä sekä predikaattilogiikan totuustaulukot 1. Negaation siirto kvanttorin ohi
Lisää kvanttoreista ja päättelyä sekä predikaattilogiikan totuustaulukot 1. Negaation siirto kvanttorin ohi LUKUTEORIA JA TODISTAMINEN, MAA11 Esimerkki a) Lauseen Kaikki johtajat ovat miehiä negaatio ei
1. Primitiivirekursiiviset funktiot muodostetaan kolmesta perusfunktiosta käyttäen. succ(n) = n + 1
Tik-79.148 Kevät 2001 Tietojenkäsittelyteorian perusteet Laskuharjoitus 11 Ratkaisut 1. Primitiivirekursiiviset funktiot muodostetaan kolmesta perusfunktiosta käyttäen kahta yhdistämissääntöä. Perusfunktioita
Taulumenetelmä modaalilogiikalle K
/ Kevät 2004 ML-6 1 Taulumenetelmä modaalilogiikalle On vaikeaa löytää Hilbert-tyylisiä todistuksia: Käytössä Modus Ponens -sääntö: jotta voidaan johtaa Q, täytyy johtaa P ja P Q. Mutta mikä on sopiva
isomeerejä yhteensä yhdeksän kappaletta.
Tehtävä 2 : 1 Esitetään aluksi eräitä havaintoja. Jokaisella n Z + symbolilla H (n) merkitään kaikkien niiden verkkojen joukkoa, jotka vastaavat jotakin tehtävänannon ehtojen mukaista alkaanin hiiliketjua
Loogiset konnektiivit
Loogiset konnektiivit Tavallisimmat loogiset konnektiivit ovat negaatio ei konjunktio ja disjunktio tai implikaatio jos..., niin... ekvivalenssi... jos ja vain jos... Sulkeita ( ) käytetään selkeyden vuoksi
Logiikan kertausta. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.
TIE303 Formaalit menetelmät, kevät 2005 Logiikan kertausta Antti-Juhani Kaijanaho antkaij@mit.jyu.fi Jyväskylän yliopisto Tietotekniikan laitos TIE303 Formaalit mentetelmät, 2005-01-27 p. 1/17 Luento2Luentomoniste
Kierros 10: Laskennallisesti vaativampia ongelmia
Kierros 10: Laskennallisesti vaativampia ongelmia Tommi Junttila Aalto University School of Science Department of Computer Science CS-A1140 Data Structures and Algorithms Autumn 2017 Tommi Junttila (Aalto
Logiikka 1/5 Sisältö ESITIEDOT:
Logiikka 1/5 Sisältö Formaali logiikka Luonnollinen logiikka muodostaa perustan arkielämän päättelyille. Sen käyttö on intuitiivista ja usein tiedostamatonta. Mikäli logiikka halutaan täsmällistää esimerkiksi
NP-täydellisyys. Joonas Järvenpää ja Topi Talvitie. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
NP-täydellisyys Joonas Järvenpää ja Topi Talvitie Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 Sisältö 1 Johdanto 1 2 Ongelman määrittely
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 4 Jatkuvuus Jatkuvan funktion määritelmä Tarkastellaan funktiota f x) jossakin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jatkuva tai epäjatkuva. Jatkuvuuden
b) Määritä myös seuraavat joukot ja anna kussakin tapauksessa lyhyt sanallinen perustelu.
Johdatus yliopistomatematiikkaan Helsingin yliopisto, matematiikan ja tilastotieteen laitos Kurssikoe 23.10.2017 Ohjeita: Vastaa kaikkiin tehtäviin. Ratkaisut voi kirjoittaa samalle konseptiarkille, jos
5. Rajoitelaskenta (Constraint Satisfaction)
5. Rajoitelaskenta (Constraint Satisfaction) Eero Hyvönen Helsingin yliopisto Solution = An assignment of values for the variables satifying the contraints Some CSPs: optimal solution is the best solution
13. Loogiset operaatiot 13.1
13. Loogiset operaatiot 13.1 Sisällys Loogiset operaatiot AND, OR, XOR ja NOT. Operaatioiden ehdollisuus. Bittioperaatiot. Loogiset operaatiot ohjausrakenteissa. Loogiset operaatiot ja laskentajärjestys.
Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja
582206 Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja 1. Tarkastellaan yhteydetöntä kielioppia S SAB ε A aa a B bb ε Esitä merkkijonolle aa kaksi erilaista jäsennyspuuta ja kummallekin siitä vastaava
Algoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 2.5.2017 Timo Männikkö Luento 13 Merkkijonon sovitus Horspoolin algoritmi Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys
11. Javan toistorakenteet 11.1
11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin
Ratkaisu. Ensimmäinen kuten P Q, toinen kuten P Q. Kolmas kuten P (Q R):
Diskreetti matematiikka, sks 2010 Harjoitus 2, ratkaisuista 1. Seuraavassa on kuvattu kolme virtapiiriä, joissa on paristo, sopiva lamppu L ja katkaisimia P, Q, R, joiden läpi virta kulkee (1) tai ei kulje
Algoritmit 1. Luento 2 Ke Timo Männikkö
Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät
TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Roosa Niemi. Riippuvuuslogiikkaa
TAMPEREEN YLIOPISTO Pro gradu -tutkielma Roosa Niemi Riippuvuuslogiikkaa Informaatiotieteiden yksikkö Matematiikka Syyskuu 2011 Tampereen yliopisto Informaatiotieteiden yksikkö ROOSA NIEMI: Riippuvuuslogiikkaa
Luonnollisen päättelyn luotettavuus
Luonnollisen päättelyn luotettavuus Luotettavuuden todistamiseksi määrittelemme täsmällisesti, milloin merkkijono on deduktio. Tässä ei ole sisällytetty päättelysääntöihin iteraatiosääntöä, koska sitä
Jokaisen parittoman kokonaisluvun toinen potenssi on pariton.
3 Todistustekniikkaa 3.1 Väitteen kumoaminen vastaesimerkillä Monissa tilanteissa kohdataan väitteitä, jotka koskevat esimerkiksi kaikkia kokonaislukuja, kaikkia reaalilukuja tai kaikkia joukkoja. Esimerkkejä
Eloisuusanalyysi. TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2009 TIETOTEKNIIKAN LAITOS. Eloisuusanalyysi.
TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. marraskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe E tiistai 1.12. klo 10 koodigenerointi (ilman rekisteriallokaatiota)
Joukot. Georg Cantor ( )
Joukot Matematiikassa on pyrkimys määritellä monimutkaiset asiat täsmällisesti yksinkertaisempien asioiden avulla. Tarvitaan jokin lähtökohta, muutama yleisesti hyväksytty ja ymmärretty käsite, joista
C.C. McGeoch, Toward an experimental method for algorithm simulation. algorithm simulation = algoritmin testaus, experimental algorithmics
C.C. McGeoch, Toward an experimental method for algorithm simulation algorithm simulation = algoritmin testaus, experimental algorithmics testiparametrit, esim. tapauksen koko, erilaiset tietorakennevaihtoehdot,
Luonnollisten lukujen ja kokonaislukujen määritteleminen
Luonnollisten lukujen ja kokonaislukujen määritteleminen LuK-tutkielma Jussi Piippo Matemaattisten tieteiden yksikkö Oulun yliopisto Kevät 2017 Sisältö 1 Johdanto 2 2 Esitietoja 3 2.1 Joukko-opin perusaksioomat...................
Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:
8 Kanta Tässä luvussa tarkastellaan aliavaruuden virittäjävektoreita, jotka muodostavat lineaarisesti riippumattoman jonon. Merkintöjen helpottamiseksi oletetaan luvussa koko ajan, että W on vektoreiden
Johdatus matemaattiseen päättelyyn
Johdatus matemaattiseen päättelyyn Maarit Järvenpää Oulun yliopisto Matemaattisten tieteiden laitos Syyslukukausi 2015 1 Merkintöjä Luonnollisten lukujen joukko N on joukko N = {1, 2, 3,...} ja kokonaislukujen
(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.
Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Tietyn ominaisuuden samuus -relaatio on ekvivalenssi; se on (1) refleksiivinen,
Algoritmit 1. Luento 3 Ti Timo Männikkö
Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien
Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan
Computing Curricula 2001 -raportin vertailu kolmeen suomalaiseen koulutusohjelmaan CC1991:n ja CC2001:n vertailu Tutkintovaatimukset (degree requirements) Kahden ensimmäisen vuoden opinnot Ohjelmistotekniikan
Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus.
Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus. Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden
Kombinatorinen optimointi
Kombinatorinen optimointi Sallittujen pisteiden lukumäärä on äärellinen Periaatteessa ratkaisu löydetään käymällä läpi kaikki pisteet Käytännössä lukumäärä on niin suuri, että tämä on mahdotonta Usein
Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.
Lause: Tyhjyysongelma ei ole osittain ratkeava; ts. kieli ei ole rekursiivisesti lueteltava. L e = { w { 0, 1 } L(M w ) = } Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia,
1. Logiikan ja joukko-opin alkeet
1. Logiikan ja joukko-opin alkeet 1.1. Logiikkaa 1. Osoita totuusarvotauluja käyttäen, että implikaatio p q voidaan kirjoittaa muotoon p q, ts. että propositio (p q) ( p q) on identtisesti tosi. 2. Todista
P? = NP Kysymys ratkaisun keksimisestä ja sen tarkistamisesta
P? = NP Kysymys ratkaisun keksimisestä ja sen tarkistamisesta Juha Nurmonen Matematiikan laitos Helsingin yliopisto Ajatellaanpa esimerkiksi kauppamatkustajan jokapäiväistä ongelmaa: Kauppamatkustajan
Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?
Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä? 2013-2014 Lasse Lensu 2 Ongelma 2: Milloin ongelmat muuttuvat oikeasti hankaliksi? 2013-2014 Lasse Lensu 3 Ongelma 3: Miten hankalia ongelmia
δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.
42 Turingin koneiden laajennuksia 1 oniuraiset koneet Sallitaan, että Turingin koneen nauha koostuu k:sta rinnakkaisesta urasta, jotka kaikki kone lukee ja kirjoittaa yhdessä laskenta-askelessa: Koneen
T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut
T-79.148 Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S tuottama
missä on myös käytetty monisteen kaavaa 12. Pistä perustelut kohdilleen!
Matematiikan johdantokurssi Kertausharjoitustehtävien ratkaisuja/vastauksia/vihjeitä. Osoita todeksi logiikan lauseille seuraava: P Q (P Q). Ratkaisuohje. Väite tarkoittaa, että johdetut lauseet P Q ja
12. Javan toistorakenteet 12.1
12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu
Etsintä verkosta (Searching from the Web) T Datasta tietoon Heikki Mannila, Jouni Seppänen
Etsintä verkosta (Searching from the Web) T-61.2010 Datasta tietoon Heikki Mannila, Jouni Seppänen 12.12.2007 Webin lyhyt historia http://info.cern.ch/proposal.html http://browser.arachne.cz/screen/
Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. joulukuuta 2015 Sisällys TM vs yleiset kieliopit Lause Jokaiselle kielelle A seuraavat ovat yhtäpitävät: 1.
Insinöörimatematiikka A
Insinöörimatematiikka A Mika Hirvensalo mikhirve@utu.fi Matematiikan ja tilastotieteen laitos Turun yliopisto 2018 Mika Hirvensalo mikhirve@utu.fi Luentoruudut 3 1 of 23 Kertausta Määritelmä Predikaattilogiikan
Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }
135 4.3 Algoritmeista Churchin ja Turingin formuloinnit laskennalle syntyivät Hilbertin vuonna 1900 esittämän kymmenennen ongelman seurauksena Oleellisesti Hilbert pyysi algoritmia polynomin kokonaislukujuuren
= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120
Tehtävä 1 : 1 Merkitään jatkossa kirjaimella H kaikkien solmujoukon V sellaisten verkkojen kokoelmaa, joissa on tasan kolme särmää. a) Jokainen verkko G H toteuttaa väitteen E(G) [V]. Toisaalta jokainen
C C. x 2. x 3 x 3. Lause 3SAT p m VC Todistus. Olk. φ = C 1 C 2 C m 3-cnf-kaava, jossa esiintyvät muuttujat. φ toteutuva:
Lause 3SAT p m VC Todistus. Olk. φ = C 1 C C m 3-cnf-kaava, jossa esiintyvät muuttujat x 1,..., x n. Vastaava solmupeiteongelman tapaus G, k muodostetaan seuraavasti. G:ssä on solmu kutakin literaalia