Automata Unidad 2
Automata Unidad 2
Automata Unidad 2
Competencias a
desarrollar
Nmero de control
12320008
12320012
14321030
13320854
INTRODUCCION
..3
ACTIVIDAD 1 :INVESTIGAR LAS EXPRESIONES REGULARES Y SUS OPERACIONES..4-8
ACTIVIDAD2: GENERAR CADENAS A PARTIR DE UNA EXPRESION REGULAR9-14
ACTIVIDAD3: OBTENER UNA EXPRESION REGULAR A PARTIR DE UN GRUPO DE CADENAS O
VICEVERSA.15-20
CONCLUSION 21
BIBLIOGRAFIA ...22
Introduccin
En esta seccin, estudiaremos un ejemplo extendido de un problema real, cuya
solucin emplea autmatas nitos que desempean un importante papel. Vamos a
investigar protocolos que ayudan a gestionar el dinero electrnico (los archivos
que un cliente puede utilizar para realizar pagos por bienes a travs de Internet, y
que el vendedor puede recibir con la seguridad de que el dinero es real). El
2
Actividad 1.
Investigar las expresiones regulares y sus operaciones
Definicin de las expresiones regulares:
Es un equivalente algebraico para un autmata
Utilizado en muchos lugares como un lenguaje para describir patrones
en texto que son sencillos pero muy tiles.
L+=ULi
i=1
Lenguaje obtenido uniendo el lenguaje con todas sus potencias posibles excepto
L. Si L no contiene la palabra vaca, la clausura positiva tampoco Cierre o
Clausura de un lenguaje: Se define el cierre o clausura de un lenguaje L como:
L* = U Li
i=0
4
Lenguaje obtenido uniendo el lenguaje con todas sus potencias posibles, incluso
L. Todas las clausuras contienen la palabra vaca.
Existen tres operaciones bsicas que se pueden realizar sobre las ER:
Seleccin de alternativas: Se indica con el operador | (barra vertical). Si r y s son
ER, entonces r | s es una ER que define a cualquier cadena que concuerde con
una r o una s, tambin se dice que r | s, es la unin de los lenguajes de r y s y lo
podemos definir: L(r | s) = L(r) U L(s). Esta operacin se puede extender a ms de
dos ER.
Concatenacin: Se indica con la yuxtaposicin de las ER. Si r y s son ER,
entonces rs es una ER que define a cualquier cadena que concuerde con la
concatenacin de r y s, esta operacin la podemos definir: L (rs) = L(r) L(s).Esta
operacin se puede extender a ms de dos ER.
Repeticin o Cerradura: Tambin se conoce con el nombre de cerradura de
Kleene. Se indica con el operador *. Si r es una ER, entonces r* es una ER que
define a las cadenas de caracteres representadas por la concatenacin repetida
de r en n veces, o sea que lo podemos definir como: L(r*) = L(r)*o tambin lo
podemos definir como la unin infinita de conjuntos.
1.Ejemplo JAVA: expresin regular para comprobar si un email es vlido.
Resultados:
Resultado
Actividad 2.
Generar cadenas a partir de una expresin regular
Las expresiones regulares se usan para analizar el contenido de cadenas de
caracteres por medio de patrones. Son muy tiles y por ello deberis aprender a
definir vuestros propios patrones.
Como en otras secciones, os remito a la gua de referencia de Perl para ver todo
el repertorio de smbolos y que se pueden usar para construir patrones.
Un patrn est delimitado por dos barras inclinadas, /patrn/ y los caracteres que
insertis en l pueden tener un significado literal u otro especial cuando vaya
precedido del modificador \. Por ejemplo, /n/ es un patrn que coincidir con
cualquier aparicin de un carcter n en una cadena. Sin embargo, /\n/ slo
coincidir con los caracteres de nueva lnea.
Los smbolos ms habituales en expresiones regulares podran ser:
/. / # Cualquier carcter excepto \n, comodn (wildcard)
/\s/ # es un espacio en blanco (space)
/\t/
# es un tabulador
/\w/ # es un carcter alfanumrico (word), incluyendo '_'
/\W/ # no es un carcter alfanumrico (word)
/\d/ # es un dgito
/\D/ # no es un dgito
/\A/
/\Z/
/^/
/$/
/\//
/[...]/
I
Clausura positiva de un lenguaje: Se define la clausura positiva de un lenguaje
L:
L+=ULi
i=1
Lenguaje obtenido uniendo el lenguaje con todas sus potencias posibles excepto
L. Si L no contiene la palabra vaca, la clausura positiva tampoco
Cierre o Clausura de un lenguaje: Se define el cierre o clausura de un lenguaje
L como:
L* = U Li
i=0
Lenguaje obtenido uniendo el lenguaje con todas sus potencias posibles, incluso
L. Todas las clausuras contienen la palabra vaca.
Existen tres operaciones bsicas que se pueden realizar sobre las ER:
Seleccin de alternativas: Se indica con el operador | (barra vertical). Si r y s son
ER, entonces r | s es una ER que define a cualquier cadena que concuerde con
una r o una s, tambin se dice que r | s, es la unin de los lenguajes de r y s y lo
podemos definir: L(r | s) = L(r) U L(s). Esta operacin se puede extender a ms de
dos ER.
Concatenacin: Se indica con la yuxtaposicin de las ER. Si r y s son ER,
entonces rs es una ER que define a cualquier cadena que concuerde con la
concatenacin de r y s, esta operacin la podemos definir: L (rs) = L(r) L(s).Esta
operacin se puede extender a ms de dos ER.
Repeticin o Cerradura: Tambin se conoce con el nombre de cerradura de
Kleene. Se indica con el operador *. Si r es una ER, entonces r* es una ER que
define a las cadenas de caracteres representadas por la concatenacin repetida
de r en n veces, o sea que lo podemos definir como: L(r*) = L(r)*o tambin lo
podemos definir como la unin infinita de conjuntos r: r* n = r 0 r 1 r 2...r n.
2.3 Aplicaciones en problemas reales.
Una de las principales aplicaciones de los hermanos Deitel, son las expresiones
regulares que facilitan la construccin de un compilador. A menudo se utiliza una
expresin regular larga y compleja para validar la sintaxis de un programa. Si el
cdigo del programa no concuerda con la expresin regular, el compilador sabe
que hay un error de sintaxis dentro del cdigo Generalmente convierten la
expresin regular a un autmata finito no determinista y despus construyen el
autmata finito determinista.
Otra aplicacin del mismo libro es en los editores de texto. Tambin encontramos
a las expresiones regulares en la biologa molecular. Tambin hay esfuerzos
importantes para tratar de representar cadenas como generadas por expresiones
regulares o por lenguajes regulares.
11
1.Ejemplo JAVA:
Solicitar el ingreso del nombre y edad de dos personas. Mostrar el nombre de la
persona con mayor edad.
Resultado:
Resultado:
13
14
Actividad 3.
Obtener una expresin regular a partir de un grupo de cadenas o viceversa
En las operaciones de deteccin de coincidencias se pueden usar varios
modificadores. Se muestran a continuacin los modificadores relacionados con la
interpretacin de una expresin regular. Trata la cadena como si fuera un conjunto
de lneas. Es decir, cambia el significado de "^" y "$", que detectan el principio y el
final de la cadena respectivamente, para que detecten el principio y el final de
cualquier lnea en cualquier parte de la cadena. Si se usan juntos, como /ms,
permiten que "." detecte cualquier carcter y, a la vez, que "^" y "$" detecten,
respectivamente, las posiciones justo a continuacin e inmediatamente antes de
los caracteres de nueva lnea en la cadena.
/x indica al analizador de expresiones regulares que ignore el espacio en blanco
que no est marcado con barras diagonales inversas de escape o que no est
dentro de una clase de caracteres. Puede usar esto para descomponer la
expresin regular en partes (un poco) ms legibles.
El carcter # tambin es un Meta carcter que antecede a un comentario, al igual
que en el cdigo Perl normal. Esto tambin significa que si desea usar espacio en
blanco real o caracteres # en el patrn (excepto en una clase de caracteres, donde
no les afecta /x), tendr que marcarlos con barras diagonales inversas de escape
o \Q...\E, o codificarlos en octal, hexadecimal o secuencias de escape \N{}. En
conjunto, estas caractersticas mejoran en gran medida la legibilidad de las
expresiones regulares de Perl. Debe tener cuidado para no incluir el delimitador de
patrn en el comentario: Perl no puede adivinar que no pretenda cerrar el patrn
en ese punto. Vea el cdigo de eliminacin de comentarios estilo C en perlop.
Recuerde tambin que lo que est dentro de una secuencia \Q...\E no se ve
afectado por /x. Y tenga en cuenta que /x no afecta a la interpretacin de los
espacios dentro de una construccin multicarcter. Por ejemplo, en \x {...} no
puede haber espacios, independientemente de que se use el modificador /x. Y lo
mismo para un cuantificador, como {3} o {5,}. De forma similar, en (?:...) no puede
haber ningn espacio entre (y): pero s puede haber espacios entre (y) Para una
construccin como esta, con cualquier tipo de delimitadores, los espacios
permitidos no se vern afectados por /x, y dependen de la propia construccin.
Por ejemplo, \x {...} no puede contener espacios porque los nmeros
hexadecimales no contienen espacios. Pero las propiedades Unicode s pueden
contener espacios, por lo que en \p {...} puede haber espacios que cumplan las
reglas de Unicode. En un momento dado solo puede estar en vigor uno de estos
modificadores. Con ellos, Perl puede mantener el comportamiento originalmente
compilado de una expresin regular, independientemente de las normas que estn
en vigor cuando se ejecute dicha expresin. Y si se interpola en una expresin
15
16
Ejemplos
Solicitar el ingreso de dos apellidos. Mostrar un mensaje si son iguales o distintos.
17
Resultado:
18
19
Asignaremos como condicin que solo se los campos solo puedan validarse si el
usuario inserta nicamente 8 nmeros enteros y por ultimo una entrada que solo
admita un separador decimal por ejemplo un punto o una diagonal, una vez
compilado y ejecutado el programa se mostrara la pequea aplicacin en la cual
insertaremos los datos requeridos, se observa que la validacin es correcta por
que aparece una ventana con el mensaje de error porque el usuario ha insertado
ms dgitos de los permitidos.
20
Conclusiones
Un AFD tiene un conjunto nito de estados y un conjunto nito de smbolos de
entrada. Un estado se disea para que sea el estado inicial, y cero o ms estados
para que sean estados de aceptacin. Una funcin de transicin determina cmo
cambia el estado cada vez que se procesa un smbolo de entrada.
El autmata acepta cadenas. Una cadena es aceptada si, comenzando por el
estado inicial, la transicin causada por el procesamiento de los smbolos de dicha
cadena, uno cada vez, lleva a un estado de aceptacin. En trminos del diagrama
de transiciones, una cadena es aceptada si sus smbolos son las etiquetas de un
camino que va desde el estado inicial hasta algn estado de aceptacin.
21
Bibliografa
Biophysics. (1945). En W. W.S.McCulloch, A logical calculus of the ideas
immanent in nervious activity (pgs. 115-133).
22
23