You are on page 1of 48

REPBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA EDUCACIN SUPERIOR


UNIVERSIDAD NACIONAL EXPERIMENTAR SIMN RODRGUEZ.
NUCLEO: VALLES DEL TUY
CURSO: ALGEBRA LINEAL

MQUINA DE TURING Y OPERACIONES BINARIAS

INTEGRANTES:
Jonathan Pealoza. C.I: 14.609.982

FACILITADOR: Lic. Ernesto M. Aquino.

Santa Teresa de Tuy, 25 Octubre 2013


INDICE

Pp

NDICE..02
MQUINAS DE TURING......................................................................04
MQUINAS DE TURING COMO ACEPTADORAS DE
LENGUAJES04
SUBRUTINAS O MACROS...........................................14
MQUINAS DE TURING COMO GENERADORAS DE
LENGUAJES18
VARIACIONES DEL MODELO ESTNDAR DE MT.20
ESTADO DE ACEPTACIN NICO....20
MQUINA DE TURING CON CINTA DIVIDIDA EN PISTAS...21
MQUINAS DE TURING NO-DETERMINISTAS (MTN)...25
SIMULACIN DE AUTMATAS POR MEDIO DE MQUINAS DE
TURING.28
SIMULACIN DE AUTMATAS............................28
SIMULACIN DE AUTMATAS CON PILA..29
PROPIEDADES DE CLAUSURA DE LOS LENGUAJES RE Y DE LOS
LENGUAJE RECURSIVOS33
MQUINAS DE TURING COMO CALCULADORAS DE
FUNCIONES.................................39
LA TESIS DE CHURCH-TURING41
OPERACIONES BINARIAS...42

PROPIEDAD CONMUTATIVA..44
2

PROPIEDAD ASOCIATIVA...45

BIBLIOGRAFA47

MQUINAS DE TURING

En este captulo se presenta la Maquina de Turing (MT) que es el


modelo de autmata con mxima capacidad computacional: la unidad de
control puede desplazarse a izquierda o a derecha y sobre escribir
smbolos en la cinta de entrada.

MQUINAS DE TURING COMO ACEPTADORAS DE LENGUAJES

Una mquina de Turing (MT), M = (Q, q0, F,, , b, ), consta de


siete componentes:
1. Q es el conjunto (finito) de estados.
2. q0 2 Q es el estado inicial.
3. F es el conjunto de estados finales o de aceptacin? 6= F Q.
4. es el alfabeto de entrada.
5. es el alfabeto de cinta, que incluye a , es decir, .
6. b 2 es el smbolo blanco (el smbolo b no puede hacer
parte del alfabeto de entrada ).
7. 7. es la funcin de transicin de la mquina:

es una funcin parcial, es decir, puede no estar definida en


algunos elementos del dominio. La flecha denota desplazamiento a
izquierda mientras que! denota desplazamiento a la derecha. La transicin

Significa: estando en el estado q, escaneando el smbolo a, la


unidad de control borra a, escribe b y se mueve en el estado p, ya sea a
la izquierda (si el desplazamiento D es ) o a la derecha (si D es!).

Una mquina de Turing M procesa cadenas de entrada w 2


colocadas sobre una cinta infinita en ambas direcciones. Para procesar
una cadena de entrada w, la unidad de control de M est en el estado
inicial q0 escaneando el primer smbolo de w. Las dems celdas o casillas
de la cinta contienen el smbolo blanco b.

Descripcin o configuracin instantnea. Es una expresin de la


forma

Donde los smbolos a1, . . . , an pertenecen al alfabeto de cinta y q


2 Q. Esta expresin representa el estatus actual del cmputo:

Es decir, la descripcin instantnea a1a2 ai1qai an indica


que la unidad de control de M est en el estado q escaneando el smbolo
5

a1. Se supone que las casillas en las que no aparecen aes contienen el
smbolo blanco, b.
Ejemplos concretos de descripciones instantneas son:

La configuracin o descripcin instantnea inicial, o simplemente


configuracin inicial, es

Siendo w la cadena de entrada, la cual se coloca en cualquier parte


de la cinta de entrada.
Paso computacional. El paso de una descripcin instantnea a otra,
por medio de una transicin definida por , se denomina un paso
computacional y se denota por

Aqu u1, u2, v1, v2 2 y p, q 2 Q. Un ejemplo concreto es

En la cual la mquina utiliz la transicin (q2, b) = (q1, c,).


La notacin

Significa que M puede pasar de la descripcin instantnea u1qu2 a


la

descripcin

instantnea

v1pv2

en

cero,

uno

ms

pasos

computacionales.

Cmputos especiales. Durante el cmputo o procesamiento de


una cadena de entrada hay dos situaciones especiales que se pueden
presentar:
1. El cmputo termina porque en determinado momento no hay
transicin definida.
2. El cmputo no termina; esto es lo que se denomina un bucle
infinito. Esta situacin se representa con la notacin

La cual indica que el cmputo que se inicia en la descripcin


instantnea u1qu2 no se detiene nunca.

Un detalle para tener en cuenta es que las transiciones con smbolo


b,(q, b) = (p, s,D), no son las mismas transiciones usadas para
autmatas en captulos anteriores. Una transicin en un autmata tiene
lugar independientemente del smbolo ledo y la unidad de control
permanece estacionaria, mientras que una transicin (q, b) = (p, s,D) en
una MT requiere} que el smbolo blanco b est escrito en la casilla
escaneada; adems, la unidad de control sobre-escribe el blanco y realiza
un desplazamiento D.

Lenguaje aceptado por una MT. Una cadena de entrada w es


aceptada por una MT M si el cmputo que se inicia en la configuracin
inicial q0w

Termina en una configuracin instantnea w1pw2, p estado de


aceptacin, en la cual M se detiene completamente. El lenguaje L(M)
aceptado por una MT M se define entonces como

La nocin de aceptacin para mquinas de Turing es ms flexible


que para autmatas: una cadena de entrada no tiene que ser leda en su
totalidad para que sea aceptada; slo se requiere que la mquina se
detenga completamente, en un momento determinado, en un estado de
aceptacin.

Para simplificar los argumentos sobre mquinas de Turing, en el


modelo estndar se supone que la unidad de control siempre se detiene
al ingresar a en un estado de aceptacin. Es decir, no se permiten
transiciones (q, a) cuando q 2 F.

Las mquinas de Turing originan las siguientes clases de lenguajes:


1. L es un lenguaje recursivamente e numerable (RE) si existe una
MTM tal que L(M) = L.
2. L es un lenguaje recursivo si existe una MT M tal que L(M) = L y
M se detiene con todas las cadenas de entrada.

Las denominaciones lenguaje recursivamente e numerable y


lenguaje recursivo pueden parecer un tanto extraas; esta terminologa
es anterior a la aparicin de las mquinas de Turing y se ha mantenido
vigente hasta el presente. En el Teorema 6.6.3 se justificar a la
denominacin recursivamente e numerable (RE) al establecerse que
para todo lenguaje RE se puede construir una MT que enumere
secuencialmente sus cadenas.

Obviamente, todo lenguaje recursivo es recursivamente e


numerable, pero la afirmacin reciproca no es (en general) valida, como
se demostrar a en la seccin 7.5.

Diagrama de estados o diagrama de flujo de una MT. La funcin


de transicin de una MT se puede presentar como un diagrama de
estados o diagrama de flujo. As, la transicin (q, a) = (p, b,!) se
representa por

Unidad de control estacionaria. Para simplificar la descripcin del


modelo estndar, se ha exigido que la unidad de control se desplace
hacia la izquierda o hacia la derecha en cada transicin. No obstante, se
puede permitir que la unidad de control no se mueva en un determinado
paso computacional, es decir, que no realice ningn desplazamiento. Este
tipo de transicin lo escribimos en la forma:

Donde a, b 2 ; p, q 2 Q y significa que la unidad de control no se


mueve. Tal transicin se puede simular por medio de un movimiento a la
derecha seguido de un retorno a la izquierda. As, para simular la
transicin (q, a) = (p, b,) utilizamos un estado auxiliar nuevo q0 y las
transiciones:

La directriz de no-desplazamiento tambin se puede simular con un


movimiento a la izquierda seguido de un retorno a la derecha. En
cualquier caso, concluimos que las MT en las que hay transiciones
estacionarias, (q, a) = (p, b,), aparte de las transiciones normales,
aceptan los mismos lenguajes que las MT estndares. Ntese que las
transiciones estacionarias se asemejan a las transiciones en autmatas,
excepto por el hecho de que las mquinas de Turing tienen la capacidad
de sobre-escribir los smbolos escaneados.

10

Como se demostr en la seccin 4.11; es decir, L no puede ser


aceptado por ningn autmata con pila.
Sea M la MT con parmetros

Y cuya funcin de transicin est representada por el siguiente


diagrama:

11

La idea utilizada para el diseo de esta MT se puede describir as:


la unidad de control cambia la primera a por X y se mueve a la derecha
hasta encontrar la primera b, la cual se sobre-escribe por una Y. Luego se
mueve hacia la derecha hasta encontrar la primera c, la cual se cambia
por Z. El control retrocede entonces hacia la izquierda en busca de la
primera X que encuentre en su camino; este retorno se hace en el estado
q3. La mquina avanza luego hacia la derecha, hasta la primera a que
quede en la cinta, y todo el proceso anterior se repite. Si la cadena de
entrada tiene la forma requerida, todas las aes sern reemplazadas por
Xs, las bes por Y s y las ces por Zs. Una vez terminada la transformacin,
el control se mueve hacia la derecha, en el estado q4, hasta encontrar la
primera celda marcada con el smbolo blanco b. La MT est diseada de
tal forma que si la cadena de entrada no tiene la forma requerida, el
procesamiento terminara en un estado diferente del estado de aceptacin
q5.
A continuacin procesamos la cadena de entrada w = aabbcc E L.

La cadena de entrada w = aaabbcc, que no est en L, se procesa


as:

12

Por otro lado, la cadena abbbcc, que tampoco est en L, se


procesara as:

Ejemplo: Disear MT que acepten los siguientes lenguajes sobre el


alfabeto dado. Escribir explcitamente la idea utilizada en el diseo de la
mquina y hacer su diagrama de estados.
1. L = {a2ibi : i 1}. Alfabeto: = {a, b}.
2. L = {aib2i : i 1}. Alfabeto: = {a, b}.
3. L = {aibjai+j : i 0, j 1}. Alfabeto: = {a, b}.
4. L = {w 2 : w tiene el mismo nmero de ceros que de unos}.
Alfabeto: = {0, 1}.
5. L = {w 2 : w = wR}. Alfabeto: = {0, 1}.
6. L = {wwR : w 2 }. Alfabeto: = {0, 1}.

13

SUBRUTINAS O MACROS

Hay procedimientos intermedios, como copiar o trasladar cadenas,


que se repiten frecuentemente en el diseo de mquinas de Turing. Es til
identificar algunos de estos procedimientos, llamados subrutinas o
macros, para simplificar el diseo de mquinas ms complejas. Los
macros se pueden considerar como mquinas de Turing con estado inicial
pero sin estados de aceptacin.

Ejemplo: Macro TI, traslacin a la izquierda. Este macro toma una


cadena de entrada y la traslada una casilla hacia la izquierda. Si la
entrada es la cadena a1a2 ak, la accin de TI se puede representar en
la forma.

La flecha l indica que las casillas sealadas sobre la cinta


coinciden. Los smbolos subrayados en las dos cintas representan los
smbolos ledos por la unidad de control al iniciar y al terminar el macro,
respectivamente. La MT que aparece a continuacin sirve para
implementar el macro TI cuando el alfabeto de entrada es {a, b, c}:

14

A continuacin definimos algunos otros macros tiles; se solicita al


lector disear MT que los implementen.
Macro TD, traslacin a la derecha. Traslada la cadena de entrada
una casilla a la derecha:

Macro BI, primer blanco a la izquierda. Busca el primer smbolo b


a la izquierda de una cadena w que no posee blancos:

Macro BD, primer blanco a la derecha. Busca el primer smbolo b


a la derecha de una cadena w que no posee blancos:

15

Macro NBI, primer smbolo no-blanco a la izquierda. Busca el


primer smbolo diferente de b a la izquierda de una cadena de blancos:

Macro NBD, primer smbolo no-blanco a la derecha. Busca el


primer smbolo diferente de b a la derecha de una cadena de blancos:

Macro COPD, copia a la derecha. Copia la cadena w a la derecha


de s misma, separando las dos w por un blanco b. La cadena w no
posee blancos:

Macro COPI, copia a la izquierda. Copia la cadena w a la izquierda


de s misma, separando las dos w por un blanco b. La cadena w que no
posee blancos:

16

Macro INT, intercambio. Intercambia las cadenas u y v (estas


cadenas no poseen blancos y no necesariamente son de la misma
longitud):

Ejercicios:
1. Disear MT que implementen los macros TD, BI, BD, NBI, NBD,
COPD, COPI e INT cuando el alfabeto de entrada es {a, b}.
2. Disear MT que implementen los macros TD, BI, BD, NBI, NBD,
COPD, COPI e INT cuando el alfabeto de entrada es {0, 1, 2}.
3. Sea = {a, b}. Disear MT para los siguientes macros:

TI2. Traslada la cadena de entrada 2 casillas a la izquierda.

TD2. Traslada la cadena de entrada 2 casillas a la derecha

TIk. Traslada la cadena de entrada k casillas a la izquierda (k


es un entero fijo 1).

TDk. Traslada la cadena de entrada k casillas a la derecha (k es


un entero fijo 1).

17

MQUINAS DE TURING COMO GENERADORAS DE LENGUAJES

Otra faceta importante de las MT es su capacidad para generar


lenguajes, tarea para la cual no son necesarios los estados de
aceptacin. Concretamente, una MT M = (Q, q0,, , b, ) genera el
lenguaje L si
1. M comienza a operar con la cinta en blanco en el estado inicial
q0.
2. Cada vez que M retorna al estado inicial q0, hay una cadena u
perteneciente al lenguaje L escrita sobre la cinta.
3. Todas las cadenas de L son, eventualmente, generadas por M.

Ejemplo: La siguiente MT genera cadenas con un nmero par de


aes sobre el alfabeto = {a}, o sea, el lenguaje L = {a2i : i 1}.

Ejemplo: La siguiente MT genera todas cadenas de ceros y unos


en el orden lexicogrfico (las cadenas se ordenan por longitud y las
cadenas de la misma longitud se ordenan ortogrficamente de izquierda a

18

derecha, considerando 0 < 1): 0, 1, 00, 01, 10, 11, 000, 001, 010, 011,
100, 101, 110, 111, 0000, 0001

Ejercicios:
1. Disear MT que generen los siguientes lenguajes:

2. Modificar la MT del ltimo ejemplo de esta seccin para disear


una MT que genere todas las cadenas de {a, b, c} en orden
lexicogrfico. Ayuda: no se necesitan ms estados.
3. Sea un alfabeto de n smbolos, = {a1, a2, . . . , an}. Modificar
la MT del ltimo ejemplo de esta seccin para disear una MT
que genere en orden lexicogrfico. Ayuda: no se necesitan
ms estados.
19

VARIACIONES DEL MODELO ESTNDAR DE MT

El modelo estndar de MT es susceptible de varias modificaciones


que no alteran la clase de lenguajes aceptados. Las variaciones que
estudiaremos aaden recursos computacionales a las mquinas,
individualmente consideradas, pero la capacidad de cmputo no se
incrementa en general: los modelos son equivalentes al modelo estndar.
Indicaremos como se pueden simular los nuevos modelos por medias
mquinas estndares.

Recurdese que en el modelo estndar, una MT siempre se detiene


cuando la unidad de control ingresa en un estado de aceptacin. Es decir,
no se permiten transiciones (q, a) cuando q 2 F.

ESTADO DE ACEPTACIN NICO

Toda MT se puede convertir, sin alterar el lenguaje aceptado, en


una mquina con un nico estado de aceptacin. Esto se consigue

20

fcilmente aadiendo transiciones desde los estados de aceptacin


originales hasta el nico estado de aceptacin qf , el cual es un estado
nuevo. Las transiciones necesarias son de la forma:

Para todo q estado de aceptacin original y todo a 2 . De esta


manera, se puede considerar que toda MT tiene un nico estado inicial y
un nico estado de aceptacin. Este es un hecho importante para la
codificacin binaria de mquinas de Turing.

MQUINA DE TURING CON CINTA DIVIDIDA EN PISTAS

En el modelo multi-pista, la cinta est dividida en un nmero finito k


de pistas, como se muestra en la siguiente figura:

La funcin de transicin adquiere la siguiente forma:

21

Donde los ai y los bi son smbolos del alfabeto de cinta y D es , !


o . En un paso computacional, la unidad de control cambia
simultneamente el contenido de las k pistas de la celda escaneada y
realiza luego uno de los desplazamientos!, o .

Simulacin. Las mquinas de Turing que actan sobre una cinta


dividida en k pistas aceptan los mismos lenguajes que las MT estndares.
Para concluir tal afirmacin, basta considerar el modelo multi-pistas como
una MT normal en la que el alfabeto de cinta est formado por el conjunto
de k-uplas (s1, s2, . . . , sk), donde los si 2 . Es decir, el nuevo alfabeto de
cinta es el producto cartesiano k = (k veces).

Ejemplo: Las pistas se usan por lo general para sealar con


marcas o marcadores ciertas posiciones en la cinta. La MT diseada
en el ejemplo de la seccin 6.1 para aceptar el lenguaje L = {aibici : i 1}
utiliza implcitamente la idea de marcadores: reemplazar las as por Xs, las
bes por Y s y las ces por Zs no es otra cosa que colocar las marcas X, Y y
Z en las posiciones deseadas. Estas marcas se pueden colocar en una
pista diferente, sin necesidad de sobre-escribir los smbolos de la cadena
de entrada.

Mquina de Turing con mltiples cintas En el modelo multi-cintas


hay k cintas diferentes, cada una dividida en celdas o casillas, como se
muestra en la figura que aparece en la parte superior de la pgina
siguiente.

22

Inicialmente, la cadena de entrada se coloca en la primera cinta y


las dems cintas estn llenas de blancos. En un paso computacional, la
unidad de control cambia el contenido de la casilla escaneada en cada
cinta y realiza luego uno de los desplazamientos!, o . Esto se hace de
manera independiente en cada cinta; el control tiene entonces k visores
que actan independientemente en cada cinta. La funcin de transicin
tiene la siguiente forma:

Donde los ai y los bi son smbolos del alfabeto de cinta , y cada Di


es un desplazamiento !, o .

Simulacin. A pesar de que el modelo multi-cinta parece, a primera


vista, ms poderoso que el modelo estndar, resulta que una MT con
mltiples cintas se puede simular con una MT multi-pista. A continuacin
bosquejaremos el procedimiento de simulacin.

23

Una MT con k cintas se simula con una MT que acta sobre una
nica cinta dividida en 2k + 1 pistas. Cada cinta de la mquina multi-cinta
da lugar a 2 pistas en la mquina simuladora: la pista superior simula la
cinta propiamente dicha y la inferior tiene todas sus celdas en blanco,
excepto una, marcada con un smbolo especial X, que indica la posicin
actual del visor de la mquina original en dicha cinta. La pista adicional de
la mquina simuladora se utiliza para marcar, con un smbolo especial Y ,
las posiciones ms a la izquierda y ms a la derecha de la unidad de
control en la mquina original. Para simular un solo paso computacional,
la nueva mquina requiere hacer mltiples recorridos a izquierda y a
derecha, actualizando el contenido de las pistas y la posicin de los
marcadores X y Y .

Ejemplo: Disear una MT con dos cintas que acepte el lenguaje L =


{aibici : i 0}.

24

Solucin: Una MT con dos cintas es ms fcil de disear que la MT


estndar presentada en el segundo ejemplo de la seccin 6.1. La idea es
copiar en la segunda cinta una X por cada a leda y, al aparecer las bes,
avanzar hacia la derecha en la primera cinta y hacia la izquierda en la
segunda. Al aparecer las ces se avanza hacia la derecha en ambas
cintas. Si la cadena de entrada tiene la forma aibici, se detectara
simultneamente el smbolo en blanco b en ambas cintas.

La funcin de transicin requerida para implementar esta idea es:

Se han utilizado cuatro estados, siendo q4 el nico estado de


aceptacin.

MQUINAS DE TURING NO-DETERMINISTAS (MTN)

En el modelo no-determinista se permite que, en un paso


computacional, la unidad de control escoja aleatoriamente entre varias
transiciones posibles. La funcin tiene la siguiente forma:
25

Donde los ai y los bi son smbolos del alfabeto de cinta , los pi son
estados y cada Di es un desplazamiento !, o .

La nocin de aceptacin en una MTN es similar a la de los modelos


no deterministas de autmatas considerados antes: una cadena de
entrada w es aceptada si existe por lo menos un cmputo a partir de la
configuracin inicial q0w, y que termina en la configuracin u1pu2, con p 2
F. Como antes, los cmputos en los cuales la mquina se detiene en un
estado de no aceptacin, o en los cuales no se detiene, son irrelevantes
para la aceptacin.

Simulacin. Una MTN no tiene mayor poder computacional que


una MT estndar, es decir, una MTN se puede simular con una MT, como
lo explicaremos a continuacin. Sea M una MTN; se bosquejara la
construccin de una MT M0 tal que L(M) = L(M0).
Sea n el nmero mximo de transiciones en los conjuntos (q, a),
considerando todo smbolo a 2 y todo estado q 2 Q. Para cada a 2 y q
2 Q, las transiciones contenidas en (q, a) se pueden enumerar entre 1 y
n. Si hay menos de n transiciones en un (q, a) particular, se repite
arbitrariamente una de ellas hasta completar n. De esta manera, cada una
de las transiciones (q, a) se puede considerar como un conjunto de n
opciones indexadas:

26

En algunos (q, a) habr opciones repetidas, pero esta repeticin


no altera el lenguaje aceptado.

La MT M0 que simulara a M tendr tres cintas. La primera cinta


almacena la entrada, la segunda genera de forma sistemtica todas las
secuencias finitas de nmeros entre 1 y n: primero las secuencias de
longitud 1, luego las secuencias de longitud 2, luego las de longitud 3 y
as sucesivamente (para esto se puede usar una subrutina como la
construida en el ejercicio 3 de la seccin 6.3).

Para cada secuencia i1i2 ik generada en la cinta 2, M0 copia la


cadena de entrada sobre la cinta 3 y simula la computacin de k pasos
que hace sobre ella la mquina original M, utilizando en el paso j la opcin
con ndice j en el (q, a) correspondiente. Si M0 se detiene en un estado
de aceptacin, entonces tanto M como M0 aceptan la entrada. Si el
cmputo simulado no termina en la aceptacin, M0 borra el contenido de
las cintas 2 y 3, genera otra secuencia en la cinta 2, copia de nuevo la
entrada en la cinta 3 e inicia una nueva simulacin.
Si la entrada es aceptada por la mquina original, existir un
cmputo que se detiene en un estado de aceptacin y, eventualmente,M0
encontrara y simulara tal cmputo.

Ejercicios:

Disear mquinas de Turing multi-pistas que acepten los


siguientes lenguajes. Escribir explcitamente la idea utilizada en
el diseo.

27

Disear mquinas de Turing multi-cintas que acepten los


siguientes lenguajes. Escribir explcitamente la idea utilizada en
el diseo.

SIMULACIN DE AUTMATAS POR MEDIO DE MQUINAS DE


TURING

En esta seccin veremos que los autmatas simples (AFD, AFN o


AFN-) y los autmatas con pila (AFPD o AFPN) se pueden simular con
mquinas de Turing: dado un autmata M se puede construir una MT que
acepte el mismo lenguaje que M. Usando estas simulaciones se podr
concluir que tanto los lenguajes regulares como los independientes del
contexto son recursivos.

28

SIMULACIN DE AUTMATAS

Un autmata (sin pila) se puede simular con una mquina de


Turing: primero se convierte en un AFDM = (Q, q0, F,, ) equivalente,
usando las tcnicas del Captulo 2. Luego se construye una MT M0 tal
que L(M) = L(M0) aadiendo un nuevo estado qf , que ser el nico
estado de aceptacin de M0, y transiciones desde los estados de F hasta
qf , en presencia del smbolo blanco b. Es decir, M0 = (Q0, q0, F0,, ,
b, 0) donde.

Ntese que la MT M0 as construida se detiene con cualquier


entrada w. n Puesto que los lenguajes regulares son precisamente los
aceptados por los AFD, hemos establecido el siguiente teorema.
Teorema. Todo lenguaje regular es recursivo.

SIMULACIN DE AUTMATAS CON PILA

Sea M = (Q, q0, F,, , s0, ) un autmata con pila. Para simular a
M se puede construir una MT M0 que acte sobre dos cintas: la primera

29

cinta simula la cinta de entrada y la segunda simula la pila del autmata.


M0 ser una MT determinista o no-determinista dependiendo de si el
autmata dado es un AFPD o un AFPN. Se define M0 = (Q0, q0, F0,, 0,
b, ) por medio de.

La MT M0 coloca inicialmente el smbolo inicial de pila sobre la cinta


2:

Una transicin de la forma (q, a, s) = (p, ) se simula con varias


transiciones: se trata de lograr que M sobre-escriba el smbolo s en la
cinta 2, que representa el tope de la pila, por la cadena . Por ejemplo, la
transicin (q, a, s) = (p, a1a2a3) se simula aadiendo un estado auxiliar
qe junto con las transiciones.

Para no alterar el lenguaje aceptado, cada transicin de este tipo


requiere la adicin de un estado especial qe diferente. Una transicin del
autmata M, (q, , s) = (p, ), se simula de manera similar: la posicin de
la unidad de control y el contenido de la primera cinta no cambian durante
el procedimiento.
Finalmente, se debe aadir la transicin.

30

Lo anterior muestra que el comportamiento del autmata M se


simula completamente con la MT M0 y se tiene que L(M) = L(M0).
Ntese que la MT as construida no necesariamente se detiene con
todas las cadenas de entrada ya que el autmata original M puede
ingresar a un bucle infinito con transiciones que inserten y extraigan
indefinidamente smbolos en la pila. Por consiguiente, para concluir que
todo LIC es recursivo es necesario restringir primero las transiciones del
autmata. En la demostracin del siguiente teorema se indica cmo
hacerlo.

Demostracin. Sabemos que un LIC L dado se puede generar con


una GIC G en FNC en la que la variable inicial no sea recursiva. En G no
hay transiciones , excepto posiblemente S! . A partir de G podemos
construir un AFPN M tal que L(G) = L(M) = L usando el procedimiento del
Teorema 5.4.1, y luego una MTM0 que simule aM, en la forma indicada
arriba. Se puede observar que M y M0 siempre se detienen al procesar
una cadena de entrada cualquiera: no ingresan nunca en bucles infinitos
debido al tipo restringido de las transiciones que surgen de la gramtica
G.
Con ayuda de los teoremas 6.5.1 y 6.5.2, podemos establecer las
relaciones de contenencia entre las colecciones de lenguajes estudiadas
hasta ahora (sobre un alfabeto dado):
Regulares & LIC $ Recursivos $ Recursivamente Enumerables $
.

31

Teorema. Todo LIC es un lenguaje recursivo.

Sabemos que hay lenguajes recursivos que no son LIC y lenguajes


LIC que no son regulares. En el prximo captulo se mostrara que existen
lenguajes RE que no son recursivos y lenguajes que no son RE. Por tal
razn, todas las contenencias anteriores son estrictas.
En la siguiente tabla se muestra, a manera de resumen, la relacin
entre los lenguajes estudiados y las mquinas que los aceptan.

Ejercicios:

Simular el siguiente AFD por medio de una MT M y hacer el


diagrama de estados de la mquina M.

32

Simular por medio de una MT M el autmata de pila del primer


ejemplo de la seccin 5.1, el cual acepta el lenguaje {aibi : i 1}
sobre el alfabeto = {a, b}, y cuya funcin de transicin es:

PROPIEDADES DE CLAUSURA DE LOS LENGUAJES RE Y DE LOS


LENGUAJE RECURSIVOS

En esta seccin presentaremos algunas propiedades de clausura


de los lenguajes recursivos y de los RE; en los ejercicios del final de la
seccin aparecen otras propiedades similares.

Teorema.
1. El complemento de un lenguaje recursivo tambin es recursivo.
2. La unin de dos lenguajes recursivos es recursivo.
3. La unin de dos lenguajes RE es RE.

33

Demostracin.

1. Sea L un lenguaje recursivo aceptado por la MT M. La mquina


M se detiene con cualquier entrada, ya sea en un estado de
aceptacin o en uno de rechazo. Se puede construir una MT M0
que acepte a L, haciendo que los estados de aceptacin de M
dejen de serlo en M0. De esta forma, las cadenas aceptadas por
M sern rechazadas por M0. Adicionalmente, desde los estados
de no-aceptacin en los cuales M se detiene, definimos
transiciones a un estado (nuevo) de aceptacin de M0. De esta
forma, las cadenas no aceptadas por M si sern aceptadas por
M0. Por consiguiente, L(M0) = L.

2. Sean L1 y L2 dos lenguajes recursivos aceptados por las MT M1


y M2, respectivamente. Construimos una MT M con dos cintas
que simule a M1 en la primera cinta y a M2 en la segunda. M
procesa inicialmente la entrada en la primera cinta; si M1
acepta, M tambin aceptara. Si M1 se detiene en un estado de
no-aceptacin, M proceder a procesar la entrada en la segunda
cinta, simulando a M2. Si M2 acepta, M tambin aceptara pero si
M2 se detiene en un estado de rechazo, M tambin se detendr
y no aceptara. Puesto que tanto M1 como M2 siempre se
detienen, L(M) = L1 [ L2.

3. El procedimiento del numeral anterior ya no sirve en este caso


porque es posible que M1 o M2 nunca se detengan al procesar
una entrada particular. En lugar de una simulacin consecutiva

34

de

las

mquinas

dadas,

se

necesita

que

simule

simultneamente a M1 y a M2. Para lograrlo utilizamos tambin


dos cintas, la primera para simular a M1 y la segunda para
simular a M2. En cada paso computacional, M simula un paso
de M1 y uno de M2.

Resulta muy instructivo presentar explcitamente una maquina M


que implemente la anterior idea intuitiva. Aparte de los estados especiales
qe y qf , definidos ms adelante, los estados de M son parejas de la forma
(p, q), donde p es un estado de M1 y q un estado de M2. Cada par de
transiciones

Da lugar a la siguiente transicin en la mquina M:

Si alguno de los estados q1 o q2 es un estado de aceptacin de


M1o M2, respectivamente, hacemos que M ingrese y se detenga en un
estado qf (estado nuevo), que ser el nico estado de aceptacin de M.
Esto se consigue con la transicin.

Tambin hay que permitir que M siga operando en una de las cintas
incluso si se ha detenido en la otra cinta en un estado de no aceptacin.

35

Por ejemplo, si 1(q1, s1) no est definida en M1, pero 2(q2, s2) = (p2,
r2,D2) es una transicin de M2, definimos

Donde qe es un estado especial (nuevo). Por medio de esta


transicin, cuando M ingrese en el estado qe en alguna de las cintas, se
detendr en dicha cinta pero contina la simulacin en la otra. Si M
ingresa al estado (qe , qe), se detendr sin aceptar.

El siguiente teorema establece una importantsima conexin entre


las nociones de lenguaje recursivo y lenguaje RE, la cual se puede
demostrar como consecuencia del Teorema.

Teorema. Un lenguaje L es recursivo si y slo si L y su complemento


L son RE.
Demostracin. En la direccin izquierda a derecha, la conclusin es
directa: si L es recursivo, obviamente es RE. L es tambin recursivo (parte
1 del Teorema.) y por lo tanto RE.

La parte esencial de este teorema es la otra direccin: si L y L son


RE, entonces L debe ser recursivo. Para verlo, partimos de dos mquinas
M1 y M2 que acepten a L y L, respectivamente. Construimos luego una
MT M que simule simultneamente a M1 y M2, tal como se hizo en la
parte 3 del Teorema. Puesto que para una entrada w slo hay dos
posibilidades, w 2 L o w 2 L, entonces la mquina M eventualmente se
detendr en la cinta 1 o en la cinta 2. En el primer caso, M acepta la

36

entrada y en el segundo caso la rechaza. Como M se detiene con toda


entrada, L es recursivo.

El siguiente teorema justifica la denominacin recursivamente


enumerable para los lenguajes aceptados por mquinas de Turing.

Teorema. Para todo lenguaje L aceptado por una MT M, se puede


construir una MT M0 que enumere secuencialmente las cadenas de L.

Bosquejo de la demostracin. La MT M0 tendr tres cintas. Las


cadenas de L sern enumeradas secuencialmente en la cinta 1 usando el
smbolo & como separador: w1&w2&w3& . La cinta 2 se usa para generar
todas las cadenas de en el orden lexicogrfico, utilizando la subrutina
construida en el ejercicio 3 de la seccin, modificada de tal manera que
las cadenas queden separadas entre s por el separador &. En la cinta 2
tambin se escribe, a la izquierda de la lista de cadenas, un contador que
registra del nmero de cadenas generadas. La cinta 3 se usa para simular
el procesamiento de M sobre las cadenas que se generan en la cinta 2.

Para precisar, M0 procede segn las siguientes acciones:

1. Accin 1. M0 genera sobre la cinta 2 la primera cadena de (o


sea, ) y simula en la cinta 3 un movimiento de la accin de M
sobre .

37

2. Accin 2. M0 genera sobre la cinta 2 la segunda cadena de y


simula, en la cinta 3, dos movimientos de la accin de M sobre
dicha cadena, as como un movimiento ms del procesamiento
de la cadena .
3. Accin i, (i 1). M0 genera sobre la cinta 2 la i-exima cadena de
y simula, en la cinta 3, i movimientos de la accin de M sobre
dicha cadena, as como un movimiento ms del procesamiento
de las i 1 cadenas previamente generadas en la cinta 2. Se
incrementa luego, en la cinta 2, el contador i de cadenas
generadas (este es tambin el contador del nmero de
movimientos simulados para cada cadena generada).

Al concluir la accin i se han generado en la segunda cinta las i


primeras cadenas de y se han simulado, en la cinta 3, los i primeros
movimientos que M realiza sobre esas cadenas. Si durante la simulacin,
alguna cadena es aceptada por M, M0 la copia en la cinta 1. Las casillas
ocupadas en la cinta 3 por las simulaciones de cadenas ya aceptadas se
tachan (es decir, se marcan con un smbolo especial), de tal manera que
M0 no tenga que procesarlas en los pasos subsiguientes.
Para acomodar las simulaciones, cada vez ms extensas, puede
ser necesario usar en la cinta 3 subrutinas de desplazamiento de
cadenas, a izquierda o a derecha. En todo caso, al terminar la accin i, M
ha utilizado una porcin finita en cada una de las tres cintas.

Ejercicios:
1. Utilizando razonamientos similares a los del teorema demostrar
lo siguiente:

38

(i) Si L1 y L2 son recursivos, L1 \ L2 es recursivo.


(ii) Si L1 y L2 son RE, L1 \ L2 es RE.
2. Demostrar o refutar:
(i)

Los lenguajes recursivos son cerrados para la concatenacin,


es decir, si L1 y L2 son recursivos, L1L2 tambin es
recursivo.

(ii)

(ii) Los lenguajes RE son cerrados para la concatenacin.

(iii)

iii) Los lenguajes recursivos son cerrados para la estrella de


Kleene, es decir, si L es recursivo, L tambin es recursivo.

(iv)

(iv) Los lenguajes RE son cerrados para la estrella de Kleene.

3. Sea L un lenguaje recursivo pero no RE, demostrar que para


toda MT M que acepte a L hay infinitas cadenas de entrada con
las cuales M no se detiene nunca.

MQUINAS DE TURING COMO CALCULADORAS DE


FUNCIONES

Como las mquinas de Turing pueden transformar las cadenas de


entrada, se pueden utilizar como mecanismos para calcular funciones.
Formalmente, una MT M = (Q, q0, qf ,, , b, ) calcula una funcin f :
! (Total o parcial) si para toda entrada w se tiene.

39

El modelo de MT aqu utilizado coincide con el estndar, pero no


hay estados de aceptacin. El estado qf , llamado estado final, se usa
para terminar el procesamiento de la entrada y producir la salida. No se
permiten transiciones desde el estado final qf . Ntese que M debe
terminar el procesamiento en la configuracin qf v, o sea, la unidad de
control debe estar escaneando el primer smbolo de la salida v.

Una MT que calcula una funcin puede utilizar cintas auxiliares, es


decir, se puede usar el modelo multi-cintas. En tal caso, la primera cinta
se usa como la cinta entrada-salida.

Ejemplo: Disear una MT M que calcule la funcin suma, en el


sistema de numeracin unitario. Con entrada 1n01m, M debe producir
como salida 1n+m. Aqu, el 0 se usa como separador entre 1n y 1m, que
representan los nmeros naturales n y m, respectivamente.

Solucin: M va a transformar 1n01m en 1n+m trasladando la


cadena 1m una casilla hacia la izquierda. El separador 0 se sobre-escribe
por 1 y el ultimo 1 de 1m se sobre-escribe por el smbolo b. La funcin
de transicin necesaria para implementar esta idea es:

40

Ejercicios: Disear MT que calculen las siguientes funciones. Las


entradas numricas se dan en el sistema de numeracin unitario, como
en el ejemplo de esta seccin.
1. f(n) = 2n, para todo nmero natural n.
2. La funcin de paridad de los nmeros naturales:

3. La funcin mayor que truncada:

Aqu la entrada (n,m) se presenta en la forma 1n01m.


LA TESIS DE CHURCH-TURING

41

Histricamente, el modelo de mquina de Turing fue presentado


en 1936 como un mecanismo abstracto de cmputo capaz de ejecutar
algoritmos paso a paso. La mquina de Turing antecedi en varias
dcadas a la implementacin fsica de los computadores digitales y se ha
usado desde entonces como el modelo terico fundamental de la nocin
de computacin secuencial.

Hay varias razones por las cuales la mquina de Turing sigue


siendo un formalismo til y ampliamente utilizado:

1. La nocin de paso computacional est claramente definida.


Esto permite precisar sin ambigedades el concepto de tiempo
de computacin.
2. La

nocin

de

lugar

de

almacenamiento est

tambin

claramente presentada, por medio de las casillas individuales en


la cinta.
3. Estos dos recursos, tiempo y espacio, aparecen en la mquina
de Turing de una manera muy realista y permiten analizar los
efectos de imponer limitaciones sobre ellos, lo cual es muy
adecuado

en

las

investigaciones

computacional.

OPERACIONES BINARIAS

42

sobre

complejidad

Se conoce una operacin binaria aquella que al operar dos


nmeros (de ah su nombre) se obtiene un tercero.

Ejemplo 1: El smbolo + representa la operacin binaria de suma;


ahora para la operacin binaria especfica de 3 + 5 = 8.
Podemos definir una operacin binaria de la siguiente manera: Una
operacin binaria (lase crculo) en un conjunto A es una regla que asigna
a cada para ordenado de elementos (a1, a2) un elemento b.
Esto equivale a decir que la operacin binaria de los elementos que
pertenecen al conjunto A (dominio), generan al conjunto B (codominio).

Ejemplo 2: Considere la operacin de suma, +, para el conjunto A


formado por los elementos {0, 1, 2, 3, 4}.

Esta operacin para los elementos del conjunto A NO ES


CERRADA bajo la suma, o en otras palabras no es una operacin interna.
Ya que la operacin de suma puede generar nmeros fuera del
conjunto A.

Ejemplo 3: Considere el conjunto A compuesto por los elementos


{0,1} determine si la operacin binaria de suma es una operacin interna
(operacin cerrada) o externa (operacin abierta).

43

Solucin, dado que es un conjunto pequeo podemos crear la


siguiente tabla.

Es una operacin externa o ABIERTA bajo la operacin de suma, ya


que el valor 2 no se encuentra en el conjunto original A.

Ejemplo 4. Considere el conjunto A compuesto por {0, 1} determine


si la operacin de multiplicacin es una operacin interna o externa para
el conjunto A. [el estudiante propondr la solucin a este problema].
En general una operacin binaria para el conjunto A es una funcin
definida f: AxA A.

Las propiedades que deben cumplir las operaciones binarias son:

Es decir, al tomar un elemento del conjunto A y realizarle la


operacin x (operacin binaria) a otro nmero del mismo
conjunto A, todos los resultados de dicha operacin deben esta
definidos; es decir, debe existir un resultado para toda
operacin.

Como la operacin binaria es una funcin, solo se le asigna un


elemento o resultado a una operacin binaria dada.

Ejemplo 5. Sea A ; determinar si la operacin para el conjunto de


los nmeros reales ser una operacin binaria; operacin binaria abierta o
cerrada.

44

Solucin: No cumple, dado que la divisin entre cero no est


definida.
Ejemplo 6. Sea A ; determinar si la operacin entre los nmeros
del conjunto A considerarse una operacin abierta o cerrada bajo dicha
operacin binaria.

PROPIEDAD CONMUTATIVA
Una operacin binaria es conmutativa nmeros a y b:
a*b = b * a (cuidado, el * para estos casos multiplicacin una
operacin binaria cualquiera).
Ejemplo 7. Identificar si para el conjunto de los binaria de suma
definida como a + b es conmutativa.
Solucin: si es conmutativa, dado que:
a+b=b+a
1+2=2+1
Ejemplo 8. Identificar si para el conjunto de los binaria de resta
definida como a - b es conmutativa.

Ejemplo 9. Para las operaciones binarias descritas por las reglas


de la siguiente tabla mostrada a continuacin:

Casos: a) y b) identifique en cada caso sin son conmutativas.

45

Nota: Para realizar una operacin por ejemplo: a * c; lo primero que


debe hacerse es buscar el rengln que contenga la a y despus la
columna que contenga el valor b; la interseccin o la parte de adentro
representa el resultado de la operacin, en este caso en el inciso a) a * c
=b

PROPIEDAD ASOCIATIVA

Una operacin binaria es asociativa si cumple con la condicin


siguiente:

a*(b*c) = (a*b)*c

(Recordar: el * para estos casos no es una multiplicacin, sino una


operacin binaria cualquiera).

Ejemplo 10. Identificar si para el conjunto de los enteros Z la


operacin binaria de suma definida como a + b es asociativa.
46

Solucin: si es asociativa, dado que:

a+ (b + c) = (a + b) + c
1+ (2+3) = (1+2) + 3

47

BIBLIOGRAFA

http://books.google.com.mx/books?
id=ELjhXQgM5e0C&lpg=PA40&dq=operaci%C3%B3n
%20binaria&pg=PA39#v=onepage&q=operaci%C3%B3n
%20binaria&f=false

http://books.google.com.mx/books?
id=7GJXRsNkglIC&lpg=PA334&dq=operaci%C3%B3n
%20binaria&pg=PA330#v=onepage&q=operaci%C3%B3n
%20binaria&f=false

http://es.wikipedia.org/wiki/Operaci%C3%B3n_binaria

48

You might also like