REPBLICA BOLIVARIANA DE VENEZUELAMINISTERIO DEL PODER POPULAR
PARA EDUCACIN SUPERIORUNIVERSIDAD 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 LENGUAJES04SUBRUTINAS O
MACROS...........................................14MQUINAS DE
TURING COMO GENERADORAS DE LENGUAJES18VARIACIONES DEL MODELO
ESTNDAR DE MT.20ESTADO DE ACEPTACIN NICO....20MQUINA DE TURING CON
CINTA DIVIDIDA EN PISTAS...21MQUINAS DE TURING NO-DETERMINISTAS
(MTN)...25SIMULACIN DE AUTMATAS POR MEDIO DE MQUINAS DE
TURING.28SIMULACIN DE
AUTMATAS............................28SIMULACIN DE AUTMATAS CON
PILA..29PROPIEDADES DE CLAUSURA DE LOS LENGUAJES RE Y DE LOS
LENGUAJE RECURSIVOS33MQUINAS DE TURING COMO CALCULADORAS DE
FUNCIONES.................................39LA TESIS DE
CHURCH-TURING41OPERACIONES BINARIAS...42
PROPIEDAD CONMUTATIVA..44PROPIEDAD 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 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 o 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.
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:
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:
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}.
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}:
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:
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:
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).
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 si1. 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 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.
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
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:
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.
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.
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}.
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:
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:
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.
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.
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 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.
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 $ .
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.
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.
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 de
las mquinas dadas, se necesita que M 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. 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 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
.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: (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.
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:
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
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 sobre complejidad
computacional.
OPERACIONES BINARIAS
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
Aformado 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). 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.
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 + a1 + 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.
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.
Solucin: si es asociativa, dado que:
a+ (b + c) = (a + b) + c1+ (2+3) = (1+2) + 3
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
8
2