VILNIAUS UNIVERSITETAS MATEMATIKOS IR INFORMATIKOS FAKULTETAS PROGRAMŲ SISTEMŲ KATEDRA. Algoritmų teorija. Paskaitų konspektas

Σχετικά έγγραφα
Matematika 1 4 dalis

X galioja nelygyb f ( x1) f ( x2)

Įžanginių paskaitų medžiaga iš knygos

MATEMATINĖ LOGIKA. Įžanginių paskaitų medžiaga iš knygos

Algoritmai. Vytautas Kazakevičius

Matematinė logika. 1 skyrius Propozicinės formulės. žodį, Graikiškas žodis logos (λóγoς) reiškia

Vilniaus universitetas. Edmundas Gaigalas A L G E B R O S UŽDUOTYS IR REKOMENDACIJOS

Dviejų kintamųjų funkcijos dalinės išvestinės

Temos. Intervalinės statistinės eilutės sudarymas. Santykinių dažnių histogramos brėžimas. Imties skaitinių charakteristikų skaičiavimas

Modalumo logikos S4 kai kurios išsprendžiamos klasės

Matematinės analizės konspektai

ATSITIKTINIAI PROCESAI. Alfredas Račkauskas. (paskaitų konspektas 2014[1] )

Matematika 1 3 dalis

I dalis KLAUSIMŲ SU PASIRENKAMUOJU ATSAKYMU TEISINGI ATSAKYMAI

AIBĖS, FUNKCIJOS, LYGTYS

Diskrečioji matematika

ELEMENTARIOJI TEORIJA

4.3. Minimalaus dengiančio medžio radimas

1 Tada teigini Ne visi šie vaikinai yra studentai galima išreikšti formule. 2 Ta pati teigini galima užrašyti ir taip. 3 Formulė U&B C reiškia, kad

IV. FUNKCIJOS RIBA. atvira. intervala. Apibrėžimas Sakysime, kad skaičius b yra funkcijos y = f(x) riba taške x 0, jei bet kokiam,

Specialieji analizės skyriai

DISKREČIOJI MATEMATIKA

FUNKCIJOS. veiksmu šioje erdvėje apibrėžkime dar viena. a = {a 1,..., a n } ir b = {b 1,... b n } skaliarine sandauga

2008 m. matematikos valstybinio brandos egzamino VERTINIMO INSTRUKCIJA Pagrindinė sesija

2015 M. MATEMATIKOS VALSTYBINIO BRANDOS EGZAMINO UŽDUOTIES VERTINIMO INSTRUKCIJA Pagrindinė sesija. I dalis

2009 m. matematikos valstybinio brandos egzamino VERTINIMO INSTRUKCIJA Pagrindinė sesija 1 6 uždavinių atsakymai

Elektronų ir skylučių statistika puslaidininkiuose

Specialieji analizės skyriai

VIII. FRAKTALINĖ DIMENSIJA. 8.1 Fraktalinės dimensijos samprata. Ar baigtinis Norvegijos sienos ilgis?

1.4. Rungės ir Kuto metodas

TEORIJA. RINKTINIAI MATEMATIKOS SKYRIAI (Informatikos spec., 2 srautas, magistrantūra, 1 semestras) PROGRAMA. su skaidžia savybe skaičiu

Vilius Stakėnas. Kodavimo teorija. Paskaitu. kursas

FDMGEO4: Antros eilės kreivės I

1 Įvadas Neišspręstos problemos Dalumas Dalyba su liekana Dalumo požymiai... 3

eksponentinės generuojančios funkcijos 9. Grafu

2.5. KLASIKINĖS TOLYDŽIŲ FUNKCIJŲ TEOREMOS

Paprastosios DIFERENCIALINĖS LYGTYS

Paprastosios DIFERENCIALINĖS LYGTYS

Vilniaus universitetas Matematikos ir informatikos fakultetas Informatikos katedra. Gintaras Skersys. Mokymo priemonė

I.4. Laisvasis kūnų kritimas

ANALIZINĖ GEOMETRIJA III skyrius (Medžiaga virtualiajam kursui)

LIETUVOS JAUNŲ J Ų MATEMATIKŲ MOKYKLA

Paprastosios DIFERENCIALINĖS LYGTYS

0.1. Bendrosios sąvokos

1. Individualios užduotys:

TIKIMYBIU TEORIJA HAMLETAS MARK AITIS MYKOLO ROMERIO UNIVERSITETAS 2010

III. MATRICOS. DETERMINANTAI. 3.1 Matricos A = lentele žymėsime taip:

Spalvos. Šviesa. Šviesos savybės. Grafika ir vizualizavimas. Spalvos. Grafika ir vizualizavimas, VDU, Spalvos 1

Statistinė termodinamika. Boltzmann o pasiskirstymas

4.1 Skaliarinė sandauga erdvėje R n Tarkime, kad duota vektorinė erdvė R n. Priminsime, kad šios erdvės elementai yra vektoriai vektoriu

f(w) f(z) = C f(z) = z z + h z h = h h h 0,h C f(z + h) f(z)

Remigijus Leipus. Ekonometrija II. remis

5 paskaita. 5.1 Kompaktiškosios aibės Sąvokos

2 laboratorinis darbas. TIKIMYBINIAI MODELIAI

Matematinės analizės egzamino klausimai MIF 1 kursas, Bioinformatika, 1 semestras,

Stanislovas NORGĖLA MATEMATINĖ LOGIKA

Ekonometrija. Trendas ir sezoninė laiko eilutės komponentė

DISPERSINĖ, FAKTORINĖ IR REGRESINĖ ANALIZĖ Laboratorinis darbas Nr. 2

Analizės uždavinynas. Vytautas Kazakevičius m. lapkričio 1 d.

TEORIJOS PRADMENYS PROGRAMA

Arenijaus (Arrhenius) teorija

Įvadas į laboratorinius darbus

EKONOMETRIJA 1 (Regresinė analizė)

MÉTHODES ET EXERCICES

KADETAS (VII ir VIII klasės)

0.1. Bendrosios sąvokos

DISPERSINĖ, FAKTORINĖ IR REGRESINĖ ANALIZĖ Laboratorinis darbas Nr. 1

PNEUMATIKA - vožtuvai


Taikomieji optimizavimo metodai

SIGNALAI TELEKOMUNIKACIJŲ SISTEMOSE

Atsitiktinių paklaidų įvertinimas

Laboratorinis darbas Nr. 2

1 iš 15 RIBOTO NAUDOJIMO

Dirbtiniai neuroniniai tinklai

Pav1 Žingsnio perdavimo funkcija gali būti paskaičiuota integruojant VIPF. Paskaičiavus VIPF FFT gaunamo amplitudinė_dažninė ch_ka.

Rinktiniai informacijos saugos skyriai. 3. Kriptografija ir kriptografijos protokolai: Klasikinė kriptografija

II dalis Teisingas atsakymas į kiekvieną II dalies klausimą vertinamas 1 tašku g/mol

Κεφάλαιο 1 Πραγματικοί Αριθμοί 1.1 Σύνολα

5 klasė. - užduotys apie varniuką.

V skyrius ĮVAIRŪS PALŪKANŲ APSKAIČIAVIMO KLAUSIMAI

III.Termodinamikos pagrindai

Praeita paskaita. Grafika ir vizualizavimas Atkirtimai dvimatėje erdvėje. Praeita paskaita. 2D Transformacijos. Grafika ir vizualizavimas, VDU, 2010

4 laboratorinis darbas. PARAMETRŲ ĮVERČIAI IR STATISTINĖS HIPOTEZĖS

1. Pirštu atspaudu atpažinimas

1. Įvadas į sistemas ir signalus. 1. Signalas, duomenys, informacija ir žinios

MONTE KARLO METODAS. Gediminas Stepanauskas IVADAS Sistemos Modeliai Modeliavimas ir Monte-Karlo metodas...

1 TIES ES IR PLOK TUMOS

FRANKO IR HERCO BANDYMAS

Donatas Surgailis Finansų matematika


06 Geometrin e optika 1

APRAŠOMOJI STATISTIKA

EUROPOS CENTRINIS BANKAS

1. Klasifikavimo su mokytoju metodai

doc. dr. Jurgita Dabulytė-Bagdonavičienė Taikomosios matematikos katedra, KTU 2011/2012 m.m. 2011/2012 Matematinė logika


Skalbimo mašina Vartotojo vadovas Πλυντήριο Ρούχων Εγχειρίδιο Χρήστη Mosógép Használati útmutató Automatická pračka Používateľská príručka

ŠVIESOS SKLIDIMAS IZOTROPINĖSE TERPĖSE

Vilniaus universitetas Matematikos ir informatikos fakultetas. Algirdas Ma iulis. Duomenu tyrimas. Paskaitu konspektas

Transcript:

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

TURINYS 1. Algoritmo samprata... 2 2. Hilberto tipo teiginių skaičiavimas... 3 2.1. Dedukcijos teorema... 3 Turinys 3. Sekvencinis skaičiavimas... 7 4. Disjunktų dedukcinė sistema. Rezoliucijų metodas... 9 4.1. Rezoliucijų metodas... 12 5. Turingo mašinos ir jų variantai... 13 5.1. Baigtiniai automatai... 14 5.2. Algoritmų sudėtingumas... 14 5.3. Porų numeravimas... 16 5.4. Baigtinumo problema... 17 6. λ-skaičiavimas... 19 7. Primityviai rekursyvios funkcijos... 21 7.1. Dalinai rekursyvios funkcijos... 22 7.2. Rekursyviai skaičiosios aibės... 24 7.3. Ackermann funkcijos.... 27 7.4. Universaliosios funkcijos... 29 PAKEITIMAI... 31 1

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ų klase. (Šio teiginio neįmanoma įrodyti.) 2 T. Turingo mašinomis apskaičiuojamų funkcijų aibė sutampa su rekursyviųjų funkcijų klase. 2

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 galima paraš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ėra išvedama jame. Visos Hilberto teiginių skaičiavimo aksiomos yra nepriklausomos. 2.1. Dedukcijos teorema Sakysime, kad formulė F yra išvedama iš prielaidų A 1, A 2, A 3,..., A n, jei egzistuoja tokia formulių seka, kurioje kiekviena formulė yra: 3

arba aksioma, arba prielaida, arba gauta pagal MP iš ankstesnių ir kuri (seka) baigiasi formule F. Žymėjimas: A 1, A 2,..., A n 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ūtinumas Jei Γ A B, tada egzistuoja formulių seka: 1. F 1 2. F 2 i. F i k. F k = A B k+1. A prielaida k+2. B MP iš k ir (k+1). kurioje: aksioma F i = prielaida iš Γ gauta pagal MP iš ankstesnių Γ, A B. Pakankamumas Jei Γ, A B, tai yra tokia formulių seka: 1. F 1 2. F 2 i. F i k. F k = B 4

kurioje: F i = aksioma prielaida iš Γ prielaidaa gauta pagal MP iš ankstesnių Sukonstruokime tokią formulių seką (kuri nebūtinai yra išvedimas): 1. A F 1 2. A F 2 i. A F i k. A F k = A B Dabar kiekvieną A F i keičiam tokiu būdu: 1. Jei F i aksioma, tada keičiam į: i.1 F i (A F i ) 1.1 aksioma i.2 F 1 aksioma i.3 A F 1 MP iš (i.1) ir (i.2) 2. Jei F i prielaida iš Γ, tada keičiam į: i.1 F i (A F i ) 1.1 aksioma i.2 F 1 prielaida iš Γ i.3 A F 1 MP iš (i.1) ir (i.2) 3. Jei F i prielaida A, tada A F i = A A. Keičiam A A išvedimu. 4. Tegu A F u yra visos išvestos, kur u < i. F i buvo gauta iš kažkokių F r ir F l (kur r, l < i) pritaikius MP. Taigi mes jau turime išvestas A F r ir A F l. Kadangi F l = F r F i (arba F r = F l F i ), tai: i.1 (A F l {}}{ (F r F i )) ((A F r ) (A F i )) 1.2 aksioma i.2 (A F r ) (A F i ) pagal MP i.3 A F i pagal MP Sakysime, jog skaičiavimas yra pilnas formulių aibės A atžvilgiu, jei formulė A tada ir tik tada, jei ji yra įrodoma skaičiavimu. 5

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

3. SEKVENCINIS SKAIČIAVIMAS 3 Ap. (Sekvencija). Tokia išraiška F 1, F 2,..., F }{{ n G } 1, G 2,..., G m, jei n + m > 0. }{{} anticedentas sukcedentas Pastaba. Jei atitinkama sekvencija yra išvedama, tada teiginiai po brūkšnio yra teisingi: F formulė yra tapačiai teisinga. A 1, A 2,..., A n F iš prielaidų seka išvada F. A 1, A 2,..., A n B 1, B 2,..., B m iš prielaidų seka bent viena iš išvadų B 1,..., B m. 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

Sakysime, kad sekvencija F 1,..., F n G 1,..., G m yra išvedame skaičiavime G, jei galime sukonstruoti tokį medį (grafą), kurio visose viršūnėse yra sekvencijos, šaknyje yra pradinė sekvencija F 1,..., F n G 1,..., G m ir kiekvienai viršūnei teisinga: jei viršūnės N, kurioje yra sekvencija S, vaike(-uose) N 1 (ir N 2 ) yra sekvencija(-os) S 1 (ir S 2 ), tai sekvencija S yra gauta iš sekvencijos(-jų) S 1 (ir S 2 ) 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švedamos 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 sekvencija F. 8

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šyti tokią 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 bet kokia 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 klaidingas), 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 D 1 S = ν(d 1 ) = 1, nes visi aibės S disjunktai yra teisingi su interpretacija ν. 2. Tarkime, kad i (i < m), ν(d i ) = 1. 3. Panagrinėkime ν(d m ): Jei D m S, tai ν(d m ) = 1. 9

Jei D m S, tai D m gautas iš kažkokių D a ir D b pagal atkirtos taisyklę. Pagal matematinės indukcijos prielaidą ν(d a ) = ν(d b ) = 1, nes a, b < m. Kadangi D a D b (AT) D m tai D a = D a p ir D b = D b p, o D m = D a D b. Jei ν(p) = 1, tai ν(d b ) = 1(, nes ν(d b p) = 1) = ν(d m) = ν(d b D a) = 1. Jei ν( p) = 1, tai ν(d a) = 1(, nes ν(d a p) = 1) = ν(d m ) = ν(d b D a) = 1. Naudodami matematinę indukciją gavome, kad visi išvedami disjunktai yra teisingi su interpretacija ν. 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}, {p, p}. }{{} nėra prieštaringos 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š jos iš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): S p priklauso tie aibės S disjunktai, kurie neturi literos p. S + p S p priklauso tie aibės S disjunktai, kurie turi literą p (be neigimo). priklauso tie aibės S disjunktai, kurie turi literą p (su neigimu). 10

Tada: S = S p S + p S p. Nagrinėkime aibę S = S p 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: tada S + p = {C 1 p, C 2 p,..., C v p} ir S p = {D 1 p, D 2 p,..., D r p} at(s p +, Sp ) = {C 1 D 1, C 1 D 2,..., C 1 D r C 2 D 1, C 2 D 2,..., C 2 D r C v D 1, C v D 2,..., C v D r } Aibėje S yra < m kintamųjų (nes nėra p), todėl aibei S galioja prielaida: jei S prieštaringa = 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ės S p yra įvykdomi su ta pačia interpretacija ν, nes S p S. Taip pat visi disjunktai iš aibės at(s p +, Sp ) 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, taip kad su interpretacija ν visi aibės S disjunktai būtų teisingi. 2.1. Jei yra toks i (i = 1, 2,..., v), su kuriuo ν(c i ) = 0, tada apibrėžiame ν(p) = 1, tada ν(c 1 p) = ν(c 2 p) = = ν(c v p) = 1 Kadangi visi aibės at(s p +, Sp ) disjunktai yra teisingi su interpretacija ν, tai ν(c i D 1 ) = = ν(c i D r ) = 1, bet ν(c i ) = 0, todėl ν(d 1 ) = ν(d 2 ) = = ν(d r ) = 1 = ν(d 1 p) = = ν(d r p) = 1 Gavome, kad su ν visi S p +, Sp ir S p yra teisingi = S įvykdoma. 2.2. Jei nėra tokio i (i = 1, 2,..., v), su kuriuo ν(c i ) = 0, tada ν(c 1 ) = ν(c 2 ) = = ν(c v ) = 1, tada ir ν(c 1 p) = ν(c 2 p) = = ν(c v p) = 1. Apibrėžkime ν(p) = 0, tada ν(d 1 p) = ν(d 2 p) = = ν(d r p) = 1. Gavome, kad su ν visi S p +, Sp ir S p 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štaringa tada ir tik tada, kai S prieštaringa, todėl jei S prieštaringa, tai iš S galima išvesti. 11

Išvada: S S prieštaringa. 4.1. Rezoliucijų metodas Jei norime patikrinti ar iš prielaidų A 1, A 2,..., A n seka išvada F : A 1, A 2,..., A n F aibė B = {A 1, A 2,..., A n, F } prieštaringa disjunktų aibė (gauta paverčiant B aibės elementus į NKF) S = {D 1, D 2,..., D m } prieštaringa S pagal disjunktų dedukcinę sistemą. 12

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 = {q 0, q 1,..., q n }, kur q 0 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 pradžioje į duomenų juostą įrašius žodį X, TM po baigtinio žingsnių kiekio patenka į vieną iš galutinių būsenų. 11 Ap. (Turingo mašina apskaičiuoja funkciją). Sakysime, kad TM M apskaičiuoja funkciją f(x 1, x 2,..., x n ), jei egzistuoja toks kodavimas abėcėlės Σ simboliais cod(x 1, x 2,..., x n ) = x, kuriam teisinga: 1. jei f(x 1, x 2,..., x n ) = y (funkcija apibrėžta), tada TM M su pradiniais duomenimis cod(x 1, x 2,..., x n ) yra apibrėžta ir baigus darbą, į dešinę nuo skaitymo galvutės yra žodis cod(y); 2. jei f(x 1, x 2,..., x n ) neapibrėžta, tada TM M su pradiniais duomenimis cod(x 1, x 2,..., x n ) 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 Σ } Σ {{ Σ } {K, D, N} {K, D, N} {K, D, N} }{{} m m 13 Ap. (Nedeterminuota Turingo mašina). Turingo mašina, kurios perėjimų funkcija yra daugiareikšmė. 13

5.1. Baigtiniai automatai 14 Ap. (Baigtinis automatas). Vienajuostė determinuota Turiningo mašina, kurios perėjimų funkcija yra δ(q i, a) = (q j, 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 Ā irgi yra baigtinio automato kalba. 10 T. Jei A 1 ir A 2 yra baigtinio automato kalbos, tai ir A 1 A 2, bei A 1 A 2 yra baigtinio automato kalbos. Proof Grafų G 1 ir G 2 Dekarto sandauga yra grafas, kurio viršūnės yra visos įmanomos poros (q i, q j ), kur q i yra G 1 viršūnė, o q j G 2 viršūnė. Iš viršūnės (q i, q j ) eis briauna į viršūnę (q k, q l ) su simboliu a, jei grafe G 1 eina briauna iš viršūnės q i į viršūnę q k su simboliu a ir grafe G 2 eina briauna iš viršūnės q j į viršūnę q l su simboliu a. F A B visos viršūnės (q i, q j ), kur q i F A arba q j F B. F A B visos viršūnės (q i, q j ), kur q i F A ir q j F B. Baigtinis automatas, kurio perėjimų funkcija vaizduojama grafu G 1 G 2, pradinė būsena yra (q 0, q 0 ) ir kurio galutinių būsenų aibė yra F A B, turės kalbą A 1 A 2. Atitinkamai, baigtinis automatas, kurio galutinių būsenų aibė yra F A B, turės kalbą A 1 A 2. 11 T. Baigtinių automatų kalbų 1. konkatenacija := {uv : u A 1, v A 2 }, kur A 1, A 2 automato kalbos; 2. iteracija := {u 1 u 2... u k : u i A, i = 1, 2,..., k}, kur A automato kalba; 3. atspindys := {a 1 a 2... a n : a n a n 1... a 1 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

s(v) panaudotų ląstelių kiekis, kurį sunaudojo TM, jei pradinių duomenų juostoje buvo žodis v. 16 Ap. (Turingo mašinos M sudėtingumas laiko atžvilgiu). Funkcija: T M (n) = max{t(v) : i(v) = n}. 17 Ap. (Turingo mašinos M sudėtingumas atminties atžvilgiu). Funkcija: S M (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šsprendž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) : S M (n) = cf(n), n. Sakysime, kad TM sudėtingumas laiko atžvilgiu yra f(n), jei c (c > 0) : T M (n) = cf(n), n. 20 Ap. (Sudėtingumo klasės). DT IME(f(n)) sudėtingumo klasė, kuriai priklauso visi uždaviniai, kuriems egzistuoja juos sprendžianti daugiajuostė determinuota TM, kurios sudėtingumas laiko atžvilgiu yra f(n). N T IM E(f(n)) sudėtingumo klasė, kuriai priklauso visi uždaviniai, kuriems egzisutoja juos sprendžianti daugiajuostė nedeterminuota TM, kurios sudėtingumas laiko atžvilgiu yra f(n). DSP ACE(f(n)) sudėtingumo klasė, kuriai priklauso visi uždaviniai, kuriems egzistuoja juos sprendžianti daugiajuostė determinuota TM, kurios sudėtingumas atminties atžvilgiu yra f(n). N SP ACE(f(n)) sudėtingumo klasė, kuriai priklauso visi uždaviniai, kuriems egzsituoja juos sprendžianti daugiajuostė nedeterminuota TM, kurios sudėtingumas atminties atžvilgiu yra f(n). 21 Ap. (Sudėtingumo klasės). L = DSP ACE(log n) NL = NSP ACE(log n) P = DT IME(n k ), kur k konstanta. NP = NT IME(n k ), kur k konstanta. P SP ACE = DSP ACE(n k ), kur k konstanta. EXP = DT IME(2 nk ), kur k konstanta. 12 T. L NL P NP P SP ACE EXP ir NL P SP ACE ir P EXP. 15

5.3. Porų numeravimas Σ=0 Σ=1 Σ=2 {}}{{}}{{}}{ (0; 0), (0; 1), (1; 0), (0; 2), (1; 1), (2; 0), (0; 3), (1; 2),... }{{}}{{}}{{}}{{}}{{}}{{}}{{}}{{} 0 1 2 3 4 5 6 7 22 Ap. (Poros numeris Kantaro numeracijoje). Funkcija α 2 (x, y). Kairiojo nario funkcija yra π 1 2(n), o dešiniojo π 2 2(n), kur n yra porai priskirtas numeris. 13 T. Poros (x; y) numeris: Pastaba. π 1 2(n) = n 1 2 α 2 (x, y) = (x + y)2 + 3x + y 2 [ ] [ 8n + 1] + 1 [ [ 8n + 1] 1] 2 23 Ap. (Kantaro funkcijos). α n (x 1, x 2,..., x n ) rinkinio x 1, x 2,..., x n numeris Kantaro numeracijoje. π i n(k) K-ojo rinkinio iš n elementų i-asis narys. Pastaba. Kantaro funkcijos rekurentinė išraiška: >>> def alpha(*numbers):... if len(numbers) == 2:... x, y = numbers α 2 (x, y) = (x+y)2 +3y+x 2 α n (x 1, x 2,..., x n ) = α 2 (x 1, α n 1 (x 2, x 3,..., x n ))... 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 2 argumentų funkcija, o ją atitinkanti vieno argumento funkcija yra g(z) (iš esmės abi jos skaičiuoja tą patį). f(x, y) = 3x + y g(z) = 3π 1 2(z) + π 2 2(z) f(x, y) = g(α 2 (x, y)) = 3x + y 16

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: T 0, T 1, T 2, T 3, T 4,... 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ų, ar TM su numeriu m (T m ) 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 T m su duomenimis n yra apibrėžta, ar ne. Tada egzistuoja tokia algoritmiškai apskaičiuojama funkcija: 1, jei φ x (y) < (apibrėžta), g(α 2 (x, y)) = 0, jei φ x (y) = (neapibrėžta). Tada yra TM, kuri apskaičiuoja funkciją g(z). Tada yra TM, kuri apskaičiuoja funkciją: 1, jei g(α 2 (x, x)) = 0, f(x) =, jei g(α 2 (x, x)) = 1. TM skaičiuojančią g(z) pažymėkime M 1. M 1 : Q 1 būsenų aibė; F 1 galutinių būsenų aibė. Sukonstruokime TM M 2 skaičiuojančią f(x): Kai M 1 baigia darbą, tai galimi du variantai: 17

1. TM yra galutinėje būsenoje q F F 1 ir juostoje yra vienintelis simbolis 1, į kurį ir žiūri skaitymo galvutė. 2. TM yra galutinėje būsenoje q F F 1 ir juostoje yra vienintelis simbolis 0, į kurį ir žiūri skaitymo galvutė. TM M 2 tokia pati, kaip ir M 1, tik Q 2 = Q 1 {q }, F 2 = {q }, q F nėra galutinė būsena ir: δ(q F, 0) = (q, 1, N) f(x) apibrėžta; δ(q F, 1) = (q F, 1, N) f(x) neapibrėžta. Kadangi yra TM (M 2 ), kuri apskaičiuoja funkciją f(x), tai yra toks numeris l, kad T l = M 2. T l 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 T m su pradiniais duomenis n baigia darbą, ar ne. 26 Ap. (Aibės charakteringoji funkcija). Aibės A charakteringoji funkcija yra: 1, jei x A χ A (x) = 0, jei x A 27 Ap. (Rekursyvi aibė). Sakysime, kad aibė yra rekursyvi, jei jos charakteringoji funkcija yra visur apibrėžta rekursyvi funkcija. Pastaba. (Rice teorema.) Jei aibė X yra vieno argumento dalinai rekursyvių funkcijų aibė ir nesutampa 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

6. λ-skaičiavimas 28 Ap. (λ skaičiavimo termas). Jei u kintamasis, tai u yra termas. Jei E 1 ir E 2 yra termai, tai ir (E 1 E 2 ) 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.((yz)(λz.((z 1 sunumeruotos yra kintamojo x įeitys. }{{} x 2 )y)))( x }{{} 3 (λy.( x }{{} 4 y)))), 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 E 1 ir E 2 yra α-ekvivalentūs, jei E 2 yra gautas iš E 1, jame visas laisvas kažkurio kintamojo x įeitis pakeitus nauju kintamuoju. Termas λx.e 1 yra α-ekvivalentus termui λy.e 2, jei termas E 2 yra gautas iš termo E 1, jame visas laisvas x įeitis pakeitus nauju kintamuoju y. 29 Ap. (Redeksas ir jo santrauka). Termas pavidalo (λx.e)y, kur E ir Y yra termai, vadinamas redeksu. Redekso (λx.e)y santrauka yra termas E[ Y / x ] termas E, kuriame visos laisvos kintamojo x įeitys yra pakeistos termu Y. 4 Pvz. Redekso (λx. (ux)) (zz) santrauka yra termas u(zz). }{{}}{{} E Y 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 E 1 E 2 E 3 E 4 E k, kur E 1 = E, ir E i+1 yra gautas iš E i jame pirmąjį iš kairės redeksą pakeitus jo santrauka. 19

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 ir λx.λy.x. }{{}}{{} klaidinga teisinga Žymėjimas: λx.λy.y = 0 ir λx.λy.x = 1. 33 Ap.. λ-skaičiavimo natūrinis skaičius k yra λf.λx.(f k x), kur f k x = f(f(... f(f x)... )). }{{} k kartų Žymėjimas: Skaičius 2 žymimas 2 = λf.λx(f 2 x) = λ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(x 1, x 2,..., x n ), jei: jei f(k 1, K 2,..., K n ) = K, tai termas (... ((EK 1 )K 2 )... )K n redukuojamas (β-redukcijoje) į termą K; jei f(k 1, K 2,..., K n ) =, tai termas (... ((EK 1 )K 2 )... )K n yra neredukuojamas. 17 T. Kiekvienai algoritmiškai apskaičiuojamai funkcijai egzistuoja ją apibrėžiantis termas. 20

7. PRIMITYVIAI REKURSYVIOS FUNKCIJOS Kompozicijos operatorius: sakysime, kad funkcija f(x 1, x 2,..., x n ) yra gauta iš funkcijų g i (x 1, x 2,..., x n ) (i = 1, 2, 3,..., m) ir funkcijos h(x 1, x 2,..., x m ), jei f(x 1, x 2,..., x n ) = h(g 1 (x 1,..., x n ),..., g m (x 1,..., x n )). 35 Ap.. Sakysime, jog funkcija f(x 1, x 2,..., x n ) yra gauta pagal primityviosios rekursijos operatorių iš g(x 1, x 2,..., x n 1 ) ir h(x 1, x 2,..., x n, x n+1 ), jei teisinga: f(x 1, x 2,..., x n 1, 0) = g(x 1, x 2,..., x n 1 ) ir f(x 1, x 2,..., x n 1, y + 1) = h(x 1, x 2,..., x n 1, y, f(x 1, x 2,..., x n 1, y)) 36 Ap. (Primityviai rekursyvių funkcijų aibė (PR)). Primityviai rekursyvių funkcijų aibė sutampa su aibe, kuriai priklauso bazinės funkcijos: 0, s(x) = x + 1, pr i m(x 1, x 2,..., x m ) = x i ir kuri yra už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 (x 1, x 2,..., x n ) ir π i n(k) yra primityviai rekursyvios. 19 T. Jei funkcija g(x 1, x 2,..., x n ) PR, tai ir funkcija f(x 1, x 2,..., x n ) = x n i=0 g(x 1, x 2,..., x n ) PR 20 T. Jei f i (x 1, x 2,..., x n ) PR ir α j (x 1, x 2,..., x n ) PR (i = 1, 2,..., s, s+1; j = 1, 2,..., s), tada ir funkcija: f 1 (x 1, x 2,..., x n ), jei α 1 (x 1, x 2,..., x n ) = 0, f 2 (x 1, x 2,..., x n ), jei α 2 (x 1, x 2,..., x n ) = 0, h(x 1, x 2,..., x n ) = yra primityviai rekursyvi. f s (x 1, x 2,..., x n ), jei α s (x 1, x 2,..., x n ) = 0, f s+1 (x 1, x 2,..., x n ), kitu atveju Pastaba. Su bet kuriuo rinkiniu (x 1, x 2,..., x n ) ne daugiau nei viena α i (x 1, x 2,..., x n ) (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

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(x 1, x 2,..., x n ) gauta pagal minimizacijos operatorių iš funkcijos g(x 1, x 2,..., x n ), jei: f(x 1, x 2,..., x n ) = µ y (g(x 1, x 2,..., x n 1, y) = x n ), tai yra pati mažiausia natūrali y reikšmė, kuriai teisinga g(x 1, x 2,..., x n 1, y) = x n. 39 Ap. (Dalinai rekursyvių funkcijų aibė (DR)). Dalinai rekursyvių funkcijų aibė sutampa su aibe, kuriai priklauso bazinės funkcijos 0, s(x) = x + 1, prn(x i 1, x 2,..., x n ) = x i ir kuri yra uždara kompozicijos, primityviosios rekursijos ir minimizacijos operatorių atžvilgiu. Pastaba. Jei f(x 1, x 2,..., x n ) = µ y (g(x 1, x 2,..., x n 1, y) = x n ), tai f(x 1, x 2,..., x n ) reikšmė apskaičiuojama remiantis tokiu algoritmu: for (y = 0; g(x 1, x 2,..., x n 1, y) x n ; y++); y, jei pavyko rasti y arba f(x 1, x 2,..., x n ) =, 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ų, kurios yra 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, prn(x i 1, x 2,..., x n ) = x i ; vieno argumento PR funkcijų bazinės funkcijos: s(x) = x + 1, [ ] 2 q(x) = x x ; 22

kitos žinomos PR funkcijos: 1, jei x > 0 sg(x) =, 0, jei x = 0 0, jei x > 0 sg(x) =, 1, jei x = 0 x y, jei x > y x y =, 0, kitu atveju x + y, x y, x y, [x/y]. Pastaba. Žinomos dalinai rekursyvios funkcijos: dalinis skirtumas: x y, jei x y x y =, kitu atveju, dalinė dalyba: x/y, jei x dalosi iš y x/y =, kitu atveju, dalinė šaknis: x, jei x yra natūralaus skaičiaus kvadratas x =., 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 (x 1, x 2, x 3 ) = µ y (g(x 1, x 2, y) = x 3 ) = µ y ((s(y) x 1 ) sg(x 2 y) = x 3 ). 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

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 DR funkcijos apibrėžimo sritimi. 42 Ap. (Rekursyviai skaiti aibė). Netuščia aibė A yra rekursyviai skaiti, jei sutampa su kažkurios PR 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 minimizacijos 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

(42 = 43) Tarkime, jog aibė A sutampa su PR funkcijos h(x) reikšmių sritimi (42 ap.). Tai yra: 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ų pritaikius kompozicijos 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, turi sprendinį. Imkime funkciją h(t) = π2(t) 1 sg(f(π2(t), 1 π2(t))) 2 + d sg(f(π2(t), 1 π2(t))), 2 kur d bet koks aibės A elementas. h(t) PR, nes gauta iš žinomų PR funkcijų pritaikius kompozicijos 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) ) + d sg(f(a, u) ) }{{}}{{} =0 =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) ) + d sg(f(a, v) ) }{{}}{{} >0 >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

A rekursyvi, jei (Funkcija visur apibrėžta.) A rekursyviai skaiti, jei 1, jei a A χ A (a) = 0, jei a A 1, jei a A χ A (a) =, jei a A BR DR (Funkcija ne visur apibrėžta.) Rekursyviai skaičių aibių savybės: 1. Rekursyvi aibė A yra ir rekursyviai skaiti: 1, jei a A χ A (a) =, 0, jei a A tada aibė A sutampa su DR funkcijos f(a) = χ A (a) 1 apibrėžimo sritimi. Pagal 41 apibrėžimą A yra rekursyviai skaiti. 2. Baigtinė aibė yra ir rekursyvi ir rekursyviai skaiti: A = {a 1, a 2,..., a n } baigtinė aibė. Tada, jos charakteringoji funkcija: χ A (a) = sg( a a 1 ) + sg( a a 2 ) +... + sg( a a n ). 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 gauta iš PR funkcijų taikant kompozicijos, bei minimizacijos operatorius ir yra apibrėžta su visais x (x N), nes A A = N. 26

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ūralusis skaič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 skaiti aibė. 7.3. Ackermann funkcijos. Ackerman funkcijos yra: B 0 (a, x) = a + x B 1 (a, x) = a x B 2 (a, x) = a x B n (a, x + 1) = B n 1 (a, B n (a, x)) B n (a, 0) = 1, kai n 2 Jos yra visur apibrėžtos ir algoritmiškai apskaičiuojamos funkcijos, todėl yra bendrai rekursyvios funkcijos. 27

Ackermann funkcijos variantas, kai a = 2, yra funkcija A(n, x) = B n (2, x). Jam teisingos lygybės ir nelygybės: 1. A(n + 1, x + 1) = B n+1 (2, x + 1) = B n (2, B n+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) 2 x, 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žoruojama 1 funkcijos h(x), jei yra toks n 0 N, kad f(x) < h(x) su visais x > n 0. 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) = n 0 (n 0 N), kad f(x) < h(x), kai x > n 0 = f(x) yra mažoruojama funkcijos h(x). Kadangi bet kokia vieno argumento primityviai rekursyvi funkcija yra mažoruojama funkcijos h(x), tai funkcija h(x) PR. 1 Žr. DLKŽ. 28

7.4. Universaliosios funkcijos 45 Ap. (Universalioji funkcija). Tarkime, kad A yra kuri nors n argumentų funkcijų aibė. Funkciją F (x 0, x 1,..., x n ) vadinsime aibės A universaliąja, jei A = {F (0, x 1, x 2,..., x n ), F (1, x 1, x 2,..., x n ), F (2, x 1, x 2,..., x n ),... }, tai yra, jei F (i, x 1, x 2,..., x n ) A (i = 0, 1, 2,... ) ir nesvarbu, kokia būtų f(x 1, x 2,..., x n ) A, atsiras bent vienas toks natūralusis skaičius i, kad f(x 1, x 2,..., x n ) = F (i, x 1, x 2,..., x n ). 27 T. 1. Visų n argumentų PR funkcijų universalioji F (i, x 1, x 2,..., x n ) PR. 2. Visų n argumentų BR funkcijų universalioji F (i, x 1, x 2,..., x n ) BR. Proof 1. Tegu F (i, x 1, x 2,..., x n ) PR. Imkime funkciją g(x 1, x 2,..., x n ) = F (x 1, x 1, x 2,..., x n )+ 1. g(x 1, x 2,..., x n ) PR, nes gauta iš PR funkcijų F (i, x 1, x 2,..., x n ) ir (x + y) pritaikius kompozicijos operatorių. Kadangi g(x 1, x 2,..., x n ) yra n argumentų PR funkcija, tai j (j N) toks, kad F (j, x 1, x 2,..., x n ) = g(x 1, x 2,..., x n ). Tuomet paimkime x 1 = x 2 = = x n = 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 visais argumentais, todėl mūsų prielaida, jog F (i, x 0, x 1,..., x n ) PR yra neteisinga. 2. Tegu F (i, x 1, x 2,..., x n ) BR. Imkime funkciją g(x 1, x 2,..., x n ) = F (x 1, x 1, x 2,..., x n )+ 1. g(x 1, x 2,..., x n ) BR, nes gauta iš BR funkcijų F (i, x 1, x 2,..., x n ) ir (x + y) pritaikius kompozicijos operatorių. Kadangi g(x 1, x 2,..., x n ) yra n argumentų BR funkcija, tai j (j N) toks, kad F (j, x 1, x 2,..., x n ) = g(x 1, x 2,..., x n ). Tuomet paimkime x 1 = x 2 = = x n = 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 visais argumentais, todėl mūsų prielaida, jog F (i, x 0, x 1,..., x n ) 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) ir sudėties, kompozicijos, bei iteracijos operatorius. Remiantis išraiška per s(x) ir q(x), visoms PR vieno argumento funkcijoms suteiksime numerius tokiu būdu: 29

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 3 a 5 b h(x) = f(g(x)) = n(h(x)) = 4 3 a 5 b h(x) = f(x) I = n(h(x)) = 8 3 a Tarkime, turime funkciją f n (x), kurios numeris yra n. Pažymėkime F (n, x) = f n (x). Tada: f a (x) + f b (x), jei n = 2 3 a 5 b f a (f b (x)), jei n = 4 3 a 5 b f a (f n (x 1)), jei n = 8 3 a ir x > 0 F (n, x) = 0, jei n = 8 3 a 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: F (n, x), jei n kažkurios funkcijos numeris D(n, x) =. 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: D n+1 (x 0, x 1, x 2,..., x n ) = D(x 0, α n (x 1, x 2,..., x n )) 46 Ap.. DR n argumentų funkcijos grafikas yra taškų, sudarytų iš (n + 1) elemento, aibė: G = {(x 1, x 2,..., x n, y) : f(x 1, x 2,..., x n ) = y} 30

PAKEITIMAI d1c7c2e7bbc0c819cba92a03b60662aedf107324 Vytautas Astrauskas 2015-06-16 15:39:37 +0200 10c4be5f50afda2a368fda677afb63eef6b87382 Vytautas Astrauskas 2013-01-03 21:38:33 +0100 a00590681359d0b4b111595d4ee4f5f79b2a822e Vytautas Astrauskas 2013-01-03 21:16:51 +0100 f0fec6a1ce78a20cb06f83c6e5daf56c0e810238 Vytautas Astrauskas 2013-01-03 18:03:25 +0100 96c6758732a27c45a27ffa7c80a4b8f63b76fb99 Vytautas Astrauskas 2013-01-03 17:45:04 +0100 Smulkus pataisymas. Smulkūs formatavimo pataisymai. Pataisymai pagal lekt. dr. Adomo Birštuno pastabas. Pridėtas pakeitimų sąrašas. Atnaujintas šablonas. 31