Está en la página 1de 79

UNIDAD I.

INTRODUCCIÓN
LUIS ANGEL TUZ AGUILAR
ING. SISTEMAS
COMPUTACIONALES
4° SEMESTRE
1.1 Autómatas, Computabilidad y Complejidad

 Autómata

Los autómatas vienen a ser mecanismos formales que “realizan'‘


derivaciones en gramáticas formales. La manera en que las realizan es
mediante la noción de reconocimiento. Una palabra será generada en
una gramática si y sólo si la palabra hace transitar al autómata
correspondiente a sus condiciones terminales. Por esto es que los
autómatas son analizadores léxicos (llamados en inglés “parsers'') de las
gramáticas a que corresponden.
1.1 Autómatas, Computabilidad y Complejidad

 Computabilidad

Computabilidad: qué cosas pueden ser computadas por un ser humano


que simplemente siga una lista de instrucciones con lápiz y papel,
durante el tiempo que sea necesario, con ingenuidad y sin conocimiento
previo del problema. Parte de la motivación para este trabajo era el
desarrollar máquinas que computaran, y que pudieran automatizar el
tedioso y lleno de errores trabajo de la computación humana.
1.1 Autómatas, Computabilidad y Complejidad

 Complejidad
La complejidad, es el estudio de la cantidad de tiempo y de espacio en
memoria que toma la ejecución de un cómputo dado. La Teoría de la
complejidad computacional es la parte de la teoría de la computación
que
estudia los recursos requeridos durante el cálculo para resolver un
problema. Los recursos comúnmente estudiados son el tiempo (número
de pasos de ejecución de un algoritmo para resolver un problema) y el
espacio (cantidad de memoria utilizada para resolver un problema).
1.2 Nociones Matemáticas

1.2.1 Conjuntos

El concepto de conjunto es de fundamental importancia en las


matemáticas modernas. Muchos matemáticos creen que es
posible expresar todas las matemáticas con un lenguaje de teoría
de conjuntos. Otra aplicación de la teoría de conjuntos la
encontramos con el modelado e investigación de operaciones en
las ciencias computacionales.
1.2 Nociones Matemáticas

Un Conjunto es cualquier colección de objetos el cual puede ser


tratado como una entidad, y un objeto de la colección se dice que
es un elemento o miembro del conjunto. Dado un objeto x y un
conjunto S, si x es un elemento del conjunto S, lo podemos escribir
como x  S; si x no es un elemento del conjunto S, podemos
escribirlo como (x  S) o también x  S. Los términos conjunto,
colección y clase son usados como sinónimos, así como también
los términos elemento o miembro.
1.2 Nociones Matemáticas
Teoría de Conjuntos es la rama de las matemáticas a la que el matemático
alemán Georg Cantor dio su primer tratamiento formal en el siglo XIX. El
concepto de conjunto es uno de los más fundamentales en matemáticas,
incluso más que la operación de contar, pues se puede encontrar,
implícita o explícitamente, en todas las ramas de las matemáticas puras y
aplicadas. En su forma explícita, los principios y terminología de los
conjuntos se utilizan para construir proposiciones matemáticas más
claras y precisas y para explicar conceptos abstractos como el infinito.
1.2 Nociones Matemáticas

 Notación de conjuntos
Ordinariamente se usan letras mayúsculas para representar los conjuntos
que incluiremos sus elementos dentro de llaves separados por comas, {}.
El símbolo elementosignifica (es elemento de). Análogamente,significa
(no es elemento de). Ejemplo: Sea S la letra que designa el conjunto
descrito precisamente como [a,b,c,d].

Por tanto, S es el conjunto cuyos elementos son las primeras cuatro


letras minúsculas del alfabeto. Podemos entonces escribir a S, b S, c
S y d S. Similarmente f S, 3  S, etc.
1.2 Nociones Matemáticas

 Conjuntos Iguales:

Usamos el signo de igualdad para indicar que dos


símbolos representan al mismo conjunto.

Definición: se dice que dos conjuntos S y T


son iguales si cada elemento de S es elemento
de T y viceversa. Se escribe S=T.
1.2 Nociones Matemáticas
 Conjuntos Vacios:

Es útil tener el concepto de un conjunto sin elemento.


Definición: un conjunto sin elementos recibe el nombre
de conjuntos vacios o conjunto nulo y se representa
por [ ] o por . Ejemplo: considérese el conjunto S de
todos los elementos que los son tanto [a,b,c] como de
[d,e,f]. El conjunto S no tiene elementos,; luego, S = [ ].
1.2 Nociones Matemáticas
 Subconjuntos:

Definición: se dice que un conjunto S es subconjunto T, si todos los


elementos de S los son T. El símbolo se lee (es subconjunto de).

Así, (S T ) se lee (S es subconjunto de T). Decir que S no es


subconjunto de T significa que algun elemento de S no lo es de T. En tal
caso escribimos S  T. Ejemplo: sea S = (a.b.c.d) y T=(a.b.c.d.e). Vemos
que S  T. Sin embargo si H={a.b.c.f}, notamos que f  T, de modo que
H T.
1.2 Nociones Matemáticas
 Conjuntos Equivalentes:

Cuando los elementos de un conjunto se corresponden con los de un


segundo conjunto de modo que cada elemento de cada conjunto tenga
uno, y solo uno, asociado en el otro conjunto, decimos que hay una
correspondencia uno a uno entre ambos conjuntos.
Definición: dos conjuntos que se pueden poner en correspondencia uno a
uno entre sí, se dice que son equivalentes. Si A es equivalente a B, se
escribe AB. Ejemplo: sean S = {a.b.c.d} y T = {,,,}. Estos dos
conjuntos son equivalentes puesto que podemos hacer corresponder en
forma uno a uno los elementos de un conjunto con los del otro.
1.2 Nociones Matemáticas

 Conjuntos Finitos E Infinitos:


Si es posible encontrar un subconjunto estándar de N que se
puede hacer corresponder uno a uno con un conjunto dado
S, o si S es el conjunto vacío, decimos que S es finito. Si no, decimos
que infinitos. Ejemplos:

T = {a,b,c..., x,y,z} es conjunto finito, puesto que es


equivalente {1,2,3,4,5...,25,26}.
1.2.2 Funciones y Relaciones TC
 Función

Una función es una regla que asigna a cada elemento de un


conjunto uno y sólo un elemento de un conjunto B.
El conjunto A es el dominio de la función, y el conjunto B es el
contra dominio de la función
1.2.2 Funciones y Relaciones TC
 Relación

1.- Una relación es una correspondencia entre un primer conjunto llamado


dominio y un segundo conjunto llamado contra-dominio de modo que a
cada elemento del dominio corresponde uno o más elementos del contra-
dominio.
2.- Una relación, en general, es cualquier conjunto de pares ordenados de
números reales.
1.2.2 Cadenas y Lenguajes
Una cadena o palabra es una secuencia finita de símbolos que
pertenecen a un alfabeto y comúnmente se denota con la letra . La
cadena vacía se denota como y es una secuencia vacía de símbolos
tomados de cualquier alfabeto

En matemáticas, lógica, y las ciencias computacionales, un lenguaje


formal es un conjunto de palabras (cadenas de caracteres)
1.2.2 Cadenas y Lenguajes
Cadenas de caracteres En matemáticas, una cadena de caracteres,
palabra o frase es una secuencia ordenada de longitud arbitraria (aunque
finita) de elementos que pertenecen a un cierto alfabeto. Habitualmente
se usan las letras w, x, y,… para referirnos a cadenas. Por ejemplo, si
tenemos un alfabeto Σ = {a, b, c}, una cadena podría ser: x = aacbbcba.
En general, una cadena de caracteres es una sucesión de caracteres
(letras, números o determinados signos). Se utilizan en programación,
normalmente como un tipo de dato predefinido, para palabras, frases o
cualquier otra sucesión de caracteres.
1.2.2 Cadenas y Lenguajes
Conjunto por extensión: es una forma muy limitada de representación
Ejemplo: Σ = {a, b}, L = {a, b, aa, ab}
Conjunto por comprensión: La manera de hacerlo es especificando una
propiedad que deben satisfacer las cadenas del lenguaje. Es decir,
L = {x ∈ A|Φ(x)}.

Ejemplo: Σ = {a, b},

L1= {w ∈ Σ w no tiene aa ni bb como subcadena}


L2= {w ∈ Σ |w| = 10 ∧ w comienza con a}
1.3 Inducción Matemática
La inducción es uno de los métodos efectivos más comunes de prueba en
las matemáticas. La inducción matemática es un método de demostración
que suele ser muy útil en problemas en los que se trata de probar que
todos los números naturales (1, 2, 3...) cumplen una cierta propiedad:
consta de dos pasos:

 Primero, se demuestra que el 1 cumple la propiedad.


 A continuación, se supone que la propiedad es verdadera para un cierto
número n (arbitrario) y se demuestra para el número siguiente, el n+1.
1.3 Inducción Matemática

Si se consigue, esto demuestra la propiedad que queríamos para


todos los números naturales, de forma parecida a las filas de
fichas de dominó cuando caen: hemos demostrado que la primera
ficha (el 1) cae (primer paso), y que si cae una ficha también debe
caer la siguiente (si es cierta para n, debe serlo para n+1,
segundo paso). La idea de la inducción es muy clara: si un
número cumple algo, y si cuando un número lo cumple el
siguiente tiene que cumplirlo, entonces todos los números lo
cumplen.
1.3 Inducción Matemática
Este método es mucho más general de lo que pueda parecer a primera
vista; si queremos, por ejemplo, demostrar una propiedad para todos los
números pares, no tenemos más que aplicar la inducción a la afirmación
"el número 2n cumple la propiedad, para todo natural n", que se refiere a
todos los números naturales y es equivalente a la inicial. De la misma
forma, la inducción es útil para demostrar algo sobre una cantidad finita
de cosas porque la misma idea de las fichas de dominó es aplicable; en
este caso se suele llamar "inducción finita", y es un caso particular de la
inducción que se ha explicado arriba. Pueden, de manera similar,
demostrarse afirmaciones del tipo "todos los números a partir del 8
cumplen tal cosa", y éstos son sólo ejemplos simples. El método de
inducción es a la vez muy potente y muy intuitivo, y puede aplicarse en
una gran variedad de problemas.
UNIDAD 2. INTRODUCCIÓN
2.1 AUTOMATAS FINITOS

AFN

Expresiones AFD
Regulares

Manejador de
Tabla
Especificación Implementación de
léxica AFD
;

AUTOMATA

Se dice que un autómata finito (AF) puede ser


descrito como una 5-tupla (S,Σ,T,s,A) donde:

 
S un conjunto de estados;
Σ es un alfabeto;
T es la función de transición: ;
Es el estado inicial;
Es un conjunto de estados de aceptación o finales.
2.1.1 AUTOMATAS FINITOS
DETERMINISTICOS
Un AFD o autómata finito determinista es aquel autómata finito
cuyo estado de llegada está unívocamente determinado por el
estado inicial y el carácter leído por el autómata.
 
Formalmente, un autómata finito determinista (AFD) es similar a
un Autómata de estados finitos, representado con una 5-tupla
(S,Σ,T,s,A) donde:

Σ es un alfabeto;
S un conjunto de estados;
T es la función de transición: ;
Es el estado inicial;
Es un conjunto de estados de aceptación o finales.
Al contrario de la definición de autómata finito, este
es un caso particular donde no se permiten
transiciones lambda (vacías), el dominio de la
función T es S (con lo cual no se permiten
transiciones desde un estado de un mismo símbolo a
varios estados).
 
A partir de este autómata finito es posible hallar la
expresión regular resolviendo un sistema de
ecuaciones.
 
S1 = 1 S 1 + 0 S2 + ε
S2 = 1 S 2 + 0 S1
Siendo ε la palabra nula. Resolviendo el sistema y
haciendo uso de las reducciones apropiadas se
obtiene la siguiente expresión regular:
1*(01*01*)*.
 
Inversamente, dada la expresión regular es
posible generar un autómata que reconozca el
lenguaje en cuestión utilizando el algoritmo de
Thompson, desarrollado por Ken Thompson, uno
de los principales creadores de UNIX, junto con
Dennis Ritchie.
 
Un tipo de autómatas finitos deterministas
interesantes son los tries.
2.1.2 AUTOMATAS FINITOS
NO DETERMINISTICOS

Un AFND o autómata finito no determinista es aquel que


presenta cero, una o más transiciones por el mismo
carácter del alfabeto.
 
Un autómata finito no determinista también puede o no
tener más de un nodo inicial.

Los AFND también se representan formalmente como


tuplas de 5 elementos (S,Σ,T,s,A).

La única diferencia respecto al AFD es T.


2.2 EXPRESIONES
REGULARES
Se dice que un lenguaje Regular es aquel que puede ser
procesado por un Automata de Estados Finitos. También
Un lenguaje regular es un tipo de lenguaje formal que
satisface las siguientes propiedades:
 
Y que puede ser reconocido por:
 
Un autómata finito determinista
Un autómata finito no determinista
Un autómata finito alterno
Una máquina de Turing de solo lectura
Es generado por:
 
Una gramática regular una gramática de prefijos
 
Es descrito por:
 
Una expresión regular
 
Para situar los lenguajes regulares en la jerarquía de
Chomsky hay que notar que todo lenguaje regular es
también un lenguaje independiente de contexto, aunque
la afirmación contraria no es cierta, por ejemplo: el
lenguaje que contiene el mismo número de aes y de vez
es independiente de contexto pero no regular.
Un lenguaje recursivo sobre un alfabeto Σ dado se define
recursivamente como:

 
El lenguaje vacío es un lenguaje regular
El lenguaje cadena vacía {ε} es un lenguaje regular
Para todo símbolo a ∈ Σ {a} es un lenguaje regular
Si A y B son lenguajes regulares entonces A ∪ B (unión), A•B
(concatenación) y A* (estrella de Kleene) son lenguajes regulares
Si A es un lenguaje regular entonces (A) es el mismo lenguaje regular
No existen más lenguajes regulares sobre Σ
Todo lenguaje formal finito constituye un lenguaje
regular. Otros ejemplos típicos son todas las cadenas
sobre el alfabeto {a, b} que contienen un número par
de aes o el lenguaje que consiste en varias aes
seguidas de varias bes.
 

Si un lenguaje no es regular requiere una máquina con


al menos una complejidad de Ω(log log n) (donde n es
el tamaño de la entrada). En la práctica la mayoría de
los problemas no regulares son resueltos con una
complejidad logarítmica.
2.3 LENGUAJES NO
REGULARES

“Aquel lenguaje de cuyo planteamiento


no pueda generarse un autómata finito o
pueda expresarse en términos de
expresiones regulares”
UNIDAD 3. INTRODUCCIÓN
3.1. Gramática Libre de Contexto

Una gramática libre de contexto en lingüística e informática es una


gramática formal en la que cada regla de producción es de la forma:

V→w

Donde V es un símbolo no terminal y w es una cadena de terminales


y/o no terminales. El término libre de contexto se refiere al hecho de que
el no terminal V puede siempre ser sustituido por w sin tener en cuenta el
contexto en el que ocurra. Un lenguaje formal es libre de contexto si hay
una gramática libre de contexto que lo genera.
Gramática Libre de Contexto

Las gramáticas libres de contexto permiten describir la mayoría de los


lenguajes de programación, de hecho, la sintaxis de la mayoría de lenguajes
de programación está definida mediante gramáticas libres de contexto. Por
otro lado, estas gramáticas son suficientemente simples como para permitir
el diseño de eficientes algoritmos de análisis sintáctico que, para una cadena
de caracteres dada determinen como puede ser generada desde la gramática.
Los analizadores LL y LR tratan restringidos subconjuntos de gramáticas
libres de contexto.

La notación más frecuentemente utilizada para expresar gramáticas libres de


contexto es la forma Backus-Naur.

Así como cualquier gramática formal, una gramática libre de contexto puede
ser definida mediante la 4-tupla:

G = (Vt,Vn,P,S) donde
3.2 Árbol de Derivación

Un árbol de derivación (o árbol sintáctico) es una representación gráfica de


como se deriva una forma sentencial a partir del símbolo no-terminal inicial.

Un árbol es un grafo dirigido acíclico en el cual cada nodo se conecta con un


nodo distinguido, llamado nodo raíz mediante un único camino. Un nodo n1 se
dice descendiente de otro nodo n2 si se puede llegar a n1 a partir de n1. El nodo
raíz no es descendiente de ningún nodo, y los nodos que no tienen descendientes se
denominan hojas. El resto de los nodos se denominan nodos interiores.
Árbol de Derivación

Un árbol de derivación tiene las siguientes propiedades:

• El nodo raíz está rotulado con el símbolo distinguido (inicial) de la


gramática.
• Cada hoja corresponde a un símbolo terminal o un símbolo no-terminal.
• Cada nodo interior corresponde a un símbolo no-terminal.
3.3 Formas Normales de Chomsky

Es un modelo o forma normal para las producciones. Se dice que una


GIC está en Forma Normal de Chomsky, si no contiene ε producciones y si
todas las producciones son de la forma:

A→a, para a Є Σ
A→BC, con B y C no terminales

Toda GIC puede ser transformada en un GIC en Forma Normal de


Chomsky.

Sea G una GIC tal que ε∉L(G)


Sea G una GIC tal que ε Є L(G)
3.4 Formas Normales de Greibach

Una GIC está en Forma Normal de Greibach (FNG) si todas las


producciones son de la forma A→aα donde a es un símbolo terminal y α Є (Ν
υ Σ)*.

•No puede tener producciones recursivas a la izquierda


•Cada producción requiere un símbolo del alfabeto, con lo que una GIC en
FNG sólo puede generar lenguajes no vacíos y que no contengan ε

Una producción de la forma A→αA con α Є (Ν υ Σ)* se conoce como


recursiva por la derecha. De la misma forma, una producción de la forma
A→Aα se conoce como recursiva por la izquierda.
3.5 Eliminación de Factores
Comunes Izquierdos

Existen gramáticas que tiene producciones de la forma A ¡ å ß1 | å ß2 como por ejemplo:

S¡iEtSeS|iEtS

donde å es el término común en las producciones de A.

Sin embargo para poder llevar a cabo el análisis sintáctico de las mismas mediante
algunas técnicas se debe eliminar los términos comunes izquierdos llevando a cabo el
proceso de factorización siguiente:

Las producciones A ¡ å ß1| å ß2 se transforman en las siguientes


A ¡ å A´
A´¡ ß | ß2
3.6 Eliminación de Recursividad Izquierda

La recursividad consiste en realizar una definición de un concepto en términos


del propio concepto que se está definiendo.
Ejemplos:

·Los números naturales se pueden definir de la siguiente forma:


0 es un Número natural y el sucesor de un número natural es también un
número natural.
·El factorial de un número natural n, es 1 si dicho número es 0, o n multiplicado
por el factorial del número n-1, en caso contrario.
·La n-ésima potencia de un número x, es 1 si n es igual a 0, o el producto de x
por la potencia (n-1)-ésima de x, cuando n es mayor que 0.
Eliminación de Recursividad Izquierda

En todos estos ejemplos se utiliza el concepto definido en la propia definición.


Solución de problemas recursivos:

·División sucesiva del problema original en uno o varios más pequeños, del
mismo tipo que el inicial.
·Se van resolviendo estos problemas más sencillos.
·Con las soluciones de éstos se construyen las soluciones de los problemas más
complejos.
3.7 Eliminación de la Ambigüedad

Una gramática ambigua permite más de una derivación para la misma forma
sentencial por lo que también habrá más de un [árbol de derivación] para la misma.
Por ello basta con encontrar dos [árboles derivación] distintos para la misma forma
sentencial para demostrar que una gramática es ambigua.

A continuación se presentan conceptos importantes dentro del estudio de las


características de las gramáticas:

AMBIGÜEDAD:

Sea G = { N , T , P , S } una gramática libre de contexto y sea L(G) el lenguaje


generado por esa gramática.
Eliminación de Ambigüedad

TIPOS DE AMBIGÜEDAD:

Dentro del estudio de gramáticas existen dos tipos fundamentales de


ambigüedad, los cuales son:

Ambigüedad Inherente: Las gramáticas que presentan este tipo de


ambigüedad no pueden utilizarse para lenguajes de programación, ya que por
más transformaciones que se realicen sobre ellas, NUNCA se podrá eliminar
completamente la ambigüedad que presentan.
Ambigüedad Transitoria: Este tipo de ambigüedad puede llegar a ser
eliminada realizando una serie de transformaciones sobre la gramática original.
Una vez que se logra lo anterior, la gramática queda lista para ser reconocida por
la mayor parte de los analizadores sintácticos. (Se le considera "ambigüedad"
porque existen métodos para realizar análisis sintáctico que no aceptan
gramáticas con estas características)
3.8 Autómatas Push-Down

Este modelo posee dos cintas con celdas iniciales a la izquierda e infinitas celdas a
la derecha. Una de sus cintas es para almacenar los símbolos de entrada o palabra a ser
analizada y solo se realizan lecturas sobre ella. La otra cinta funciona como una pila
(primer símbolo en entrar, último en salir) sobre ella se introducen y extraen símbolos
especiales, a partir de un cabezal de lectura / escritura. Los cabezales están vinculados a
una unidad de control.

  Inicialmente la cinta de entrada contiene blancos, al igual que la cinta de tipo pila.
Se coloca los símbolos que representan la palabra a ser analizada a partir del extremo
izquierdo de la cinta de entrada. El cabezal de la cinta de entrada se encuentra, como
Estado Inicial sobre el primer símbolo del extremo izquierdo. El cabezal de la cinta de
tipo pila se posiciona sobre el tope de la pila o extremo izquierdo de la misma.
Definición formal de un Autómata Push-Down

Está constituido por los siguientes elementos:

        AP = ( E, A, B, e0, F, f)

E = Conjunto de estados, no vacío.


A = Conjunto de símbolos de entrada.
B = Conjunto de símbolos auxiliares, incluidos < y > como delimitadores.
e0 = Estado inicial.
F = Conjunto de estados finales.
f  = Función de control, definida:
3.9 Lenguajes no Regulares

•Existen lenguajes que no son regulares y técnicas para demostrarlo: “El


lema de bombeo”

Ejemplo:L ={ 0n1n: n ≥0} no es regular

Idea de la demostración:

•Si L es regular, existe M = (Q, Σ, δ, q0, F) un AFDt que lo reconoce.


Además, M tiene un nofinito de estados.
•Deben existir 0iy 0jcon i ≠j tales que δ*(q0, 0i) = δ*(q0, 0j)
•Esto significa que δ*(q0, 0i1i) = δ*(q0, 0j1i), pero por un lado 0i1i L y por
otro 0j1i L. Llegamos a una contradicción.
UNIDAD 4. INTRODUCCIÓN
4.1 Definición formal de una máquina de Turing.

Una máquina de Turing es un “dispositivo” como lo eran los


autómatas finitos o los autómatas a pila, con más capacidades que éstos.
Dispone también de un número finito de estados, uno de ellos inicial, y
algunos de ellos finales. Dispone también de una cinta, que es una
sucesión “doblemente infinita” de “celdas”, en cada una de las cuales hay
un símbolo. La cinta está inicialmente “en blanco” salvo en una porción
finita, en la que está almacenada la entrada. La máquina de Turing puede
leer y escribir símbolos en la cinta, y moverse a lo largo de ella en ambos
sentidos. Para ello dispone de una cabeza de lectura-escritura. Su
operación viene determinada por su función de transición.
Definición formal de MT

Esta constituida por los siguiente elementos:

MT = ( E, A, B, e0, F, f)

E = Conjunto de estados, no vacío.


A = Conjunto de símbolos de entrada.
B = Conjunto de símbolos auxiliares.
e0 = Estado inicial.
F = Conjunto de estados finales.
f  = Función de control, definida:

donde:   f: ( E - F )   x   ( A È B )   Þ   E x  ( A È B)   x   ( I, O, D )

I = movimiento del cabezal a la izquierda.


O = movimiento nulo.
D = movimiento a la derecha.
Definición formal de MT

La máquina de Turing consta de un cabezal lector/escritor y una cinta infinita


en la que el cabezal lee el contenido, borra el contenido anterior y escribe un
nuevo valor. Las operaciones que se pueden realizar en esta máquina se
limitan a:

• avanzar el cabezal lector/escritor para la derecha.


• avanzar el cabezal lector/escritor para la izquierda.
Definición formal de MT

El cómputo es determinado a partir de una tabla de estados de la


forma:
(estado, valor) (\nuevo estado, \nuevo valor, dirección)

Esta tabla toma como parámetros el estado actual de la máquina y el


carácter leído de la cinta, dando la dirección para mover el cabezal, el
nuevo estado de la máquina y el valor a ser escrito en la cinta.

Con este aparato extremadamente sencillo es posible realizar cualquier


cómputo que un computador digital sea capaz de realizar.
4.2 Construcción modular de una máquina de Turing.

Mediante esta técnica se puedan desarrollarse maquinas de Turing


complejas a partir de bloques de elementales a partir de maquinas mas
pequeñas mediaste diagramas de transiciones.

La construcción de maquinas de Turing se lleva a cabo mediante los


diagramas de transición y combinarlos de manera parecida a lo que se realiza
en la formación de la unión y concatenación de los autómatas finitos.
4.2 Construcción modular de una máquina de Turing.

Pasos para la construcción de una máquina de Turing

1.-Elimine las características de inicio de los estados iniciales de las


maquinas, excepto la de aquel donde iniciara la maquina compuesta.

2.-Elimine las características de detención de los estados de parada de


todas la maquinas e introduzca un nuevo estado de parada que nos se
encuentre en ninguno de los diagramas que se combinan.

3.-Para cada uno de los antiguos estados de parada p y cada x en y.


4.2 Construcción modular de una máquina de Turing.

Ejemplificación de dicha construcción.


4.2 Construcción modular de una máquina de Turing.

Una máquina de Turing es un autómata que se mueve sobre una


secuencia lineal de datos.  En cada instante la máquina puede leer un solo
dato de la secuencia (generalmente un carácter) y realiza ciertas acciones en
base a una tabla que tiene en cuenta su "estado" actual (interno) y el último
dato leído. 

Entre las acciones está la posibilidad de escribir nuevos datos en la


secuencia;  recorrer la secuencia en ambos sentidos y cambiar de "estado"
dentro de un conjunto finito de estados posibles.

Máquina de Turing Compuesta


4.3 Lenguajes aceptados por la MT.

Una máquina de Turing se puede comportar como un aceptador de un


lenguaje. Si colocamos una cadena w en la cinta, situamos la cabeza de
lectura/escritura sobre el símbolo del extremo izquierdo de la cadena w y
ponemos en marcha la máquina a partir de su estado inicial. Entonces w es
aceptada si, después de una secuencia de movimientos, la máquina de
Turing llega a un estado final y para. Por tanto w es aceptada. Si qw *
w1pw2 para algún estado final p y unas cadenas w1 y w2.

Entonces, se obtiene la siguiente definición:

Sea M = (Q,  , , q0=q1, B, F, ) una máquina de Turing. Entonces el


lenguaje aceptado por M es: L(M) = {w *q1w * w1pw2 para pF y
wi*}.
4.3 Lenguajes aceptados por la MT.

Los lenguajes formales que son aceptados por una máquina de Turing
son exactamente aquellos que pueden ser generados por una gramática
formal. El cálculo Lambda es una forma de definir funciones. Las funciones
que pueden se computadas con el cálculo Lambda son exactamente aquellas
que pueden ser computadas con una máquina de Turing.

Estos tres formalismos, las máquinas de Turing, los lenguajes formales y


el cálculo Lambda son formalismos muy disímiles y fueron desarrollados por
diferentes personas. Sin embargo, ellos son todos equivalentes y tienen el
mismo poder de expresión. Generalmente se toma esta notable coincidencia
como evidencia de que la tesis de Church-Turing es cierta, que la afirmación
de que la noción intuitiva de algoritmo o procedimiento efectivo de cómputo
corresponde a la noción de cómputo en una máquina de Turing.
4.3 Lenguajes aceptados por la MT.

-Gramáticas estructuradas por frases:

Parte izquierda de las reglas: combinación de símbolos


terminales y no terminales, con al menos un no terminal.

Parte derecha de las reglas: combinación de símbolos terminales y no


terminales de cualquier longitud (incluso 0).

- Las máquinas de Turing aceptan lenguajes estructurados por frases.


4.4 Variantes de una máquina de Turing.

Hay otras definiciones de las máquinas de Turing que son equivalentes.


Algunos de esos modelos alternativos son mucho más complicados aunque
todos tienen la misma potencia computacional (o de cálculo). Muchas de ellas
dotan de mayor flexibilidad al diseño de una máquina de Turing que
resuelva un problema en particular. .
4.4 Variantes de una máquina de Turing.

Máquina de Turing con Directiva de Permanecer

Recuérdese que la máquina de Turing sencilla sitúa la cabeza de


lectura/escritura sobre el primer B que haya a la izquierda de la posición
actual. Para hacerlo, busca fuera de la celda actual y retrocede. Esto es debido
a la definición original que requiere que por cada transición se mueva la
cabeza de la cinta.

La función de transición estaba definida como: : Q x   Q x  x {R, L}


y puede ser modificada como: : Q x   Q x  x {R, L, S} donde S
significa “permanecer”, es decir no mover la cabeza de lectura/escritura.

Por tanto (q, )=(p, ’, S) significa que se pasa del estado q al p, se
escribe ’ en la celda actual y la cabeza se queda sobre la celda actual.
4.4 Variantes de una máquina de Turing.

Máquina de Turing Multipista

Es aquella mediante la cual cada celda de la cinta se divide en subceldas.


Cada subcelda es capaz de contener símbolos de la cinta. La cinta tiene cada
celda subdividida en tres subceldas. Se dice que esta cinta tiene múltiples
pistas. Puesto que cada celda de esta máquina de Turing contiene múltiples
caracteres, el contenido de las celdas de la cinta puede ser representado
mediante n-tuplas ordenadas. En el ejemplo anterior, las celdas de la cinta
contienen (B, a, a), (b, a, a) y (b, b, B). Por tanto, los movimientos que realice
está máquina dependerán de su estado actual y de la n-tupla que represente
el contenido de la celda actual.


B b B …
a a b
Q3
a a B
4.4 Variantes de una máquina de Turing.

Una máquina de Turing multipista no tiene más potencia que la


máquina de Turing original. Sin embargo, hace que sea más fácil la
construcción de máquinas de Turing que resuelvan ciertos problemas.

 : Qn-->Q({L,R})n
4.4 Variantes de una máquina de Turing.

Máquina de Turing de Cinta infinita en una Dirección

Máquina de Turing que usa una cinta que se extiende infinitamente en


una única dirección. Generalmente, se tiene una cinta que se extiende
infinitamente hacia la derecha. No está permitido realizar ningún
movimiento hacia la izquierda a partir de la celda del extremo izquierdo.

Desde luego, cualquier máquina de Turing de esta forma puede ser


simulada por una de las que responden a la definición original. Para cada
computación, simplemente se marca una de las celdas de la cinta infinita
por los dos lados, como la celda que se encuentra en el límite izquierdo.
4.4 Variantes de una máquina de Turing.

Máquina de Turing en Dos Direcciones

Una máquina de Turing con una cinta infinita en un sentido puede


simular una máquina de Turing con la cinta infinita en los dos sentidos pero
con dos pistas. Sea M una máquina de Turing con una cinta infinita en los
dos sentidos.

La máquina de Turing M’, que tiene una cinta infinita en un sentido,


puede simular a M si tiene una cinta con dos pistas. La cinta superior contiene
la información correspondiente a la parte derecha de la cinta M, a partir de un
punto de referencia dado. La pista inferior contiene la parte izquierda de la
cinta M (en orden inverso).
4.4 Variantes de una máquina de Turing.

Máquina de Turing Multicinta

La máquina de Turing multicinta tiene varias cintas, cada una de las cuales tiene su
propia cabeza de lectura/escritura. Las cabezas de lectura/escritura se controlan
independientemente (es decir, al mismo tiempo, no tienen que moverse en la misma
dirección, ni realizar el mismo número de movimientos, ni incluso, hacer nada a la
vez).

• Cambia de estado dependiendo del estado actual y del contenido de las celdas de
todas las cintas, que están analizando actualmente las cabezas de lectura/escritura.
• Escriben un nuevo símbolo en cada una de las celdas barridas por sus cabezas de
lectura/escritura.
• Mueve cada una de sus cabezas hacia la izquierda o hacia la derecha (de forma
independiente al resto de las cabezas).
• Por tanto, la función de transición para una máquina de Turing con n cintas, es de
la forma : Q x  n  Q x  n x {R, L} n donde una transición de la forma  (q, (1,
2,…, n)) = (p,(1, 2, …, n), (X1, X2, …, Xn)) significa que cambia del estado q a p,
reemplaza i por i en la cinta i y mueve la cabeza de la cinta i en la dirección Xi.
4.4 Variantes de una máquina de Turing.

Máquina de Turing Muldimensional.

La máquina de Turing multidimensional es aquella que permite que la cinta


tenga muchas dimensiones. Por ejemplo, una cinta de dos dimensiones que
se extienda hacia abajo y hacia arriba, al igual que hacia la derecha y hacia la
izquierda. Dependiendo del estado actual de la máquina de Turing y del
símbolo analizado, cambia de estado, escribe un símbolo en la celda actual y
se mueve a la izquierda, al derecha, hacia arriaba o hacia abajo. Por tanto, la
función de transición para esta máquina de Turing será de la forma:

: Q x   Q x  x {R, L, U, D}
4.4 Variantes de una máquina de Turing.

Una máquina de Turing multidimensional simula una máquina de Turing


estándar. Simplemente realizando todas sus computaciones en una única
dimensión. Una máquina de Turing estándar también puede simular una
máquina de Turing multidimensional y, por tanto, la complejidad y la
flexibilidad adicional que se debe a la múltiple dimensión, no es una
capacidad real.

Para simular una máquina de Turing de dos dimensiones mediante una


máquina de Turing estándar, primero se asociara una dirección a todas las
celdas de la cinta. Una forma de hacerlo es fijar, de forma arbitraria, un
lugar en la cinta a partir del cual se asignarán las coordenadas a las celdas
de la misma forma que se realiza en un plano de coordenadas.
4.4 Variantes de una máquina de Turing.

Máquina de Turing No determinista.

La máquina de Turing No determinista es aquella que para un estado actual y el


símbolo actual de la cinta, puede haber un número finito de movimientos a elegir. Por
lo tanto, la regla de transición  de dicha máquina, satisface

(q, )  Q x  x {R, L}

Por ejemplo, si la máquina de Turing tiene una transición


(q1, a) = {(q1, b, R), (q2, a, L)} entonces los movimientos
abbq1ab abbbq1b y abbq1ab abq2bab son posibles.

Ya que cualquier máquina de Turing determinista es también no determinista, es


lógico que una máquina de Turing determinista se puede simular mediante una no
determinista. También una máquina de Turing determinista puede simular una no
determinista. Por tanto, no se gana ninguna potencia adicional a causa del no
determinismo.
4.5 Problemas de Hilbert.

Los problemas de Hilbert son una lista de 23 problemas matemáticos


compilados por el matemático alemán David Hilbert para la conferencia en
París del Congreso Internacional de Matemáticos de 1900. Los problemas
estaban todos por resolver en aquel momento, y varios resultaron ser muy
influyentes en la matemática del siglo XX. Hilbert presentó diez de los
problemas (1, 2, 6, 7, 8, 13, 16, 19, 21 y 22) en la conferencia, en un acto el 8 de
agosto en La Sorbona.
4.5 Problemas de Hilbert.

Hilbert tenía un pequeño grupo de pares: Adolf Hurwitz y Hermann


Minkowski eran ambos amigos cercanos e iguales intelectuales. Hay un
guiño a la geometría de números de Minkowski en el problema 18, y a su
trabajo en las formas cuadráticas en el problema 11. Hurwitz fue el gran
desarrollador de la teoría de la superficie de Riemann. Hilbert usó la
analogía del cuerpo de funciones, una guía a la teoría algebraica de números
mediante el uso de análogos geométricos, para desarrollar la teoría del
cuerpo de clases dentro de su propia investigación, y esto queda reflejado en
el problema 9, hasta cierto punto en el problema 12, y en los problemas 21 y
22. Por otro lado, el único rival de Hilbert en 1900 era Henri Poincaré, y la
segunda parte del problema 16 es una cuestión de sistemas dinámicos al
estilo de Poincaré.
4.5 Problemas de Hilbert.

Los veintitrés problemas de Hilbert son:

1er La hipótesis del continuo (esto es, no existe conjunto cuyo tamaño esté estrictamente
entre el de los enteros y el de los números reales) Se ha probado la imposibilidad de
probarlo como cierto o falso mediante los axiomas de Zermelo-Fraenkel. No hay
consenso al respecto de considerar esto como solución al problema.

2º Probar que los axiomas de la aritmética son consistentes (esto es, que la aritmética es
un sistema formal que no supone una contradicción). Parcialmente resuelto: hay
quienes sostienen que se ha demostrado imposible de establecer en un sistema
consistente, finitista y axiomático 2 Sin embargo, Gentzen probó en 1936 que la
consistencia de la aritmética se deriva del buen fundamento del ordinal ε0, un hecho
sujeto a la intuición combinatoria.

3er ¿Se puede probar que dos tetraedros tienen igual volumen (bajo ciertas asunciones)?
Resuelto. Resultado: no, probado usando invariantes de Dehn.
4.5 Problemas de Hilbert.

4º Construir todas las métricas cuyas rectas sean geodésicas. Demasiado vago para
decidir si se ha resuelto o no.

5º ¿Son los grupos continuos grupos diferenciales de forma automática? Resuelto por
Andrew Gleason

6º Axiomatizar toda la física Sin resolver. No matemático

7º ¿Es a b trascendental, siendo a ≠ 0,1 algebraico y b irracional algebraico?


Resuelto. Resultado: sí, ilustrado por el teorema de Gelfond o el teorema de Gelfond-
Schneider

8º La hipótesis de Riemann (la parte real de cualquier cero no trivial de la función zeta
de Riemann es ½) y la conjetura de Goldbach (cada número par mayor que 2 se puede
escribir como la suma de dos números primos). Abierto

9º Encontrar la ley más general del teorema de reciprocidad en cualquier cuerpo


numérico algebraico Parcialmente resuelto
4.5 Problemas de Hilbert.

10º Encontrar un algoritmo que determine si una ecuación diofántica polinómica dada
con coeficientes enteros tiene solución entera. Resuelto. Resultado: no, el teorema de
Matiyasevich implica que no existe tal algoritmo.

11º Resolver las formas cuadráticas con coeficientes numéricos algebraicos.


Parcialmente resuelto

12º Extender el teorema de Kronecker sobre extensiones abelianas de los números


racionales a cualquier cuerpo numérico de base. Abierto

13º Resolver todas las ecuaciones de 7º grado usando funciones de dos parámetros.
Resuelto. Lo probó posible Vladimir Arnold.
14º Probar la finitud de ciertos sistemas completos de funciones. Resuelto.
Resultado: no, en general, debido a un contraejemplo
15º Fundamento riguroso del cálculo enumerativo de Schubert. Parcialmente resuelto
4.5 Problemas de Hilbert.

16º Topología de las curvas y superficies algebraicas. Abierto

17º Expresión de una función definida racional como cociente de sumas de cuadrados
Resuelto. Resultado: se estableció un límite superior para el número de términos
cuadrados necesarios

18º ¿Existe un poliedro irregular y que construya otros poliedros? ¿Cual es el


apilamiento compacto más denso? Resuelto.

19º ¿Son siempre analíticas las soluciones de los Lagrangianos? Resuelto. Resultado: sí

20º ¿Tienen solución todos los problemas variacionales con ciertas condiciones de
contorno?Resuelto. Ha supuesto un área importante de investigación durante el siglo
XX, culminando con las soluciones al caso no lineal.
4.5 Problemas de Hilbert.

21er Probar la existencia de ecuaciones lineales diferenciales que tengan un


grupo monodrómico prescrito Resuelto. Resultado: sí o no, dependiendo de
una formulación más exacta del problema

22º Uniformización de las relaciones analíticas por medio de funciones


automórficasResuelto

23er Extensión de los métodos del cálculo de variaciones Resuelto

También podría gustarte