TEMA 1 - Dpto. Ciencias de la Computación e Inteligencia Artificial

Anuncio
TEMA 1
Modelos convencionales de computación
Mario de J. Pérez Jiménez
Grupo de investigación en Computación Natural
Dpto. Ciencias de la Computación e Inteligencia Artificial
Universidad de Sevilla
Computabilidad y Complejidad
Curso 2011-12
Modelos convencionales de Computación
Modelos formales de computación implementables en soporte electrónico.
I Modelo de computación GOTO (orientado a programas).
I
Programas GOTO.
I
Programa universal.
I
Modelo de computación universal.
I
Existencia de problemas indecidibles en este modelo.
I Modelo de computación de las MT (orientado a máquinas).
I
Máquinas de Turing.
I
Máquina de Turing universal.
I
Modelo de computación universal.
I
Existencia de problemas indecidibles en este modelo.
2 / 23
Preliminares. Lenguajes Formales
I Alfabeto: Conjunto finito no vacı́o.
I Palabra (cadena) sobre un alfabeto Σ.
I
Sucesión finita de elementos de Σ.
I Palabra vacı́a: λ.
I Longitud de una palabra u: longitud de la sucesión (|u|).
I Σn = conjunto de palabras sobre Σ de longitud n .
I Σ∗ = conjunto de palabras sobre Σ.
3 / 23
I Lenguaje sobre un alfabeto Σ: Subconjunto de Σ.
I Concatenación de palabras σ : n → Σ y τ : m → Σ.
I
Es la palabra στ : n + m → Σ definida ası́:
στ (x) =
σ(x)
τ (x − n)
si x < n
si n 6 x < n + m
I Concatenación de lenguajes sobre Σ:
L1 L2 = {στ : σ ∈ L1 ∧ τ ∈ L2 }
I Clausuras de Kleene de un lenguaje.
L0 = {λ}, L1 = L
Ln+1 = LLn
[ n
L∗ =
L
n∈N
L+ = L∗ − {λ}
4 / 23
Preliminares. Problemas de optimización
Un problema de optimización, X , es una tupla (IX , sX , fX ) donde:
I IX es un lenguaje sobre un alfabeto.
I sX es una función cuyo domino es IX y para cada a ∈ IX , el conjunto
sX (a) es finito.
I fX es una función (objetivo) que asigna a cada a ∈ IX y cada ca ∈ sX (a),
un número racional positivo fX (a, ca ).
Elementos de IX : instancias del problema.
∀a ∈ IX , cada elemento de sX (a) es un candidato (una solución).
∀a ∈ IX , ca ∈ sX (a), el número fX (a, ca ): valor para ca .
fX proporciona el criterio para determinar una mejor solución.
5 / 23
Un ejemplo: El problema Minimum Vertex Cover
• Informalmente:
I Problema Minimum Vertex Cover : dado un grafo no dirigido, determinar
el tamaño mı́nimo de un recubrimiento de vértices
I Un conjunto de vértices de un grafo es un r.v. si cada arista posee, al menos, uno de sus extremos
en ese conjunto
.
• Formalmente:
I IX : conjunto de grafos no dirigidos.
I Para cada grafo no dirigido G , sX (G ) = conjunto de todos los r.v. de G .
I La función objetivo fX se define ası́:
I
Para cada grafo no dirigido G y cada r.v. V 0 de G :
fX (G , V 0 ) = cardinal de V 0
6 / 23
Sea X = (IX , sX , fX ) un problema de optimización:
I Una solución óptima para a ∈ IX es un candidato c ∈ sX (a) tal que:
I
O bien, ∀c 0 ∈ sX (a) se tiene fX (a, c) ≤ fX (a, c 0 ) (c es una solución
minimal para a).
I
O bien ∀c 0 ∈ sX (a) se tiene fX (a, c) ≥ fX (a, c 0 ) (c es una solución
maximal para a).
Un problema de minimización (resp. maximización) es un problema de
optimización tal que cada solución óptima es minimal (resp. maximal).
I El problema Minimum Vertex Cover es un problema de minimización.
7 / 23
Problemas de decisión
• Informalmente:
I Problemas que sólo admiten como respuesta/salida Sı́ o No.
• Formalmente:
I Un problema de decisión X , es un par (IX , θX ) tal que IX es un lenguaje
sobre un alfabeto y θX es un predicado sobre IX .
Un problema de decisión X = (IX , θX ) se puede considerar como un problema
de optimización (IX , sX , fX ) tal que ∀a ∈ IX :
I sX (a) = {θX (a)}.
I fX (a, θX (a)) = 1.
8 / 23
Correspondencia entre problemas de decisión y lenguajes:
I Cada lenguaje, L, sobre un alfabeto Σ tiene asociado un problema de
decisión, XL :
I
I
IXL = Σ∗ .
θXL = {(x, 1) : x ∈ L} ∪ {(x, 0) : x ∈
/ L}.
I Cada problema de decisión X = (IX , θX ) tiene asociado un lenguaje, LX ,
sobre IX :
I
LX = {a ∈ IX : θX (a) = 1}.
9 / 23
Todo problema de optimización se puede transformar en un problema de
decisión equivalente.
Ejemplo:
I El problema Minimum Vertex Cover.
I
I
Versión de optimización: Dado un grafo no dirigido G , hallar el
tamaño mı́nimo de un r.v. de G .
Versión de decisión: Dado un grafo no dirigido G y un número
natural k, determinar si G posee un r.v. de tamaño menor o igual
que k .
¿Qué peaje se ha de pagar para transformar un problema de optimización en un
problema de decisión “equivalente”?
10 / 23
Máquinas de Turing
I Es una tupla, M = (Q, Σ, δ, q0 , F , B, .):
I
Q es un conjunto finito no vacı́o (estados).
I
Σ es un alfabeto (de la máquina), Q ∩ Σ = ∅.
I
δ: (Q − F ) × Σ → Q × Σ × {0, 1, −1} (función de transición) tal
que δ(q, .) = (q 0 , s 0 , x) =⇒ s 0 = . ∧ x = 1.
I
q0 ∈ Q (estado inicial).
I
F = {qh , qy , qn } ⊆ Q (estados finales).
I
B ∈ Σ (sı́mbolo blanco).
I
. ∈ Σ (primer sı́mbolo), . 6= B.
11 / 23
Una máquina de Turing M consta de:
I Una cinta infinita a la derecha con primera casilla.
I Una cabeza de trabajo lectora/escritora que se puede desplazar a lo largo
de la cinta.
Si δ(q, s) = (q 0 , s 0 , x), diremos que M pasa de q a q 0 , sustituye s por s 0 y se
mueve según el valor de x.
Unidad de Control
q
s1 s2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s10 s11 B B B B B B B B B
12 / 23
Ejecución de una máquina de Turing
I Inicialmente:
? El estado es q0 ;
? La cinta es del tipo .wBBBBB...,
I
w ∈ (Σ − {B})∗ : cadena de entrada.
? La cabeza lectora analiza la primera casilla.
I A partir de la configuración inicial, la máquina ejecuta un paso de
acuerdo con la función de transición δ.
I La máquina para sii se alcanza un estado final:
? Si es qy : M acepta el dato w . Escribiremos M(w ) = Y .
? Si es qn : M rechaza el dato w . Escribiremos M(w ) = N.
? Si es qh : M(w ) = w 0 ∈ (Σ − {B})∗ , siendo .w 0 BBBB... el
contenido final de la cinta.
I Si M no para escribiremos M(w ) ↑
13 / 23
Computaciones en una MT
I Una descripción instantánea (configuración) de M es una terna (q, w , u),
con q ∈ Q, w ∈ Σ∗ y u ∈ Σ∗ .
I
Interpretación:
I
q es el estado actual en que se encuentra M.
I
wu es la palabra escrita en la cinta.
I
M analiza el último sı́mbolo de w .
Unidad de Control
q
s1 s2 s 3 s 4 s 5 s 6 s 7 s 8 s 9 s10 s11 B B B B B B B B B
w
u
14 / 23
I Una d.i. (q, w , u) de M es de parada si q ∈ F .
I Una d.i. (q, w , u) de M es de aceptación si q = qy .
I Una d.i. (q, w , u) de M es de rechazo si q = qn .
I La relación `M en el conjunto de d.i. de M se define ası́:
• Si δ(q, wr ) = (q 0 , wr0 , −1), entonces
(q, w1 . . . wr −1 wr , u1 . . . us ) `M (q 0 , w1 . . . wr −1 , wr0 u1 . . . us )
• Si δ(q, wr ) = (q 0 , wr0 , +1), entonces
(q, w1 . . . wr −1 wr , u1 . . . us ) `M (q 0 , w1 . . . wr −1 wr0 u1 , u2 . . . us )
• Si δ(q, wr ) = (q 0 , wr0 , 0), entonces
(q, w1 . . . wr −1 wr , u1 . . . us ) `M (q 0 , w1 . . . wr −1 wr0 , u1 . . . us )
I `∗M cierre reflexivo y transitivo de `M .
15 / 23
Decisión y aceptación en una MT
I La d.i. inicial de M sobre w , Iw , es (q0 , ., w ).
I M para sobre w (M ↓ w ) si existe una d.i. I de parada tal que Iw `∗M I .
Caso contrario, M no para sobre w (M ↑ w ).
I M decide un lenguaje L ⊆ (Σ − {B})∗ sii para cada w ∈ (Σ − {B})∗ :
I
I
Si w ∈ L, entonces M(w ) = Y .
Si w ∈
/ L, entonces M(w ) = N.
I M acepta un lenguaje L ⊆ (Σ − {B})∗ sii para cada w ∈ (Σ − {B})∗ :
I
I
Si w ∈ L, entonces M(w ) = Y .
Si w ∈
/ L, entonces M(w ) ↑.
16 / 23
Lenguajes recursivos y recursivamente enumerables
I L ⊆ (Σ − {B})∗ es recursivo sii existe una MT que decide L.
I L ⊆ (Σ − {B})∗ es recursivamente enumerable sii existe una MT que
acepta L.
Proposición 1: Todo lenguaje recursivo es r.e.
Proposición 2: Existen lenguajes r.e. que no son recursivos.
17 / 23
Ejemplo de una MT de decisión
Q = {q0 , q1 , q2 , q10 , q20 , q3 , qh , qy , qn }; Σ = {0, 1, B, .}
(Q − F ) × Σ
(q0 , 0)
(q0 , 1)
(q0 , B)
(q0 , .)
(q1 , 0)
(q1 , 1)
(q1 , B)
(q2 , 0)
(q2 , 1)
(q2 , B)
(q10 , 0)
(q10 , 1)
(q10 , .)
(q20 , 0)
(q20 , 1)
(q20 , .)
(q3 , 0)
(q3 , 1)
(q3 , .)
Q × Σ × {0, 1, −1}
(q1 , ., 1)
(q2 , ., 1)
(qy , B, 0)
(q0 , ., 1)
(q1 , 0, 1)
(q1 , 1, 1)
(q10 , B, −1)
(q2 , 0, 1)
(q2 , 1, 1)
(q20 , B, −1)
(q3 , B, −1)
(qn , 1, 0)
(qy , B, 1)
(qn , 1, 0)
(q3 , B, −1)
(qy , ., 1)
(q3 , 0, −1)
(q3 , 1, −1)
(q0 , ., 1)
18 / 23
Máquinas de Turing que calculan funciones
I Una MT, M, calcula f : (Σ − {B})∗ → Σ∗ sii para cada w ∈ (Σ − {B})∗
se tiene que M(w ) = f (w ).
I Una función f es recursiva sii existe una MT que calcula f .
Un ejemplo: Q = {q0 , q1 , qh , qy , qn }; Σ = {0, 1, B, .}
(Q − F ) × Σ
(q0 , 0)
(q0 , 1)
(q0 , B)
(q0 , .)
(q1 , 0)
(q1 , 1)
(q1 , B)
(q1 , .)
Q × Σ × {0, 1, −1}
(q0 , 0, 1)
(q0 , 1, 1)
(q1 , B, −1)
(q0 , ., 1)
(qh , 1, 0)
(q1 , 0, −1)
(q1 , B, 0)
(qh , ., 1)
Hallemos M(01)
1.
2.
3.
4.
q0
.
.
.
.
0
q0
0
0
0
1 B.
1 B.
q0
1 B.
q0
1 B.
q1
5. . 0 1 B.
q1
6. . 0 0 B.
qh
7. . 1 0 B.
19 / 23
Máquinas de Turing que resuelven problemas
¿Cómo resolver un problema X ?
I Si X es un problema de decisión,
I
Una MT resuelve X si decide el lenguaje LX asociado a X .
I Si X es un problema identificado por una aplicación fX : LX → Σ∗ ,
I
Una MT resuelve X si calcula la función fX .
20 / 23
Máquinas de Turing con k cintas
I En cada instante la máquina está 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:
I
Analiza una casilla.
I
Puede reescribir sobre la casilla.
I
Puede cambiar de estado (el mismo en todas las casillas).
I
Se puede desplazar: +1, −1, 0.
21 / 23
I Para realizar una computación con entrada w ∈ Σ∗ :
I
Se registra la entrada en la primera cinta.
I
Las restantes cintas están en blanco.
I
Todas las cabezas apuntan a la primera casilla.
I
La máquina está en el estado inicial.
I
La función de transición actúa sobre cada cinta.
• Si termina en qh , la salida es el contenido de la cinta k–ésima.
Teorema : Para cada MT, M, con k cintas existe una MT, M 0 , con una cinta
tal que M(w ) = M 0 (w ), para cada entrada w .
¿Qué peaje se ha de pagar para “pasar” de una MT con k cintas a una MT
con una cinta que sea equivalente a ella?
22 / 23
Máquinas de Turing no deterministas
Es una tupla, M = (Q, Σ, δ, q0 , F , B, .), en donde:
I Q es un conjunto finito no vacı́o (estados).
I Σ es un alfabeto (de la máquina), Q ∩ Σ = ∅.
I δ : (Q − F ) × Σ → P(Q × Σ × {0, 1, −1}) (función de transición).
I q0 ∈ Q (estado inicial).
I F ⊆ Q (estados finales).
I B ∈ Σ (sı́mbolo blanco).
I . ∈ Σ (primer sı́mbolo), . 6= B.
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é peaje se ha de pagar para “pasar” de una MTND que decide L a una
MTD que también decide L?
23 / 23
Descargar