Está en la página 1de 26

Autómata: El Concepto

• Dispositivo mecánico capaz de procesar cadenas de símbolos o strings.


• Dado un lenguaje L definido sobre un alfabeto A y una cadena x arbitraria, el autómata
determina si x  L o x  L.
• Un autómata tiene dos posibles reacciones:SI o NO.

Función de un Autómata
Las gramáticas proporcionan un método para generar cadenas de un lenguaje. Para
reconocer cadenas de un lenguaje se han descripto autómatas de varios tipos.
DEFINICIONES
Definición Informal
Un autómata de pila consiste de:
1) Una unidad de control, que es un autómata finito.
2) Una memoria auxiliar que es una cinta semi-infinita con una clase
particular de acceso restringido. La memoria de los autómatas de pila
los hace más poderosos que los autómatas finitos. El acceso restringido
a la memoria auxiliar es del tipo LIFO (last input first output).Tal
memoria se denomina almacén pushdown o pila.

Definición Formal
Un autómata de pila (pushdown automata) es:
A = (Q, , , ,q0 ,z0 ,F) donde:
• Q es un conjunto no vacío de estados.
•  es el alfabeto de entrada, no vacío.
•  es el alfabeto de la pila, no vacío.
• q0  Q es el estado inicial.
• F  Q es el conjunto de estados finales.
•  es la función de transición directa. Es una proyección:
Q x (  ) x  en subconjuntos finitos de Q x *.
• z0 : símbolo inicial de la pila
AP determinístico y no determinístico
Un autómata de pila es determinístico si |(q,a,z)| ≤ 1

No siempre es posible, dado un autómata de pila no determinístico, encontrar un autómata de pila determinístico
que acepte el mismo lenguaje.

Conclusiones
✓ El AP tiene más poder que el autómata finito.

✓ La memoria (dada por la pila) es de acceso limitado, para acceder a un cierto dato es necesario borrar
los anteriores. Esto impide, por ejemplo, reconocer el lenguaje: L(G) = {anb nc n / n ≥1}

✓ Se ve entonces la necesidad de disponer otro modelo computacional, que se presenta como otro tipo de
autómata, cuya memoria no tenga esas limitaciones. Este modelo es la Máquina de Turing.

✓ Cada tipo de autómata definido, incluye al anterior como caso particular


MAQUINA DE TURING

Definición Informal
Una MT es un autómata que consiste de:
❖ Una unidad de control
❖ Una memoria auxiliar que es una cinta infinita
con acceso relativamente no-restringido. El cabezal se mueve en
ambas direcciones leyendo o escribiendo.

Definición Formal
Una Máquina de Turing formalmente se defina con la Tupla:
T = (Q, ,, ,q0 ,F) donde:
• Q es un conjunto finito y no vacío de estados.
•  es el alfabeto de entrada, no vacío.
•  es el alfabeto de la cinta, no vacío,    .
• q0  Q es el estado inicial.
• F  Q es el conjunto de estados finales.
•  es la función de transición directa. Es una proyección: Q x  en
subconjuntos finitos de Q x  x {D,I,N}
Interpretaciones de las Computaciones

• Los lenguajes reconocidos por MT reciben el nombre de lenguajes recursivamente


numerables.
• F: * →*. Las funciones definidas mediante este mecanismo reciben el nombre de funciones Turing-
computables.
MT Multicinta

Definición Informal

• Consta de un número arbitrario (aunque finito) de cintas y de cabezas de


lectura/escritura por cinta.

• Cada cabeza de lectura/escritura se desplaza de manera independiente.

•  es el alfabeto de entrada y  es el alfabeto de las cintas.

• Una palabra w* de entrada de largo n se colocan en las posiciones 1, . . ., n de la


primera cinta.

• Las siguientes posiciones (n + 1, n + 2, . . .) de la primera cinta contienen el símbolo


B.

• Las restantes cintas contienen el símbolo z0 en posición 1 y B en las posiciones 2, 3,


. ..

Definición Formal
Una Máquina de Turing multicinta es:
TM = (Q, ,, ,q0 ,F) donde:
• Q es un conjunto finito y no vacío de estados.
•  es el alfabeto de entrada, no vacío.
•  es el alfabeto de la cinta, no vacío,   {zo ,B}  .
• q0  Q es el estado inicial.
• F  Q es el conjunto de estados finales.

 es la función parcial:
: Q x  k → Q x  k x {D,I,N}k donde k es el número de cintas.
Maquina de Turing Universal: una máquina de Turing arbitraria MT0 sobre una
sucesión cualquiera w de símbolos de su cinta puede ser simulada por otra máquina,
la Máquina Universal de Turing (MTu ).

Problema de Parada: Dado un programa (o algoritmo o Máquina de Turing) A y un


valor de la entrada X, ¿podemos saber siempre si A se parará o no? No hay manera
de saber, en general y en un tiempo finito, si la ejecución de un programa dado con
una entrada dada terminará o no.

Conclusiones
MAQUINA DE TURING
• Reconocen lenguajes recursivamente numerables.
• Computan Función turing computables.
• Pueden ser Unicinta Multicinta..
• Todo los lenguajes aceptados por una MT con una cinta también serán
aceptados por una multicinta y viceversa.
• La Maquina de Turing Universal emula el comportamiento de cualquier
MT
PREGUNTAS VoF
Si todas las reglas de una gramática G son del tipo A--> w con A∈VN entonces G es
una gramática regular.FALSO

Todo lenguaje libre del contexto puede construirse a partir de un alfabeto utilizando
las operaciones de unión, concatenación y estrella de Klenne.FALSO

La estrella de Kleene del conjunto {λ} es un conjunto finito, para el resto de los
conjuntos la estrella de Kleene siempre es infinito.VERDADERO

La expresión regular b*ab* (ab*ab*a)* representa al lenguaje de las cadenas con un


número impar de letras a.FALSO

Dos gramáticas son equivalentes si son del mismo tipo.FALSO

Los expresiones regulares son un método para generar gramáticas regulares, que
comienzan con un número finito de palabras y aplican operaciones regulares sobre
ellas.VERDADERO

Todo lenguaje generado por una gramática de tipo 3 puede ser generado por una
gramática de tipo 2 equivalente.VERDADERO

Si dos expresiones regulares son diferentes, entonces obviamente definen lenguajes


regulares diferentes.FALSO

La unión de dos lenguajes regulares es un lenguaje libre de contexto.FALSO

Es importante que las gramáticas no sean ambiguas porque las gramáticas que
contienen símbolo inútiles son más dificiles de compilar.FALSO

Las palabras 01010, 01001 y 011, son todas del lenguaje denotado por la expresión
regular r = 01(01)*/ 0(10/01)*FALSO

Son gramáticas son equivalentes cuando generan el mismo lenguaje, aunque las
gramáticas sean de disintos tipos. VERDADERO
Dos gramáticas G1 y G2 son equivalentes cuando los lenguajes generados contiene
exactamente aquellas palabras que son derivables del símbolo inicial S y contiene
únicamente símbolos terminales.FALSO

Los expresiones regulares son un método para generar gramáticas regulares, que
comienzan con un número finito de palabras y aplican operaciones regulares sobre
ellas.VERDADERA

La semántica es la gramática del lenguaje y define que líneas de caracteres son


construcciones válidas en el mismo.FALSO

Sean R y S expresiones regulares. Se verifica la siguiente igualdad: Rλ= SØ. FALSO

Derivar una sentencia es el proceso de usar una gramática para generar hileras de la
gramática reemplazando el lado izquierdo de la regla por alguno de sus lados
derechos.VERDADERO

La concatenación de lenguajes tiene las siguientes propiedades asociativa,


conmutativa y elemento neutro.FALSO

Dado el alfabeto Σ = {a,b} y ∆= {0,1}, la cadena w = a1b0 pertenece al alfabeto Σ ∪ ∆.


FALSO

Sea G una gramática libre de contexto ambigua y w una sentencia generada por G,
entonces existirá siempre un único árbol sintáctico que represente la derivación de
dicha sentencia.FALSO
Clases
GRAMÁTICA
1. Símbolo:
• Representación distinguible de cualquier información.
• Elemento atómico e indivisible.
• Ejemplos: w, 9, #, *, θ, ∀, π.
2. Alfabeto o Vocabulario:
• Conjunto finito y no vacío de símbolos arbitrarios (símbolos terminales).
• Ejemplo: Alfabeto español V = {a, b, c, ..., z}.
3. Hilera:
• String de longitud finita compuesto por símbolos sobre el vocabulario.
• Conjunto finito de símbolos yuxtapuestos.
• Ejemplo: V = {0,1}, hileras: x = 0, y = 1.
4. Longitud de una hilera:
• Cantidad de símbolos que la componen.
• Notación: |x| para una hilera x.
• Si x = x1 ... xn, entonces |x| = n.
5. Hilera o palabra vacía:
• Cadena de longitud cero.
• Notación: λ o ε.
• Longitud de λ es 0.
6. Propiedades de la concatenación:
• Asociativa: x(yz) = (xy)z.
• No conmutativa: xy ≠ yx.
• Elemento neutro: λ.
• xλ = λx = x.
• xλy = xy.
• Longitud de concatenación: |xy| = |x| + |y|.
• Operación cerrada: ∀ x,y ∈ V*: x.y ∈ V.
7. Potencia de una palabra (Concatenación iterativa):
• Potencia n-ésima de una palabra es la concatenación consigo misma n veces.
• Notación: (ab)3 = ababab → iteración de ab, ab3 = abbb → iteración de b.
8. Inversa de una palabra:
• Se obtiene escribiendo los símbolos en orden inverso.
• Notación: p^-1.
9. Subhilera:
• y es una subhilera de x si existen r y s tales que x = rys.
• Todo símbolo en una hilera es una subhilera.
• La hilera vacía λ es una subhilera de toda hilera.
10.Subhilera prefijo:
• Hilera de cualquier número de símbolos a la izquierda de la hilera.
11.Subhilera sufijo:
• Cualquier número de símbolos a la derecha de la hilera.
12.Vn:
• Conjunto de todas las hileras de longitud n sobre V.
• Cada elemento de Vn es una cadena del tipo a1 a2 ... an, donde cada ai ∈ V.
13.V*:
• Conjunto de todas las hileras compuestas por símbolos de V, incluida la hilera vacía.
• El conjunto es infinito pero enumerable.
• Cerradura de Kleene del vocabulario.
• V+ = V* - {λ}.
14.Lenguaje:
• Conjunto de sentencias con estructura bien definida y significado.
• Estructura o sintaxis: define las líneas de caracteres válidas.
• Semántica: define el significado de la construcción del lenguaje.
15.Definición de lenguaje:
• Conjunto arbitrario de hileras de V*.
• Se denota L.
16.Extensión:
• Enumeración de los elementos de un lenguaje entre llaves.
17.Lenguaje vacío:
• Contiene únicamente la hilera vacía.
18.Metalenguaje y lenguaje objeto:
• L1 se usa para definir L2.
• L1 es el metalenguaje y L2 es el lenguaje objeto.
• Utilizan símbolos terminales y no terminales.
19.Operaciones con lenguajes:
• Potensiacion
• Clausula transitiva
• Cerradura de kleene
• Longitud
• inversa
• Unión: L1 ∪ L2 = {p | p ∈ L1 ∨ p ∈ L2}.
• Intersección: L1 ∩ L2 = {p | p ∈ L1 ∧ p ∈ L2}.
• Diferencia: L1 - L2 = {p | p ∈ L1 ∧ p ∉ L2}.
• Complemento: -L = V* - L = {p ∈ V* ∧ p ∉ L}.
20. Propiedades de la unión de lenguajes:
• Asociativa.

• Conmutativa.

• Elemento neutro: lenguaje vacío θ.

21. Clausura Transitiva y Reflexiva (Cerradura de Kleene):


• Conjunto de todas las hileras finitas construidas con los elementos de L,

incluyendo la hilera vacía.


• L* es reflexiva y transitiva.

• Contiene: la palabra vacía, el conjunto L y todas las palabras formadas por

la concatenación de miembros de L*.


22. Longitud de un lenguaje:
• Cantidad de palabras que componen el lenguaje.

• Notación: |L| = n, donde n es la cantidad de palabras.

23. Inversa de un lenguaje:


• Contiene todas las palabras inversas del lenguaje.

Memoficha 1: Definición de gramática


• Sistema: G = (VN, VT , P , S)

• VN: Vocabulario no terminal

• VT: Vocabulario terminal

• Ambos vocabularios son finitos y no vacíos

• V = VN ∪ VT - VN ∩ VT = ∅

• P: Conjunto de producciones o reglas de reescritura

• Producciones: α → β, donde α ∈ V* VN V* y β ∈ V*

• S: Símbolo inicial o cabeza del lenguaje, S ∈ VN

Memoficha 2: Proceso de derivación


• Una gramática genera un lenguaje a través de la derivación.

• Derivación en un solo paso (α ⇒ β): α = δ1 A δ2, β = δ1 B δ2

• α y β son palabras en (VN∪VT)*

• Existe una producción A → B en P

Memoficha 3: Derivación en cero o más pasos


• Derivación en cero o más pasos: α ⇒β si existe una sucesión de cadenas

intermedias φ1, φ2, ..., φn


• α = φ1 ⇒ φ2 ⇒ ... ⇒ φn = β
• α y β son palabras en (VN ∪ VT)*
• φ1, φ2, ..., φn son cadenas intermedias
Memoficha 4: Lenguaje generado por una gramática
• Lenguaje generado por G: L(G) = {p ∈ VT / S ⇒ p}
• Contiene las palabras derivables del símbolo inicial S
• Solo contiene símbolos terminales
• Dos gramáticas G1 y G2 son equivalentes si L(G1) = L(G2)
Memoficha 5: Lenguaje vacío
• Lenguaje vacío: No contiene ninguna hilera
• Se genera mediante una gramática que no genera ninguna hilera
Memoficha 6: Notación BNF (Backus-Naus-Form)
• Notación especial para describir gramáticas
• Utilizada para especificar la mayoría de los lenguajes de programación
• Símbolos no terminales: encerrados entre < >
• Meta-símbolo ::= para las producciones (en lugar de →)
• Terminales: entre comillas simples y negritas
• Meta-símbolos [ ] y { }: indican elementos opcionales y repeticiones,
respectivamente
• Notación BNF-extendida: incluye meta-símbolos ? (opcional), * (0 a n
veces), + (1 a n veces)
Memoficha 7: Jerarquía de Chomsky
• Noción de "clase de lenguajes": conjuntos de lenguajes con una cierta
propiedad
• Clasificación de lenguajes en clases de lenguajes propuesta por N.
Chomsky
• Jerarquía de lenguajes que incluye clases más complejas y simples
• Restricciones en las producciones de P (reglas de producción)
• Clases de lenguajes: Conjuntos Recursivamente Enumerables, Sensibles al
Contexto, Libres de Contexto, Regulares
Memoficha 8: Gramática de estructura de frase no restringida o general
• Producciones: α → β, donde α ∈ V* VN V* y β ∈ V*
• Genera los Conjuntos Recursivamente Enumerables
Memoficha 9: Gramática de estructura de frase sensibles al contexto
• Producciones: z1Az2 → z1Xz2, donde z1, z2 ∈ V*, A ∈ VN, X ∈ V+
• Sólo se admite S → ε, pero S no debe aparecer a la derecha de ninguna
producción
• Restricción en las producciones: |α| ≤ |β|
• Genera lenguajes llamados Sensibles al Contexto
Memoficha 10: Gramática de estructura de frase libres de contexto
• Producciones: A → α, donde A ∈ VN y α ∈ V*
• Genera lenguajes llamados Libres de Contexto
• A la izquierda de la regla hay solo un no terminal, y a la derecha no
terminales y/o terminales
• Relacionado con los Autómatas de Pila y los lenguajes de programación
Memoficha 11: Gramática de estructura de frase regulares
• Producciones de las Gramáticas Lineales Izquierda: A → Ba / A → b
• Producciones de las Gramáticas Lineales Derecha: A → aB / A → b
• Genera lenguajes llamados Regulares
• Propiedad: toda gramática lineal regular derecha (izquierda) tiene una
equivalente lineal regular izquierda (derecha)
Memoficha 12: Relación entre los lenguajes y la jerarquía de Chomsky
• Lenguaje de tipo k (k=0,1,2,3) si existe una gramática de tipo k que lo
genere
• Conjuntos de lenguajes: L0 ⊆ L1 ⊆ L2 ⊆ L3
• Las inclusiones son propias (existen lenguajes que no pertenecen a la clase
superior)
• Clasificación de lenguajes según su complejidad

Memoficha 1: Árbol de derivación en gramáticas libres de contexto


• Un árbol de derivación es un árbol para una gramática libre de contexto.
• La raíz del árbol está etiquetada con el símbolo inicial S.
• Cada hoja está etiquetada con un símbolo terminal o con λ.
• Las producciones en P se aplican en orden de izquierda a derecha.
Memoficha 2: Derivación más a la izquierda y más a la derecha
• La derivación más a la izquierda sustituye la variable más a la izquierda en
cada paso.
• La derivación más a la derecha sustituye la variable más a la derecha en
cada paso.
• Se utilizan los símbolos ↠I (izquierda) y ↠D (derecha) para indicar las
derivaciones.
Memoficha 3: Ambigüedad en gramáticas libres de contexto
• Una gramática es ambigua si tiene hilera con más de un árbol sintáctico o
derivación.
• Se puede modificar una gramática para eliminar la ambigüedad.
• Algunos lenguajes solo admiten gramáticas ambiguas (intrínsecamente
ambiguos).
Memoficha 4: Factorización izquierda en gramáticas
• La factorización izquierda se utiliza para evitar decisiones ambiguas en la
derivación.
• Se extrae el factor común en las producciones y se crea una nueva regla
para el factor.
• Ayuda a simplificar y mejorar la legibilidad de las gramáticas.
• 𝐴 → 𝛼𝛽1 ⁄𝛼𝛽2 se convierte en 𝐴 → 𝛼𝐴′ , 𝐴′ → 𝛽1 ∕ 𝛽2 . En donde 𝛼 ≠ 𝜃
Memoficha 5: Recursividad a izquierda directa en gramáticas
• Una producción es recursiva a izquierda si se tiene 𝐴 → 𝐴𝛽.
• La recursividad a izquierda se puede eliminar agregando un nuevo no
terminal.
• Se realizan sustituciones adecuadas para reemplazar la recursividad.
• A → A 1 / A 2 / .... / A p / 1 / 2 /.../ q se convierte en:
A → i / iA' (1  i  q) y A' → j / j A' (1  j  p)
Memoficha 6: Recursividad a izquierda indirecta en gramáticas
• Una producción es recursiva a izquierda indirecta si se tiene A → Bα y B →
Aα.
• La recursividad a izquierda indirecta se puede eliminar reemplazando las
reglas adecuadas:
• Se realiza una secuencia de reemplazos para eliminar la recursividad.
Memoficha 7: Simplificación de gramáticas
• Es importante tener gramáticas simplificadas para facilitar su lectura y
compilación.
• Se pueden eliminar reglas que produzcan símbolos no utilizados o la hilera
nula.
• Se puede modificar una gramática para eliminar imperfecciones y
ambigüedad.
Memoficha 8: Lenguaje vacío, reglas unitarias y símbolos inútiles
• Un lenguaje vacío no tiene hileras y se denota por L(G) = ∅.
• Una regla unitaria es de la forma A → B.
• Un símbolo X es útil si se puede derivar alguna hilera que lo contenga.
Memoficha 9: Reglas lambda
• Una regla lambda o borradora es una regla del tipo A → λ.
• Un no terminal A es anulable si A ⇒ λ, es decir, si λ pertenece al lenguaje
generado por la gramática.
• En una gramática, las reglas lambda pueden eliminarse si no generan la
hilera vacía.
• Una gramática se considera sin reglas lambda si no tiene reglas λ en su
conjunto de producciones, o si tiene una regla asociada al axioma S → λ y
el símbolo inicial S no aparece en el lado derecho de ninguna otra regla.
Memoficha 10: Características de las gramáticas regulares
• Las operaciones regulares en las gramáticas son la unión, concatenación y
clausura de la iteración.
• Los lenguajes de estructura de frase, en particular las clases de lenguaje Li
(i=0,1,2,3), son cerrados bajo las operaciones regulares.
• Los lenguajes generados por gramáticas regulares, que son lenguajes de
tipo 3, se pueden definir comenzando con un número finito de palabras y
aplicando operaciones regulares sobre ellas. Este enfoque se conoce como
expresiones regulares.
Memoficha 11: Expresiones regulares
• Las expresiones regulares (ER) se construyen a partir de ER más simples
utilizando un conjunto de reglas definitorias.
• Cada ER r representa un lenguaje L(r).
• Las reglas de definición para las ER sobre un alfabeto finito V incluyen:
1. λ es una ER que representa {λ}, el conjunto que contiene la cadena
vacía.
2. Si a es un símbolo de V, entonces a es una ER que representa {a}, el
conjunto que contiene la cadena a.
3. Si r y s son ERs que representan los lenguajes L(r) y L(s),
respectivamente, entonces (r)/(s) representa la unión de L(r) y L(s),
(r)(s) representa la concatenación de L(r) y L(s),
y (r)* representa la clausura de la iteración de L(r).
• Se pueden utilizar convenciones para evitar paréntesis innecesarios y
definir la precedencia y asociatividad de los operadores.
Memoficha 12: Abreviaturas en la notación de expresiones regulares
• El operador unitario postfijo "+" representa "uno o más casos de".
• El operador unitario postfijo "?" representa "cero o un caso de".
• La notación de clases de caracteres, como [abc], representa la expresión
regular a/b/c.
• Las clases de caracteres abreviadas, como [a-z], representan la expresión
regular a/b/.../z.
• Se pueden utilizar estas abreviaturas en expresiones regulares para
simplificar su escritura y representar patrones más complejos.
Memoficha 13: Propiedades de las expresiones regulares
• Si dos expresiones regulares r y s representan el mismo lenguaje, se dice
que son equivalentes (r = s).
• La unión (/) es conmutativa: r/s = s/r.
• La unión (/) es asociativa: r/(s/t) = (r/s)/t.
• La concatenación es asociativa: (rs)t = r(st).
• La concatenación distribuye sobre la unión (/): r(s/t) = rs/rt y (s/t)r = sr/tr.
• λ es el elemento identidad para la concatenación: λr = rλ = r.
• La clausura de la iteración () se relaciona con λ: r = (r/λ)*.
• Algunas relaciones adicionales incluyen: r** = r*, ∅/r = r, y r/∅ = r, donde
∅ representa el conjunto vacío.

AUTOMATAS
FINITOS
Memoficha 1: Automata: Dispositivo mecánico capaz de procesar cadenas de símbolos o
strings. Dado un lenguaje L el autómata determina si la cadena x pertenece a L.
Memoficha 2: Función de un automata Las gramáticas proporcionan un método para
generar cadenas de un lenguaje. Para reconocer cadenas de un lenguaje se han descriptos
autómatas de varios tipos como autómatas finitos, autómatas de pilas, autómatas ligados
linealmente y máquinas de Turing.
Memoficha 3: Autómata finito (AF) Modelo de computación muy restringido utilizado en
reconocimiento de patrones. Posee un número finito de estados, una cinta de entrada, una
cabeza lectora y una unidad de control.
Memoficha 4: Definición formal automata finito Un AF es una quíntupla A =(Q, Σ, δ, q0 , F)
donde Q es un conjunto finito y no vacío de estados, Σ es un alfabeto finito (símbolos de
entrada), δ es una función de transición δ: Q x Σ → Q, q0 ∈ Q es el símbolo de inicio, y F ⊆
Q es el conjunto de estados finales.
Memoficha 5: Tabla de Transición En cada fila se coloca un estado y se usan las columnas
para los símbolos de entrada. En la intersección de fila y columna se coloca el conjunto de
estados que pueden ser alcanzados por una transición del estado con la entrada.
Memoficha 6: Función de Transición Extendida La función de transición extendida permite
definir transiciones de estados múltiples debido al procesamiento de una hilera de símbolos
de entrada. Se representa como δe: Q x Σ* → Q.
La funciona de transición se puede extender.
Caso base: (q,)=q | Inducción: e (q,xa)= (e (q,x),a)
Memoficha 7: AF como reconocedor de lenguajes Un autómata finito A acepta una hilera x
si lee todos los símbolos de x, comenzando en el estado inicial q0 y leyendo hasta detenerse
en un estado final.
El lenguaje reconocido por un autómata se define como L(A) = {x ∈ Σ* / δe(q0 , x) ∈ F}. Los
lenguajes aceptados por AF son los regulares.
Memoficha 8: AF determinístico (AFD) Un AFD es un tipo de autómata finito en el que para
todo (q, a) ∈ Q x Σ, |δ(q, a)| ≤ 1. Tiene a lo sumo una transición desde cada estado.
Memoficha 9: AF No determinístico (AFND) Un AFND es un tipo de autómata finito en el
que la función de transición δ puede tener más de una transición para el mismo símbolo a
desde el estado q. Se representa como A = (Q, Σ, δ, q0 , F), donde δ: Q x Σ → 2^Q.
Memoficha 10: Algoritmo de Conversión de un AFND a un AFD Procedimiento para
convertir un AFND en un AFD:
1. Especificar las funciones de transición.
2. Obtener las funciones de transición para los nuevos estados.
3. Determinar el conjunto de estados finales del AFD.
4. Aplicar el algoritmo de minimización para obtener un AFD de estados mínimos
equivalente.
Memoficha 11: AF como Traductor de un Lenguaje: Un AFD puede funcionar como un
traductor de lenguaje, que convierte una cadena de entrada en una cadena de salida. Se
representa como A = (Q, Σ, δ, q0 , F, O, η), donde O es un conjunto finito de símbolos de
salida y η es la función de salida η: Q x Σ → O*.
Memoficha 12: Función de traducción para cadenas La función de traducción extendida η*
se define como η*: Q x Σ* → O*, y se utiliza para traducir una cadena de entrada en una
cadena de salida utilizando un autómata finito determinista.

AUTOMATAS DE
PILA
Definición Informal:
• Un autómata de pila consiste de una unidad de control que es AF y una
memoria auxiliar llamada almacén pushdown o pila.
• La memoria auxiliar es una cinta semi-infinita con acceso restringido tipo
LIFO (last input first output).
Definición Formal:
• Un autómata de pila se representa como A = (Q, Σ, Γ, δ, q0, z0, F).
• Q es un conjunto no vacío de estados.
• Σ es el alfabeto de entrada, no vacío.
• Γ es el alfabeto de la pila, no vacío.
• q0 es el estado inicial.
• F es el conjunto de estados finales.
• δ es la función de transición directa que mapea Q × (Σ ∪ {ε}) × Γ en
subconjuntos finitos de Q × Γ*.
• z0 es el símbolo inicial de la pila.
Configuración de un autómata de pila:
• Una configuración c de un autómata de pila es una tripla (q, a, z) donde q
es el estado actual, a es el elemento de la hilera de entrada a considerar, y
z es el contenido de la pila.
Movimientos atómicos:
• Existen dos clases de movimientos atómicos en un autómata de pila.
1. δ(q, a, z) = (p, w): Cambio de estado y modificación de la pila.
2. δ(q, 𝜆, z) = (p, w): Cambio de estado y modificación de la pila sin
procesar ningún símbolo de entrada.
Características del autómata de pila:
• Los autómatas de pila son no determinísticos si |δ(q, a, z)| > 1 para algún
(q, a, z) en Q × (Σ ∪ {ε}) × Γ.
• Un autómata de pila es determinístico si |δ(q, a, z)| ≤ 1 para todo (q, a, z)
en Q × (Σ ∪ {ε}) × Γ.
• Los autómatas de pila son más poderosos que los autómatas finitos.
• La memoria limitada de acceso de los autómatas de pila impide reconocer
ciertos lenguajes, como L(G) = {an bn cn | n ≥ 1}.
• La Máquina de Turing es un modelo computacional más poderoso que el
autómata de pila.
• Cada tipo de autómata definido incluye al anterior como un caso
particular.
MAQUINAS DE
TURING
Memoficha 1: Problema de la decisión (Entscheidungsproblem)
• Problema planteado por Hilbert que busca un método general para
determinar la veracidad o falsedad de una fórmula lógica.
Memoficha 2: Algoritmo de Hilbert
• Hilbert buscaba un algoritmo que pudiera determinar la verdad o falsedad
de cualquier proposición en un sistema matemático formal completo y
consistente.
Memoficha 3: Trabajos relacionados con el Entscheidungsproblem
• En torno a 1935, se publicaron cuatro trabajos importantes relacionados
con el problema de decisión de Hilbert: la teoría de funciones recursivas,
el teorema de incompletitud de Gödel, el λ-cálculo de Church y las
máquinas de Turing.
Memoficha 4: Máquinas de Turing
• Alan Turing introdujo las máquinas de Turing como un modelo
matemático abstracto que permitió formalizar el concepto de algoritmo,
inspirado en una persona realizando cálculos mecánicos.
Memoficha 5: Definición informal de una Máquina de Turing
• Una Máquina de Turing consta de una unidad de control y una memoria
auxiliar en forma de una cinta infinita con acceso no restringido. La cabeza
lectora/grabadora se mueve a lo largo de la cinta para leer y escribir
contenido de un cuadrado uno a uno.
Memoficha 6: Definición formal de una Máquina de Turing
• Una Máquina de Turing se define mediante una tupla: T = (Q, ,, ,q0 ,F).
• Q es un conjunto finito y no vacío de estados.
•  es el alfabeto de entrada, no vacío.
•  es el alfabeto de la cinta, no vacío,    .
• q0  Q es el estado inicial.
• F  Q es el conjunto de estados finales.
•  es la función de transición directa. Es una proyección: Q x  en
subconjuntos finitos de Q x  x {D,I,N}.
Memoficha 7: Funcionamiento de una Máquina de Turing
• La Máquina de Turing realiza movimientos atómicos según la función de
transición: (q,A1 ) = (p,A2 ,d), cambiando de estado, reemplazando
símbolos en la cinta y moviendo la cabeza lectora/escritora.
• Al realizar un movimiento atómico, la unidad de control de la Máquina de
Turing cambia al estado pQ, el símbolo A1 se reemplaza por A2 , y la
cabeza lectora/escritora se mueve un cuadrado en dirección d  {D,I,N}.

Memoficha 8: Interpretaciones de las Computaciones de una Máquina de


Turing
• Las Máquinas de Turing pueden ser utilizadas como reconocedoras de
lenguajes: ósea se reconocen como lenguajes recursivamente numerables:
• Dada una cadena x* * , como entrada a T.
• Si T se detiene, se dice que T acepta x si qF y que T rechaza x si q
F.
• Si T no se detiene, entonces se dice que ni acepta ni rechaza a x.
• o pueden ser utilizadas como procedimientos para definir funciones
computables:
• Considérese una máquina T y una cadena x  *. T realizará una
serie de computaciones y eventualmente se detendrá con una
cadena y* en su cinta. Para cada posible x* produce a lo sumo
un y* , es decir, define una función parcial F: * →*
Memoficha 9: Máquinas de Turing multicinta
• Las Máquinas de Turing multicinta constan de varias cintas y cabezas
lectoras/escritoras independientes, permitiendo realizar operaciones
simultáneas en diferentes partes de la entrada.
• TM = (Q, ,, ,q0 ,F) donde:
• Q es un conjunto finito y no vacío de estados.
•  es el alfabeto de entrada, no vacío.
•  es el alfabeto de la cinta, no vacío,   {zo ,B}  .
• q0  Q es el estado inicial.
• F  Q es el conjunto de estados finales.
•  es la función parcial. : Q x ^ k → Q x ^ k x {D,I,N}k donde k es el
número de cintas
• Al inicio la máquina se encuentra en el estado q0 , y cada cabeza lectora
está en la posición 1 de su cinta. (qi , a1 , …, ak )=(qj ,b1 ,…,bk ,D,…,I).
Memoficha 10: Máquina de Turing Universal
• Turing demostró que se puede construir una Máquina de Turing Universal
que puede simular el comportamiento de cualquier otra Máquina de
Turing, actuando como un intérprete.
Memoficha 11: Problema de la Parada
• El problema de la parada consiste en determinar si un programa o
Máquina de Turing se detendrá o continuará ejecutándose para una
entrada dada, lo cual en general no es posible de saber en un tiempo
finito.
Memoficha 12: Conclusiones sobre las Máquinas de Turing
• Las Máquinas de Turing son capaces de emular el comportamiento de
cualquier otra Máquina de Turing y representan la primera noción de
computador con programa almacenado en la historia. También se
establece la equivalencia entre las Máquinas de Turing de una cinta y las
de varias cintas.

También podría gustarte