{{TIN065 Prednášky}}
Na minulých prednáškach sme si vysvetlili, čo je to skok, ďalej sme si povedali, že operácia skoku je vlastne iba relativizovaný halting problém, a že A' je najzložitejšia rekurzívne spočítateľná množina vzhľadom k A (tak, ako K bola k ).
Ďalej sme si povedali niečo o vlastnostiach skoku, z ktorých asi najdôležitejšia bola tá, že pre dve množiny, A a B, také, že A vieme T-previesť na B, ich skoky A' a B' sú na seba 1-prevoditeľné a späť (). Z toho samozrejme vyplýva a to nám hovorí, že skoky sú dobre definované na T-stupňoch a dokonca veľmi silne - skok T-stupňa je 1-stupeň. Vieme teda definovať skok T-stupňa a ten aj iterovať.
A ešte o skokoch vieme, že sú uniformné: .
Limitná vyčísliteľnosť
Už vieme, že najjednoduchšie sú rekurzívne množiny. Existuje ich charakteristická funkcia, ktorá stále konverguje a odpovie, či prvok padne do množiny alebo nie.
Potom máme 1-rekurzívne spočítateľné množiny (klasické RSM). Pre takéto množiny máme funkciu, ktorá nemusí stále konvergovať, ale platí o nej, že ak skonverguje, tak o prvku, ktorý sme jej dali na vstupe rozhodne, či padol do množiny alebo nie. V nultom kroku žiaden prvok v množine nie je. A v ďalších krokoch môže prvok padnúť do množiny. Podstatné je, že ak po niekoľkých krokoch funkcia skonverguje a odpovie, že v množine prvok je, tak už pre žiadny iný, väčší počet krokov toto svoje rozhodnutie nikdy nemôže zmeniť. To znamená, že pre každé sa môže nepadnutie na padnutie zmeniť maximálne raz.
Podobne ako máme 1-rekurzívne spočítateľné množiny, máme aj 2-rekurzívne spočítateľné množiny. Opäť všetky prvky začínajú mimo množiny. V každom kroku môžu buď padnuť dnu alebo, ak už dnu sú, tak môžu z množiny vypadnúť. Ale keď pridávame počet krokov, pre každé môžu byť tieto zmeny najviac dve.
A prejdeme k limitnej vyčísliteľnosti. Množina A sa nazýva wen:Limiting%20recursive ak tých zmien je pre každý prvok iba konečne veľa (ale nedáme si žiaden odhad, ani globálny, ani pre jednotlivé prvky). A teraz formálne. A je limitne vyčísliteľná, ak existuje ORF taká, že pre každé platí: , kde je počet krokov. Limita vlastne hovorí, že stav pre každé sa môže zmeniť iba konečne veľa krát.
Menej všeobecná veta
Toto je špeciálny prípad tvrdenia, ktoré bude neskôr v tejto prednáške tiež dokázané.
<b>Znenie:</b> práve vtedy, ak je limitne vyčísliteľná.
je množina, takže je totálna. To znamená, že musí byť rekurzívna v . Teda je -ORF.
<b>Dôkaz:</b> Najprv . Máme množinu , ktorá je turingovsky prevoditeľná na . To znamená, že existuje <em>z</em> také, že . To je nemilé, pretože o , čo je vlastne známa množina , nevieme povedať, či tam niečo padne alebo nie - je to známy halting problém. je ale rekurzívne spočítateľná množina, a teda ju môžeme efektívne generovať. " je "ošklivé", ale vieme to aproximovať."
je rekurzívne spočítateľná, takže platí: pre nejaké . Zadefinujme si ako množinu, ktorá obsahuje tú časť množiny , ktorú za krokov vygenerujeme. A ďalej si zadefinujme funkciu takto:
$f(x,s) = \begin{cases}
\Phi_{z,s}(\emptyset's)(x),&\mbox{ak } \Phi{z,s}(\emptyset'_s)(x)\downarrow\
s+1&\mbox{inak}\
\end{cases} $
Je vidieť, že je ORF (zastaví stále). Už nám len treba ukázať, že je to tá pravá ORF pre našu množinu . Inak povedané, potrebujeme ukázať, že platí: .
Vieme, že je rekurzívna vzhľadom k . To znamená, že program pre vždy zastaví: a z toho vyplýva: . Ak sa totiž zastaví, tak sme sa orákula spýtali iba konečný počet otázok, a preto nám stále stačí jeho konečná časť . je vlastne <em>konečný</em> reťazec núl a jednotiek, pre ktorý platí:
.
Tu príde niečo, čo nazveme heslom "počkaj na všetky". Tvrdíme, že ak máme , tak existuje také , že pre každé platí pre .
Je vidieť, že pre . Formálne by sa použilo nejaké obmedzenie (jednoducho z množiny vezmeme len jej konečný úsek).
Ešte uvažujme dobu výpočtu: . Vezmeme a máme .
Tým by mal byť dôkaz jedným smerom hotový. Poznámky, ktoré môžu pomôcť ho pochopiť: Dôležité je, že pre každé nám stačí konečný kus orákula. Treba si uvedomiť, že ani sa nedá všeobecne určiť. Vieme iba, že raz sa prestane meniť. Nevieme však kedy. Ak funkcia na vstupe neskončí výpočet po s krokoch, tak aby sme tento prípad odlíšili od normálneho výsledku, tak položíme rovné . Keďže vieme, že program raz určite zastaví, tak hodnota funkcie f v druhom prípade je nepodstatná. Nemusí tam nutne byť . Limita funkcie nezávisí na konečnom počte prvkov.
Dôkaz v smere : Vieme, že , kde je ORF. Z definície limity platí: (obor hodnôt týchto funkcií je podmnožinou všetkých prirodzených čísel, a tam nemôžeme ísť ľubovoľne blízko - musí sa to začať rovnať). Otázka, ktorá nás zaujíma je, aké zložité je nájsť . Ukážeme, že sa dá nájsť z .
Naša otázka pre dané je: ?. Alebo tiež: "Nastane ešte zmena?". Ak sa na to pozrieme, zistíme, že ide o rekurzívne spočítateľnú podmienku - máme existenčný kvantifikátor na všeobecne rekurzívnom predikáte. Všeobecne rekurzívny znamená napríklad všeobecne rekurzívny vzhľadom k , a to zase znamená, že tento predikát je možné 1-previesť (a teda aj T-previesť) na . Lenže T-prevoditeľnosť na znamená, že tento predikát je rekurzívny, takže aj jeho negácia: je rekurzívna.
A pomocou , teda pomocou <em>while</em> cyklu, budeme minimalizovať . Takže máme akúsi rekurzívnu procedúru a okolo nej <em>while</em> cyklus. Tým sme dostali
ParseError: KaTeX parse error: Undefined control sequence: \mbox at position 11: \emptyset'\̲m̲b̲o̲x̲{-ČRF}
. Keďže však podľa predpokladu limita stále existuje, tak je toParseError: KaTeX parse error: Undefined control sequence: \mbox at position 11: \emptyset'\̲m̲b̲o̲x̲{-ORF}
. A touto funkciou zabezpečíme prevoditeľnosť . Koniec dôkazu.Všeobecnejšia veta
#Ak je ORF, tak
ParseError: KaTeX parse error: Undefined control sequence: \mbox at position 26: …o \infty}f(x,s)\̲m̲b̲o̲x̲{ je }
ParseError: KaTeX parse error: Undefined control sequence: \mbox at position 11: \emptyset'\̲m̲b̲o̲x̲{-ČRF}
#Každá
ParseError: KaTeX parse error: Undefined control sequence: \mbox at position 11: \emptyset'\̲m̲b̲o̲x̲{-ČRF}
je <em>limitne vyčísliteľná</em>, čiže ak jeParseError: KaTeX parse error: Undefined control sequence: \mbox at position 11: \emptyset'\̲m̲b̲o̲x̲{-ČRF}
, tak existuje ORF , taká, že . Všimnime si, že tu už nie je rovnosť, ale podmienená rovnosť.V druhom bode dokonca existuje funkcia taká, že .
Poznámka: Táto veta hovorí, že jeden limitný prechod odpovedá skoku. Ak máme niečo a urobíme na tom limitu, tak sme urobili skok a opačne.
Dôkaz je podobný ako v predchádzajúcej vete, akurát už nemusí vždy konvergovať.
Prvá časť sa dokazuje úplne rovnako: Použijeme minimalizáciu na rekurzívnu pormienku , a teda máme , čo je práve limita (hodnota v prvom takom , kde sa ďalej už nemení), ale tá nemusí existovať, lebo podmienka na je čiastočne rekurzívna, a teda aj limita je čiastočne rekurzívna.
Druhá časť zasa vezme , ktoré je
ParseError: KaTeX parse error: Undefined control sequence: \mbox at position 11: \emptyset'\̲m̲b̲o̲x̲{-ČRF}
, teda existuje pevné také, že . Vyrobíme si funkciu takto:$g(x,s) = \begin{cases}
<\sigma, x, y>,&\mbox{ak } \Phi_{z,s}(\sigma)(x)\simeq y \land \sigma \leq \emptyset'_s\
s+1&\mbox{inak}
\end{cases} $
Už nám nestačí iba limitný výstup, ale potrebujeme stabilizovať celý výpočet, pretože by sa mohlo stať, že budeme dostávať jeden a ten istý zlý výsledok stále cez iné . Správna odpoveď v takom prípade je, že funkcia diverguje, ale limita postupnosti výstupov by existovala, čo je zlé.
Potom si vytvoríme funkciu takto:
$
f(x, s) = \begin{cases}
g(x, s)_3&\mbox{ak } g(x, s) = g(x, s-1)\
s+1&\mbox{inak}
\end{cases} $
Poznámka: je z trojice .
Vidíme, že je ORF a tiež, že limita cez existuje práve vtedy, ak existuje limita . A má limitu vtedy, ak sa stabilizuje trojica , a teda je už počiatkom našej , a ak , tak limita je rovná .
$
\lim_{s \to \infty} f(x, s) = \Phi_z(\emptyset')(x) $
Nové v tomto dôkaze je, že už nám nestačí iba stabilizácia hodnôt - mohlo by sa totiž stať, že by sme dostávali nejaký "stabilný" výsledok na rôznych .
Nabudúce budeme tieto tvrdenia relativizovať a povieme si niečo o aritmetickej hierarchii.