11.07.2015 Views

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

7.4. LENGUAJES Y FUNCIONES COMPUTABLES 123Si la máquina <strong>de</strong> Turing se <strong>de</strong>tiene, aceptando o no, con una cinta que consiste <strong>de</strong> 0 M (para algún M),entonces se dice que f(i 1 , i 2 , . . . , i k ) = M, en que f es la función <strong>de</strong> k argumentos que computa esa máquina<strong>de</strong> Turing. Nótese que una única MT pue<strong>de</strong> computar una función <strong>de</strong> un argumento, una diferente <strong>de</strong> dosargumentos, etcétera. También <strong>de</strong>be notarse que si una MT, M, computa una función <strong>de</strong> k argumentos, noes necesario que f tenga un valor para todas las diferentes k-tuplas <strong>de</strong> enteros que sean posibles argumentos.Si f(i 1 , i 2 , . . . , i k ) está <strong>de</strong>finida para toda tupla (i 1 , i 2 , . . . , i k ), entonces se dice que es una función recursivatotal. Una función f(i 1 , i 2 , . . . , i k ) computada por una máquina <strong>de</strong> Turing es llamada una funciónrecursiva parcial. En cierto sentido, las funciones recursivas parciales son análogas a los lenguajes enumerablesrecursivamente, ya que son computadas por MT que pue<strong>de</strong>n o no <strong>de</strong>tenerse en ciertos inputs. Lasfunciones recursivas totales correspon<strong>de</strong>n a los lenguajes recursivos, ya que son computadas por máquinasque siempre se <strong>de</strong>tienen. Todas las funciones aritméticas comunes en enteros, tales como multiplicación, n!y 2 N , son funciones recursivas totales.Ejemplo 87 La sustracción propia, m o −n, se <strong>de</strong>fine <strong>de</strong> la siguiente forma: m o −n = m − n si m ≥ n0 si m < nLa siguiente máquina <strong>de</strong> Turing, inicialmente con el string 0 m 10 n en su cinta, se <strong>de</strong>tiene con el string0 m o −n en ella.M = ({q 0 , q 1 , . . . , q 6 }, {0, 1}, {0, 1, B}, δ, q 0 , B, {q 6 })M reemplaza repetidamente el primer 0 por blanco y luego busca hacia la <strong>de</strong>recha un 1 seguido <strong>de</strong> un 0,y cambia el 0 por un 1. Luego, M se mueve a la izquierda hasta que encuentra un blanco y entonces repiteel ciclo. La repetición termina si:(i) Buscando un 0 hacia la <strong>de</strong>recha, se encuentra un blanco. En ese caso, los n 0’s <strong>de</strong> 0 m 10 n han sidocambiados a 1’s y n + 1 <strong>de</strong> los m 0’s a B. M reemplaza entonces los n + 1 1’s por un 0 y n blancos,<strong>de</strong>jando m − n 0’s en la cinta.(ii) Al comenzar el ciclo, M no encuentra un 0 que cambiar por un blanco, ya que los primeros m 0’s hansido cambiados. Entonces n ≥ m y, por lo tanto, m . − n = 0. En ese caso, M reemplaza todos los 1’sy 0’s que que<strong>de</strong>n por blancos.La función <strong>de</strong> transición δ se <strong>de</strong>scribe a continuación:1. δ(q 0 , 0) = (q 1 , B, D).Comienza el ciclo reemplazando el cero inicial por un blanco.2. δ(q 1 , 0) = (q 1 , 0, D).δ(q 1 , 1) = (q 2 , 1, D).Se mueve hacia la <strong>de</strong>recha buscando el primer 1.3. δ(q 2 , 1) = (q 2 , 1, D).δ(q 2 , 0) = (q 3 , 1, I).Busca sobre los primeros 1’s hasta encontrar un 0; lo cambia a un 1.4. δ(q 3 , 1) = (q 3 , 1, I).δ(q 3 , 0) = (q 3 , 0, I).δ(q 3 , B) = (q 0 , B, D).Se mueve a la izquierda hasta un blanco y entra q 0 para repetir ciclo.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!