Teor´ıa de la Complejidad Computacional Tema II: Modelos de Computaci´ on
Mario de J. P´erez Jim´enez
Grupo de Investigaci´on en Computaci´on Natural Dpto. Ciencias de la Computaci´on e Inteligencia Artificial
Universidad de Sevilla
[email protected] http://www.cs.us.es/~marper/
M´aster Universitario en Matem´aticas Curso 2016-2017
´Indice del tema I
I Modelo de computaci´on de las m´aquinas de Turing.
• Sintaxis.
• Sem´antica.
• M´aquinas de Turing con k cintas.
• M´aquinas de Turing no deterministas.
I Modelo de computaci´on GOTO.
• Programas GOTO.
• Funciones computables en el modelo GOTO:
Modelos de Computaci´ on
Formalizaci´on matem´atica del concepto deprocedimiento mec´anico:
I Sintaxis.
I Sem´antica.
Modelos de computaci´on orientado a:
I Programas(Ej: modelo GOTO).
I Funciones(Ej: funciones recursivas).
I M´aquinas(Ej: m´aquinas de Turing).
Modosde computaci´on:
I Determinista.
I No-determinista.
I Secuencial.
I Paralelo.
3 / 29
M´ aquinas de Turing: Sintaxis (I)
Es una tupla, M = (Q, q0, F , Σ, B, ., δ) tal que:
• Q es un alfabeto (estados).
• q0∈ Q (estado inicial).
• F = {qh, qy, qn} ⊆ Q (estados finales, todos ellos distintos entre s´ı).
• Σ es un alfabeto (de la m´aquina) tal que Q ∩ Σ = ∅ (s´ımbolos).
• B ∈ Σ (s´ımbolo blanco).
• . ∈ Σ (primer s´ımbolo), . 6= B.
• δ es una aplicaci´on de (Q − F ) × Σ en Q × Σ × {0, 1, −1} (funci´on de transici´on) tal que:
? Si δ(q, .) = (q0, s0, x ) entonces s0= . ∧ x = 1.
? Si s 6= . y δ(q, s) = (q0, s0, x ) entonces s06= ..
M´ aquinas de Turing: Sintaxis (II)
Una m´aquina de Turing M consta de:
I Unacinta infinitaa la derecha con primera casilla.
I Unacabeza de trabajo lectora/escritoraque se puede desplazar a lo largo de la cinta.
Si δ(q, s) = (q0, s0, x ), diremos que M pasa de q a q0, sustituye s por s0y se mueve seg´un el valor de x ∈ {0, 1, −1}.
s s s s s s s s s s
s1 2 3 4 5 6 7 8 9 10 11BB B B B B B B B B Unidad de Control
q
5 / 29
M´ aquinas de Turing: Sem´ antica (I)
Configuraci´on(descripci´on instant´anea) de una m´aquina de Turing M:
∗ Una terna (q, w , u) tal que q ∈ Q, w ∈ Σ∗y u ∈ Σ∗. Una configuraci´on (q, w , u) puede ser interpretada como sigue:
? q es el estado actual en que se encuentra M.
? . w u es la palabra escrita en la cinta de M.
? Si w no es la cadena vac´ıa, M analiza el ´ultimo s´ımbolo de w . Caso contrario, analiza el s´ımbolo . de la primera casilla.
s s s s s s s s s s
s1 2 3 4 5 6 7 8 9 10 11BB B B B B B B B B Unidad de Control
q
w u
M´ aquinas de Turing: Sem´ antica (II)
Sea C = (q, w , u) una configuraci´on de M.
∗ Si q = q0, w es la cadena vac´ıa λ y u ∈ (Σ − {B})∗: C es laconfiguraci´on inicialcon dato de entrada u y notaremos C = Iu.
∗ Si q ∈ F : C es unaconfiguraci´on de parada.
∗ Si q = qy: C es unaconfiguraci´on de aceptaci´on.
∗ Si q = qn: C es unaconfiguraci´on de rechazo.
Configuraci´on siguiente: Sea (q, w1. . . wr −1wr, u1u2. . . us) una configuraci´on de M.
∗ Si δ(q, wr) = (q0, wr0, −1), diremos que la configuraci´on siguiente de (q, w1. . . wr −1w↓r
| {z }
,z }| { u1u2. . . us)
es (q0, w1· · ·wr −1↓
| {z }
,
z }| {
wr0u1u2. . . us).
∗ Si δ(q, wr) = (q0, wr0, +1), diremos que la configuraci´on siguiente de (q, w1. . . wr −1w↓r
| {z }
,z }| { u1u2. . . us)
es (q0, w1. . . wr −1wr0u↓1
| {z }
,z }| { u2. . . us).
∗ Si δ(q, wr) = (q0, wr0, 0), diremos que la configuraci´on siguiente de (q, w1. . . wr −1w↓r
| {z }
,z }| { u1u2. . . us) es
(q, w1. . . wr −1
↓ wr0
| {z }
,z }| { u1u2. . . us).
7 / 29
M´ aquinas de Turing: Sem´ antica (III)
Unacomputaci´onC de una MT es una sucesi´on (finita o infinita) de configuraciones (C0, C1, . . . , Cr), r ∈ N ∪ {∞}, tal que
I C0es una configuraci´on inicial (asociada a un dato de entrada u ∈ (Σ − {B})∗).
I Para cada i < r , la configuraci´on Ci +1es la configuraci´on siguiente de Ci. I La computaci´on C es de parada si
? r ∈ N y la ´ultima configuraci´on Cres (q, λ, u0), siendo q ∈ {qy, qn, qh) y u0∈ (Σ − {B})∗.
∗ Si q = qy: Maceptael dato u. Escribiremos M(u) = Y .
∗ Si q = qn: Mrechazael dato u. Escribiremos M(u) = N.
∗ Si q = qh: elresultadode la computaci´on es u0∈ (Σ − {B})∗. Escribiremos M(u) = u0.
I Si la computaci´on C es de parada, escribiremos M(u) ↓
I Si la computaci´on C no es de parada, escribiremos M(u) ↑
Decisi´ on y aceptaci´ on de un lenguaje en una MT
Sea M una MT cuyo alfabeto de trabajo es Σ.
Sea L un lenguaje sobre Σ \ {B}.
I M decideel lenguaje L sii para cada u ∈ (Σ − {B})∗:
? Si u ∈ L, entonces M(u) = Y .
? Si u /∈ L, entonces M(u) = N.
I M aceptael lenguaje L sii para cada u ∈ (Σ − {B})∗:
? Si u ∈ L, entonces M(u) = Y .
? Si u /∈ L, entonces M(u) ↑.
9 / 29
Lenguajes recursivos y recursivamente enumerables
I L ⊆ (Σ − {B})∗esrecursivosii existe una MT que decide L.
I L ⊆ (Σ − {B})∗esrecursivamente enumerablesii existe una MT que acepta L.
Proposici´on 1: Todo lenguaje recursivo es r.e.
Proposici´on 2: Existen lenguajes r.e. que no son recursivos.
Ejemplo de una MT de decisi´ on
Q = {q0, q1, q2, q01, q20, q3, qh, qy, qn}; Σ = {0, 1, B, .}
(Q − F ) × Σ Q × Σ × {0, 1, −1}
(q0, 0) (q1, ., 1) (q0, 1) (q2, ., 1) (q0, B) (qy, B, 0) (q0, .) (q0, ., 1) (q1, 0) (q1, 0, 1) (q1, 1) (q1, 1, 1) (q1, B) (q10, B, −1)
(q2, 0) (q2, 0, 1) (q2, 1) (q2, 1, 1) (q2, B) (q20, B, −1)
(q10, 0) (q3, B, −1) (q10, 1) (qn, 1, 0) (q01, .) (qy, B, 1) (q20, 0) (qn, 1, 0) (q20, 1) (q3, B, −1) (q02, .) (qy, ., 1) (q3, 0) (q3, 0, −1) (q3, 1) (q3, 1, −1) (q3, .) (q0, ., 1)
11 / 29
Funciones computables por m´ aquinas de Turing
I Una MT, M,calculaf : (Σ − {B})∗→ Σ∗sii para cada u ∈ (Σ − {B})∗ se tiene que M(u) = f (u).
I Unafunci´on f es recursivasii existe una MT que calcula f . Un ejemplo: Q = {q0, q1, qh, qy, qn}; Σ = {0, 1, B, .}
(Q − F ) × Σ Q × Σ × {0, 1, −1}
(q0, 0) (q0, 0, 1) (q0, 1) (q0, 1, 1) (q0, B) (q1, B, −1) (q0, .) (q0, ., 1) (q1, 0) (qh, 1, 0) (q1, 1) (q1, 0, −1) (q1, B) (q1, B, 0) (q1, .) (qh, ., 1)
Hallemos M(01)
1.q. 0 1 B.0 5. . 0 q1 B.1 2. . q0 1 B.0 6. . q0 0 B.1 3. . 0 q1 B.0 7. . q1 0 B.h 4. . 0 1 B.q0
M´ aquinas de Turing que resuelven problemas
¿C´omoresolver un problemaX ?
I Si X es un problema de decisi´on,
? UnaMT resuelve X si decide el lenguaje LX asociado a X .
I Si X es un problema identificado por una aplicaci´on fX : LX → Σ∗,
? UnaMT resuelve X si calcula la funci´on fX.
13 / 29
M´ aquinas de Turing con k cintas
I En cada instante la m´aquina se encuentra en un estado.
I Consta de k cintas, infinitas a la derecha con primera casilla.
I Cada cinta tiene una cabeza que en cada instante:
? Analiza una casilla.
? Puede reescribir sobre la casilla.
? Puede cambiar de estado (el mismoen todas las casillas).
? Se puede desplazar: 0, 1, −1.
M´ aquinas de Turing con k cintas
I Para realizar una computaci´on con entrada u ∈ Σ∗:
? Se registra la entrada en la primera cinta.
? Las restantes cintas est´an en blanco.
? Todas las cabezas apuntan a la primera casilla.
? La m´aquina se encuentra en el estado inicial.
? La funci´on de transici´on act´ua sobre cada cinta.
• Si termina en qh, la salida es el contenido de la cinta k–´esima.
Teorema : Para cada MT, M, con k cintas existe una MT, M0, con una cinta tal que M(u) = M0(u), para cada entrada u.
¿Qu´epeaje se ha de pagarpara “pasar” de una MT con k cintas a una MT con una cinta que sea equivalente a ella?
15 / 29
M´ aquinas de Turing no deterministas
Es una tupla, M = (Q, q0, F , Σ, B, ., δ) tal que:
• Q es un alfabeto (estados).
• q0∈ Q (estado inicial).
• F = {qh, qy, qn} ⊆ Q (estados finales, todos ellos distintos entre s´ı).
• Σ es un alfabeto (de la m´aquina) tal que Q ∩ Σ = ∅ (s´ımbolos).
• B ∈ Σ (s´ımbolo blanco).
• . ∈ Σ (primer s´ımbolo), . 6= B.
• δ es una aplicaci´on de (Q − F ) × Σ en P(Q × Σ × {0, 1, −1}) (funci´on de transici´on) tal que
? Si (q0, s0, x ) ∈ δ(q, .) entonces s0= . ∧ x = 1.
? Si (q0, s0, x ) ∈ δ(q, s) y s 6= . entonces s06= ..
Toda MT determinista es una MT no determinista.
Teorema : Si una MT no determinista decide L, entonces existe otra MT determinista con tres cintas que decide L.
¿Qu´epeaje se ha de pagarpara “pasar” de una MTND que decide L a una MTD que
Modelo de computaci´ on GOTO: Sintaxis
Modelo secuencial y determinista (conjunto de datos: N).
El lenguaje de programaci´on GOTO
1. Variables:
De entrada: X1(= X ), X2, X3, ...
De salida: Y
Auxiliares: Z1(= Z ), Z2, Z3, ...
VAR: conjunto de todas las variables de GOTO.
2. Etiquetas: A1, B1, C1, D1, E1, A2, B2, C2, D2, E2, . . .
• Notaci´on: A = A1, B = B1, C = C1, D = D1, E = E1. 3. Instrucciones b´asicas: Para cada variable V y cada etiqueta L:
• Incremento: V ←− V + 1
• Decremento: V ←− V − 1
• Condicional: IF V 6= 0 GOTO L
• Skip: V ←− V
• Instrucciones etiquetadas: [K ] V ←− V + 1; [K ] V ←− V − 1; [K ] IF V 6= 0 GOTO L;
[K ] V ←− V , siendo K una etiqueta distinta de E .
Programa GOTO:Sucesi´on finita de instrucciones b´asicas (etiquetadas o no) cuya ´ultima instrucci´onNOes Y ←− Y.
• Si P = I1, . . . , Ines un programa GOTO, lalongitudde P es n (se notar´a por |P|).
• ElPrograma Vac´ıo: consta de 0 instrucciones.
• GOTOP: conjunto de todos los programas GOTO.
17 / 29
Modelo de computaci´ on GOTO: Sem´ antica (I)
Sea P = I1, . . . , Inun programa GOTO.
• var (P): conjunto de todas las variables que aparecen en P.
• Unestadode P es una aplicaci´on s de VAR en N: si s(V ) = m, notaremos V = m.
• Unaconfiguraci´onde P, es un par σ = (i , s) donde 1 ≤ i ≤ |P| + 1 y s es un estado de P.
∗ Configuraci´on inicial: i = 1, s(V ) 6= 0 para un n´umero finito de variables de entrada y s(V ) = 0 para cada variable que no sea de entrada.
∗ Configuraci´on de parada: i = |P| + 1.
Si σ = (j , s) una configuraci´on de P que no es de parada, laconfiguraci´on siguienteσ0= (j0, s0) de σ (σ `pσ0) se define como sigue:
. Si Ij≡ V ←− V + 1 y s(V ) = m, entonces j0= j + 1 y s0se obtiene de s sustituyendo el valor V = m por el valor V = m + 1.
. Si Ij≡ V ←− V − 1 y s(V ) = m, entonces j0= j + 1 y si m > 0, entonces s0se obtiene de s sustituyendo el valor V = m por el valor V = m − 1 (si m = 0, entoncess0= s).
. Si Ijes de tipo SKIP, entonces j0= j + 1 y s0= s.
. Si Ij≡ IF V 6= 0 GOTO L, entonces σ0= σ. Adem´as,
∗ Si s(V ) = 0, entonces j0= j + 1 (ir a la siguiente instrucci´on o terminar si j = n).
∗ Si s(V ) 6= 0 y existe k tal que Ikes la primera instrucci´on etiquetada con L, entonces j0= k (ir a la primera instrucci´on etiquetada con L).
Modelo de computaci´ on GOTO: Sem´ antica (II)
Ejecuci´on de un programa GOTOP = I1, . . . , In.
I Unacomputaci´on(o ejecuci´on) C de P es una sucesi´on (finita o infinita) de configuracionesσ1, . . . , σi, . . . tal que:
? σ1= (1, s1) es una configuraci´on inicial;
? Si σino es de parada, entonces σi`Pσi +1.
I P(a1, . . . , ak): computaci´on de P con dato de entrada (a1, . . . , ak) es la que corresponde a la configuraci´on inicial σ1= (1, s1), siendo
s1(X1) = a1, s1(X2) = a2, . . . , s1(Xk) = aky s1(V ) = 0, para las restantes variables V
I Si C = s1, . . . , si0 es una sucesi´on finita, diremos que
? C es de parada:P(a1, . . . , ak) ↓
? La configuraci´on si0es de parada.
? P(a1, . . . , ak) = b, siendo b el valor de Y en la configuraci´on de parada si0 (resultado de ejecutar el programa P con dato de dentrada (a1, . . . , ak)).
I Si C es una sucesi´on infinita, diremos que C no es de parada: P(a1, . . . , ak) ↑
I S´olo las computaciones de parada proporcionan resultados.
19 / 29
Un ejemplo
P ≡
[A] IF X 6= 0 GOTO B Z ←− Z + 1 IF Z 6= 0 GOTO E [B] X ←− X − 1
Y ←− Y + 1 IF X 6= 0 GOTO A
HallemosP(3):
σ1= (1, {X = 3, Y = 0, Z = 0}) σ2= (4, {X = 3, Y = 0, Z = 0}) σ3= (5, {X = 2, Y = 0, Z = 0}) σ4= (6, {X = 2, Y = 1, Z = 0}) σ5= (1, {X = 2, Y = 1, Z = 0}) σ6= (4, {X = 2, Y = 1, Z = 0}) σ7= (5, {X = 1, Y = 1, Z = 0}) σ8= (6, {X = 1, Y = 2, Z = 0}) σ9= (1, {X = 1, Y = 2, Z = 0}) σ10= (4, {X = 1, Y = 2, Z = 0}) σ11= (5, {X = 0, Y = 2, Z = 0}) σ12= (6, {X = 0, Y = 3, Z = 0}) σ13= (7, {X = 0, Y = 3, Z = 0})
Funciones GOTO–computables
Sean P un programa GOTO y k ≥ 1.
I Funci´on de aridad k calculada por P:
Es la funci´on [[P]](k): Nk − → N, definida por
[[P]](k)(a1, . . . , ak) = P(a1, . . . , ak) = resultado de ejecutar P con dato de entrada (a1, . . . , ak)
Unafunci´onf de aridad k ≥ 1 esGOTO–computablesi existe un programa GOTO, P, tal que f = [[P]](k).
I G-COMP: conjunto de todas las funciones GOTO computables.
I G-COMP(k): conjunto de todas las funciones GOTO computables de aridad k.
21 / 29
Ejemplos de funciones GOTO–computables
I Lafunci´on identidadIdN: N → N definida por IdN(x ) = x , ∀x ∈ N.
IF X 6= 0 GOTO B Z ←− Z + 1 IF Z 6= 0 GOTO E [B] X ←− X − 1
Y ←− Y + 1 IF X 6= 0 GOTO B
I Lafunci´on vac´ıaf∅(k), k ≥ 1: f∅(k)(x1, . . . , xk) ↑, ∀(x1, . . . , xk) ∈ Nk.
[A] Z ←− Z + 1 IF Z 6= 0 GOTO A
I Lafunci´on nulaO(k), k ≥ 1: O(k)(x1, . . . , xk) = 0, ∀(x1, . . . , xk) ∈ Nk. Es calculada por cualquier programa que pare siempre y en el que no aparezca la variable de salida Y .
Codificaci´ on de programas GOTO
Cadaprograma GOTOse codifica por un n´umero natural: #(P)
? Todo n´umero naturalcodificaun ´unico programa GOTO.
Para ello, se codifican lasinstrucciones GOTO: #(I )
? Todo n´umero naturalcodificaun ´unica instrucci´on GOTO.
Para ello, se codifican:
I Lasvariables.
I Lasetiquetas.
I Losformatosde las instrucciones (skip, incremento, decremento y condicional).
Si P = (I1, I2, . . . , In) es un programa GOTO, se define el c´odigo de P as´ı:
#(P) = [#(I1), #(I2), . . . , #(In)] − 1
23 / 29
Programas universales (I)
Cuesti´on:
Para cada n ≥ 1, ¿es computable la funci´on de aridad (n + 1) que asigna a cada n-tupla (x1, . . . , xn) y cada programa GOTO P el resultado de la computaci´on P(x1, . . . , xn)?
Responderemosafirmativamentea esta cuesti´on.
I Un programaUnque calcule esa funci´on de aridad (n + 1) se denomina programa universal.
I La funci´on de aridad (n + 1) que calcula Un se notar´a porUn.
[[Un]](n+1)(x1, . . . , xn, #(P)) = [[P]](n)(x1, . . . , xn) = Un(x1, . . . , xn, #(P)) Teorema. Para cada n ≥ 1,existeun programa GOTO, Un, tal que para todo
~x ∈ Nny todo programa GOTO, P, se tiene:
[[Un]](n+1)(~x , #(P)) = [[P]](n)(~x )
B´asicamente, un programa universal es unint´erprete de GOTO.
El programa universal U
n Z ←− Xn+1+ 1S ←−Qn i =1(p2i)Xi K ←− 1
(1) inicializaci´on
[C ] IF K = Long (Z ) + 1 GOTO F (2) test de parada
U ←− r ((Z )k) P ←− pr (U)+1
IF l (U) = 0 GOTO N IF l (U) = 1 GOTO A IF P - S GOTO N IF l (U) = 2 GOTO M
K ←− µi ≤ Long (Z )[l ((Z )i) + 2 = l (U)]
GOTO C
(3) paso de computaci´on de Xn+1
[M] S ←− qt(S , P) GOTO N [A] S ←− S ·P [N] K ←− K + 1
GOTO C [F ] Y ←− (S )1
(4) salida
25 / 29
Funciones ´ındice
I Para n ≥ 1 y e ∈ N, se define la funci´on GOTO–computable n-aria de ´ındice e, as´ı: ϕ(n)e (x1, . . . , xn) = Un(x1, . . . , xn, e).
•Obs´ervese que: ϕ(n)#(P)= [[P]](n).
P0 P1 P2 . . . Pn . . . . ϕ(1)0 ϕ(1)1 ϕ(1)2 . . . ϕ(1)n . . . . ϕ(2)0 ϕ(2)1 ϕ(2)2 . . . ϕ(2)n . . . . ϕ(3)0 ϕ(3)1 ϕ(3)2 . . . ϕ(3)n . . . .
..
. ... ... ... ... ... ϕ(k)0 ϕ(k)1 ϕ(k)2 . . . ϕ(k)n . . . .
..
. ... ... ... ... ... En donde #(Pi) = i .
Conjuntos recursivos y recursivamente enumerables
Lafunci´on caracter´ısticade un conjunto A ⊆ Nk, es la funci´on total:
CA(~x ) =
1 si ~x ∈ A 0 si ~x ∈ Nk− A
Lafunci´on caracter´ıstica parcialde un conjunto A ⊆ Nk, es la funci´on parcial:
CA∗(~x ) =
1 si ~x ∈ A
↑ si ~x ∈ Nk− A
Definici´on. Un conjunto A ⊆ Nk esrecursivosi la funci´on caracter´ıstica CAes GOTO–computable.
Definici´on. Un conjunto A ⊆ Nk esrecursivamente enumerable(r.e.) si la funci´on caracter´ıstica parcial CA∗es GOTO–computable.
Resultados:
I Si un conjunto es recursivo, entonces tambi´en es r.e.
I Existen conjuntos r.e. que no son recursivos.
I Un conjunto A ⊆ Nkes recursivo si y s´olo si los conjuntos A y A son r.e.
27 / 29
Decidibilidad de problemas de decisi´ on
Un problema de decisi´on X = (EX, θX) es:
I decidible(oresoluble algor´ıtmicamente) si el conjunto LX asociado al problema es recursivo.
I indecidible(oirresoluble algor´ıtmicamente) si el conjunto LX asociado al problema no es recursivo.
I semidecidible(oparcialmente decidible) si el conjunto LX asociado al problema es recursivamente enumerable.
El problema de la parada
Enunciado informal. Dado un programa GOTO, P, y un dato de entrada ~x , determinar si P para sobre ~x .
Cuesti´on informal. ¿Es resoluble algor´ıtmicamente el problema de la parada?
Cuesti´on formal: Determinar si el conjunto K0= {(x , y ) ∈ N2: ϕ(1)x (y ) ↓} es recursivo.
Resultado: El conjunto K0es r.e. pero no es recursivo.
Es decir:
I El problema de la parada esindecidiblepero, en cambio, essemidecidible.
29 / 29