algoritmųteorija - vilniaus universitetasadomas/konspektai/...turinys turinys 1. algoritmosamprata...

32
VILNIAUS UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS PROGRAMŲ SISTEMŲ KATEDRA Algoritmų teorija Paskaitų konspektas Dėstytojas: lekt. dr. Adomas Birštunas Vilnius – 2015

Upload: others

Post on 25-Jan-2020

51 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

VILNIAUS UNIVERSITETASMATEMATIKOS IR INFORMATIKOS FAKULTETAS

PROGRAMŲ SISTEMŲ KATEDRA

Algoritmų teorijaPaskaitų konspektas

Dėstytojas: lekt. dr. Adomas Birštunas

Vilnius – 2015

Page 2: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

TURINYS

Turinys

1. Algoritmo samprata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2. Hilberto tipo teiginių skaičiavimas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1. Dedukcijos teorema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

3. Sekvencinis skaičiavimas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

4. Disjunktų dedukcinė sistema. Rezoliucijų metodas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94.1. Rezoliucijų metodas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

5. Turingo mašinos ir jų variantai. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135.1. Baigtiniai automatai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145.2. Algoritmų sudėtingumas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145.3. Porų numeravimas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.4. Baigtinumo problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

6. λ-skaičiavimas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

7. Primityviai rekursyvios funkcijos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217.1. Dalinai rekursyvios funkcijos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227.2. Rekursyviai skaičiosios aibės . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247.3. Ackermann funkcijos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277.4. Universaliosios funkcijos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

PAKEITIMAI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

1

Page 3: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

1. ALGORITMO SAMPRATA

1 Ap. (Algoritmas). (Intuityvus apibrėžimas.) Veiksmų seka, kuri leidžia spręsti vieną ar kitąuždavinį.

Pagrindinės algoritmo savybės:• žingsnių elementarumas;• diskretumas (algoritmas suskirstytas į atskirus žingsnius);• determinuotumas (atlikus žingsnį aišku, kokį kitą žingsnį reikia atlikti);• masiškumas (skirtas ne vienam uždaviniui, bet jų klasei spręsti).

Algoritmo formalizavimo būdai:

1. sukurti idealizuotą matematinę mašiną (Turingo, RAM);

2. apibrėžti rekursyvių funkcijų klasę (Dalinai rekursyvios funkcijos, λ-skaičiavimas).

1 T. (Church tezė) Algoritmiškai apskaičiuojamų funkcijų aibė sutampa su rekursyviųjų funkcijų kla-se. (Šio teiginio neįmanoma įrodyti.)

2 T. Turingo mašinomis apskaičiuojamų funkcijų aibė sutampa su rekursyviųjų funkcijų klase.

2

Page 4: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

2. HILBERTO TIPO TEIGINIŲ SKAIČIAVIMAS

2 Ap. (Hilberto tipo teiginių skaičiavimas). Skaičiavimas, kuriame yra aksiomų schemos:

1. 1.1. A → (B → A)

1.2. (A → (B → C)) → ((A → B) → (A → C))

2. 2.1. (A ∧B) → A

2.2. (A ∧B) → B

2.3. (A → B) → ((A → C) → (A → (B ∧ C)))

3. 3.1. A → (A ∨B)

3.2. B → (A ∨B)

3.3. (A → C) → ((B → C) → ((A ∨B) → C))

4. 4.1. (A → B) → (¬B → ¬A)

4.2. A → ¬¬A

4.3. ¬¬A → A

ir taisyklė Modus Ponens (MP):

prielaidos { A A → B (MP), čia A, B, C – bet kokios teiginių logikos formulės.išvados { B

Sakysime, jog formulė F yra įvykdoma Hilberto tipo teiginių skaičiavime, jeigu galimaparašyti tokią formulių seką, kurioje kiekviena formulė yra:• arba aksioma,• arba gauta pagal MP iš ankstesniųir kuri (seka) baigiasi formule F .

3 T. Jei formulė yra įrodoma Hilberto tipo teiginių skaičiavime, tai ji yra tapačiai teisinga ir atvirkščiai(jei nėra įrodoma, tai nėra tapačiai teisinga).

Sakysime, jog skaičiavimo aksioma yra nepriklausoma, jei ją išmetus iš skaičiavimo, ji nėraišvedama jame.

Visos Hilberto teiginių skaičiavimo aksiomos yra nepriklausomos.

2.1. Dedukcijos teorema

Sakysime, kad formulė F yra išvedama iš prielaidų A1, A2, A3, . . . , An, jei egzistuoja tokiaformulių seka, kurioje kiekviena formulė yra:

3

Page 5: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

• arba aksioma,• arba prielaida,• arba gauta pagal MP iš ankstesniųir kuri (seka) baigiasi formule F .

Žymėjimas: A1, A2, . . . , An ⊢ F

4 T. (Dedukcijos teorema) Γ ⊢ A → B ⇐⇒ Γ, A ⊢ B, kur A,B – bet kokios formulės, Γ –baigtinė formulių aibė (gali būti tuščia).Proof ▷

BūtinumasJei Γ ⊢ A → B, tada egzistuoja formulių seka:

1. F1

2. F2

· · ·i. Fi

· · ·k. Fk = A → B

k+1. A prielaidak+2. B MP iš k ir (k+1).

kurioje:

Fi =

aksiomaprielaida iš Γgauta pagal MP iš ankstesnių

Γ, A ⊢ B.

PakankamumasJei Γ, A ⊢ B, tai yra tokia formulių seka:

1. F1

2. F2

· · ·i. Fi

· · ·k. Fk = B

4

Page 6: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

kurioje:

Fi =

aksiomaprielaida iš ΓprielaidaAgauta pagal MP iš ankstesnių

Sukonstruokime tokią formulių seką (kuri nebūtinai yra išvedimas):

1. A → F1

2. A → F2

· · ·i. A → Fi

· · ·k. A → Fk = A → B

Dabar kiekvieną A → Fi keičiam tokiu būdu:

1. Jei Fi – aksioma, tada keičiam į:

i.1 Fi → (A → Fi) 1.1 aksiomai.2 F1 aksiomai.3 A → F1 MP iš (i.1) ir (i.2)

2. Jei Fi – prielaida iš Γ, tada keičiam į:

i.1 Fi → (A → Fi) 1.1 aksiomai.2 F1 prielaida iš Γi.3 A → F1 MP iš (i.1) ir (i.2)

3. Jei Fi – prielaida A, tada A → Fi = A → A. Keičiam A → A išvedimu.

4. Tegu A → Fu yra visos išvestos, kur u < i. Fi buvo gauta iš kažkokių Fr ir Fl (kurr, l < i) pritaikius MP. Taigi mes jau turime išvestas A → Fr ir A → Fl. KadangiFl = Fr → Fi (arba Fr = Fl → Fi), tai:

i.1 (A →Fl︷ ︸︸ ︷

(Fr → Fi)) → ((A → Fr) → (A → Fi)) 1.2 aksiomai.2 (A → Fr) → (A → Fi) pagal MPi.3 A → Fi pagal MP

Sakysime, jog skaičiavimas yra pilnas formulių aibės A atžvilgiu, jei formulė ∈ A tada ir tiktada, jei ji yra įrodoma skaičiavimu.

5

Page 7: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

Hilberto tipo teiginių skaičiavimas yra pilnas tapačiai teisingų formulių aibės atžvilgiu.

6

Page 8: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

3. SEKVENCINIS SKAIČIAVIMAS

3 Ap. (Sekvencija). Tokia išraiška F1, F2, . . . , Fn︸ ︷︷ ︸anticedentas

⊢ G1, G2, . . . , Gm︸ ︷︷ ︸sukcedentas

, jei n+m > 0.

Pastaba. Jei atitinkama sekvencija yra išvedama, tada teiginiai po brūkšnio yra teisingi:• ⊢ F – formulė yra tapačiai teisinga.• A1, A2, . . . , An ⊢ F – iš prielaidų seka išvada F.• A1, A2, . . . , An ⊢ B1, B2, . . . , Bm – iš prielaidų seka bent viena iš išvadų B1, . . . , Bm.• F ⊢ – formulė yra tapačiai klaidinga.

4 Ap. (Sekvencinis skaičiavimas G). Skaičiavimas su aksioma Γ′, A,Γ′′ ⊢ ∆′, A,∆′′ ir taisyklėmis(Γ,Γ′,Γ′′,∆,∆′,∆′′ – formulių sekos, A,B – formulės):

(⊢ ¬)Γ′, A,Γ′′ ⊢ ∆′,∆′′

Γ′,Γ′′ ⊢ ∆′,¬A,∆′′

(¬ ⊢)Γ′,Γ′′ ⊢ ∆′, A,∆′′

Γ′,¬A,Γ′′ ⊢ ∆′,∆′′

(⊢ ∨)Γ′,Γ′′ ⊢ ∆′, A,B,∆′′

Γ′,Γ′′ ⊢ ∆′, A ∨B,∆′′

(∨ ⊢)Γ′, A,Γ′′ ⊢ ∆′,∆′′ Γ′, B,Γ′′ ⊢ ∆′,∆′′

Γ′, A ∨B,Γ′′ ⊢ ∆′,∆′′

(⊢ ∧)Γ′,Γ′′ ⊢ ∆′, A,∆′′ Γ′,Γ′′ ⊢ ∆′, B,∆′′

Γ′,Γ′′ ⊢ ∆′, A ∧B,∆′′

(∧ ⊢)Γ′, A,B,Γ′′ ⊢ ∆′,∆′′

Γ′, A ∧B,Γ′′ ⊢ ∆′,∆′′

(⊢→)

Γ′, A,Γ′′ ⊢ ∆′, B,∆′′

Γ′,Γ′′ ⊢ ∆′, A → B,∆′′

(→⊢)Γ′,Γ′′ ⊢ ∆′, A,∆′′ Γ′, B,Γ′′ ⊢ ∆′,∆′′

Γ′, A → B,Γ′′ ⊢ ∆′,∆′′

7

Page 9: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

Sakysime, kad sekvencija F1, . . . , Fn ⊢ G1, . . . , Gm yra išvedame skaičiavime G, jei gali-me sukonstruoti tokį medį (grafą), kurio visose viršūnėse yra sekvencijos, šaknyje yra pradinėsekvencija F1, . . . , Fn ⊢ G1, . . . , Gm ir kiekvienai viršūnei teisinga: jei viršūnės N , kurioje yrasekvencija S, vaike(-uose) N1 (ir N2) yra sekvencija(-os) S1 (ir S2), tai sekvencija S yra gauta išsekvencijos(-jų) S1 (ir S2) pagal kažkurią taisyklę, ir kurio (medžio) visuose lapuose yra aksiomos.

Sakysime, kad taisyklė yra apverčiama, jei teisinga: jei taisyklės išvada išvedama, tai išveda-mos ir visos taisyklės prielaidos.

Visos sekvencinio skaičiavimo G taisyklės yra apverčiamos.Jei išvedant gautas lapas, kuriame nėra nei vienos formulės su kokia nors operacija ir jis

nėra aksioma, tai reiškia, kad:

1. sekvencija yra neišvedama, arba

2. išvedime buvo panaudota neapverčiama taisyklė.

5 T. Formulė F yra tapačiai teisinga tada ir tik tada, kai sekvenciniame skaičiavime G išvedama sek-vencija ⊢ F .

8

Page 10: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

4. DISJUNKTŲ DEDUKCINĖ SISTEMA. REZOLIUCIJŲMETODAS

5 Ap. (Disjunktas). Literų disjunkcija. Litera yra kintamasis arba kintamasis su neigimu.

6 Ap. (Atkirtos taisyklė (AT)).

C ′ ∨ p ∨ C ′′ D′ ∨ ¬p ∨D′′ , kur p – litera, o C ′, C ′′, D′, D′′ – disjunktai.C ′ ∨ C ′′ ∨D′ ∨D′′

7 Ap. (S ⊢ C). Sakysime, kad disjunktas C yra išvedamas iš disjunktų aibės S, jei galima parašytitokią disjunktų seką, kur kiekvienas disjunktas:• arba iš aibės S,• arba gautas pagal atkirtos taisyklę iš jau parašytųir kuri (seka) baigiasi disjunktu C.

8 Ap. (Prieštaringa formulių aibė). Sakysime, kad formulių aibė S yra prieštaringa, jei su betkokia interpretacija ν bent viena formulė iš aibės S yra klaidinga.

Pastaba. Jei S nėra prieštaringa, tai S – įvykdoma.

6 T. Jei iš disjunktų aibės S išvedamas disjunktas C ir disjunktas C nėra įvykdomas (tapačiai klai-dingas), tai S – prieštaringa.

Proof ▷(Prieštaros būdu.)

Tarkime S ⊢ C ir C – nėra įvykdomas, bet aibė S nėra prieštaringa.Jei aibė S nėra prieštaringa, tai yra tokia interpretacija ν, su kuria visi aibės S disjunktai bus

teisingi:∀D (D ∈ S) : ν(D) = 1

Parodysime, jog visi iš aibės S išvedami disjunktai yra teisingi su ta pačia interpretacija ν.Įrodymas matematinės indukcijos metodu, pagal išvedimo ilgį l:

1. Jei l = 1, tai D1 ∈ S =⇒ ν(D1) = 1, nes visi aibės S disjunktai yra teisingi suinterpretacija ν.

2. Tarkime, kad ∀i (i < m), ν(Di) = 1.

3. Panagrinėkime ν(Dm):

• Jei Dm ∈ S, tai ν(Dm) = 1.

9

Page 11: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

• JeiDm ∈ S, taiDm gautas iš kažkokiųDa irDb pagal atkirtos taisyklę. Pagal matematinėsindukcijos prielaidą ν(Da) = ν(Db) = 1, nes a, b < m. Kadangi

Da Db (AT)Dm

tai Da = D′a ∨ p ir Db = D′

b ∨ ¬p, o Dm = D′a ∨D′

b.– Jei ν(p) = 1, tai ν(D′

b) = 1(, nes ν(D′b ∨ ¬p) = 1) =⇒ ν(Dm) = ν(D′

b ∨D′a) = 1.

– Jei ν(¬p) = 1, tai ν(D′a) = 1(, nes ν(D′

a ∨ p) = 1) =⇒ ν(Dm) = ν(D′b ∨D′

a) = 1.

Naudodami matematinę indukciją gavome, kad visi išvedami disjunktai yra teisingi su interpre-tacija ν. Tada ir ν(C) = 1 =⇒ prieštara, nes disjunktas C nėra įvykdomas.

Tuščias disjunktas nėra įvykdomas (yra tapačiai klaidingas).

Žymėjimas: □ – tuščias disjunktas.

Jei iš aibės S ⊢ □, tai aibė S – prieštaringa.

7 T. Jei disjunktų aibė S yra prieštaringa, tai iš jos galima išvesti tuščią disjunktą S ⊢ □.

Proof ▷(Matematinės indukcijos būdu pagal skirtingų kintamųjų kiekį n aibėje S.)

Bazė Jei n = 1, tai aibė S gali būti: {p}, {¬p},︸ ︷︷ ︸nėra prieštaringos

{p,¬p}.

S = {p,¬p} – prieštaringa aibė:

1. p (iš S)2. ¬p (iš S)3. □ (pagal AT iš 1 ir 2)

Jei aibėje S yra vienas kintamasis, tai jai (aibei S) teisinga: jei S – prieštaringa, tai iš josišvedama □.

Prielaida Tarkime, jei aibėje yra n < m skirtingų kintamųjų, tai jei S – prieštaringa, tai S ⊢ □.

Indukcinis žingsnis Tegu disjunktų aibė S turi n = m skirtingų kintamųjų.

Padalinkime aibės S disjunktus į 3 aibes (grupes):

Sp priklauso tie aibės S disjunktai, kurie neturi literos p.

S+p priklauso tie aibės S disjunktai, kurie turi literą p (be neigimo).

S−p priklauso tie aibės S disjunktai, kurie turi literą ¬p (su neigimu).

10

Page 12: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

Tada: S = Sp ∪ S+p ∪ S−

p .

Nagrinėkime aibę S ′ = Sp∪at(S+p , S

−p ), kur at(S+

p , S−p ) – yra disjunktų aibė, kuri yra gauta

pritaikius AT visiems disjunktams iš aibių S+p ir S−

p pagal kintamąjį p. Tegu:

S+p = {C1 ∨ p, C2 ∨ p, . . . , Cv ∨ p} ir

S−p = {D1 ∨ ¬p,D2 ∨ ¬p, . . . , Dr ∨ ¬p}

tada

at(S+p , S

−p ) = {C1 ∨D1, C1 ∨D2, . . . , C1 ∨Dr

C2 ∨D1, C2 ∨D2, . . . , C2 ∨Dr

· · ·

Cv ∨D1, Cv ∨D2, . . . , Cv ∨Dr}

Aibėje S ′ yra < m kintamųjų (nes nėra p), todėl aibei S ′ galioja prielaida: jei S ′ – priešta-ringa =⇒ S ′ ⊢ □. Parodysime, jog S ir S ′ arba abi kartu įvykdomos, arba neįvykdomos:

1. Jei S – įvykdoma, tai ∃ν : ν(D) = 1,∀D (D ∈ S). Taip pat ir visi disjunktai iš aibėsSp yra įvykdomi su ta pačia interpretacija ν, nes Sp ⊂ S. Taip pat visi disjunktai išaibės at(S+

p , S−p ) yra įvykdomi su interpretacija ν, nes jie yra išvesti iš aibės S pritaikius

AT (žr. 6 teiginio įrodymą). Taigi su ν teisingi visi aibės S ′ disjunktai, tai yra S ′ –įvykdoma.

2. Jei S ′ – įvykdoma, tai yra interpretacija ν, su kuria visi aibės S ′ disjunktai yra teisingi.Kadangi aibėje S ′ nėra kintamojo p, tai interpretacija ν jam nepriskiria nei 0, nei 1.Papildome interpretaciją ν apibrėždami ar kintamasis p yra teisingas ar klaidingas, taipkad su interpretacija ν visi aibės S disjunktai būtų teisingi.

2.1. Jei yra toks i (i = 1, 2, . . . , v), su kuriuo ν(Ci) = 0, tada apibrėžiame ν(p) = 1,tada ν(C1 ∨ p) = ν(C2 ∨ p) = · · · = ν(Cv ∨ p) = 1

Kadangi visi aibės at(S+p , S

−p ) disjunktai yra teisingi su interpretacija ν, tai ν(Ci∨

D1) = · · · = ν(Ci ∨ Dr) = 1, bet ν(Ci) = 0, todėl ν(D1) = ν(D2) = · · · =ν(Dr) = 1 =⇒ ν(D1 ∨ ¬p) = · · · = ν(Dr ∨ ¬p) = 1

Gavome, kad su ν visi S+p , S

−p ir Sp yra teisingi =⇒ S – įvykdoma.

2.2. Jei nėra tokio i (i = 1, 2, . . . , v), su kuriuo ν(Ci) = 0, tada ν(C1) = ν(C2) =

· · · = ν(Cv) = 1, tada ir ν(C1 ∨ p) = ν(C2 ∨ p) = · · · = ν(Cv ∨ p) = 1.Apibrėžkime ν(p) = 0, tada ν(D1 ∨¬p) = ν(D2 ∨¬p) = · · · = ν(Dr ∨¬p) = 1.Gavome, kad su ν visi S+

p , S−p ir Sp yra teisingi =⇒ S – įvykdoma.

Gavome, kad jeigu S ′ įvykdoma, tai ir S yra įvykdoma.

Aibėje S ′ yra < m kintamųjų, todėl jei S ′ prieštaringa, tai S ′ ⊢ □ (prielaida). S ′ – priešta-ringa tada ir tik tada, kai S – prieštaringa, todėl jei S – prieštaringa, tai iš S galima išvesti□.

11

Page 13: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

Išvada: S ⊢ □ ⇐⇒ S – prieštaringa.

4.1. Rezoliucijų metodas

Jei norime patikrinti ar iš prielaidų A1, A2, . . . , An seka išvada F :

A1, A2, . . . , An ⊢ F ⇐⇒ aibė B = {A1, A2, . . . , An,¬F} – prieštaringa

⇐⇒ disjunktų aibė (gauta paverčiant B aibės elementus į NKF)

S = {D1, D2, . . . , Dm} – prieštaringa

⇐⇒ S ⊢ □ pagal disjunktų dedukcinę sistemą.

12

Page 14: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

5. TURINGO MAŠINOS IR JŲ VARIANTAI

9 Ap. (Determinuota vienajuostė Turingo mašina). Ketvertas < Σ, Q, F, δ >, kur:

Σ – baigtinė aibė – abėcėlė. (Jei nepaminėta kitaip: Σ = {0, 1, b}.)

Q – baigtinė aibė – būsenų aibė. (Q = {q0, q1, . . . , qn}, kur q0 – pradinė būsena.)

F – galutinių būsenų aibė (F ⊂ Q).

δ – perėjimų funkcija. (δ : Q× Σ → Q× Σ× {K,N,D})

10 Ap. (Apibrėžta TM). Sakysime, jog TM su pradiniais duomenimis X yra apibrėžta, jei pra-džioje į duomenų juostą įrašius žodį X, TM po baigtinio žingsnių kiekio patenka į vieną iš galu-tinių būsenų.

11 Ap. (Turingo mašina apskaičiuoja funkciją). Sakysime, kad TM M apskaičiuoja funkcijąf(x1, x2, . . . , xn), jei egzistuoja toks kodavimas abėcėlės Σ simboliais cod(x1, x2, . . . , xn) = x,kuriam teisinga:

1. jei f(x1, x2, . . . , xn) = y (funkcija apibrėžta), tada TM M su pradiniais duomenimiscod(x1, x2, . . . , xn) yra apibrėžta ir baigus darbą, į dešinę nuo skaitymo galvutės yra žo-dis cod(y);

2. jei f(x1, x2, . . . , xn) – neapibrėžta, tadaTMM su pradiniais duomenimis cod(x1, x2, . . . , xn)

irgi yra neapibrėžta.

12 Ap. (Determinuota m-juostė TM). Ketvertas < Σ, Q, F, δ >, kur:

Σ – baigtinė aibė – abėcėlė.

Q – baigtinė būsenų aibė.

F – galutinių būsenų aibė. (F ⊂ Q)

δ – perėjimų funkcija:

δ : Q× Σ× Σ× · · · × Σ︸ ︷︷ ︸m

Q× Σ× Σ× · · · × Σ︸ ︷︷ ︸m

×{K,D,N} × {K,D,N} × · · · × {K,D,N}︸ ︷︷ ︸m

13 Ap. (Nedeterminuota Turingo mašina). Turingo mašina, kurios perėjimų funkcija yra daugi-areikšmė.

13

Page 15: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

5.1. Baigtiniai automatai

14 Ap. (Baigtinis automatas). Vienajuostė determinuota Turiningomašina, kurios perėjimų funk-cija yra δ(qi, a) = (qj, a,D) ir kuri (TM) baigia darbą tada, kai pasiekia pirmąją tuščią ląstelę.

15 Ap. (Baigtinio automato kalba). Aibė žodžių, su kuriais automatas baigia darbą vienoje išgalutinių būsenų.

8 T. Baigtinė aibė yra baigtinio automato kalba.

9 T. Baigtinio automato kalbos A papildinys A irgi yra baigtinio automato kalba.

10 T. Jei A1 ir A2 yra baigtinio automato kalbos, tai ir A1 ∪ A2, bei A1 ∩ A2 yra baigtinio automatokalbos.

Proof ▷Grafų G1 irG2 Dekarto sandauga yra grafas, kurio viršūnės yra visos įmanomos poros (qi, qj), kurqi yra G1 viršūnė, o qj – G2 viršūnė. Iš viršūnės (qi, qj) eis briauna į viršūnę (qk, ql) su simboliua, jei grafe G1 eina briauna iš viršūnės qi į viršūnę qk su simboliu a ir grafe G2 eina briauna išviršūnės qj į viršūnę ql su simboliu a.

FA∪B – visos viršūnės (qi, qj), kur qi ∈ FA arba qj ∈ FB.FA∩B – visos viršūnės (qi, qj), kur qi ∈ FA ir qj ∈ FB.Baigtinis automatas, kurio perėjimų funkcija vaizduojama grafu G1 × G2, pradinė būsena

yra (q0, q0) ir kurio galutinių būsenų aibė yra FA∪B, turės kalbą A1 ∪ A2. Atitinkamai, baigtinisautomatas, kurio galutinių būsenų aibė yra FA∩B, turės kalbą A1 ∩ A2.

11 T. Baigtinių automatų kalbų

1. konkatenacija := {uv : u ∈ A1, v ∈ A2}, kur A1, A2 – automato kalbos;

2. iteracija := {u1u2 . . . uk : ui ∈ A, i = 1, 2, . . . , k}, kur A – automato kalba;

3. atspindys := {a1a2 . . . an : anan−1 . . . a1 ∈ A}, kur A – automato kalba

irgi yra baigtinių automatų kalbos.

5.2. Algoritmų sudėtingumas

Žymėjimas:

i(v) – žodžio v ilgis;

t(v) – žingsnių kiekis, kurį atlieka TM, jei pradinių duomenų juostoje yra žodis v.

14

Page 16: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

s(v) – panaudotų ląstelių kiekis, kurį sunaudojo TM, jei pradinių duomenų juostoje buvo žodisv.

16 Ap. (Turingo mašinos M sudėtingumas laiko atžvilgiu). Funkcija: TM(n) = max{t(v) :

i(v) = n}.

17 Ap. (Turingo mašinos M sudėtingumas atminties atžvilgiu). Funkcija: SM(n) = max{s(v) :i(v) = n}.

18 Ap. (Turingo mašinos kalba). Žodžių, su kuriais TM baigia darbą galutinėje būsenoje, aibė.

19 Ap. (Problema (aibė) išsprendžiama su TM). Sakysime, jog problema (aibė) A yra išspren-džiama su Turingo mašina, jei yra tokia Turingo mašina, kurios kalba yra A.

Sakysime, kad TM sudėtingumas atminties atžvilgiu yra f(n), jei ∃c (c > 0) : SM(n) =

cf(n),∀n.Sakysime, kad TM sudėtingumas laiko atžvilgiu yra f(n), jei ∃c (c > 0) : TM(n) =

cf(n),∀n.

20 Ap. (Sudėtingumo klasės).

• DTIME(f(n)) – sudėtingumo klasė, kuriai priklauso visi uždaviniai, kuriems egzistuoja juossprendžianti daugiajuostė determinuota TM, kurios sudėtingumas laiko atžvilgiu yra f(n).

• NTIME(f(n)) – sudėtingumo klasė, kuriai priklauso visi uždaviniai, kuriems egzisutoja juossprendžianti daugiajuostė nedeterminuota TM, kurios sudėtingumas laiko atžvilgiu yra f(n).

• DSPACE(f(n)) – sudėtingumo klasė, kuriai priklauso visi uždaviniai, kuriems egzistuojajuos sprendžianti daugiajuostė determinuota TM, kurios sudėtingumas atminties atžvilgiu yraf(n).

• NSPACE(f(n)) – sudėtingumo klasė, kuriai priklauso visi uždaviniai, kuriems egzsituojajuos sprendžianti daugiajuostė nedeterminuota TM, kurios sudėtingumas atminties atžvilgiuyra f(n).

21 Ap. (Sudėtingumo klasės).

• L = DSPACE(logn)• NL = NSPACE(logn)• P = DTIME(nk), kur k – konstanta.• NP = NTIME(nk), kur k – konstanta.• PSPACE = DSPACE(nk), kur k – konstanta.• EXP = DTIME(2n

k), kur k – konstanta.

12 T. L ⊆ NL ⊆ P ⊆ NP ⊆ PSPACE ⊆ EXP ir NL = PSPACE ir P = EXP .

15

Page 17: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

5.3. Porų numeravimas

Σ=0︷ ︸︸ ︷(0; 0)︸ ︷︷ ︸

0

,

Σ=1︷ ︸︸ ︷(0; 1)︸ ︷︷ ︸

1

, (1; 0)︸ ︷︷ ︸2

,

Σ=2︷ ︸︸ ︷(0; 2)︸ ︷︷ ︸

3

, (1; 1)︸ ︷︷ ︸4

, (2; 0)︸ ︷︷ ︸5

, (0; 3)︸ ︷︷ ︸6

, (1; 2)︸ ︷︷ ︸7

, . . .

22 Ap. (Poros numeris Kantaro numeracijoje). Funkcija α2(x, y). Kairiojo nario funkcija yraπ12(n), o dešiniojo π2

2(n), kur n yra porai priskirtas numeris.

13 T. Poros (x; y) numeris:

α2(x, y) =(x+ y)2 + 3x+ y

2

Pastaba.

π12(n) = n−· 1

2

[[√8n+ 1] + 1

2

] [[√8n+ 1]− 1

]23 Ap. (Kantaro funkcijos). αn(x1, x2, . . . , xn) – rinkinio x1, x2, . . . , xn numeris Kantaro nume-racijoje. πi

n(K) – K-ojo rinkinio iš n elementų i-asis narys.

Kantaro funkcijos rekurentinė išraiška:α2(x, y) =(x+y)2+3y+x

2

αn(x1, x2, . . . , xn) = α2(x1, αn−1(x2, x3, . . . , xn))

Pastaba.

>>> def alpha(*numbers):... if len(numbers) == 2:... x, y = numbers... return ((x+y)**2 + 3*x + y)/2... elif len(numbers) > 2:... return alpha(numbers[0], alpha(*numbers[1:]))... else:... raise Exception('Netinkamas argumentų kiekis!')>>> alpha(1,0,1,2)436.0

1 Pvz. Šis pavyzdys iliustruoja kaip į kiekvieną n-argumentų funkciją galima žiūrėti kaip į 1-argumento funkciją, kur argumentas yra atitinkamo rinkinio numeris. Šiuo atveju f(x, y) yra 2argumentų funkcija, o ją atitinkanti vieno argumento funkcija yra g(z) (iš esmės abi jos skaičiuojatą patį).

f(x, y) = 3x+ y

g(z) = 3π12(z) + π2

2(z)

f(x, y) = g(α2(x, y)) = 3x+ y

16

Page 18: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

5.4. Baigtinumo problema

24 Ap. (Standartinė TM). Tokia TM, kuri:

1. vienajuostė determinuota;

2. Σ = {0, 1, b};

3. kai baigia darbą būdama galutinėje būsenoje, juostoje yra tik atsakymas, ir skaitymo galvutėžiūri į pirmąjį iš kairės netuščią simbolį;

4. |F | = 1.

14 T. Kiekvienai TM egzistuoja standartinė TM, kuri skaičiuoja tą pačią funkciją.

15 T. Standartinių TM aibė yra skaiti.

Pastaba. Visas standartines TM galima sunumeruoti:

Turingo mašina: T0, T1, T2, T3, T4, . . .

Jos skaičiuojama funkcija: φ0(x), φ1(x), φ2(x), φ3(x), φ4(x), . . .

25 Ap. (Baigtinumo problema). Ar yra toks algoritmas, kuris N skaičių porai (m,n) pasakytų, arTM su numeriu m (Tm) ir pradiniais duomenimis n baigia darbą, ar ne.

16 T. Baigtinumo problema neišsprendžiama.Proof ▷(Prieštaros būdu.)

Tarkime, jog egzistuoja toks algoritmas, kuris porai (m;n) pasako, ar TM Tm su duomenimisn yra apibrėžta, ar ne. Tada egzistuoja tokia algoritmiškai apskaičiuojama funkcija:

g(α2(x, y)) =

1, jei φx(y) < ∞ (apibrėžta),

0, jei φx(y) = ∞ (neapibrėžta).

Tada yra TM, kuri apskaičiuoja funkciją g(z). Tada yra TM, kuri apskaičiuoja funkciją:

f(x) =

1, jei g(α2(x, x)) = 0,

∞, jei g(α2(x, x)) = 1.

TM skaičiuojančią g(z) pažymėkimeM1.

M1 :Q1 – būsenų aibė;

F1 – galutinių būsenų aibė.

Sukonstruokime TM M2 skaičiuojančią f(x):KaiM1 baigia darbą, tai galimi du variantai:

17

Page 19: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

1. TM yra galutinėje būsenoje qF ∈ F1 ir juostoje yra vienintelis simbolis 1, į kurį ir žiūriskaitymo galvutė.

2. TM yra galutinėje būsenoje qF ∈ F1 ir juostoje yra vienintelis simbolis 0, į kurį ir žiūriskaitymo galvutė.

TM M2 tokia pati, kaip irM1, tik Q2 = Q1 ∪ {q∗}, F2 = {q∗}, qF – nėra galutinė būsena ir:

δ(qF , 0) = (q∗, 1, N) → f(x) – apibrėžta;

δ(qF , 1) = (qF , 1, N) → f(x) – neapibrėžta.

Kadangi yra TM (M2), kuri apskaičiuoja funkciją f(x), tai yra toks numeris l, kad Tl = M2.Tl apskaičiuoja φl(x), todėl f(x) = φl(x). Panagrinėkime φl(l):

1. Jei φl(l) < ∞, tai g(α2(l, l)) = 1 =⇒ f(l) = ∞ =⇒ φl(l) = ∞;

2. Jei φl(l) = ∞, tai g(α2(l, l)) = 0 =⇒ f(l) = 1 =⇒ φl(l) < ∞.

Gauname prieštarą, todėl neegzistuoja toks algoritmas, kuris porai (m;n) pasakytų, ar TM Tm supradiniais duomenis n baigia darbą, ar ne.

26 Ap. (Aibės charakteringoji funkcija). Aibės A charakteringoji funkcija yra:

χA(x) =

1, jei x ∈ A

0, jei x ∈ A

27 Ap. (Rekursyvi aibė). Sakysime, kad aibė yra rekursyvi, jei jos charakteringoji funkcija yravisur apibrėžta rekursyvi funkcija.

Pastaba. (Rice teorema.) Jei aibė X yra vieno argumento dalinai rekursyvių funkcijų aibė irnesutampa nei su ∅, nei su visa vieno argumento dalinai rekursyvių funkcijų aibe (yra poaibis),tai aibė A = {x : φx ∈ X} nėra rekursyvi.

2 Pvz. X – funkcijų, kurios visada grąžina 1 aibė: X = {f(x) = 1}. Tada A = {x : φx ∈ X}nėra rekursyvi =⇒ nėra algoritmo, kuris pasakytu ar x ∈ A.

18

Page 20: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

6. λ-SKAIČIAVIMAS

28 Ap. (λ–skaičiavimo termas).

• Jei u – kintamasis, tai u yra termas.• Jei E1 ir E2 yra termai, tai ir (E1E2) yra termas.• Jei E yra termas, o x – kintamasis, tai ir λx.E irgi yra termas.

Pastaba. Kintamuosius žymime mažosiomis raidėmis.

Pastaba. Skliaustai būtini: (xy)z = x(yz)!

Kintamojo įeitis terme yra jo pasitaikymas jame.

3 Pvz. Jei turime termą:

(λx.((yz)(λz.((zx)y)))(x(λy.(xy)))),

tai:(λ x︸︷︷︸

1

.((yz)(λz.((z x︸︷︷︸2

)y)))( x︸︷︷︸3

(λy.( x︸︷︷︸4

y)))),

sunumeruotos yra kintamojo x įeitys.

Kintamojo įeitis x yra suvaržyta, jei patenka į λx. veikimo sritį. Kitaip x įeitis yra laisva.

Pastaba. λx.E terme λx. veikimo sritis yra termas E.

Pastaba. λx.xu = (λx.x)u = λx.(xu)

Termai E1 ir E2 yra α-ekvivalentūs, jei E2 yra gautas iš E1, jame visas laisvas kažkuriokintamojo x įeitis pakeitus nauju kintamuoju.

Termas λx.E1 yra α-ekvivalentus termui λy.E2, jei termas E2 yra gautas iš termo E1, jamevisas laisvas x įeitis pakeitus nauju kintamuoju y.

29 Ap. (Redeksas ir jo santrauka). Termas pavidalo (λx.E)Y , kur E ir Y yra termai, vadina-mas redeksu. Redekso (λx.E)Y santrauka yra termas E[Y /x] – termas E, kuriame visos laisvoskintamojo x įeitys yra pakeistos termu Y .

4 Pvz. Redekso (λx. (ux))︸ ︷︷ ︸E

(zz)︸︷︷︸Y

santrauka yra termas u(zz).

5 Pvz. Redekso (λx.((ux)(λx.(xy))))(zz) santrauka yra termas (u(zz))(λx.(xy)).

30 Ap. (β-redukcija). λ-skaičiavimo termo E β-redukcija vadinama termų seka E1 ▷ E2 ▷ E3 ▷

E4 ▷ · · · ▷ Ek▷, kur E1 = E, ir Ei+1 yra gautas iš Ei jame pirmąjį iš kairės redeksą pakeitus josantrauka.

19

Page 21: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

31 Ap. (Normalinis termas). Termas, kuriame nėra redeksų. Termas yra nenormalizuojamas,jeigu jo β-redukcija yra begalinė.

32 Ap.. λ-skaičiavimo loginės konstantos yra λx.λy.y︸ ︷︷ ︸klaidinga

ir λx.λy.x︸ ︷︷ ︸teisinga

.

Žymėjimas: λx.λy.y = 0 ir λx.λy.x = 1.

33 Ap.. λ-skaičiavimo natūrinis skaičius k yra λf.λx.(fkx), kur fkx = f(f(. . . f(f︸ ︷︷ ︸k kartų

x) . . . )).

Žymėjimas: Skaičius 2 žymimas 2 = λf.λx(f 2x) = λf.λx(f(fx))

6 Pvz. (x1)1 = (x(λx.λy.x))(λf.λx.(fx))

34 Ap.. Sakysime, kad termas E apibrėžia dalinę funkciją f(x1, x2, . . . , xn), jei:• jei f(K1, K2, . . . , Kn) = K, tai termas (. . . ((EK1)K2) . . . )Kn redukuojamas (β-redukcijoje)į termą K;

• jei f(K1, K2, . . . , Kn) = ∞, tai termas (. . . ((EK1)K2) . . . )Kn yra neredukuojamas.

17 T. Kiekvienai algoritmiškai apskaičiuojamai funkcijai egzistuoja ją apibrėžiantis termas.

20

Page 22: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

7. PRIMITYVIAI REKURSYVIOS FUNKCIJOS

Kompozicijos operatorius: sakysime, kad funkcija f(x1, x2, . . . , xn) yra gauta iš funkci-jų gi(x1, x2, . . . , xn) (i = 1, 2, 3, . . . ,m) ir funkcijos h(x1, x2, . . . , xm), jei f(x1, x2, . . . , xn) =

h(g1(x1, . . . , xn), . . . , gm(x1, . . . , xn)).

35 Ap.. Sakysime, jog funkcija f(x1, x2, . . . , xn) yra gauta pagal primityviosios rekursijos ope-ratorių iš g(x1, x2, . . . , xn−1) ir h(x1, x2, . . . , xn, xn+1), jei teisinga:

f(x1, x2, . . . , xn−1, 0) = g(x1, x2, . . . , xn−1) ir

f(x1, x2, . . . , xn−1, y + 1) = h(x1, x2, . . . , xn−1, y, f(x1, x2, . . . , xn−1, y))

36 Ap. (Primityviai rekursyvių funkcijų aibė (PR)). Primityviai rekursyvių funkcijų aibė sutampasu aibe, kuriai priklauso bazinės funkcijos: 0, s(x) = x+ 1, prim(x1, x2, . . . , xm) = xi ir kuri yrauždara kompozicijos ir primityviosios rekursijos operatorių atžvilgiu.

Visos PR funkcijos yra apibrėžtos su visais natūraliaisiais skaičiais.Sakysime, kad N skaičių poaibis yra primityviai rekursyvus, jei jo charakteringoji funkcija

priklauso PR.

18 T. Kantaro funkcijos αn(x1, x2, . . . , xn) ir πin(K) yra primityviai rekursyvios.

19 T. Jei funkcija g(x1, x2, . . . , xn) ∈ PR, tai ir funkcija f(x1, x2, . . . , xn) =∑xn

i=0 g(x1, x2, . . . , xn) ∈PR

20 T. Jei fi(x1, x2, . . . , xn) ∈ PR irαj(x1, x2, . . . , xn) ∈ PR (i = 1, 2, . . . , s, s+1; j = 1, 2, . . . , s),tada ir funkcija:

h(x1, x2, . . . , xn) =

f1(x1, x2, . . . , xn), jei α1(x1, x2, . . . , xn) = 0,

f2(x1, x2, . . . , xn), jei α2(x1, x2, . . . , xn) = 0,

· · ·

fs(x1, x2, . . . , xn), jei αs(x1, x2, . . . , xn) = 0,

fs+1(x1, x2, . . . , xn), kitu atveju

yra primityviai rekursyvi.

Pastaba. Su bet kuriuo rinkiniu (x1, x2, . . . , xn) ne daugiau nei viena αi(x1, x2, . . . , xn) (i =

1, 2, . . . , s) gali būti lygi 0.

37 Ap. (Iteracijos operatorius). Sakysime, kad funkcija f(x) yra gauta pagal iteracijos operatoriųiš funkcijos g(x), jei teisinga: f(0) = 0

f(y + 1) = g(f(y))

21

Page 23: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

21 T. Visų vieno argumento PR funkcijų aibė sutampa su aibe, kuriai priklauso funkcijos s(x) = x+1,q(x) = x−· [

√x]

2 ir kuri yra uždara kompozicijos, sudėties ir iteracijos operatorių atžvilgiu.

7.1. Dalinai rekursyvios funkcijos

38 Ap. (Minimizacijos operatorius). Sakysime, kad funkcija f(x1, x2, . . . , xn) gauta pagal mini-mizacijos operatorių iš funkcijos g(x1, x2, . . . , xn), jei:

f(x1, x2, . . . , xn) = µy(g(x1, x2, . . . , xn−1, y) = xn),

tai yra pati mažiausia natūrali y reikšmė, kuriai teisinga g(x1, x2, . . . , xn−1, y) = xn.

39 Ap. (Dalinai rekursyvių funkcijų aibė (DR)). Dalinai rekursyvių funkcijų aibė sutampa suaibe, kuriai priklauso bazinės funkcijos 0, s(x) = x + 1, prin(x1, x2, . . . , xn) = xi ir kuri yrauždara kompozicijos, primityviosios rekursijos ir minimizacijos operatorių atžvilgiu.

Pastaba. Jei f(x1, x2, . . . , xn) = µy(g(x1, x2, . . . , xn−1, y) = xn), tai f(x1, x2, . . . , xn) reikšmėapskaičiuojama remiantis tokiu algoritmu:

for (y = 0; g(x1, x2, . . . , xn−1, y) = xn; y++);

f(x1, x2, . . . , xn) =

y, jei pavyko rasti y arba

∞, jei y neegzistuoja, arba skaičiuojant buvo gauta neapibrėžtis.

40 Ap. (Bendrųjų rekursyviųjų funkcijų aibė (BR)). Aibė sudaryta iš visų DR funkcijų, kuriosyra apibrėžtos su visais natūraliaisiais argumentais.

22 T. PR ⊆ BR ⊆ DR

Pastaba. Žinomos primityviai rekursyvios funkcijos:• bazinės funkcijos:

0,

s(x) = x+ 1,

prin(x1, x2, . . . , xn) = xi;

• vieno argumento PR funkcijų bazinės funkcijos:

s(x) = x+ 1,

q(x) = x−·[√

x]2;

22

Page 24: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

• kitos žinomos PR funkcijos:

sg(x) =

1, jei x > 0

0, jei x = 0,

sg(x) =

0, jei x > 0

1, jei x = 0,

x−· y =

x− y, jei x > y

0, kitu atveju,

x+ y,

x · y,

|x− y|,

[x/y].

Pastaba. Žinomos dalinai rekursyvios funkcijos:• dalinis skirtumas:

x− y =

x− y, jei x ≥ y

∞, kitu atveju,

• dalinė dalyba:

x/y =

x/y, jei x dalosi iš y

∞, kitu atveju,

• dalinė šaknis:√x =

√x, jei x yra natūralaus skaičiaus kvadratas

∞, kitu atveju.

7 Pvz. Tarkime, kad turime funkciją

g(x, y, z) = (s(z)−· x) · sg(y−· z).

Iš jos, pritaikę minimizacijos operatorių, galime gauti funkciją:

f ′(x1, x2, x3) = µy(g(x1, x2, y) = x3)

= µy((s(y)−· x1) · sg(x2−· y) = x3).

Dabar galime apibrėžti naują funkciją f(x, y):

f(x, y) = f ′(x, y, x)

= µz((s(z)−· x) · sg(y−· z) = x).

23

Page 25: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

Apskaičiuokime f(1, 3):

1. Įsistatome reikšmes:

f(1, 3) = µz((s(z)−· 1) · sg(3−· z) = 1).

2. Tikriname z = 0:

(s(0)−· 1) · sg(3−· 0) = (1−· 1) · sg(3) = 0 · 1 = 0 = 1

3. Tikriname z = 1:

(s(1)−· 1) · sg(3−· 1) = (2−· 1) · sg(2) = 1 · 1 = 1

Taigi gavome, kad f(1, 3) = 1.

7.2. Rekursyviai skaičiosios aibės

41 Ap. (Rekursyviai skaiti aibė). Aibė A yra rekursyviai skaiti, jei sutampa su kažkurios DRfunkcijos apibrėžimo sritimi.

42 Ap. (Rekursyviai skaiti aibė). Netuščia aibė A yra rekursyviai skaiti, jei sutampa su kažkuriosPR funkcijos reikšmių sritimi.

43 Ap. (Rekursyviai skaiti aibė). Aibė A yra rekursyviai skaiti, jei ∃ tokia PR funkcija f(a, x),kad lygtis f(a, x) = 0 turi sprendinį tada ir tik tada, kai a ∈ A.

23 T. Visi trys (41, 42 ir 43) rekursyvios aibės apibrėžimai yra ekvivalentūs netuščios aibės atžvilgiu.Proof ▷(Dalinis 42 =⇒ 41, 42 =⇒ 43 ir 43 =⇒ 42)

(42 =⇒ 41) Tarkime, kad aibė A yra rekursyviai skaiti, nes ∃PR funkcija h(x) tokia, kad A

sutampa su h reikšmių sritimi (42 ap.):

A = {h(0), h(1), h(2), h(3), . . . } .

Imkime funkciją f(x) = µy(h(y) = x). Ji yra dalinai rekursyvi, nes yra gauta pagal mini-mizacijos operatorių iš dalinai rekursyvios funkcijos h(∈ PR ⊆ DR).

• Jei a ∈ A, tai ∃i(i ∈ N), kad h(i) = a =⇒ f(a) = µy(h(y) = a) < ∞ – apibrėžta.• Jei a ∈ A, tai ∀j(j ∈ N) : h(j) = a =⇒ f(a) = µy(h(y) = a) = ∞ – neapibrėžta.

Aibė A sutampa su funkcijos f(x) apibrėžimo sritimi ir f(x) ∈ DR =⇒ 41 ap.

24

Page 26: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

(42 =⇒ 43) Tarkime, jog aibė A sutampa su PR funkcijos h(x) reikšmių sritimi (42 ap.). Taiyra:

A = {h(0), h(1), h(2), h(3), . . . } .

Imkime funkciją f(a, x) = |h(x) − a|. f(a, x) ∈ PR, nes gauta iš PR funkcijų pritaikiuskompozicijos operatorių. Lygtis f(a, x) = 0 yra |h(x)− a| = 0.

• Jei a ∈ A, tai ∃ toks i, kad h(i) = a =⇒ |h(x)− a| = 0, turi sprendinį x = i.• Jei a ∈ A, tai ∀j(j ∈ N) : h(j) = a =⇒ |h(x)− a| > 0 – lygtis neturi sprendinių.

Lygtis f(a, x) = 0, turi sprendinį tada ir tik tada, kai a ∈ A =⇒ 43 ap.

(43 =⇒ 42) Tarkime, jog a ∈ A tada ir tik tada, kai lygtis f(a, x) = 0, kur f(a, x) ∈ PR, turisprendinį. Imkime funkciją

h(t) = π12(t) · sg(f(π1

2(t), π22(t))) + d · sg(f(π1

2(t), π22(t))),

kur d – bet koks aibės A elementas. h(t) ∈ PR, nes gauta iš žinomų PR funkcijų pritaikiuskompozicijos operatorių. Parodysime, kad h(t) reikšmių sritis sutampa su aibe A:

• Jei a ∈ A, tai lygtis f(a, x) = 0 turi sprendinį x = u. Pažymėkime t = α2(a, u). Tada

h(t) = h(α2(a, u))

= a · sg(f(a, u)︸ ︷︷ ︸=0

) + d · sg(f(a, u)︸ ︷︷ ︸=0

)

= a · sg(0) + d · sg(0)

= a

• Jei t = α2(a, v), kad f(a, v) = 0, tai

h(t) = h(α2(a, v))

= a · sg(f(a, v)︸ ︷︷ ︸>0

) + d · sg(f(a, v)︸ ︷︷ ︸>0

)

= a · 0 + d · 1

= d

Gavome, kad h(t) su bet kokiu t įgyja reikšmę ∈ A ir h(t) įgyja visas reikšmes iš aibės A.Kadangi h(t) reikšmių sritis yra aibė A ir h(t) ∈ PR, tai gavome 42 apibrėžimą.

Pastaba. Rekursyvių ir rekursyviai skaičių aibių skirtumas:

25

Page 27: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

• A – rekursyvi, jei

∃χA(a) =

1, jei a ∈ A

0, jei a ∈ A∈ BR

(Funkcija visur apibrėžta.)• A – rekursyviai skaiti, jei

∃χA(a) =

1, jei a ∈ A

∞, jei a ∈ A∈ DR

(Funkcija ne visur apibrėžta.)

Rekursyviai skaičių aibių savybės:

1. Rekursyvi aibė A yra ir rekursyviai skaiti:

∃ χA(a) =

1, jei a ∈ A

0, jei a ∈ A,

tada aibė A sutampa su DR funkcijos f(a) = χA(a) − 1 apibrėžimo sritimi. Pagal 41apibrėžimą A yra rekursyviai skaiti.

2. Baigtinė aibė yra ir rekursyvi ir rekursyviai skaiti:

A = {a1, a2, . . . , an} – baigtinė aibė.

Tada, jos charakteringoji funkcija:

χA(a) = sg(|a− a1|) + sg(|a− a2|) + . . .+ sg(|a− an|).

24 T. Jeigu aibė A yra rekursyviai skaiti, bet A nėra rekursyvi, tai jos papildinys A nėra nei rekursyvi,nei rekursyviai skaiti aibė.Proof ▷

1. Tarkime, kad A yra rekursyviai skaiti.

2. Tada pagal 42 apibrėžimą yra PR funkcija g(x), tokia kad A = {g(0), g(1), g(2), . . . }

3. Kadangi aibė A yra rekursyviai skaiti (duota), tai pagal 42 apibrėžimą yra PR funkcija f(x)tokia, kad A = {f(0), f(1), f(2), . . . }.

4. Panagrinėkime funkciją h(x) = µz(|f(z) − x| · |g(z) − x| = 0). h(x) yra BR, nes gautaiš PR funkcijų taikant kompozicijos, bei minimizacijos operatorius ir yra apibrėžta su visaisx (x ∈ N), nes A ∪ A = N.

26

Page 28: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

• jei x ∈ A, tada ∃z : f(z) = x =⇒ |f(z)− x| = 0,• jei x ∈ A =⇒ x ∈ A, tada ∃z : g(z) = x =⇒ |g(z)− x| = 0.

5. • Jei x ∈ A, tada h(x) = z, kad f(z) = x.• Jei x ∈ A, tada h(x) = z, kad g(z) = x ir f(z) = x.

6. Tada aibės A charakteringoji funkcija būtų:

χA(x) = sg(|f(h(x))− x|)

=

sg(|f(z)− x|), kur f(z) = x, jei x ∈ A

sg(|f(z)− x|), kur f(z) = x, jei x ∈ A,

=

sg(0), jei x ∈ A

sg(y + 1), jei x ∈ A,

Čia su y + 1 norėta pasakyti, kad tai kažkas > 0. Taip ir bus, jei y yra bet koks natūralusisskaičius.

=

1, jei x ∈ A

0, jei x ∈ A.

7. χA(x) ∈ BR, nes gauta iš BR ir PR funkcijų pritaikius kompozicijos operatorių.

8. Kadangi χA(x) ∈ BR, tai A – rekursyvi =⇒ prieštara =⇒ A – nėra rekursyviai skaitiaibė.

7.3. Ackermann funkcijos.

Ackerman funkcijos yra:

B0(a, x) = a+ x

B1(a, x) = a · x

B2(a, x) = ax

Bn(a, x+ 1) = Bn−1(a,Bn(a, x))

Bn(a, 0) = 1, kai n ≥ 2

Jos yra visur apibrėžtos ir algoritmiškai apskaičiuojamos funkcijos, todėl yra bendrai rekursyviosfunkcijos.

27

Page 29: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

Ackermann funkcijos variantas, kai a = 2, yra funkcija A(n, x) = Bn(2, x). Jam teisingoslygybės ir nelygybės:

1. A(n+ 1, x+ 1) = Bn+1(2, x+ 1) = Bn(2, Bn+1(2, x)) = A(n,A(n+ 1, x))

2. A(0, x) = x+ 2

3. A(1, 0) = 0

4. A(n, 0) = 1, kai n ≥ 2

5. A(n, x) ≥ 2x, kai n ≥ 2 ir x ≥ 1

6. A(n+ 1, x) > A(n, x), kai n, x ≥ 2

7. A(n, x+ 1) > A(n, x), kai n, x ≥ 2

8. A(n+ 1, x) ≥ A(n, x+ 1), kai n, x ≥ 2

44 Ap. (Mažoruojanti funkcija). Sakysime, kad funkcija f(x) yra mažoruojama1 funkcijos h(x),jei yra toks n0 ∈ N, kad f(x) < h(x) su visais x > n0.

25 T. Jei f(x) yra vieno argumento PR funkcija, tai egzistuoja toks n (n ∈ N), kad

f(x) < A(n, x), kai x > 2.

26 T. Egzistuoja tokios funkcijos, kurios yra bendrai rekursyvios, bet nėra primityviai rekursyvios.

Proof ▷Parodysime, kad funkcija h(x) = A(x, x) yra BR, bet nėra PR.

h(x) ∈ BR, nes ji yra visur apibrėžta, algoritmiškai apskaičiuojama funkcija.Įrodysim, kad h(x) mažoruoja bet kokią PR vieno argumento funkciją.Tegu f(x) ∈ PR. Iš 25 teiginio: ∃n (n ∈ N), kad f(x) < A(n, x), kai x > 2.Tuomet f(n + x) < A(n, n + x) < A(n + x, n + x) = h(n + x) =⇒ ∃n0 (n0 ∈ N), kad

f(x) < h(x), kai x > n0 =⇒ f(x) yra mažoruojama funkcijos h(x).Kadangi bet kokia vieno argumento primityviai rekursyvi funkcija yra mažoruojama funk-

cijos h(x), tai funkcija h(x) ∈ PR.◁

1Žr. DLKŽ.

28

Page 30: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

7.4. Universaliosios funkcijos

45 Ap. (Universalioji funkcija). Tarkime, kad A yra kuri nors n argumentų funkcijų aibė. Funk-ciją F (x0, x1, . . . , xn) vadinsime aibės A universaliąja, jei

A = {F (0, x1, x2, . . . , xn), F (1, x1, x2, . . . , xn), F (2, x1, x2, . . . , xn), . . . },

tai yra, jei F (i, x1, x2, . . . , xn) ∈ A (i = 0, 1, 2, . . . ) ir nesvarbu, kokia būtų f(x1, x2, . . . , xn) ∈A, atsiras bent vienas toks natūralusis skaičius i, kad f(x1, x2, . . . , xn) = F (i, x1, x2, . . . , xn).

27 T.

1. Visų n argumentų PR funkcijų universalioji F (i, x1, x2, . . . , xn) ∈ PR.

2. Visų n argumentų BR funkcijų universalioji F (i, x1, x2, . . . , xn) ∈ BR.

Proof ▷

1. TeguF (i, x1, x2, . . . , xn) ∈ PR. Imkime funkciją g(x1, x2, . . . , xn) = F (x1, x1, x2, . . . , xn)+

1. g(x1, x2, . . . , xn) ∈ PR, nes gauta iš PR funkcijų F (i, x1, x2, . . . , xn) ir (x + y) pri-taikius kompozicijos operatorių. Kadangi g(x1, x2, . . . , xn) yra n argumentų PR funkci-ja, tai ∃j (j ∈ N) toks, kad F (j, x1, x2, . . . , xn) = g(x1, x2, . . . , xn). Tuomet paimkimex1 = x2 = · · · = xn = j, tada F (j, j, j, . . . , j) = g(j, j, . . . , j) = F (j, j, j, . . . , j) + 1 =⇒F (j, j, j, . . . , j) – neapibrėžta =⇒ prieštara, nes visos PR funkcijos yra apibrėžtos su visaisargumentais, todėl mūsų prielaida, jog F (i, x0, x1, . . . , xn) ∈ PR yra neteisinga.

2. TeguF (i, x1, x2, . . . , xn) ∈ BR. Imkime funkciją g(x1, x2, . . . , xn) = F (x1, x1, x2, . . . , xn)+

1. g(x1, x2, . . . , xn) ∈ BR, nes gauta iš BR funkcijų F (i, x1, x2, . . . , xn) ir (x + y) pri-taikius kompozicijos operatorių. Kadangi g(x1, x2, . . . , xn) yra n argumentų BR funkci-ja, tai ∃j (j ∈ N) toks, kad F (j, x1, x2, . . . , xn) = g(x1, x2, . . . , xn). Tuomet paimkimex1 = x2 = · · · = xn = j, tada F (j, j, j, . . . , j) = g(j, j, . . . , j) = F (j, j, j, . . . , j) + 1 =⇒F (j, j, j, . . . , j) – neapibrėžta =⇒ prieštara, nes visos BR funkcijos yra apibrėžtos su visaisargumentais, todėl mūsų prielaida, jog F (i, x0, x1, . . . , xn) ∈ BR yra neteisinga.

28 T. Visų vieno argumento PR funkcijų aibei egzistuoja universalioji funkcija, kuri yra BR.Proof ▷Pagal 21 teiginį visas vieno argumento PR funkcijas galime išreikšti per bazines s(x), q(x) irsudėties, kompozicijos, bei iteracijos operatorius. Remiantis išraiška per s(x) ir q(x), visoms PRvieno argumento funkcijoms suteiksime numerius tokiu būdu:

29

Page 31: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

• n(s(x)) = 1

• n(q(x)) = 3

Jei n(f(x)) = a ir n(g(x)) = b, tai• h(x) = f(x) + g(x) =⇒ n(h(x)) = 2 · 3a · 5b

• h(x) = f(g(x)) =⇒ n(h(x)) = 4 · 3a · 5b

• h(x) = f(x)I =⇒ n(h(x)) = 8 · 3a

Tarkime, turime funkciją fn(x), kurios numeris yra n. Pažymėkime F (n, x) = fn(x). Tada:

F (n, x) =

fa(x) + fb(x), jei n = 2 · 3a · 5b

fa(fb(x)), jei n = 4 · 3a · 5b

fa(fn(x− 1)), jei n = 8 · 3a ir x > 0

0, jei n = 8 · 3a ir x = 0

s(x), jei n = 1

q(x), jei n = 3

F (n, x) yra algoritmiškai apskaičiuojama. Tada visų vieno argumento PR universalioji yra:

D(n, x) =

F (n, x), jei n – kažkurios funkcijos numeris

0, kitu atveju.

D(n, x) ∈ BR, nes yra algoritmiškai apskaičiuojama ir visur apibrėžta.◁

29 T. Visų n argumentų PR funkcijų universalioji yra funkcija:

Dn+1(x0, x1, x2, . . . , xn) = D(x0, αn(x1, x2, . . . , xn))

46 Ap.. DR n argumentų funkcijos grafikas yra taškų, sudarytų iš (n+ 1) elemento, aibė:

G = {(x1, x2, . . . , xn, y) : f(x1, x2, . . . , xn) = y}

30

Page 32: Algoritmųteorija - Vilniaus universitetasadomas/konspektai/...TURINYS Turinys 1. Algoritmosamprata 2 2. Hilbertotipoteiginiųskaičiavimas..... 3 1. ALGORITMOSAMPRATA 1Ap.(Algoritmas).(Intuityvusapibrėžimas.)

PAKEITIMAI

d1c7c2e7bbc0c819cba92a03b60662aedf107324Vytautas Astrauskas 2015-06-16

15:39:37 +0200Smulkus pataisymas.

10c4be5f50afda2a368fda677afb63eef6b87382Vytautas Astrauskas 2013-01-03

21:38:33 +0100Smulkūs formatavimo pataisymai.

a00590681359d0b4b111595d4ee4f5f79b2a822eVytautas Astrauskas 2013-01-03

21:16:51 +0100Pataisymai pagal lekt. dr. Adomo Birštunopastabas.

f0fec6a1ce78a20cb06f83c6e5daf56c0e810238Vytautas Astrauskas 2013-01-03

18:03:25 +0100Pridėtas pakeitimų sąrašas.

96c6758732a27c45a27ffa7c80a4b8f63b76fb99Vytautas Astrauskas 2013-01-03

17:45:04 +0100Atnaujintas šablonas.

31