Post on 15-Nov-2015
description
UNIVERSIDAD POLITCNICA DEL
VALLE DE MXICO
Lenguajes y autmatas
Salvador Contreras Hernndez
Enero 2015
Lenguajes y autmatas
Objetivo
Analizar las aplicaciones de un autmata en la vida
real, as como desarrollar una y que dependiendo
de la cadena de entrada realice alguna accin en
particular.
Lenguajes y autmatas
Resultados de aprendizaje:
Plan de asignatura.
Plan de evaluacin.
(Nicenet Link Sharing)
Lenguajes y autmatas
Evaluacin:
Se promedian las actividades de aprendizaje de
cada unidad.
Se deben aprobar todas las unidades para acreditar
la asignatura.
Se asignar una fecha de entrega de las evidencias
de cada unidad para alumnos que no la acrediten.
Historia (I)
En 1930s, A. Turing desarroll una mquina abstracta
denominada Mquina de Turing para el estudio de la
computabilidad.
En 1940s y 1950s, se desarrollan mquinas simples, en
cuanto su funcionamiento, que fueron conocidas como
autmatas finitos, para modelar el funcionamiento del
cerebro.
Tambin en los 1950s, N. Chomsky comienza el estudio
formal de las gramticas (generadoras de lenguajes).
Historia (II)
En 1969, Stephen Cook extiende el estudio de Turing. Cook
separa aquellos problemas que pueden ser solucionados
de aquellos que en principio pueden ser solucionados pero
que en la prctica toman demasiados recursos.
Autmatas finitos y ciertas clases de gramticas formales
son usadas en el diseo y construccin de software.
La Mquina de Turing ayuda a comprender que es lo que
podemos esperar de nuestro software.
Por qu estudiar Lenguajes y
Autmatas?
Autmatas Finitos son modelos tiles para muchos elementos
hardware y software:
Software para disear y chequear la conducta de circuitos digitales.
El analizador lxico de un compilador.
Software para escanear grandes volmenes de texto para
encontrar patrones.
Software para verificar sistemas que tengan un nmero finito de
estados, tales como protocolos de comunicacin o de intercambio
seguro de informacin.
Por qu estudiar Lenguajes y
autmatas?
Autmatas son esenciales para el estudio de los lmites de
la computacin:
Qu puede hacer una computadora? Problema de la decibilidad.
Qu puede hacer una computadora eficientemente? Problema de
la tratabilidad.
Por qu estudiar Lenguajes y
Autmatas?
Los lenguajes nos permiten comunicarnos con la mquina,
parte de lo que puede hacer la mquina depende del
poder descriptivo del lenguaje.
Compiladores.
Traductores.
Diseo de lenguajes de alto nivel.
Mquinas abstractas
Autmatas Finitos.
Autmatas de Pila.
Autmatas linealmente acotados.
Mquina de Turing.
Definicin informal de autmata
Son sistemas que en todo momento se encuentran en uno de un
conjunto finito de estados.
El propsito de un estado es recordar la historia del sistema.
Puesto que el nmero de estados es finito, el sistema debe ser
diseado para recordar aquello que es importante y olvidar lo
que no.
La ventaja de tener un nmero finito de estados es que el
sistema podr ser implementado con un conjunto fijo de recursos.
Ejemplo de AF
Sistema: Interruptor.
El sistema recuerda si est
conectado (ON) o desconectado
(OFF).
El usuario lo presiona.
Si est en OFF y es presionado
pasa al estado ON.
Si est en ON y es presionado
pasa al estado OFF.
Presin
off on
Presin
Comienzo
Gramticas Formales
Gramtica regulares.
Gramticas independientes de contexto.
Gramticas sensibles al contexto.
Gramtica sin restricciones o de estructura de
frase.
Definicin informal de Gramtica
Es el mecanismo empleado para establecer la estructura de un
lenguaje, es decir las sentencias que lo forman.
Consiste de un conjunto de reglas sintcticas que establecen la
forma en la que se pueden combinar los smbolos del alfabeto:
ORACION es un SUJETO y un PREDICADO.
SUJETO es una FRASE NOMINAL.
FRASE NOMINAL es un GRUPO NOMINAL y un CALIFICATIVO que puede o
no estar.
GRUPO NOMINAL es un ARTICULO que puede no estar y un NOMBRE.
CALIFICATIVO es un ADJETIVO o una CONJUNCIN y una ORACION.
Tipos de Gramticas
N. Chomsky clasifica las gramticas en cuatro tipos:
Gramticas sin restricciones o gramticas de estructura de frases
(Tipo 0).
Gramticas sensibles al contexto (Tipo 1).
Gramticas independientes de contexto (Tipo 2).
Gramticas regulares (Tipo 3).
Tipo 0 Tipo 1 Tipo 2 Tipo 3
Tipos de Lenguajes
Conforme a la clasificacin de N. Chomsky, los lenguajes se
clasifican en cuatro tipos:
Lenguajes sin restricciones (Tipo 0).
Lenguajes sensibles (o dependientes) al contexto (Tipo 1).
Lenguajes independientes de contexto (Tipo 2).
Lenguajes regulares (Tipo 3).
Tipo 0 Tipo 1 Tipo 2 Tipo 3
Teora de Autmatas - Lenguajes Formales
(Mquinas abstractas - Gramticas Formales)
equivale
Gramtica
Lenguajes
describe
genera
Mquina
reconoce
genera
Teora de Autmatas - Lenguajes Formales
(Mquinas abstractas - Gramticas Formales)
Gramticas Lenguajes Mquinas
Sin restricciones o de
Tipo 0
Sin restricciones o de
Tipo 0
Mquina de Turing
Sensible al contexto
o de Tipo 1
Sensible al contexto
o de Tipo 1
Autmata
linealmente acotado
Libre de contexto o
de Tipo 2
Libre de contexto o
de Tipo 2
Autmata a pila
Regular o de Tipo 3 Regular o de Tipo 3 Autmata Finito
Cadenas, alfabetos y lenguajes
Un smbolo es una entidad abstracta que no
definiremos. Las letras y los dgitos son ejemplos de
smbolos.
Una cadena o palabra es una secuencia finita de
smbolos.
Por ejemplo a, b y c son smbolos y abcb es una
cadena.
Cadenas, alfabetos y lenguajes
La longitud de una cadena w es el nmero de
smbolos que componen la cadena y se denota por
|w|. Por ejemplo abcb tiene longitud 4.
La cadena vaca se denota por y tiene cero smbolos. La longitud de , | | es 0.
Cadenas, alfabetos y lenguajes
La concatenacin de dos cadenas es la cadena que se
forma al unir dos cadenas. La cadena vaca es la
identidad para el operador de concatenacin, es
decir, w=w=w para toda cadena w.
Cadenas, alfabetos y lenguajes
Alfabeto. Es un conjunto finito de smbolos.
Un lenguaje formal es un conjunto de cadenas de
smbolos tomados de algn alfabeto.
Cadenas, alfabetos y lenguajes
El conjunto vaco y el conjunto formado por la
cadena vaca {} son diferentes, ntese que el segundo conjunto tiene un elemento mientras que el
primero no tiene ninguno.
Cadenas, alfabetos y lenguajes
El conjunto de palndromos sobre el alfabeto {0,1} es
un lenguaje infinito.
Algunos elementos de este lenguaje son: , 0,1,00,11,010 y 110011.
Cadenas, alfabetos y lenguajes
Otro lenguaje es el conjunto de cadenas sobre un
alfabeto fijo . Denotamos a este lenguaje como *. Por ejemplo si ={a}, entonces *={,a,aa,aaa,}.
Si ={0,1}, entonces *={,0,1,00,01,10,11,000,..}
Grafos
Un grafo se denota por G=(V,E), y consiste en un
conjunto finito de vrtices (o nodos) V y un conjunto
de pares de vrtices E llamados aristas.
Considere los siguientes datos y construya el grafo, en
el cual, V={1,2,3,4,5} y E={(n,m)|n+m=4 o
n+m=7}
Grafos
Figura. Grafo
Grafos
Una trayectoria en grafo es una secuencia de vrtices
v1,v2,,vk, k1, tal que existe una arista (vi,vi+1)
para cada i, 1 i k.
La longitud de la trayectoria es k-1. Por ejemplo
1,3,4 es una trayectoria en el grafo de la figura
anterior, como tambin lo es 2 por si mismo. Si
vi=vk, la trayectoria es un ciclo.
Grafos
Un grafo dirigido (o digrafo), que tambin se denota
como G=(V,E), consiste en un conjunto finito de
vrtices V y un conjunto de pares ordenados de
vrtices E, llamados arcos. Denotamos un arco de v
a w como v w.
Grafos
Una trayectoria en un digrafo es una secuencia de
vrtices v1,v2,,vk, k
rboles
Un rbol es un digrafo que posee las propiedades
siguientes:
1. Existe un vrtice, llamado raz, que no tiene
predecesores y del cual parte una trayectoria
hacia cada vrtice.
2. Cada vrtice, diferente de la raz, tiene
exactamente un predecesor.
3. Los sucesores de cada vrtice estn ordenados a
partir de la izquierda.
Conjuntos
Los conjuntos que pueden ponerse en correspondencia
con los enteros se dice que son infinitos contables.
Los nmeros racionales y el conjunto * de las
cadenas de longitud finita, formadas con el
alfabeto , son infinitos contables. El conjunto de
todos los subconjuntos * y el conjunto de todas las
funciones que transforman a los enteros {0,1} son
de la misma cardinalidad de los reales, y no son
contables.
Relaciones
Una relacin binaria es un conjunto de pares. El primer
componente de cada par se toma de un conjunto
llamado dominio y el segundo componente pertenece
a un conjunto (tal vez distinto del primero) llamado
contradominio.
En las relaciones donde el dominio y el contradominio
son el mismo conjunto S, diremos que la relacin es
sobre S.
Si R es una relacin y (a,b) un par entonces podemos
expresar aRb para indicar que a est relacionada
con b.
Relaciones
Propiedades de las relaciones:
1. Reflexiva si aRa para toda a en S
2. Irreflexiva si aRa es falsa para toda a en S
3. Transitiva si aRb y bRc implican aRc
4. Simtrica aRb implica bRa
5. Asimtrica si aRb implica que bRa es falsa
Relaciones
Ejemplo.
La relacin < sobre el conjunto de enteros es
transitiva, asimtrica e irreflexiva.
Transitiva: Si a
Relaciones de equivalencia
Se dice que una relacin R que es reflexiva, simtrica y
transitiva es una relacin de equivalencia.
Una propiedad importante de una relacin de
equivalencia R sobre S es que R divide a S en clases
de equivalencia no vacas disjuntas. Esto significa que
S=S1U S2 U , en donde para cada i y j, i j:
1. Si interseccin Sj=;
2. Para cada a y b en Si, aRb es verdadera;
3. Para cada a y b en Sj, a Rb es falsa.
Tarea
Reporte por escrito de investigacin sobre Autmatas
finitos.
Nicenet.