290 likes | 620 Views
REKURSIOONI - JA KEERUKUS TEOORIA. Tiina Zingel. KIRJANDUS H.Rogers "Theory of Recursive Functions and Effective Computability" J.R.Shoenfield "Recursion Theory" D.S.Bridges "Computability" …. Loengute kava Sissejuhatus Põhimõisted Funktsioonid
E N D
REKURSIOONI- JA KEERUKUSTEOORIA Tiina Zingel
KIRJANDUS • H.Rogers "Theory of Recursive Functions and Effective Computability" • J.R.Shoenfield "Recursion Theory" • D.S.Bridges "Computability" …
Loengute kava • Sissejuhatus • Põhimõisted Funktsioonid Rekursiivsed funktsioonid ja Turingi masinad Rekursiivselt loenduvad hulgad • Lahenduvus ja mittelahenduvus • Taanduvused ja hierarhiad • Ülesannete keerukus
Rekursiooniteooria = arvutatavuse teooria Arvutus: algoritm SISEND VÄLJUND • Funktsioon on arvutatav, kui leidub algoritm, mis seda arvutab.
On olemas arvutatavaid ja mittearvutatavaid funktsioone, ehk • saab sõnastada probleeme, mille lahendamiseks ei leidu ühtki algoritmi • Peatumisprobleem: kas antud programm lõpetab töö antud sisendil?
Keerukus – kui palju ressursse on arvutamiseks vaja. • On olemas arvutatavaid ülesandeid, mille lahendamine nõuab liiga palju ressursse • Rändkaupmehe ülesanne: kas leidub marsruut, mis antud kaardil läbib kõiki linnasid ühe korra ja mille pikkus pole suurem kui etteantud arv k?
1.Funktsioonid ja relatsioonid. • Naturaalarvude hulk: N = {0, 1, 2, …}. • Sagedasti on tegemist algoritmidega, kus tulemuseks on “jah” või “ei”. Et tahame saada arvulist väljundit, siis samastame “jah” = 1 ja “ei” = 0. • Algoritmid – funktsioonid naturaalarvude hulgal
Osaline funktsioon: AB on funktsioon, mille määramispiirkonnaks (domain()) on hulga A mingi alamhulk ja muutumispiirkonnaks (range()) hulk B. • n-muutuja(n-aarne) osaline funktsioon – kujutus hulga An alamhulgast hulka B. • Totaalne funktsioon – kui funktsiooni määramispiirkonnaks on kogu A.
Olgu , : NN (+ )(n) = (n) + (n), kui (n) ja (n) on mõlemad määratud, määramata muidu ()(n) = (n)(n), kui (n) ja (n) on mõlemad määratud, määramata muidu. ◦(n) = ((n)), kui (n) on määratud ja kuulub määramispiirkonda, määramata muidu.
n-muutuja seos – hulga An alamhulk. • Kui R on n-muutuja seos, siis seda esindav funktsioon defineeritakse kui n-muutuja totaalne funktsioon R(x1, …, xn) =1, kui x1, …, xn on seoses R, 0, muidu. • Seos R on arvutatav, kui teda esindav funktsioon on arvutatav.
2. Rekursiivsed funktsioonid. • Turingi masinad • Kleene’i osalised rekursiivsed funktsioonid • Churchi -arvutus
Algfunktsioonid: • Naturaalarvud 0, 1, 2, … (0-muutuja funktsioonid) • Nullfunktsioon 0: NN, 0(n) = 0 • Suksessorfunktsioon sc: NN, sc(n) = n+1 • Projektsioonfunktsioonid Pnj : NnN, Pnj (k1, …, kn) = kj, k1, …, knN.
Osaline funktsioon : NnN (n1) saadakse osalistest funktsioonidest : Nn-1Nja : Nn+1Nlihtrekursiooniga, kui kõigi k1, …, knN korral (0, k2, …, kn) = (k2, …, kn) ja (k+1, k2, …, kn) = = (k, (k,k2, …, kn), k2, …, kn)
Rekursiivsete funktsioonide hulk P üle N: • P sisaldab kõiki algfunktsioone, • Kui g: NmN ja hk: NnN (k = 1, …, m) kuuluvad hulka P, siis kompositsioon g◦(h1, …, hm): NnN kuulub hulka P. • Kui funktsioonid g: Nn-1N ja h: Nn+1N kuuluvad hulka P, siis kuulub hulka P ka funktsioon f: NnN, mis saadakse funktsioonidest g ja h rekursiooni teel.
Seega P koosneb kõigist funktsioonidest, mida võib saada algfunktsioonidest, rakendades lõplik arv kordi kompositsiooni ja rekursiooni.
Hulga Nn element (k1, …, kn) võimaldab minimiseerimist osalise funktsiooni :Nn+1N suhtes, kui järgmine hulk ei ole tühi: D(k1, …, kn) = { mN (i, k1, …, kn) domain () (0 i m) ja (m, k1, …, kn) = 1}.
Osaline funktsioon : NnN saadakse funktsioonist minimiseerimise teel, kui määramispiirkonnaks on nende (k1, …, kn)Nn hulk, mis võimaldavad minimiseerimist suhtes ja (k1, …, kn) = = min D(k1, …, kn)(k1, …, kn)domain(). • Sellisel juhul kirjutame (k1, …, kn) = min k [(k, k1, …, kn) = 1].
Osaliste rekursiivsete funktsioonide hulk R üle N : • R sisaldab kõiki algfunktsioone, • Kui g: NmN ja hk: NnN (k = 1, …, m) kuuluvad hulka R, siis kompositsioon g◦(h1, …, hm): NnN kuulub hulka R.
Kui funktsioonid g: Nn-1N ja h: Nn+1N kuuluvad hulka R, siis kuulub hulka R ka funktsioon f: NnN, mis saadakse funktsioonidest g ja h rekursiooni teel. • Kui osaline funktsioon : Nn+1N kuulub hulka R, siis kuulub hulka R ka osaline funktsioon : NnN, mis on saadud funktsioonist minimiseerimise teel.
3. Rekursiivsete funktsioonide defineerimine. Lause 1. Kui funktsioon f on otseselt väljendatav muutujate ja rekursiivsete funktsioonide nimede kaudu, siis on f rekursiivne. Lause 2. Kui seos R on otseselt väljendatav muutujate ja rekursiivsete seoste nimede kaudu, siis on R rekursiivne seos.
Rekursiivsed sümbolid – need, mida võib definitsioonide paremas pooles kasutada; esialgu on nendeks muutujad, rekursiivsete funktsioonide ja seoste nimed. • Numbrid 0, 1, 2, … on rekursiivsed sümbolid, sest võime neid vaadelda kui 0-muutuja funktsioone. Nt. 2 = sc(sc(0)).
Funktsiooni f induktiivne definitsioon: f(0, x1, …, xn) = … f(y+1, x1, …, xn) = __ f(y, x1, …, xn) __ kus … sisaldab ainult rekursiivseid sümboleid ja __ võib sisaldada ka y. Lause 3. Kui f omab induktiivset definitsiooni rekursiivsete sümbolite kaudu, siis on f rekursiivne.
Lause 4. Olgu R1, …, Rn sellised rekursiivsed seosed, et iga (x1, …, xn) korral on tõene täpselt üks seostest R1(x1, …, xn), …, Rn(x1, …, xn). Olgu F1, …, Fn totaalsed rekursiivsed funktsioonid ja defineerime totaalse funktsiooni F: F(x1, …, xn) = F1(x1, …, xn), kui R1(x1, …, xn), … Fn(x1, …, xn), kui Rn(x1, …, xn). Siis on F rekursiivne.
Lause 5. Olgu F totaalne rekursiivne funktsioon ja G selline totaalne funktsioon, et G(x1, …, xn) = F(x1, …, xn) kõigi välja arvatud lõpliku arvu elementide (x1, …, xn) jaoks. Siis on G rekursiivne. Järeldus. Iga lõplik seos on rekursiivne.
4. Turingi masin. • Tähestik – lõplik mittetühi sümbolite hulk. • Sõna tähestikus A – tähestiku sümbolitest koosnev järjend. • Olgu X ja Y tähestikud, XY ja *Y\X.
Turingi masin (linditähestikuga Y ja sisendtähestikuga X) on nelik M = (Q, , q0, qF), kus • Q on lõplik seisundite hulk, • on (osaline) üleminekufunktsioon (: QYQY(L, R, ), • q0 on algseisund, q0Q, • qF on lõppseisund, qFQ ja (qF, y) on määramata kõigi yY jaoks.
Osaline funktsioon : NnN on Turingi mõttes arvutatav, kui leidub binaarne TM, mis seda arvutab. • Osaline funktsioon : NnNm (m > 1) on Turingi mõttes arvutatav, kui funktsioonid Pmk◦: NnN (k = 1, …, m) on Turingi mõttes arvutatavad.
Lause 1. Kui on osaline funktsioon : NnN, mida arvutab TM, mille sisendtähestikus sisaldub {0,1}, siis on Turingi mõttes arvutatav. Teoreem 2. Iga osaline rekursiivne funktsioon : NnN on Turingi mõttes arvutatav.
Churchi tees. Iga arvutatav funktsioon on arvutatav Turingi mõttes. Churchi teesi pole tõestatud, kuid üldiselt loetakse see kehtivaks. • kõik katsed arvutatava osalise funktsiooni (NnN) formaliseerimiseks viivad sama funktsiooniklassini. • Ei leidu ühtki näidet vastupidisest, s.t. arvutatavast funktsioonist, mis ei oleks arvutatav Turingi mõttes.