Está en la página 1de 5

Teor de la Computacin. a o Examen Parcial N 3.

Juan David Uchuvo Gonzlez, Cd: 257895. a o June 6, 2011


1. Dise ar un Atmata Finito con pila (ya sea AFPD o AFPN) que acepte el lenguaje n o {a3i b2i : i 0}. q2

a, A;

a, A; AA a, A; AA a, Z; AZ

q0 , A; A

q1

q3 , Z; Z b, A; A

, Z; Z b, A; q4 q5

La idea principal de el autmata para aceptar el lenguaje consiste en contar las aes, de modo que o cada tres aes agrega una A a la pila, del mismo modo cuenta las bes y por cada dos bes elimina una A de la pila. La transicin para b cuando an no se han completado un nmero multipo de o u u tres aes, no esta denida. (a) w = aaabb (Aceptada). (q0 , aaabb, z0 ) (q1 , aabb, Az0 ) (q2 , abb, AAz0 ) (q3 , , z0 ) (q5 , z0 , z0 ). (q0 , bb, Az0 ) (q3 , bb, Az0 ) (q4 , b, Az0 )

(b) w = aaaaaabbbb (Aceptada). (q0 , aaaaaabbbb, z0 ) (q1 , aaaaabbbb, Az0 ) (q2 , aaaabbbb, AAz0 ) (q0 , aaabbbb, Az0 ) (q1 , aabbbb, AAz0 ) (q2 , abbbb, AAAz0 ) (q0 , bbbb, AAz0 ) (q3 , bbbb, AAz0 ) (q4 , bbb, AAz0 ) (q3 , bb, Az0 ) (q4 , b, Az0 ) (q3 , , z0 ) (q5 , z0 , z0 ).

(c) w = aaaaabbbb (Rechazada). (q0 , aaaaabbbbb, z0 ) (q1 , aaaabbbbb, Az0 ) (q2 , aaabbbbb, AAz0 ) (q1 , abbbb, AAz0 ) (q2 , bbbb, AAAz0 ). (q0 , aabbbbb, Az0 )

Desde donde no tiene transicin posible luego el computo es abortado, para que la congo uracin instntanea sea de aceptacin tiene que ser de la forma (q5 , , ), note que q5 es el o a o unico estado de aceptacin y que la cadena se proceso completamente. o 2. Dise ar una Mquina de Turing, modelo multi-cinta (2 ms cintas) que acepte el n a o a lenguaje {ai bj ck : 0 k j i}. b : b, R | A : B, L c : c, S | : ,R c : c, S | A : A, R c : c, R | B : C, R

q1 : :

q2

b : b, S | a : a, R |

,L

, S | A : A, S ,S| : ,S : : ,R| : ,R , R | B : B, R

: A, R : ,S| : ,S

q0

q3

La mquina funciona de la siguiente forma: por cada a que lea en la cinta nmero 1, escribe una a u A en la cinta nmero 2, ya que las cadenas pertenecientes al lenguaje deben comenzar por a a u excepcin de , entonces las transiciones de las cadenas que comienzan con b o con c no estan o denidas, por lo que el computo es abortado de inmediato. Luego cuando aparece la primera b, se el cabezal lector de la cinta nmero 2 se comienza a devolver con el n de ir contando el nmero u u de aes en la segunda cinta la transicin (q1 , (b, )) no esta denida por que indicar que existen o a ms bes que aes. Anlogamente pasa con la transicin (q2 , (c, )) (q2 , (c, A)), que indicar a o o an que existen ms ces que bes. a La funcin de transicin requerida para implementar esta idea es: o o (q0 , (a, )) (q0 , (b, )) (q0 , ( , )) (q1 , (b, A)) (q1 , (c, A)) (q1 , (c, )) (q1 , ( , )) (q1 , ( , A)) (q2 , (c, B)) (q2 , ( , B)) (q2 , ( , )) = (q0 , (a, ), (A, )) = (q1 , (b, ), ( , )) = (q3 , ( , ), ( , )) = (q1 , (b, ), (B, )) = (q2 , (c, ), (A, )) = (q2 , (c, ), ( , )) = (q3 , ( , ), ( , )) = (q3 , ( , ), (A, )) = (q2 , (c, ), (C, )) = (q3 , ( , ), (B, )) = (q3 , ( , ), ( , ))

Dise ar una AF2P (Autmata nito con dos pilas) que acepte el mismo lenguaje. n o El autmata con dos pilas funciona usando la siguiente idea: primero en el estado q0 , acumula o tantas A como aes procesa de la cadena, cuando lee la primera b elimina una A de la primera pila y elimina tantas A de la primera pila como bes existan en la cadena en el estado q1 , si existen ms a bes que aes entonces la primera pila se vac antes de acabar de procesar las bes y esa transicin a o no esta denida por lo que sea aborta el computo. Para procesar las ces la idea es analoga pero con la pila nmero 2 en el estado q2 . u

Para asegurar que no existan ms ces que bes cuando se acaba el procesamiento de toda la cadena a sin abortar el computo entonces se elimina simultaneamente mediante una transicin- de ambas o pilas una A hasta que una de las dos llegue a z0 , lo que permite concluir que es la que ms a caracteres ten entonces si la primera pila (la de bes) se vac primero la cadena es aceptada, en a, a caso contrario la transicin no esta denida por lo que se aborta el computo. o a, (z0 |z0 A), (z0 |z0 A) a, (A|AA), (A|AA) c, (A|A), (A|) c, (z0 |z0 ), (A|) q2

b, (z0 |), (A|A) q1

q0

b, (A|), (A|A)

c, (z0 |z0 ), (A|) c, (A|A), (A|)

, (z0 |z0 ), (z0 |z0 )

, (A|), (A|) , (z0 |z0 ), (A|A) , (z0 |z0 ), (z0 |z0 ) , (A|), (A|)

q4

, (z0 |z0 ), (z0 |z0 ) , (z0 |z0 ), (A|A)

q3

3. Dise ar una Mquina de Turing, modelo estndar, con una sola cinta, que calcule la n a a siguiente funcin f denida sobre {a, b} . Para una cadena de entrada u {a, b} , f o debe producir la salida: 1 si u = ww, para alguna cadena w {a, b} 0 Otro caso.

f (u) =

El primer detalle es que la longitud de la cadena a procesar tiene que ser par, de modo contrario no habr posibilidad de que fuera una cadena de la forma ww, precisamente en eso consiste la a primera fase del computo de la mquina, remplaza aes y bes por maysculas. Primero la minscula a u u de ms a la izquierda y luego se desplaza a la derecha hasta encontrar la ultima minscula para a u tambin sobreescribirla con una maysucula y de nuevo a la izquierda hasta encontrar la primera e u minscula, de este modo cuando ya todas las letras esten en mayscula el cabezal estar leyendo u u a exactamente el primer caracter de la segunda vez que aparece w. La segunda fase consiste en comparar las cadenas, pues ya hemos identicado donde comienza la segunda cadena w en la primera fase, cada caracter procesado de la segunda mitad lo sobreescribimos con minscula y luego nos desplazamos hacia la izquierda hasta encontrar el primer caracter u despus de blanco si coincide con el ultimo caracter procesado lo sobreescribimos como blanco, si e no la cadena no es de la forma ww, y borramos todo para retornar al nal 0. La parte procesada de la segunda mitad es la que esta en minscula de modo que cuando nos u desplazamos a la derecha buscando el prximo caracter a procesar y no encontramos una mayscula o u y llegamos a un blanco quiere decir que hemos terminado de procesar la segunda mitad y que adems a era igual con la primera mitad, por lo que la cadena es de la forma ww y es aceptada, slo queda o borrar todo en la cinta y retornar un 1.

A B a b

: : : :

A, B, a, b, q8 : , q9

B : b, B : b, b : a : , , q10 : 1, B A a b : : : : B, A, a, b, q4 : A : A : a, b : b, a : a, q7

B : A : A, B : B,

A : : , b : b, a : a, , q6

q11 : 1, q0 A : a,

a : b : B : A : B : ,

, , , , q12

q5

a : A, b : B,

A : A, B : B, a : a, b : b, : q3 , q13

: 0,

a : a, b : b, q1

B : B, A : A, : ,

a : A, b : B,

A : A, B : B, B : B, A : A, q14

q2

4. Tesis de Church-Turing Dos deniciones formales de la tesis son:

(a) Tesis: Todo procedimiento efectivo, funcin o algoritmo computable es Turing-computable o o computable por una mquina de Turing. a (b) Tesis: Una funcin de enteros positivos es efectivamente calculable slo si es recursivo. o o En palabras ms coloquiales la tesis de Church-Turing dice que las mquinas de Turing realmente a a capturan la nocin de lo que es un algoritmo o un procedimiento efectivo. Es conocida de esa forma o gracias a que los dos autores desarrollaron teor equivalentes. as Muchos modelos computacionales propuestos han resultado equivalentes a la mquina de Turing, a es decir que lo que se puede hacer en ellos se puede hacer en una mquina de Turing tambin y a e viceversa; algunos modelos son: el clculo-, las funciones recursivas, los algoritmos de Markov. a Como los lenguajes aceptados por las mquinas de Turing son precisamente los generados por las a gramticas formales. El clculo- por ejemplo dene funciones que son las mismas que pueden ser a a computadas con mquinas de Turing, que coincidan estos tres tipos de modelos (las gramticas, a a el clculo-, y las mquinas de Turing), aunque su desarrollo halla sido totalmente ajeno uno del a a otro hace que se la tesis sea ampliamente aceptada aunque no halla sido probada, gracias a que la nocion de algoritmo no es facilmente denible.

También podría gustarte