- La algoritmo: Pri la koncepto
- La rekursiaj funkcioj
- Universalaj rekursiaj funkcioj
- Aŭtomatoj: Manieroj difini algoritmon
per abstrakta aŭtomato
Intuicie la koncepto pri algoritmo, laŭ ĝia uzado en diversaj branĉoj de
matematiko, havas la sekvajn trajtojn:
- ĝi konsistas el finia aro da precizaj preskriboj (ordonoj);
- ĝi operacias super precize difinita aro de eblaj enigaĵoj (argumentoj,
donitaĵoj);
- ĝi produktas eligaĵon (rezulton) por ajna allasebla enigaĵo post
finia nombro da paŝoj (paŝo estas plenumo de iu el la ordonoj);
- la algoritmo estas determinisma, t.e.
ĉiun paŝon sekvas unike difinita sekva paŝo (aŭ halto).
Inter la bone konataj ekzemploj pri algoritmo menciindas: Algoritmo difinas ĵeton de
ĉiuj eblaj enigaĵoj al ĉiuj eblaj eligaĵoj; nature, oni rajtas nomi tian
ĵeton algoritma (algoritmohava) ĵeto, aŭ komputebla funkcio. Tamen oni ne
konfuzu la du nociojn, algoritmo kaj komputebla ĵeto: ja ĉiu algoritma
ĵeto havas malfinian (kvankam numereblan) aron da algoritmoj ĝin
komputantaj. Per aritmetikigo oni
kutimas redukti studon de ajnaj algoritmaj ĵetoj al tiu pri naturnombraj
algoritmaj funkcioj.
Tradicia difino de rekursia funkcio uzas finian aron da bazaj
funkcioj kaj tri operatorojn. La fermo de la bazaj funkcioj per ĉiuj tri operatoroj
formas la klason de rekursiaj funkcioj; la fermo per la du unuaj (sen la
minimumigo) formas la klason de la primitive rekursiaj funkcioj.
- La bazaj komputeblaj funkcioj
- La substituo: Operatoro
- La primitiva rekursio: Operatoro
- La minimumigo: Operatoro
Kutime oni elektas la plej simplajn, klare komputeblajn funkciojn:
- konstanta funkcio
- O(x) = 0
- krementa funkcio
- A(x) = x + 1
- projekcio
- Pr[m, n](x1, … ,xn)=xm, 1≤m≤n
Temas pri kompono ĵetanta n-lokan
funkcion f kaj m-lokajn funkciojn
g1,…,gm al m-loka funkcio
h, tiel ke
h(x1,…,xn) = f(g1(x1,…,xm),…,gn(x1,… xn))
Tiu operatoro ĵetas n-lokan funkcion f kaj
n+2-lokan funkcion g al (unika) n+1-loka funkcio
h tiel ke
h(x1,…,xn,0) = f(x1,…,xn)
h(x1,…,xn,y+1) = g(x1,…,xn,h(x1,…,xn,y))
Operatoro de senbara serĉo, ĵetanta
rekursian funkcion
f: N0n+1→N
al nova rekursia funkcio
h:N0n→N
tia, ke por ajnaj x1,…,xn, y la egalaĵo
h(x1, …, xn) = y
veras SSE
f(x1,…,xn,0), … f(x1,…,xn,y−1)
estas
ĉiuj difinitaj kaj nenulaj, dum
f(x1,…,xn,y)
estas
difinita kaj egalas al 0; se tia y malestas, la valoro de
h(x1,…,xn) estas nedifinita. Simbole oni
esprimas minimumigon aplikante la mu-operatoron:
h(x1, …, xn) = µy[f(x1,…,xn,y) = 0]
- Senbara serĉo en Paskalo: La
ĝenerala mu-operatoro
- Barita serĉo en Paskalo: La
primitive rekursia speco
En Paskalo la senbaran serĉon oni povus
esprimi jene:
PROCEDURO mu(VAR y: entjera;
FUNKCIO g(yy:entjera; xx:vektoro);
x: vektoro);
STARTO y:=0;
DUM g(y,x)≠0 FARU y:=y+1
FINO
En Paskalo la primitive rekursian specon de la
mu-operatoro por naturnombra funkcio f oni povas esprimi per la
FUNKCIO mu(FUNKCIO f(yy: entjera; xx: vektoro);
baro: vektoro): entjera;
VAR y: entjera;
STARTO
y := 0;
DUM (y≠baro) KAJ (g(y, x)≠0) FARU y := y + 1;
mu := y;
FINO
Por ajna loknombro n>0 oni povas
indiki primitive rekursiajn funkciojn
U: N→N kaj
Tn:N0n+2→N
tiajn, ke por ajna rekursia funkcio
f:N0n→N
ekzistas e EN N (la Godela numero de f), veriganta la egalaĵon
f(x1,…,xn) = U(µy[Tn(e,x1,…,xn,y)=0])
El
tiu teoremo sekvas, i.a., unu el la pintaj rezultoj de la tuta teorio:
Por ĉiu klaso de n-lokaj rekursiaj funkcioj eblas konstrui
universalan funkcion n+1-lokan, t.e. tian rekursian
funkcion Fn, ke por ajna n-loka rekursia funkcio
f kaj por ĉiuj
x1,…,xn EN N validu
f(x1,…,xn) = Fn(e,x1,…,xn),
kie
e estas la Godela numero de f.
Universalajn rekursiajn funkciojn komputas universalaj Turingaj
aŭtomatoj.