Está en la página 1de 28

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES

Rogerio Orlando Beltrán Castro.


Ingeniero de Sistemas
Especialista en Tecnología Avanzadas de Software
Candidato a Magister en Gestión, Aplicación y Desarrollo de Software.
Candidato a Magister en Dirección de Centros Educativos.

Ingeniero de desarrollo de software desde el año 1996.


Docente Universitario desde el año 2004
SEMANA 01 6 DE OCTUBRE 2020

1. Generalidades
2. Laboratorios.
3. Unidad 1
Generalidades

Las clases tendrán la siguiente estructura

1. Explicación teórica.

2. Ejemplo.

3. Ejercicios

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 4


Entrega de Trabajos

► Laboratorio 1: Autómatas finitos y lenguajes regulares con


JFLAP
► Fecha de Entrega 2 de Noviembre

► Foro: Propuestas para la resolución de un problema dado


► Fecha de Entrega 16 de Noviembre

► Trabajo: Autómata a pila


► Fecha de Entrega 23 de Noviembre

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 5


LABORATORIO 01: 2 NOVIEMBRE
Descripción
A partir del siguiente diagrama de un autómata finito.

Las tareas que tendréis que realizar con JFLAP serán las siguientes:
1. Encontrar la expresión regular y una gramática para el lenguaje
reconocido por el autómata.
2. Hacer una lista de cinco palabras que sean aceptadas por el
autómata y otras cinco que sean rechazadas por el autómata.
3. Describir informalmente el lenguaje.
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 6
FORO: 16 NOVIEMBRE.

► Identifiquemos que problemas se pueden ser solucionados


con autómatas y por que es mejor usar autómatas.

► Reflexiona sobre la cuestión planteada en el foro y


comparte tus opiniones con los compañeros.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 7


LABORATORIO 02: 23 NOVIEMBRE
► Trabajo: Autómata a pila: Descripción: Resuelve los siguientes
problemas:
1. Construye un autómata a pila que reconozca el lenguaje {x^n
y^2n:0<n}.
2. Construye un autómata a pila que reconozca el lenguaje {x^2n
y^n:0≤n}.

► Criterios de evaluación
• Se evaluará la claridad de las explicaciones.
• Extensión máxima: 6 páginas (1 página de portada, 1 página de índice,
2 páginas para explicar cada ejercicio, como máximo) fuente Georgia 11
e interlineado 1,5.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 8


BIBLIOGRAFIA

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 9


REFERENCIAS COMPLEMENTARIAS

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 10


TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 11
1.2. ¿Por qué estudiar teoría de autómatas?

Teoría de autómatas es el estudio de máquinas abstractas con capacidad de


computación.

Los autómatas finitos tienen diversas aplicaciones como:

1. Diseño y verificación del comportamiento de circuitos digitales.

2. Analizador léxico de un compilador.

3. Software para explorar textos.

4. Software para comprobar la corrección de protocolos.

En este curso se van a estudiar máquinas más sencillas que las de Turing, esto es, que
máquinas con la misma capacidad que los computadores actuales.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 12


1.3. Introducción a las demostraciones formales

Las demostraciones deductivas parten de unas hipótesis o postulados y, a través de


pasos lógicos, llevan a una serie de conclusiones o tesis.

Para seguir el desarrollo de una demostración deductiva (es decir, cómo se llega a
probar la tesis mediante una serie de pasos lógicos) es importante comprender las
relaciones de implicación. En la proposición:

𝐴 ⇒𝐵

A es la condición suficiente y B es la condición necesaria. Es decir, si A no se da, B


puede darse o no, pero si B es falso A será siempre falso.

Es importante comprender que la proposición 𝐴 ⇒𝐵 no equivale a la proposición 𝐵


⇒𝐴.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 13


1.3. Introducción a las demostraciones formales
Si se tiene una doble implicación 𝐴⟺𝐵 (𝐴 si y solo si 𝐵), suele ser más sencilla la
demostración si se divide en dos partes:

1. Condición «Solo si»: se demuestra que 𝐴 ⇒𝐵

2. Condición «Si»: se demuestra que 𝐵 ⇒𝐴

Los cuantificadores para todo, ∀ y existe ∃, son elementos esenciales en la


formulación de enunciados.

Así, el enunciado ∀ 𝑥≠0 ∃ 𝑦 tal que 𝑥*𝑦=1 dice que para todo número distinto de cero,
x, existe su inverso, y.

Hay que tener en cuenta que la negación del cuantificador ∀ es ∃ (y no “para ningún”)
y al revés. Así, si queremos negar la proposición anterior escribiríamos:

∃ 𝑥𝑥≠0 𝑡al que ∀ 𝑦 𝑥*𝑦≠1

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 14


Otras formas de demostración

Demostraciones sobre conjuntos

Cuando sea necesario demostrar que dos conjuntos definidos de maneras distintas
(por ejemplo 𝑅𝑅 y 𝑆𝑆) son, en realidad, el mismo, se suele dividir la prueba en dos
partes

𝑅 ⊆𝑆

𝑆 ⊆𝑅

Nótese que es la misma forma de proceder que cuando se quiere demostrar una doble
implicación.

Para demostrar que 𝑅 ⊆𝑆 hay que probar que todo elemento de 𝑅 también pertenece
𝑆.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 15


Demostración por el contrarrecíproco

► También llamada conversión contradictoria, está


basada en el hecho de que la proposición 𝐴 ⇒𝐵
tiene la misma tabla de verdad que la proposición
¬𝐵⟹¬𝐴, es decir que no 𝐵 implica no 𝐴

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 16


Demostración por reducción al absurdo

► Supongamos que aceptamos una serie de hipótesis H y, partiendo de ellas y


utilizando pasos lógicos, llegamos a un resultado falso. ¿Dónde está el fallo? Solo
hay una posibilidad: en H, ya que si los pasos están bien fundamentados y la
conclusión es falsa, el problema solo puede estar en las hipótesis.

► Esto puede emplearse para realizar demostraciones de la siguiente manera.


Supongamos que se quiere probar que 𝐴 ⇒𝐵. Lo que se hace es suponer que se
verifica ¬𝐵 y empezar a hacer deducciones lógicas. En el momento en que se
llegue a una contradicción, ya estará la demostración terminada.

► Nótese que la demostración por el contrarrecíproco es un caso particular de


reducción al absurdo, en el que la contradicción es del tipo ¬𝐴.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 17


Contraejemplos

► Para demostrar la falsedad de una afirmación sobre un conjunto de casos, basta


con encontrar uno en el que no se cumpla. Por ejemplo, si se quiere demostrar la
falsedad de «si x es múltiplo de 3 también lo es de cinco», basta con encontrar un
caso en que no se cumpla. Tomando x = 6, que es múltiplo de 3 pero no de 5,
habremos encontrado un contraejemplo.

► Aunque no siempre es aconsejable trasladar la lógica proposicional al lenguaje


común, sí es interesante señalar que el dicho «es la excepción que confirma la
regla», no tiene ninguna validez en el ámbito de las demostraciones formales. Si
una afirmación tiene una excepción (contraejemplo), no puede ser una regla.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 18


Inducción matemática

Un conjunto definido de manera inductiva (o recursiva) cumple:

1. Tiene un primer elemento.

2. Tiene una regla para poder construir un elemento a partir del anterior, es decir, hay
una regla que permite saber cómo será el sucesor de cada elemento del conjunto.

Por ejemplo, el conjunto de los números naturales, ℕ= {1,2,,3,…}, es un conjunto


inductivo:

1. Tiene un primer elemento, el 1.

2. El sucesor de un elemento n, es ese mismo elemento más 1, es decir, n+1.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 19


Inducción matemática
► De forma análoga puede definirse, por ejemplo, el conjunto de los múltiplos de tres.
En general, no es necesario que el conjunto inductivo sea un conjunto de números.
Sus elementos pueden ser otros conjuntos, árboles, etc., siempre que estén
definidos de manera recursiva.

► La demostración por inducción utiliza esta forma de definir los elementos del
conjunto para construir las demostraciones sobre ellos. Así, en la demostración por
inducción de una proposición P, siempre se tiene que comprobar que:

1. El enunciado se cumple para el primer elemento del conjunto (caso base), P(1).

2. Si el enunciado es cierto para algún elemento del conjunto, es decir, si P(n) es cierta,
entonces también lo es para su sucesor, es decir, P(n+1) es cierta.

P(n) recibe el nombre de hipótesis de inducción.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 20


Veamos un ejemplo:

Se quiere demostrar que 1+2+⋯+𝑛𝑛= 𝑛𝑛(𝑛𝑛+1)2

1. (Caso base). Si n = 1, la suma de los n primeros números es 1. Por otro lado,


𝑛𝑛(𝑛𝑛+1)2=1∙22=1, por tanto, la igualdad se verifica para el primer caso.

2. Supongamos que la proposición es cierta para k, es decir, 1+2+⋯+𝑘𝑘= 𝑘𝑘(𝑘𝑘+1)2


(hipótesis de inducción). Veamos qué ocurre para k + 1:

1+2+⋯+𝑘𝑘 +𝑘𝑘+1=(1+2+⋯+𝑘𝑘) +(𝑘𝑘+1)= 𝑘𝑘(𝑘𝑘+1)2+(𝑘𝑘+1), por la hipótesis de


inducción. Sumando, resulta

1+2+⋯+𝑘𝑘 +𝑘𝑘+1=𝑘𝑘(𝑘𝑘+1)+2(𝑘𝑘+1)2=𝑘𝑘2+3𝑘𝑘+22=(𝑘𝑘+1)(𝑘𝑘+2)2, como


queríamos demostrar.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 21


Veamos un ejemplo:
¿Por qué estos pasos constituyen una prueba de la proposición para todos los números
naturales?

1. Sabemos que se cumple para el primer elemento del conjunto, 1.

2. ¿Se cumple para el 2? Sí, porque sabemos que si se cumple para un elemento del
conjunto, también se verifica para su sucesor.

3. ¿Se cumple para el 3? Sí, porque se verifica para el 2 y 3 es su sucesor.

4. …

Por tanto, la demostración por inducción demuestra que una propiedad P se cumple de
forma recursiva, que es la manera en que está definido el conjunto sobre el que se hace
la demostración. En otras palabras, recorre el mismo camino que ha habido que construir
para definir todos los elementos del conjunto.

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 22


1.6. Alfabetos, cadenas y lenguajes
Un alfabeto es un conjunto no vacío y finito de símbolos.
Ejemplos de alfabetos muy utilizados en informática son el alfabeto binario el conjunto de
caracteres ASCII.

Una cadena es una secuencia finita de símbolos que pertenecen a un alfabeto.


• Por ejemplo, la cadena abdXY2 es una cadena del alfabeto definido por los caracteres ASCII.
• Tiene especial interés la cadena vacía (es decir, que no contiene ningún símbolo), que
denotaremos con 𝝐. Esta cadena puede definirse en cualquier alfabeto. ¿Y qué interés puede
tener definir una cadena sin símbolos? Se trata de una abstracción que resulta de gran
ayuda en razonamientos formales. Además, en muchas ocasiones, 𝜖𝜖 será el caso base de
demostraciones inductivas sobre cadenas.

Un lenguaje es un conjunto de cadenas cuyos símbolos pertenecen a un alfabeto.


• Se pueden poner ejemplos con lenguajes conocidos como lenguajes de programación. En
ese caso, dentro de todas las cadenas que pueden definirse con los símbolos permitidos, nos
interesa el subconjunto que proporciona programas válidos. No obstante, el concepto de
lenguaje se generalizará en este curso.
• El problema esencial de teoría de autómatas es decidir si una cadena pertenece a un
lenguaje determinado. Por ejemplo, una de las tareas de un compilador es decidir si una
cadena dada (es decir, un programa) pertenece al lenguaje de programación o no. De hecho,
lenguaje y problema van a ser expresiones equivalentes.
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 23
1.6. Alfabetos, cadenas y lenguajes

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 24


1.6. Alfabetos, cadenas y lenguajes

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 25


1.6. Alfabetos, cadenas y lenguajes

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 26


1.6. Alfabetos, cadenas y lenguajes

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES 27


unir.edu.co

También podría gustarte