10.02.2019 Views

opora

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

KAPITOLA 6. MEZE ROZHODNUTELNOSTI 134<br />

– Obsah čtyř čítačů i, j, k, l je možné zakódovat jako 2 i 3 j 5 k 7 l .<br />

– Přičtení/odečtení je pak možné realizovat násobením/dělením 2, 3, 5, či<br />

7.<br />

Mezi další Turingovsky úplné výpočetní mechanismy pak patří např. λ-kalkul<br />

či parciálně-rekurzívní funkce (viz následující kapitola).<br />

6.8 Vyčíslitelné funkce<br />

6.8.1 Základy teorie rekurzivních funkcí<br />

Budeme se snažit identifikovat takové funkce, které jsou „spočitatelné“, tj. vyčíslitelné<br />

v obecném smyslu (bez ohledu na konkrétní výpočetní systém). Abychom<br />

snížili extrémní velikost třídy těchto funkcí, která je dána také varietou definičních<br />

oborů a oborů hodnot, omezíme se, uvažujíce možnost kódování, na funkce tvaru:<br />

f : N m → N n<br />

kde N = {0, 1, 2, . . .}, m, n ∈ N.<br />

Konvence: n-tici (x 1 , x 2 , . . . , x n ) ∈ N n budeme označovat jako x<br />

Klasifikace parciálních funkcí:<br />

• Totální funkce nad množinou X 5 – definičním oborem je celá X<br />

• Striktně parciální funkce nad množinou X – alespoň pro jeden prvek x ∈ X<br />

není definována funkční hodnota<br />

Příklad 6.8.1 Totální funkce plus<br />

plus : N × N → N<br />

plus(x, y) = x + y<br />

N × N<br />

plus<br />

N<br />

Příklad 6.8.2 Striktně parciální funkce div<br />

div : N × N → N<br />

div<br />

div(x, y) = celá část x/y, je-li y ≠ 0<br />

N × N<br />

{ | y=0}<br />

N<br />

6.8.2 Počáteční funkce<br />

Hierarchie vyčíslitelných funkcí je založena na dostatečně elementárních tzv. počátečních funkcích,<br />

které tvoří „stavební kameny“ vyšších funkcí.<br />

Jsou to tyto funkce:<br />

1. Nulová funkce (zero function): ξ() = 0<br />

zobrazuje „prázdnou n-tici“ ↦→ 0<br />

2. Funkce následníka (successor function): σ : N → N<br />

σ(x) = x + 1<br />

3. Projekce (projection): π n k : Nn → N<br />

Vybírá z n-tice k-tou složku, např.: π 3 2(7, 6, 4) = 6 a π 2 1(5, 17) = 5<br />

Speciální případ: π n 0 : N n → N 0 , tj. např. π 3 0(1, 2, 3) = ()<br />

5 V dalším bude množinou X obvykle N k .

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!