Documentos de Académico
Documentos de Profesional
Documentos de Cultura
RESUMENPOLENTASINTAXIS
RESUMENPOLENTASINTAXIS
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.
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
Definición Informal
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 ).
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
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
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
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
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.
• V = VN ∪ VT - VN ∩ VT = ∅
• Producciones: α → β, donde α ∈ V* VN V* y β ∈ V*
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 pQ, el símbolo A1 se reemplaza por A2 , y la
cabeza lectora/escritora se mueve un cuadrado en dirección d {D,I,N}.