Subido por George Brian Maxi Ccapa

clase20.Decidibilidad

Anuncio
Introducción



Máquina de Turing: modelo general de computador.
Tesis de Church-Turing: Algoritmo ≡ decidible en una
MT.
Vamos a estudiar cuales son los límites de los
algoritmos.
DECIDIBILIDAD

1.
2.
3.
Lenguaje Turing decidible (Lenguaje recursivo):
L es aceptada por una MT M
M siempre para
M decide L
w
M
qa
Si w pertenece a L
qr
Si w no pertenece a L
DECIDIBILIDAD

1.
2.
3.
Lenguaje Turing reconocible (Lenguaje
recursivamente enumerable):
L es aceptada por una MT M
M ni siempre para
M no decide L
qa
w
M
qr
LOOP
Si w pertenece a L
Si w no pertenece a L
DECIDIBILIDAD

Mostrar que el lenguaje es decidible es lo mismo
que mostrar que el problema computacional es
decidible.
PROBLEMAS DECIDIBLES
Vamos a representar varios problemas computacionales a repres a representar varios problemas computacionales entar varios a representar varios problemas computacionales problemas a representar varios problemas computacionales computacionales a representar varios problemas computacionales por medio de lenguajes a representar varios problemas computacionales .
Problema de la aceptación de palabras a representar varios problemas computacionales por AFDs a representar varios problemas computacionales : Dado un AFD B y una cadena w, B acepta w? AFD B y una cadena w, B acepta w? y una cadena w, B acepta w? un AFD B y una cadena w, B acepta w?a caden AFD B y una cadena w, B acepta w?a w, B acepta w? B y una cadena w, B acepta w? acepta w?
ADFA = {<B,w> | B es un AFD que acepta la cadena w} {<B,w> | B es un AFD que acepta la cadena w} | B es un AFD que acepta la cadena w} B es a representar varios problemas computacionales un AFD que acepta la cadena w}
PROBLEMAS DECIDIBLES
Teorema 4.1: ADFA es un Lenguaje Decidible.
ADFA = {<B,w> | B es un AFD y B acepta w}
M = “Sobre la entrada <B,w> donde B es un AFD, y w es
una cadena:
1. Simule B sobre la entrada w.
2. Si la simulación termina en un estado de aceptación,
acepte. Si ella termina en un estado de no-aceptación”,
rechace
PROBLEMAS DECIDIBLES
Algoritmo


Entrada: <B,w>
Salida:
 Sí, si la simulación del AFD B con la cadena de
entrada w, para en un estado final.
 No, caso contrario
Algoritmo→programa→código máquina→simulado por MT
PROBLEMAS DECIDIBLES
Teorema 4.2: ANFA es un Lenguaje Decidible.
ANFA = {<B, w> | B es un AFN y B acepta w}
N = “Sobre la entrada <B,w> donde B es un AFN, y w
es una cadena:
1. Convierta el AFN B para un AFD equivalente C.
2. Ejecute la MT M del Teorema 4.1 sobre la entrada
<C, w>.
3. Si M acepta, acepte; caso contrario, rechace.”
PROBLEMAS DECIDIBLES
Teorema 4.3: AREX es un Lenguaje Decidible.
AREX = {<R,w> | R es una expresión regular que describe w}
P = “Sobre la entrada <R,w> donde R es una expresión
regular y w es una cadena:
1.
2.
3.
Convierta la expresión regular R para un AFN
equivalente B’ usando el procedimento estudiado.
Ejecute la MT N sobre la entrada <B’,w>.
Si N acepta, acepte; caso contrario rechace.”
PROBLEMAS DECIDIBLES
Problema de probar su un AFD reconocer alguna
cadena
Problema: Dado un AFD A, ¿A reconoce alguna
cadena?
¿Existe un algoritmo que resuelve ese problema?
EDFA = {<A> | A es un AFD y L(A) =}
¿EDFA es decidible?
PROBLEMAS DECIDIBLES
Teorema 4.4: EDFA es Decidible.
EDFA = {<A> | A es un AFD y L(A) =}
T = “Sobre la entrada <A> donde A es un AFD:
1.
2.
3.
Marque el estado inicial de A.
Repita hasta que ningun estado nuevo venga a ser
marcado:
1. Marque cualquier estado que tenga una transición
llegando en él, a partir de cualquier estado que ya
está marcado.
Si ningún estado de aceptación estuviera marcado,
acepte.”
PROBLEMAS DECIDIBLES
Problema: Dado dos AFD’s, ¿ellos reconocen el
mismo lenguaje?
Existe un algoritmo que resuelve ese problema
EQDFA = {<A,B> | A y B son AFDs y L(A) = L(B)}
¿EQDFA es decidible?
PROBLEMAS DECIDIBLES
Teorema 4.5: EQDFA es un lenguaje decidible.
La diferencia simétrica entre dos conjuntos X e Y,
denotada por XY, es definida como
XY = (X∩Y’)∪(X’∩Y)
X=Y ⇔ XY = 𝜙
PROBLEMAS DECIDIBLES
Teorema 4.5: EQDFA es un lenguaje decidible.
EQDFA = {<A,B> | A y B son AFDs y L(A) = L(B)}

Sea L(C)=L(A)L(B) = (L(A)∩L(B)’)∪(L(A)’∩L(B))
L(C) =  si L(A) = L(B)
Podemos obtener C a partir de A y B con las
construcciones utilizadas para probar que la clase de
lenguajes regulares es cerrada bajo complementación,
unión y intersección.
PROBLEMAS DECIDIBLES
Teorema 4.5: EQDFA es un lenguaje decidible.
EQDFA = {<A,B> | A y B son AFDs y L(A) = L(B)}

F = “Sobre la entrada <A,B>, donde A y B son
AFDs:
1. Construya el AFD C conforme descrito.
2. Ejecute la MT T del Teorema 4.4 sobre la
entrada <C>.
3. Si T acepta, acepte. Si T rechaza, rechace.”
Ejercicio: Responda todas las partes del
siguiente DFA M y explique las razones de sus
respuestas.
a. ¿⟨M, 0100⟩ ∈ AM, 0100⟩ ∈ A ∈ A ADFA?
b. ¿⟨M, 0100⟩ ∈ AM, 011⟩ ∈ A ∈ A ADFA?
c. ¿⟨M, 0100⟩ ∈ AM⟩ ∈ A ∈ A ADFA?
d. ¿⟨M, 0100⟩ ∈ AM, 0100⟩ ∈ A ∈ A AREX?
e. ¿⟨M, 0100⟩ ∈ AM⟩ ∈ A ∈ A EDFA?
f. ¿⟨M, 0100⟩ ∈ AM, M⟩ ∈ A ∈ A EQDFA?
Ejercicio:
Considere el problema de determinar si un DFA y una
expresión regular son equivalentes. Exprese este
problema como un lenguaje y demuestre que es
decidible.

AAR= { <A, R> | A es un AFD y R es una ER}

Demostración:

T=”Sobre la entrada <A,R>, donde A es un AFD y R es
una ER:

1. Convierta la ER R en un AFN B.

2. Convierta el AFN B en su AFD C equivalente.

3. Ejecutar la MT F del teorema 4.5 con entrada <A, C>.

4. Si la MT F acepta, aceptar. Caso contrario, rechazar”
Ejercicio:
Sea A = {⟨M, 0100⟩ ∈ AM⟩ ∈ A | M es un AFD que no acepta ninguna
cadena que contenga un número impar de unos}.
Demuestre que A es decidible.
Ejemplo:
Sea A = {⟨M, 0100⟩ ∈ AM⟩ ∈ A | M es un AFD que no acepta ninguna
cadena que contenga un número impar de unos}.
Demuestre que A es decidible.

La siguiente MT decide A:

M2= “Sobre la entrada ⟨M, 0100⟩ ∈ AM⟩ ∈ A, donde M es un AFD:




1. Construya un AFD O que acepte todas las cadenas
que contengan un número impar de unos.
2. Construya un AFD B tal que L(B) = L(M) ∩ L(O).
3. Pruebe si L(B) = ∅ usando el decisor T de E usando el decisor T de EDFA del
Teorema 4.4.
4. Si T acepta, aceptar; si T rechaza, rechazar ".
PROBLEMAS DECIDIBLES
Problema: Dada una gramática G y una cadena w, ¿G
genera w?
¿Existe un algoritmo que resuelve ese problema?
Problema fundamental en compiladores
ACFG = {<G,w> | G es una GLC que genera la cadena w}
¿ACFG es decidible?
PROBLEMAS DECIDIBLES
Teorema 4.7: ACFG es un lenguaje decidible.
S→AB
A→0A | B es un AFD que acepta la cadena w} Ɛ
B→1B2 | B es un AFD que acepta la cadena w} Ɛ



Si w ∈ L ⟹ el algoritmo encontrará la derivación de w
Si w ∉ L ⟹ el algoritmo ejecutará para siempre
Ese algoritmo es un reconocedor, pero no es decisor
Teorema 4.7: ACFG es un lenguaje decidible.
ACFG = {<G,w> | G es una GLC que genera la cadena w}
S → AB
A → AA | a
B → BB | b
S => AB => AAB => AAAB =>
AAABB => aAABB => aaABB =>
aaaBB => aaabB => aaabb
Si G está en la FNC y w es una palabra generada por la
gramática, entonces la derivación de w tiene
exactamente 2|w|-1 pasos
PROBLEMAS DECIDIBLES
Teorema 4.7: ACFG es un lenguaje decidible.
ACFG = {<G,w> | G es una GLC que genera la cadena w}
S = “Sobre la entrada <G,w>, donde G es una GLC y w
es una cadena:
1. Convierta G para una GLC equivalente en la forma normal
de Chomsky.
2. Liste todas las derivaciones con 2n-1 pasos, donde n es el
tamaño de w, excepto si n = 0, entonces en ese caso liste
todas las derivaciones con 1 paso.
3. Si alguna de esas derivaciones genera w, acepte. Caso
contrario, rechace”
PROBLEMAS DECIDIBLES
Problema: Dada una gramática G, ¿G genera alguna
cadena?
¿Existe un algoritmo que resuelve ese problema?
ECFG = {<G,w> | G es una GLC y L(G) =}
¿ECFG
es decidible?
Teorema 4.8: ECFG es un lenguaje decidible.
ECFG = {<G> | G es una GLC y L(G) = }
¿Cuál variable es capaz de generar sentencias?
S -> ABCD
A -> BCA
A -> xyz
B -> CA
B -> AB
B -> BBBw
C -> CB
C -> ww
D -> DD
D -> BD
D -> DC
PROBLEMAS DECIDIBLES
Teorema 4.8: ECFG es un lenguaje decidible.
ECFG = {<G> | G es una GLC y L(G) = }
R = “Sobre la entrada <G>, donde G es una GLC:
1. Marque todos los símbolos terminales en G.
2. Repita hasta que ninguna variable venga a ser
marcada:
1. Marque cualquier variable A donde G tiene una
producción AU1U2...Uk y cada símbolo U1, ... ,Uk ya
haya sido marcado.
3. Si la variable inicial no está marcada, acepte; caso
contrário, rechace.”
PROBLEMAS DECIDIBLES
Problema: Dada dos gramáticas A y B, ¿ellas son
equivalente?
¿Existe un algoritmo que resuelve ese problema?
EQCFG = {<A,B> | A y B son GLC’s y L(A) = L(B)}
¿EQCFG es decidible?
PROBLEMAS DECIDIBLES
Teorema 4.7: EQCFG no es decidible.
No es a representar varios problemas computacionales pos a representar varios problemas computacionales ible crear un algoritmo que recibe dos a representar varios problemas computacionales gramáticas a representar varios problemas computacionales y determina s a representar varios problemas computacionales i ellas a representar varios problemas computacionales s a representar varios problemas computacionales on equivalentes a representar varios problemas computacionales .
PROBLEMAS DECIDIBLES
Teorema 4.9: Todo lenguaje libre de contexto es decidible.
Demostración
 Sea L un LLC
 Sea G una gramática que genera L
 Y diseñamos una MT MG que decide L. Construímos una
copia de G dentro de MG. Ella funciona de la siguiente
manera.
MG = “Sobre la entrada w:
1.
2.
Ejecute la MT S sobre la entrada <G,w>.
Si esa máquina acepta, acepte. Caso contrario,
rechace.”
Descargar