You are on page 1of 19

Teora de la computacin

Unidad II lenguajes regulares Trabajo de investigacin Carlos Rivera Trejo

LENGUAJES REGULARES Un lenguaje regular es un tipo de lenguaje formal que satisface las siguientes propiedades:

Puede ser reconocido por:

un autmata finito determinista un autmata finito no determinista un autmata finito alterno una maquina de turing de solo lectura

Es generado por: una gramtica regular una gramtica de prefijos Es descrito por: una expresin regular

2.1 Autmata finito


Esquema lgico de un autmata finito. Un autmata finito o mquina de estado finito es un modelo matemtico de un sistema que recibe una cadena constituida por smbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el automata reconoce.

Formalmente, un autmata finito (AF) puede ser descrito como una 5-tupla (S,,T,s,A) donde:
S un conjunto de estados; es un alfabeto;

T es la funcin de transicin::

es el estado inicial; es un conjunto de estados de aceptacin o finales.

Formas de representar un autmata:

Adems de notar un AF a travs de su definicin formal es posible representarlo a travs de otras notaciones que resultan ms cmodas. Entre estas notaciones, las ms usuales son: En teora de autmatas y lgica secuencial, una tabla de transicin de estados es una tabla que muestra que estado (o estados en el caso de un Autmata finito no determinista) se mover la mquina de estados, basndose en el estado actual y otras entradas. Una tabla de estados es esencialmente una tabla de verdad en la cual algunas de las entradas son el estado actual, y las salidas incluyen el siguiente estado, junto con otras salidas.

Formas comunes
Tablas de estados de una dimensin

Tambin llamdas tablas caractersticas, las tablas de estados de una dimensin son ms como tablas de verdad que como las versiones de dos dimensiones. Las entradas son normalmente colocadas a la izquierda, y separadas de las salidas, las cuales estn a la derecha.
Tablas de Estados de dos dimensiones Las tablas de transicin de estados son normalmente tablas de dos dimensiones. Hay dos formas comunes para construirlas.

La dimensin vertical indica los Estados Actuales, la dimensin horizontal indica eventos, y las celdas (intersecciones fila/columna) de la tabla contienen el siguiente estado si ocurre un evento (y posiblemente la accin enlazada a esta transicin de estados).
Tabla de Transicin de Estados Events State S1 S2 ... Sm

E1

E2

...

En

... Az/Sk

Ay/Sj ... -

... ... ... ...

Ax/Si ... -

(S: estado, E: evento, A: accin, -: transicin ilegal)

La dimensin vertical indica los Estados Actuales, la dimensin horizontal indica los siguientes estados, y las intersecciones fila/columna contienen el evento el cual dirigir al siguiente estado particular.
Tabla de Transicin de Estados next current S1 S2 ... Sm S1 Ay/Ej ... S2 ... Az/Ek ... Sm Ax/Ei ... -

... ... ... ...

(S: estado, E: evento, A: accin, -: transicin imposible)

Para un autmata finito no determinista (AFND), una nueva entrada puede causar que la mquina est en ms de un estado, dado que es no determinista. Esto se denota en una tabla de transicin de estados por un par de llaves { } con un conjunto de todos los estados objetivo entre ellos. Se da un ejemplo abajo.

Tabla de Transicin de Estados para un AFND Entrada Estado S1 S2 S3 1 0

S1 S2 S2

{ S2, S3 } S1 S1

S1

Aqu, una mquina no determinista en el estado S1 leyendo una entrada de 0 causar que est en dos estados al mismo tiempo, los estados S2 y S3. La ltima columna define la transicin legal de estados del carcter especial, . Este carcter especial permite a los AFND moverse a un estado diferente cuando no hay ninguna entrada. En el estado S3, el AFND puede moverse a S1 sin consumir ningn carcter de entrada. Los dos casos anteriores configuran al autmata finito no determinista.

Es posible dibujar un diagrama de estados partiendo de la tabla. Una secuencia posible de pasos a seguir es la siguiente:

1) Dibuja crculos que representen los estados dados. 2) Para cada uno de los estados, mira la correspondiente fila y dibuja una flecha para cada uno de los estados destino. Pueden ser mltiples flechas para un mismo carcter de entrada si el autmata es un AFND. 3) Designa un estado como el estado inicial. El estado inicial est dado en la definicin formal del autmata. 4) Designa uno o ms estados como estado final( o tambin llamado de aceptacin). Esto tambin est dado en la definicin formal.

Ejemplo:
Las tablas de transiciones:

Tabla de Transicin de Estados Entrada Estado S1 S2 1 S1 S2 0 S2 S1

Un AFD o autmata finito determinista es aquel autmata finito cuyo estado de llegada est unvocamente determinado por el estado inicial y el carcter ledo por el autmata. Formalmente, un autmata finito determinista (AFD) es similar a un Autmata de estados finitos, representado con una 5-tupla (S,,T,s,A) donde:

es un alfabeto; S un conjunto de estados; T es la funcin de transicin: es el estado inicial; es un conjunto de estados de aceptacin o finales.

Al contrario de la definicin de autmata finito, este es un caso particular donde no se permiten transiciones lambda (vacas), el dominio de la funcin T es S (con lo cual no se permiten transiciones desde un estado de un mismo smbolo a varios estados).

Expresin regular

Una expresin regular, a menudo llamada tambin patrn, es una expresin que describe un conjunto de cadenas sin enumerar sus elementos. Por ejemplo, el grupo formado por las cadenas Handel, Hndel y Haendel se describe mediante el patrn "H(a||ae)ndel". La mayora de las formalizaciones proporcionan los siguientes constructores: una expresin regular es una forma de representar a los lenguajes regulares (finitos o infinitos) y se construye utilizando caracteres del alfabeto sobre el cual se define el lenguaje.

Especficamente, las expresiones regulares se construyen utilizando los operadores unin concatenacion y clausura de Kleene.

Clausura de Kleene
En lgica matemtica y en ciencias de la computacin, la clausura de Kleene (tambin llamada estrella Kleene o cierre estrella) es una operacin unaria que se aplica sobre un conjunto de cadena de caracteres o un conjunto de smbolos o caracteres (alfabeto), y representa el conjunto de las cadenas que se pueden formar tomando cualquier nmero de cadenas del conjunto inicial, posiblemente con repeticiones, y concatenndolas entre si. La aplicacin de la clausura de Kleene a un conjunto V se denota como V*. Es muy usada en expresiones regulares y fue introducida en este contexto por Stephen Kleene (1909-1994) para caracterizar un cierto autmata.

Ejemplos: Ejemplo de clausura de Kleene aplicada a un conjunto de cadenas: {"ab", "c"}* = {, "ab", "c", "abab", "abc", "cab", "cc", "ababab", "ababc", "abcab", "abcc", "cabab", "cabc", "ccab", "ccc", ...}

Ejemplo de clausura de Kleene aplicada a un conjunto de caracteres: {'a', 'b', 'c'}* = {, "a", "b", "c", "aa", "ab", "ac", "ba", "bb", "bc", ...}

Lenguajes no regulares

Los lenguajes regulares infinitos (y tambin algunos lenguajes que no son regulares). Gracias a este lema podremos demostrar que ciertos lenguaje infinitos no son regulares. Es importante hacer notar que el lema de bombeo es una herramienta adecuada para demostrar que un lenguaje no es regular, pero no lo ser para demostrar que un lenguaje si es regular (por el hecho de que existen algunos lenguajes no regulares que la cumplen). Por tanto, si un lenguaje no cumple el lema de bombeo no es regular, pero si lo cumple no podremos decir si es o no regular.

Enunciado del Lema de Bombeo Para todo lenguaje regular infinito L, existe una constante n, dependiente de ese lenguaje, de forma que si w es una cadena de L con |w| n, podemos partir w en tres cadenas, x, y, z, de forma que: w = xyz, y (o dicho de otro modo, que |y| 1), |xy| <= n Para cualquier k 0, la cadena xykz pertenece a L. O sea que para cualquier cadena de L lo bastante larga, siempre podremos encontrar una particin en tres subcadenas, con una no vaca en el medio (la y) que no est demasiado lejos del comienzo de la palabra, que podremos bombear; es decir, que si se repite la subcadena y cualquier nmero de veces, la cadena resultante tambin pertenecer a L.

You might also like