Вы находитесь на странице: 1из 38

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
Comienzo

off

on

Presin

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

Mquina

describe

reconoce

genera

genera

Lenguajes

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<=1, tal que vi vi+1, es un
arco para cada i, 1 i <k . Decimos que la
trayectoria es desde v1 hasta vk.
As pues, 1234 es una trayectoria en un
digrafo. Si v w es un arco, decimos que v es
predecesor de w y ste es sucesor de v.

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.
2.
3.

4.
5.

Reflexiva si aRa para toda a en S


Irreflexiva si aRa es falsa para toda a en S
Transitiva si aRb y bRc implican aRc
Simtrica aRb implica bRa
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<b y b<c implica que a<c
Asimtrica: a<b implica que b<a es falsa
Irreflexiva: a<a es falsa

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.

Вам также может понравиться