Keerukusteooria elemente

Σχετικά έγγραφα
Lokaalsed ekstreemumid

ITI 0041 Loogika arvutiteaduses Sügis 2005 / Tarmo Uustalu Loeng 4 PREDIKAATLOOGIKA

Kontekstivabad keeled

MATEMAATIKA TÄIENDUSÕPE MÕISTED, VALEMID, NÄITED LEA PALLAS XII OSA

Graafiteooria üldmõisteid. Graaf G ( X, A ) Tippude hulk: X={ x 1, x 2,.., x n } Servade (kaarte) hulk: A={ a 1, a 2,.., a m } Orienteeritud graafid

Kompleksarvu algebraline kuju

Funktsiooni diferentsiaal

HULGATEOORIA ELEMENTE

Geomeetrilised vektorid

Kirjeldab kuidas toimub programmide täitmine Tähendus spetsifitseeritakse olekuteisendussüsteemi abil Loomulik semantika

KOMBINATSIOONID, PERMUTATSIOOND JA BINOOMKORDAJAD

Matemaatiline analüüs I iseseisvad ülesanded

T~oestatavalt korrektne transleerimine

Kontekstivabad keeled

Matemaatiline analüüs I iseseisvad ülesanded

2.2.1 Geomeetriline interpretatsioon

MATEMAATIKA TÄIENDUSÕPE MÕISTED, VALEMID, NÄITED, ÜLESANDED LEA PALLAS VII OSA

Arvuteooria. Diskreetse matemaatika elemendid. Sügis 2008

Punktide jaotus: kodutööd 15, nädalatestid 5, kontrolltööd 20+20, eksam 40, lisapunktid Kontrolltööd sisaldavad ka testile vastamist

Sissejuhatus mehhatroonikasse MHK0120

Formaalsete keelte teooria. Mati Pentus

4.1 Funktsiooni lähendamine. Taylori polünoom.

HAPE-ALUS TASAKAAL. Teema nr 2

Ruumilise jõusüsteemi taandamine lihtsaimale kujule

9. AM ja FM detektorid

Vektorid II. Analüütiline geomeetria 3D Modelleerimise ja visualiseerimise erialale

Eesti koolinoorte XLVIII täppisteaduste olümpiaadi

Diskreetne matemaatika 2016/2017. õ. a. Professor Peeter Puusemp

2. HULGATEOORIA ELEMENTE

Mudeliteooria. Kursust luges: Kalle Kaarli september a. 1 Käesoleva konspekti on L A TEX-kujule viinud Indrek Zolk.

KATEGOORIATEOORIA. Kevad 2010

1 Funktsioon, piirväärtus, pidevus

Planeedi Maa kaardistamine G O R. Planeedi Maa kõige lihtsamaks mudeliks on kera. Joon 1

Algebraliste võrrandite lahenduvus radikaalides. Raido Paas Juhendaja: Mart Abel

Ehitusmehaanika harjutus

Algoritmid ja andmestruktuurid Ülesannete kogu

Suhteline salajasus. Peeter Laud. Tartu Ülikool. peeter TTÜ, p.1/27

KATEGOORIATEOORIA. Kevad 2016

YMM3740 Matemaatilne analüüs II

Krüptoräsid (Hash- funktsioonid) ja autentimine. Kasutatavaimad algoritmid. MD5, SHA-1, SHA-2. Erika Matsak, PhD

3. LOENDAMISE JA KOMBINATOORIKA ELEMENTE

Tuletis ja diferentsiaal

1 MTMM Kõrgem matemaatika, eksamiteemad 2014

Krüptoloogia II: Sissejuhatus teoreetilisse krüptograafiasse. Ahto Buldas

Koduseid ülesandeid IMO 2017 Eesti võistkonna kandidaatidele vol 4 lahendused

ALGEBRA I. Kevad Lektor: Valdis Laan

Jätkusuutlikud isolatsioonilahendused. U-arvude koondtabel. VÄLISSEIN - COLUMBIA TÄISVALATUD ÕÕNESPLOKK 190 mm + SOOJUSTUS + KROHV

Funktsioonide õpetamisest põhikooli matemaatikakursuses

PLASTSED DEFORMATSIOONID

MATEMAATILISEST LOOGIKAST (Lausearvutus)

KORDAMINE RIIGIEKSAMIKS VII teema Vektor. Joone võrrandid.

Avaliku võtmega krüptograafia

Eesti koolinoorte XLIX täppisteaduste olümpiaad

Sisukord. 4 Tõenäosuse piirteoreemid 36

6 Mitme muutuja funktsioonid

1.1. NATURAAL-, TÄIS- JA RATSIONAALARVUD

28. Sirgvoolu, solenoidi ja toroidi magnetinduktsiooni arvutamine koguvooluseaduse abil.

Sisukord. 3 T~oenäosuse piirteoreemid Suurte arvude seadus (Law of Large Numbers)... 32

4 T~oenäosuse piirteoreemid Tsentraalne piirteoreem Suurte arvude seadus (Law of Large Numbers)... 32

Analüütilise geomeetria praktikum II. L. Tuulmets

Matemaatiline analüüs IV praktikumiülesannete kogu a. kevadsemester

1 Kompleksarvud Imaginaararvud Praktiline väärtus Kõige ilusam valem? Kompleksarvu erinevad kujud...

Eesti LIV matemaatikaolümpiaad

KORDAMINE RIIGIEKSAMIKS V teema Vektor. Joone võrrandid.

Deformeeruva keskkonna dünaamika

Eesti koolinoorte XLI täppisteaduste olümpiaad

4.2.5 Täiustatud meetod tuletõkestusvõime määramiseks

; y ) vektori lõpppunkt, siis

1 Reaalarvud ja kompleksarvud Reaalarvud Kompleksarvud Kompleksarvu algebraline kuju... 5

Ülesannete numbrid on võetud ülesannete kogust L.Lepmann jt. Ülesandeid gümnaasiumi matemaatika lõpueksamiks valmistumisel Tln Ül.

1. Paisksalvestuse meetod (hash)

5. TUGEVUSARVUTUSED PAINDELE

2017/2018. õa keemiaolümpiaadi piirkonnavooru lahendused klass

20. SIRGE VÕRRANDID. Joonis 20.1

sin 2 α + cos 2 sin cos cos 2α = cos² - sin² tan 2α =

Kontrollijate kommentaarid a. piirkondliku matemaatikaolümpiaadi

Eesti koolinoorte 43. keemiaolümpiaad

KEEMIAÜLESANNETE LAHENDAMISE LAHTINE VÕISTLUS

Geomeetria põhivara. Jan Willemson. 19. mai 2000.a.

Aritmeetilised ja loogilised operaatorid. Vektor- ja maatriksoperaatorid

Joonis 1. Teist järku aperioodilise lüli ülekandefunktsiooni saab teisendada võnkelüli ülekandefunktsiooni kujul, kui

Skalaar, vektor, tensor

Skalaar, vektor, tensor

Matemaatika VI kursus Tõenäosus, statistika KLASS 11 TUNDIDE ARV 35

T~OENÄOSUSTEOORIA JA MATEMAATILINE STATISTIKA

,millest avaldub 21) 23)

LOOGIKA ELEMENTE MATEMAATIKAS. GEOMEETRIA AKSIOMAATILISEST ÜLESEHITUSEST. Koostanud Hilja Afanasjeva

1 Entroopia ja informatsioon

6.6 Ühtlaselt koormatud plaatide lihtsamad

Ivar Tammeraid itammeraid/ MATEMAATILINE ANALÜÜS I. Elektrooniline õppevahend

Matemaatilised ja trigonomeetrilised funktsioonid

(Raud)betoonkonstruktsioonide üldkursus 33

Sisukord. 2 Programmeerimiskeel C

=217 kj/mol (1) m Ühe mooli glükoosi sünteesil lihtainetest vabaneb footoneid: Δ H f, glükoos n (glükoos) =5,89 mol (1) E (footon)

Mathematica kasutamine

7.7 Hii-ruut test 7.7. HII-RUUT TEST 85

Lambda-arvutus. λ-termide süntaks. Näiteid λ-termidest. Sulgudest hoidumine. E ::= V muutuja (E 1 E 2 ) aplikatsioon (λv.

I. Keemiline termodünaamika. II. Keemiline kineetika ja tasakaal

Programmeerimise eksamiülesannete kogu

MATEMAATILINE ANAL U US II Juhend TT U kaug oppe- uli opilastele

Transcript:

Keerukusteooria elemente Teema 5 Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 1 / 45

Sisukord 1 Algoritmi keerukus 2 Ülesannete keerukusklassid Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 2 / 45

Järgmine punkt 1 Algoritmi keerukus 2 Ülesannete keerukusklassid Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 3 / 45

Keerukus Iga lahenduvat ülesannet saab põhimõtteliselt arvutil lahendada, kuid praktikas ei pruugi see õnnestuda. Probleemiks on vajaminevate ressursside hulk: lahendamiseks kuluv aeg (ajaline keerukus) ja andmete salvestamiseks vajalik mälu (mahuline keerukus). Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 4 / 45

Näide lahendusaja arvutmisest Keel L = {0 n 1 n n 0} on lahenduv. Kui palju aega kulub ühe lindiga Turingi masinal selle keele sõnede aktsepteerimiseks? = mitu takti läbib karakteristlik Turingi masin peatumiseni? Karakteristlik Turingi masin M 1 sisendi w {0,1} korral: 1 skaneerida lindilt sisendsõne w; kui kusagil on sümbol 0 sümbolist 1 paremal, siis mitte aktsepteerida ja peatuda; 2 korrata järgmist punkti seni, kuni lindil on nii nulle kui ühtesid; skaneerida lindil olevat sõne ja kustutada selle algusest üks 0 ja lõpust üks 1; 3 kui lint ei ole tühi (seal on mõningaid sümboleid 0 või sümboleid 1) siis mitte aktsepteerida ja peatuda; vastasel juhul (lint on tühi), siis aktsepteerida ja peatuda. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 5 / 45

Näide lahendusaja arvutmisest (2) Analüüs eeldusel, et sõne w sisaldab m nulli ja n ühte: Samm 1: Kontrollimaks sümbolite järjekorda kulub ülimalt m + n takti; kui sümbolite järjekord pole õige, siis algoritmi taktide arv k < m + n. Samm 2 : Iga tsükli joolsul kustutatakse kaks sümbolit ja kokku on samme (m +n) (m +n 2)+(m +n 4)+ + m n = Kui m n, siis omandab see valem kuju kui m < n, siis kuju (m + n + m n)n 2 (m + n m + n)m 2 = mn; = mn. (m + n m n )min(m,n). 2 Samm 3 : Sõltuvalt lugemis-kirjutamispea asukohast tuleb teha maksimaalselt m n sammu. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 6 / 45

Näide lahendusaja arvutmisest (2) Analüüs eeldusel, et sõne w sisaldab m nulli ja n ühte: Kokkuvõttes: Parimal juhul täidab masin kuni k = n + m takti; tulemus on mitte aktsepteerida. Taktide arv halvimal juhul : Kui m n (s.t. tulemus on mitte aktsepteerida) k = m + n + mn + m n = mn + 2m Kui m = n (s.t. tulemus on aktsepteerida) k = n 2 + 2n Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 6 / 45

Algoritmi keerukus Definitsioon Algoritmi keerukus on funktsioon f : N N, mis seab sisendandmete mahule n vastavusse algoritmi sammude arvu (ajaline keerukus) või kasutatava mälu mahu (mahuline keerukus). Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 7 / 45

Algoritmi keerukus Definitsioon Algoritmi keerukus on funktsioon f : N N, mis seab sisendandmete mahule n vastavusse algoritmi sammude arvu (ajaline keerukus) või kasutatava mälu mahu (mahuline keerukus). Mõisted sammude arv ja kasutatav mälu sõltuvad arvuti tüübist / arvutamise mudelist. Näiteks Turingi masina mudeli korral: ajaline keerukus taktide / konfiguratsioonide arv; mahuline keerukus kasutatud lindipositsioonide arv. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 7 / 45

Algoritmi keerukus Definitsioon Algoritmi keerukus on funktsioon f : N N, mis seab sisendandmete mahule n vastavusse algoritmi sammude arvu (ajaline keerukus) või kasutatava mälu mahu (mahuline keerukus). Keerukus sõltub lisaks algandmete mahule veel andmete struktuurist, järjestusest jt omadustest. See tingib vajaduse rääkida keerukusest halvimal juhul, parimal juhul ja oodataval keskmisel juhul : Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 7 / 45

Algoritmi keerukus Definitsioon Algoritmi keerukus on funktsioon f : N N, mis seab sisendandmete mahule n vastavusse algoritmi sammude arvu (ajaline keerukus) või kasutatava mälu mahu (mahuline keerukus). Keerukus sõltub lisaks algandmete mahule veel andmete struktuurist, järjestusest jt omadustest. See tingib vajaduse rääkida keerukusest halvimal juhul, parimal juhul ja oodataval keskmisel juhul : a) (ajaline) keerukus halvimal juhul W (n) on maksimaalne operatsioonide arv, mida tuleb antud algoritmi korral täita sisendi mahu n puhul; b) (ajaline) keerukus parimal juhul B(n) on minimaalne operatsioonide arv, mida tuleb täita sisendi mahu n korral; c) keskmine (ajaline) keerukus A(n) on keskmine operatsioonide arv, mida tuleb täita sisendi mahu n korral; Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 7 / 45

Algoritmi keerukus Definitsioon Algoritmi keerukus on funktsioon f : N N, mis seab sisendandmete mahule n vastavusse algoritmi sammude arvu (ajaline keerukus) või kasutatava mälu mahu (mahuline keerukus). Keerukus sõltub lisaks algandmete mahule veel andmete struktuurist, järjestusest jt omadustest. See tingib vajaduse rääkida keerukusest halvimal juhul, parimal juhul ja oodataval keskmisel juhul : Algoritmi keskmise keerukuse arvutamine x sisendi omadusi väljendav näitaja; n sisendi maht; p(x,n) sagedus; T (x,n) algoritmi tööaeg; A(n) = p(x,n)t (x,n) või A(n) = p(x,n)t (x,n)dx. x Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 7 / 45

Asümptootilised hinnangud Keerukust esitatavate funktsioonide esitamisel kasutatakse asümptootilist notatsiooni O, mis iseloomustab keerukusfunktsiooni käituimist andmete mahu n piiramatul kasvamisel. Eelmise näite korral W (n) = n 2 + 2n = O(n 2 ) Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 8 / 45

Asümptootilised hinnangud (2) Näide 2. f (n) = O(g(n)) Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 9 / 45

Asümptootilised hinnangud (3) Näide 3. f (n) = O(g(n)) Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 10 / 45

O-notatsioon Definitsioon Olgu f ja g naturaalarvulised funktsioonid. Funktsioon g(n) on funktsiooni f (n) (ülemine) asümptootiline hinnang, ning kirjutatakse f (n) = O(g(n)), parajasti siis, kui leiduvad konstandid c > 0 ja N > 0, nii et iga n > N korral f (n) < c g(n). Definitsioon Funktsioon g(n) on funktsiooni f (n) täpne asümptootiline hinnang, ning kirjutatakse f (n) = Θ(g(n)), kui f (n) = O(g(n)) ja g(n) = O(f (n)). Omadus. Seosest f (n) = Θ(g(n)) järeldub, et f (n) g(n) c ja g(n) f (n) c. Seega 1 f (n) c c. g(n) Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 11 / 45

O-notatsioon Definitsioon Olgu f ja g naturaalarvulised funktsioonid. Funktsioon g(n) on funktsiooni f (n) (ülemine) asümptootiline hinnang, ning kirjutatakse f (n) = O(g(n)), parajasti siis, kui leiduvad konstandid c > 0 ja N > 0, nii et iga n > N korral f (n) < c g(n). Definitsioon Funktsioon g(n) on funktsiooni f (n) täpne asümptootiline hinnang, ning kirjutatakse f (n) = Θ(g(n)), kui f (n) = O(g(n)) ja g(n) = O(f (n)). Omadus. Seosest f (n) = Θ(g(n)) järeldub, et f (n) g(n) c ja g(n) f (n) c. Seega 1 f (n) c c. g(n) Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 11 / 45

O-notatsioon (2) Omadusi: k > 0 korral kf = O(f ), kui f = O(g) ja h = O(g), siis f + h = O(g), kui f = O(g) ja g = O(h), siis f = O(h), n r = O(n s ), kui 0 r s, kui p(n) on d-astme polünoom, siis p(n) = O(n d ), kui f = O(g) ja h = O(r), siis f h = O(g r), n k = O(b n ), kui b > 1 ja k 0, log k n = O(n k ), log b n = O(log d n) iga b,d > 1 korral, n k=1 kr = Θ(n r+1 ). Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 12 / 45

O-notatsioon (2) Näiteid: 617n 3 + 277n 2 + 720n + 7 = O(n 3 ), 2 = O(1), sinx = O(1). Kuidas põhjendada, et 5n 3 + 2n 2 + 22n + 6 = O(n 3 )? Paneme tähele, et iga n > 10 korral 5n 3 + 2n 2 + 22n + 6 < 6n 3. Võrdus on tõene definitsiooni põhjal, kui võtta c = 6 ja N = 10. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 13 / 45

O-notatsioon (2) Näiteid: 617n 3 + 277n 2 + 720n + 7 = O(n 3 ), 2 = O(1), sinx = O(1). Kuidas põhjendada, et 5n 3 + 2n 2 + 22n + 6 = O(n 3 )? Paneme tähele, et iga n > 10 korral 5n 3 + 2n 2 + 22n + 6 < 6n 3. Võrdus on tõene definitsiooni põhjal, kui võtta c = 6 ja N = 10. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 13 / 45

Keerukushinnangute praktiline tähendus Programmi tööaeg Lahendamisaja suhteline suurnemine cf (n) f (25)/f (5) c 1 1 c 2 logn 2 c 3 n 5 c 4 n logn 10 c 5 n 2 25 c 6 n 3 125 c 7 2 n 1 048 576 Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 14 / 45

Keerukushinnangute praktiline tähendus (2) Programmi Suurim ülesanne, Suurim ülesanne, Suurim ülesanne, tööaeg mille lahendamise mille lahendamise Smille lahendamise (mikrosek.) aeg < 1 sek. aeg < 1 päev aeg < 1 aasta n n = 1 000 000 n = 86 400 000 000 n = 31 530 000 000 000 n log 2 n n = 62 746 n = 2 755 147 514 n = 798 160 978 500 n 2 n = 1 000 n = 293 938 n = 5 615 692 n 3 n = 100 n = 4 421 n = 31 593 2 n n = 19 n = 36 n = 44 n! n = 9 n = 14 n = 16 Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 15 / 45

Keerukushinnangute praktiline tähendus (3) Näiteks: a) korrutamine polünomiaalne keerukus: L 2 operatsiooni 10433 16453 =? a) tegurdamine eksponentsiaalne keerukus: 10 L/2 operatsiooni?? = 171654149 Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 16 / 45

Polünomiaalne vs eksponentsiaalne keerukus 1 aasta = 31,5 10 6 s; arvuti, mille kiirus on 10 6 op/s, teeks 31,5 10 12 op/aasta. Kui L = 50, kulub korrutamiseks 0,0025 s ja tegurdamiseks 0,3 10 1 0 aastat. Võrdluseks: suurest paugust arvatakse olevat möödunud 1,4 10 1 0 aastat Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 17 / 45

Ülesande keerukus Ülesande keerukuseks loetakse teda lahendava efektiivseima (=vähima keerukusega e lihtsaima) algoritmi keerukust (ühe lindiga Turingi masina korral). Keele L = {0 n 1 n n 0} keerukus on O(n log 2 n). Karakteristlik Turingi masin M 2 sisendi w {0,1} korral: 1 skaneerida lindilt sisendsõne w; kui kusagil on sümbol 0 sümbolist 1 paremal, siis mitte aktsepteerida ja peatuda; 2 korrata järgmisi punkte seni, kuni lindil on nii nulle kui ühtesid; skaneerida lindil olevat sõne ja kontrollida, kas lindil on paaris-või paaritu arv sümboleid. Kui sümbolite arv on paaritu, siis; mitte aktsepteerida ja peatuda; kustutada iga teine 0 (alates esimesest) ja iga teine 1 (alates esimesest) 3 kui lint on tühi, siis aktsepteerida ja peatuda; vastasel juhul mitte aktsepteerida ja peatuda. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 18 / 45

Ülesande keerukus (2) Algoritmi M 2 korral. 1. ja 3. punkt vajavad halvimal juhul aega O(n) ühikut. Punktis 2 sümbolite kustutamise järel jäävad lindile pooled sümbolid, nii saab seda tsüklit täita log 2 n + 1 korda. Punkti 2 keerukus on seega (log 2 n + 1)O(n) = O(n log 2 n) Kokku on algoritmi M 2 keerukus O(n) + O(n log 2 n) = O(n log 2 n). Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 19 / 45

Algoritmide keerukus ja arvutamise mudel Algoritmi keerukus sõltub arvutamise mudelist. Keele L = {0 n 1 n n 0} keerukus kahe lindiga Turingi masinal on O(n). Karakteristlik Turingi masin M 3 sisendi w {0,1} korral: 1 skaneerida lindilt sisendsõne w; kui kusagil on sümbol 0 sümbolist 1 paremal, siis mitte aktsepteerida ja peatuda; 2 skaneerida lindialgusest nulle kuni esimese 1-ni ja kopeerida nullid teisele lindile; 3 jätkata 1-de skaneerimisega, kustutades iga loetava 1 korral teiselt lindilt ühe nulli. Kui teine lint saab protsessi käigus tühjaks, siis mitte aktsepteerida ja peatuda. 4 kui teisele lindile on jäänud nulle, siis mitte aktsepteerida ja peatuda, vastasel juhul aktsepteerida ja peatuda. Iga samm selles algoritmis on keerukusega O(n), seega on algoritmi M 3 kogukeerukus O(n). Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 20 / 45

Algoritmide keerukus ja arvutamise mudel (2) Teoreem Olgu t(n) > n. Iga mitme lindiga Turingi masinal ajalise keerukusega O(t(n)) töötava programmi jaoks leidub ekvivalentse funktsionaalsusega programm ühe lindiga Turingi masinal, nii et tema ajaline keerukus on O(t 2 (n)). Teoreem Olgu t(n) > n. Iga ühe lindiga mittedeterministlikul Turingi masinal ajalise keerukusega O(t(n)) töötava programmi jaoks leidub ekvivalentse funktsionaalsusega programm ühe lindiga deterministlikul Turingi masinal, nii et tema ajaline keerukus on 2 O(t(n)). Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 21 / 45

Mitme lindiga Turingi masina simulatsioon Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 22 / 45

Mittedeterministliku Turingi masina simulatsioon Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 23 / 45

Järgmine punkt 1 Algoritmi keerukus 2 Ülesannete keerukusklassid Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 24 / 45

Ülesannete keerukusklassid Definitsioon TIME(t(n)) = {L ülesande L lahendamise aeg Turingi masinal W (t) = O(t(n))} Definitsioon Polünomiaalne keerukusklass P on nende ülesannete hulk, mis on lahenduvad ühe lindiga deterministlikul Turingi masinal polünomiaalse ajaga : P = TIME(n k ). k Omadusi: Klass P on invariantne kõigil arvutamise mudelitel, mis on polünomiaalse ajaga modelleeritavad deterministlikul Turingi masinal. Klassi P ülesanded on reaalselt arvutil lahendatavad. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 25 / 45

Ülesannete keerukusklassid Definitsioon TIME(t(n)) = {L ülesande L lahendamise aeg Turingi masinal W (t) = O(t(n))} Definitsioon Polünomiaalne keerukusklass P on nende ülesannete hulk, mis on lahenduvad ühe lindiga deterministlikul Turingi masinal polünomiaalse ajaga : P = TIME(n k ). k Omadusi: Klass P on invariantne kõigil arvutamise mudelitel, mis on polünomiaalse ajaga modelleeritavad deterministlikul Turingi masinal. Klassi P ülesanded on reaalselt arvutil lahendatavad. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 25 / 45

NP keerukus Definitsioon Omadus C on lahenduv (ingl.k.: decidable ) hulgal A, kui leidub arvutatav predikaat { true, kui leidub x A, millel on omadus C, P C (A) = xc(x) = false, vastasel juhul. C A Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 26 / 45

NP keerukus Definitsioon Omadus C on lahenduv (ingl.k.: decidable ) hulgal A, kui leidub arvutatav predikaat { true, kui leidub x A, millel on omadus C, P C (A) = xc(x) = false, vastasel juhul. C A Tähelepanu! Omadus C on lahenduv omadusega C elementide alamhulk ei ole tühi = lahenduv hulk/keel C ei ole tühi hulk. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 26 / 45

NP keerukus Definitsioon Omadus C on lahenduv (ingl.k.: decidable ) hulgal A, kui leidub arvutatav predikaat { true, kui leidub x A, millel on omadus C, P C (A) = xc(x) = false, vastasel juhul. C A Definitsioon Omadus C on tuvastatav (= verifitseeritav; ingl.k.: verifiable) hulgal A, kui leidub arvutatav predikaat V, nii et iga x A korral leidub väärtus s (sertifikaat) ja { true, kui x evib omadust C, V (x,s) = false, vastasel juhul.. Definitsioon Omadus C on NP lahenduv hulgal A, kui ta polünomiaalse ajaga tuvastatav deterministlikul ühe lindiga Turingi masinal (C P). Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 26 / 45

Lahenduvusest ja verifitseeritavusest detailsemalt Definitsioon (2) Keele L verifitseerijaks nimetatakse algoritmi V, kus L = {w V ( w,s ) q accept mingi sõne s korral} tähistab ülesande mõistliku kirjeldust teksti, graafi vms kujul; verifitseerimiseks kuluvat aega mõõdetakse sõne w pikkuse w järgi; polünomiaalne verifitseerija on polünomiaalse keerukusega; keel on polünomiaalselt verifitseeritav, kui kui tema jaoks leidub polünomiaalse keerukusega verifitseerija; s on sertifikaat ehk tõestus. Polünomiaalse verifitseerija korral on s = O( w k ). Definitsioon Keel on NP keerukas, kui ta on polünomiaalselt verifitseeritav. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 27 / 45

Näide: Hamiltoni ahel Definitsioon Hamiltoni ahel on tee graafi tipust s tippu t, mis läbib graafi iga tippu parajast üks kord. s t HAMPATH = { G,s,t graafis G Hamiltoni ahel tipust s tippu t} Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 28 / 45

Mittedeterministlik Turingi masin HAMPATH lahendamiseks Sisend:= G,s,t, olgu graafi G tippude arv m ja tippude märgenditeks naturaalarvud 1,2,...,n. 1 Võtame arvude jada p 1,...,p n, kus 1 p i n 2 Kontrollida, et jada ei sisaldaks kordseid elemente: (i j) (p i p j ). Kui leidub, siis mitte aktsepteerida ja peatuda. 3 Kontrollida, kas p 1 = s ja p n = t. Kui ei, siis mitte aktsepteerida ja peatuda. 4 iga i jaoks vahemikust 1 i n 1 kontrollida, kas graafis G leidub serv (p i,p i+1 ). Kui ei, siis mitte aktsepteerida ja peatuda, vastasel korral aktsepteerida ja peatuda. Selle algoritmi keerukus deterministlikul Turingi masinal on O(2 n ), mittedeterministlikul masinal aga O(n 2 ). See ei ole juhus! Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 29 / 45

Mittedeterministlik Turingi masin HAMPATH lahendamiseks Sisend:= G,s,t, olgu graafi G tippude arv m ja tippude märgenditeks naturaalarvud 1,2,...,n. 1 Võtame arvude jada p 1,...,p n, kus 1 p i n 2 Kontrollida, et jada ei sisaldaks kordseid elemente: (i j) (p i p j ). Kui leidub, siis mitte aktsepteerida ja peatuda. 3 Kontrollida, kas p 1 = s ja p n = t. Kui ei, siis mitte aktsepteerida ja peatuda. 4 iga i jaoks vahemikust 1 i n 1 kontrollida, kas graafis G leidub serv (p i,p i+1 ). Kui ei, siis mitte aktsepteerida ja peatuda, vastasel korral aktsepteerida ja peatuda. Selle algoritmi keerukus deterministlikul Turingi masinal on O(2 n ), mittedeterministlikul masinal aga O(n 2 ). See ei ole juhus! Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 29 / 45

NP keerukus (2) Teoreem Omadus C on NP tuvastatav parajasti siis, kui ta on polünomiaalse ajaga lahenduv kasutades mittedeterministlikku Turingi masinat. Tõestus ( ) Olgu V keele L = {w C(v) = true} polünomiaalne verifitseerija, mille ajaline keerukus on O(n k ). konstrueerime mittedeterministliku Turingi masina N, mis sõne w (pikkusega w = n) korral töötab järgmiselt: Valib mittedeterministlikult sertifikaadi s pikkusega n k ; Rakendab masinat V kirjeldusele w,s ; Kui V aktsepteerib sõnet w keele L elemendina, siis true (vastasel juhul false) ja peatub. Tõestus ( ) Olgu N keelt L lahendav mittedeterministlik TM, konstrueerime polünomiaalse verifitseerija V järgmiselt: Simuleerime masina N tööd sisendi w korral, võttes sertifikaadi s sümboliks tehtud mittedeterministliku valiku kirjelduse; Kui antud haru korral N(w) = true, siis ka V true (vastasel juhul false) ja peatub. m.o.t.t. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 30 / 45

Näide: Hamiltoni ahel Definitsioon Hamiltoni ahel on tee graafi tipust s tippu t, mis läbib graafi iga tippu parajast üks kord. s t HAMPATH = { G,s,t graafis G Hamiltoni ahel tipust s tippu t} Fakte: Ülesanne/keel HAMPATH on polünomiaalselt verifitseeritav (= NP keerukas). Pole teada polünomiaalset algoritmi, mis tuvastaks Hamiltoni ahela olemasolu. Hamiltoni ahel on polünomiaalselt tuvastatav mittedeterministlikul Turingi masinal. Pole teada polünomiaalset algoritmi ülesande HAMPATH verifitseerimiseks. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 31 / 45

Veel NP keerukaid ülesandeid kehtestatavuse ülesanne SAT rändkaupmehe ülesanne tegurdamine graafi kliki leidmise ülesanne tunniplaani ülesanne söödaratsiooni ülesanne Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 32 / 45

NP keerukus (3) Definitsioon { NTIME(t(n)) = L ülesande L lahendamise aeg mittedeterministlikul Turingi masinal B(t) = O(t(n)) } Definitsioon Keerukusklass NP on nende ülesannete hulk, mis on lahenduvad ühe lindiga mittedeterministlikul Turingi masinal polünomiaalse ajaga : NP = NTIME(n k ). k Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 33 / 45

NP keerukate ülesannete näiteid Leida graafis k-klikk CLIQUE = { G, k G on mitteorienteeritud graaf, milles on k-klikk} Leida alamhulk, mille elementide summa on t { SUBSET SUM = S,t S = {x 1,...,x k } alamhulga {y 1,...,y l } S korral i y i = t } Fakte: Ülesanded CLIQUE ja SUBSET SUM kuuluvad klassi conp. Pole teada kas NP = conp või mitte. Parimad teadaolevad algoritmid NP ülesannete lahendamiseks on eksponentsiaalse keerukusega, st NP EXPTIME = TIME(2 nk ) k Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 34 / 45

NP keerukate ülesannete näiteid Leida graafis k-klikk CLIQUE = { G, k G on mitteorienteeritud graaf, milles on k-klikk} Leida alamhulk, mille elementide summa on t { SUBSET SUM = S,t S = {x 1,...,x k } alamhulga {y 1,...,y l } S korral i y i = t } Fakte: Ülesanded CLIQUE ja SUBSET SUM kuuluvad klassi conp. Pole teada kas NP = conp või mitte. Parimad teadaolevad algoritmid NP ülesannete lahendamiseks on eksponentsiaalse keerukusega, st NP EXPTIME = TIME(2 nk ) k Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 34 / 45

P = NP? Ükskahest võimalusest peab olema õige: P NP P = NP Ketestatavuse ülesanne: SAT = {ϕ ϕ on kehtestatav Bool i valem} ϕ = (x y) ( x y z) x Teoreem (Cook & Levin) SAT P parajasti siis, kui P = NP. x y z ϕ 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 35 / 45

P = NP? Ükskahest võimalusest peab olema õige: P NP P = NP Ketestatavuse ülesanne: SAT = {ϕ ϕ on kehtestatav Bool i valem} ϕ = (x y) ( x y z) x Teoreem (Cook & Levin) SAT P parajasti siis, kui P = NP. x y z ϕ 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 35 / 45

Ülesannete redutseeritavus Definitsioon Hulga A Σ lahenduvuse ülesanne on m-redutseeritav hulga B Σ lahenduvuse ülesandeks, kui leidub selline arvutatav funktsioon f : Σ Σ, nii et iga w Σ korral kehtib w A f (w) B. Definitsioon Kui redutseeritavuse funktsioon f P, siis A on polünomiaalselt redutseeritav B-ks. Teoreem Kui ülesanne A on polünomiaalselt redutseeritav B-ks ning B P, siis A P. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 36 / 45

Ülesannete redutseeritavus (2) Teoreem SAT on polünomiaalselt redutseeritav ülesandeks CLIQUE ϕ = (x 1 x 2 x 3 ) ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) Graafis on kõik võimalikud servad, v.a. ühe diskunkti elementide vahel ning vastandliteraalide vahel (näiteks x ja x). Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 37 / 45

Ülesanne SAT on NP täielik Väite tõestuse idee SAT on NP keerukas ülesanne (lihtne kontrollida definitsiooni põhjal); Iga NP keeruka keele L jaoks leidub mittedeterministlik Turingi masin M, mis teeb kindlaks iga sõne w = w 1 w 2...w n jaoks, kas w L või mitte. Konstrueerime sellise masina jaoks lausearvutuse valemi Φ, mis on kehtestatav parajasti siis, kui Turingi masin M aktsepteerib sõne w. Näitame, et teisendus M, w Φ on polünomiaalse keerukusega, s.t. L on polünomiaalselt redutseeritav ülesandeks SAT. Eeldame, et Boole i lülitused simuleerivad Turingi masina tööd. Olgu t : N N, nii et T (n) n ja M Turingi masin, mille sisendtähestik on {0, 1}; tööaeg on t(n) takti. Iga n jaoks leidub Boole i avaldis, mille literaalide arv on O(t 2 (n)). Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 38 / 45

Ülesanne SAT on NP täielik Väite tõestuse idee SAT on NP keerukas ülesanne (lihtne kontrollida definitsiooni põhjal); Iga NP keeruka keele L jaoks leidub mittedeterministlik Turingi masin M, mis teeb kindlaks iga sõne w = w 1 w 2...w n jaoks, kas w L või mitte. Konstrueerime sellise masina jaoks lausearvutuse valemi Φ, mis on kehtestatav parajasti siis, kui Turingi masin M aktsepteerib sõne w. Näitame, et teisendus M, w Φ on polünomiaalse keerukusega, s.t. L on polünomiaalselt redutseeritav ülesandeks SAT. Eeldame, et Boole i lülitused simuleerivad Turingi masina tööd. Olgu t : N N, nii et T (n) n ja M Turingi masin, mille sisendtähestik on {0, 1}; tööaeg on t(n) takti. Iga n jaoks leidub Boole i avaldis, mille literaalide arv on O(t 2 (n)). Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 38 / 45

Ülesanne SAT on NP täielik (2) Iga n jaoks leidub Boole i avaldis, mille literaalide arv on O(t 2 (n)). Kirjutame masina M töö käigus tekkinud konfiguratsioonid C 0 C 1 C t(n) üksteise alla, nii et tekib (t(n) + 1) (t(n) + 1) tabel: Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 39 / 45

Ülesanne SAT on NP täielik (3) Kui konfiguratsioonide vahetamine töötakti jooksul on määratud näiteks üleminekutega δ(q 1,a) = {(q 1,b,R)} ja δ(q 1,b) = {(q 2,c,L),(q 2,a,R)}, on tabelis lubatud järgmised lokaalsed muudatused (2 3 aknad ): Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 40 / 45

Ülesanne SAT on NP täielik (3) Kui konfiguratsioonide vahetamine töötakti jooksul on määratud näiteks üleminekutega δ(q 1,a) = {(q 1,b,R)} ja δ(q 1,b) = {(q 2,c,L),(q 2,a,R)}, on tabelis lubatud järgmised lokaalsed muudatused (2 3 aknad ):... ja mittelubatud aknad : Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 40 / 45

Ülesanne SAT on NP täielik (3) Kui konfiguratsioonide vahetamine töötakti jooksul on määratud näiteks üleminekutega δ(q 1,a) = {(q 1,b,R)} ja δ(q 1,b) = {(q 2,c,L),(q 2,a,R)}, on tabelis lubatud järgmised lokaalsed muudatused (2 3 aknad ): Esitame tabeli loogikavalemina, kus muutuja x i,j,s = 1 parajasti siis, kui tabeli lahtris (i,j) on väärtus s (muidu on x i,j,s = 0. Lubatud aken a 1,a 2,...,a 6, kus a 2 on tabeli lahter (i,j), saab esitada valemiga: (x i,j 1,a1 x i,j,a2 x i,j+1,a3 x i+1,j 1,a4 x i+1,j,a5 x i+1,j+1,a6 ) Olgu Φ move nende valemite konjunktsioon kõigi lubatud akende korral Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 40 / 45

Ülesanne SAT on NP täielik (4) Lisanduvad veel valemid tabeli üksiku lahtri ja rajatingimuste kohta: Kokkuvõttes saame valemi Φ cell Φ start Φ move Φ accept. Tabeli iga lahtri jaoks leidub valemis muutujaid mitte rohkem kui mingi konstant k, seega selle valemi kontrollimine on polünomiaalse keerukusega O(t 2 (n)) Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 41 / 45

NP täielikud ülesanded Definitsioon Ülesanne B on NP täielik, kui ta rahuldab järgmisi tingimusi: B NP; iga NP ülesanne A on polünomiaalselt redutseeritav ülesandeks B. Eelnevas tõestasime sisuliselt järgmise teoreemi: Teoreem (Cook & Levin) SAT P parajasti siis, kui P = NP. 3SAT on kehtestatavuse ülesanne, kus valemi igas disjunktis on täpselt kolm literaali. Teoreem 3SAT on NP-täielik ülesanne. Põhjendus. Viia valem konjunktiivsele normaalkujule ning disjunktid, milles on kolmest erinev arv literaale asendada järgmiselt: (a 1 a 2 ) asemel (a 1 a 2 a 2 ); (a 1 a 2... a 2 ) asemel (a 1 a 2 z 1 ) (z 1 a 3 z 2 ) (z 2 a 4 z 3 )... (z l 3 a l 1 a l ) m.o.t.t. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 42 / 45

NP täielikud ülesanded Definitsioon Ülesanne B on NP täielik, kui ta rahuldab järgmisi tingimusi: B NP; iga NP ülesanne A on polünomiaalselt redutseeritav ülesandeks B. Eelnevas tõestasime sisuliselt järgmise teoreemi: Teoreem (Cook & Levin) SAT P parajasti siis, kui P = NP. 3SAT on kehtestatavuse ülesanne, kus valemi igas disjunktis on täpselt kolm literaali. Teoreem 3SAT on NP-täielik ülesanne. Põhjendus. Viia valem konjunktiivsele normaalkujule ning disjunktid, milles on kolmest erinev arv literaale asendada järgmiselt: (a 1 a 2 ) asemel (a 1 a 2 a 2 ); (a 1 a 2... a 2 ) asemel (a 1 a 2 z 1 ) (z 1 a 3 z 2 ) (z 2 a 4 z 3 )... (z l 3 a l 1 a l ) m.o.t.t. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 42 / 45

NP täielikud ülesanded Definitsioon Ülesanne B on NP täielik, kui ta rahuldab järgmisi tingimusi: B NP; iga NP ülesanne A on polünomiaalselt redutseeritav ülesandeks B. Eelnevas tõestasime sisuliselt järgmise teoreemi: Teoreem (Cook & Levin) SAT P parajasti siis, kui P = NP. 3SAT on kehtestatavuse ülesanne, kus valemi igas disjunktis on täpselt kolm literaali. Teoreem 3SAT on NP-täielik ülesanne. Põhjendus. Viia valem konjunktiivsele normaalkujule ning disjunktid, milles on kolmest erinev arv literaale asendada järgmiselt: (a 1 a 2 ) asemel (a 1 a 2 a 2 ); (a 1 a 2... a 2 ) asemel (a 1 a 2 z 1 ) (z 1 a 3 z 2 ) (z 2 a 4 z 3 )... (z l 3 a l 1 a l ) m.o.t.t. Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 42 / 45

NP täielikud ülesanded Definitsioon Ülesanne B on NP täielik, kui ta rahuldab järgmisi tingimusi: B NP; iga NP ülesanne A on polünomiaalselt redutseeritav ülesandeks B. Teoreem Kui B NP-täielik ja B P, siis P = NP. Teoreem Kui B NP-täielik ja B on polünomiaalselt redutseeritav ülesandeks C, siis C NP-täielik. Veel NP-täielikke ülesanded: HAMPATH rändkaupmehe ülesanne SUBSET SUM Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 43 / 45

NP täielikud ülesanded Definitsioon Ülesanne B on NP täielik, kui ta rahuldab järgmisi tingimusi: B NP; iga NP ülesanne A on polünomiaalselt redutseeritav ülesandeks B. Teoreem Kui B NP-täielik ja B P, siis P = NP. Teoreem Kui B NP-täielik ja B on polünomiaalselt redutseeritav ülesandeks C, siis C NP-täielik. Veel NP-täielikke ülesanded: HAMPATH rändkaupmehe ülesanne SUBSET SUM Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 43 / 45

NP täielikud ülesanded Definitsioon Ülesanne B on NP täielik, kui ta rahuldab järgmisi tingimusi: B NP; iga NP ülesanne A on polünomiaalselt redutseeritav ülesandeks B. Teoreem Kui B NP-täielik ja B P, siis P = NP. Teoreem Kui B NP-täielik ja B on polünomiaalselt redutseeritav ülesandeks C, siis C NP-täielik. Veel NP-täielikke ülesanded: HAMPATH rändkaupmehe ülesanne SUBSET SUM Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 43 / 45

NP täielikud ülesanded Definitsioon Ülesanne B on NP täielik, kui ta rahuldab järgmisi tingimusi: B NP; iga NP ülesanne A on polünomiaalselt redutseeritav ülesandeks B. Teoreem Kui B NP-täielik ja B P, siis P = NP. Teoreem Kui B NP-täielik ja B on polünomiaalselt redutseeritav ülesandeks C, siis C NP-täielik. Veel NP-täielikke ülesanded: HAMPATH rändkaupmehe ülesanne SUBSET SUM Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 43 / 45

Ülesannete keerukusklassid Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 44 / 45

Ülesannete keerukusklassid (Wikipedia) Jaan Penjam, email: jaan@cs.ioc.ee Keerukusteooria elemente 45 / 45