¿Cómo nos comunicamos?.

Slides:



Advertisements
Presentaciones similares
Conceptos básicos Def. Un símbolo es cualquier carácter imprimible.
Advertisements

Gramáticas.
Lenguajes y Expresiones Regulares
Tema 2 Autómatas finitos 1. Autómata finito determinista
Tema 1.- Lenguajes. Gramáticas
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS
Tema 1.- Lenguajes. Gramáticas
Tema 2 Lenguajes Formales.
Introducción a la Teoría de Lenguajes Preparado por Manuel E. Bermúdez, Ph.D. Profesor Asociado University of Florida Curso de Compiladores.
Lenguajes Independientes del Contexto
Autómatas de Pila Teoría del Autómata.
Teoría de lenguajes y compiladores
Tema 2 Autómatas finitos 1. Autómata finito determinista
Lenguajes regulares Teoría del Autómata.
Teoría de lenguajes y compiladores Analizadores lexicográficos
Tomado de Sudkamp: Languages and Machines Cap. 6.
Lenguajes Formales y Autómatas
Teoría de lenguajes y compiladores
Unidad 3 Analizador Sintáctico
LENGUAJES GRÁMATICAS Y AUTÓMATAS
Centro Universitario Valle de México Gramáticas Libres de Contexto Dra. Maricela Quintana López Elaborado por: Autómatas y Lenguajes Formales.
LOGICA Y MATEMATICA COMPUTACIONAL Profesora Responsable: Esp. Prof. Liliana Caputo.
Autómatas finitos (AF) Los AF constan de 5 elementos fundamentales AF=( , E, F, s,  ).  Un alfabeto (  )  Un conjunto de estados (E)  Un conjunto.
UNIDAD II TEORÍA DE CONJUNTOS Y SISTEMAS NUMÉRICOS.
MATLAB 7 EJERCICIOS. E01. Escribir un programa que permita determinar si un número entero dado es par o impar. (Utilizar el operador mod) E02. Utilizando.
Universidad Cesar Vallejo ALFA-UCV Teoría de Conjuntos.
El poder generalizador de los SIMBOLOS
Funciones y gráficas ITZEL ALEJANDRA LOZOYARODRIGUEZ
2. Simplificación de funciones booleanas: Método de Karnaugh
LENGUAJES FORMALES, AUTOMATAS Y MAQUINAS DE ESTADOS FINITOS
CONJUNTOS Álgebra Superior
Introducción a los algoritmos
MATRICES.
Computación Valeria Herskovic –
Básicos de Autómatas.
Tema 4 Elementos para el Desarrollo de Algoritmos
Actividad 7 Diagrama de estado
Conjuntos La guía sencilla Guía basada en :
MATEMÁTICA DISCRETA Y LÓGICA 1
COMPUTER DATA SYSTEMS CDS.
Fundamentos de programación
ALGORITMOS Un procedimiento o método para resolver un problema que cumpla con unos requisitos se dice que es un algoritmo. Se puede dar por tanto la siguiente.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS
AUTOMATAS FINITOS DETERMINISTICOS
Desigualdades e Inecuaciones
Un conjunto es una colección de elementos. A={a, b, c} Notación: los conjuntos se denotan normalmente con letras mayúsculas y los elementos, con letras.
Profesor: Rubén Alva Cabrera. INDICE INTRODUCCIÓN RELACION DE PERTENENCIA DETERMINACION DE CONJUNTOS DIAGRAMAS DE VENN CONJUNTOS ESPECIALES RELACIONES.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS 1.α + (β + γ) = (α + β) + γ 2.α + β = β + α 3.α + Ø = α 4.α + α = α 5.α · λ = α 6.α · Ø = Ø 7.α · (β ·
TEMA Nº 1 Conjuntos numéricos. Aprendizajes esperados: Utilizar y clasificar los distintos conjuntos numéricos en sus diversas formas de expresión, tanto.
DOCENTE: ANGEL PALACIO BIENVENIDOS AL MUNDO DEL
Desigualdades e Inecuaciones
Conjuntos numéricos. objetivos: Utilizar y clasificar los distintos conjuntos numéricos en sus diversas formas de expresión. recordar la operatoria básica.
Tema 2 Autómatas finitos 1. Autómata finito determinista
Integrales con funciones logarítmicas
Introducción a los algoritmos
TEORÍA DE CONJUNTOS.
CONJUNTOS Álgebra Superior
MATRICES Y DETERMINANTES
DEPARTAMENTO DE MATEMÁTICAS
Escuela Nacional de Antropología e Historia (ENAH)
Escuela Nacional de Antropología e Historia (ENAH)
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS 1.α + (β + γ) = (α + β) + γ 2.α + β = β + α 3.α + Ø = α 4.α + α = α 5.α · λ = α 6.α · Ø = Ø 7.α · (β ·
TEMARIO DEFINICIÓN ………………………………………………………..………..
TEMA Nº 1 Conjuntos numéricos. Aprendizajes esperados: Utilizar y clasificar los distintos conjuntos numéricos en sus diversas formas de expresión, tanto.
Profesor: Rubén Alva Cabrera. INDICE INTRODUCCIÓN RELACION DE PERTENENCIA DETERMINACION DE CONJUNTOS DIAGRAMAS DE VENN CONJUNTOS ESPECIALES RELACIONES.
Teoría de Conjuntos Conjuntos. CONCEPTO DE CONJUNTO Es considerado un término primitivo, por lo tanto se acepta como un término no definido. Es una colección.
INTRODUCCION A LOS AUTOMATAS Lic. Luis Enrique hernandez.
Profesor: Rubén Alva Cabrera. INDICE INTRODUCCIÓN RELACION DE PERTENENCIA DETERMINACION DE CONJUNTOS DIAGRAMAS DE VENN CONJUNTOS ESPECIALES RELACIONES.
Dr. Edwin Alfonso Sosa1 Aritmética: Propiedades y operaciones con números reales Fundamentos de álgebra Dr. Alfonso-Sosa.
Definición de Conjuntos. Clasificación de Conjuntos. Representación. Subconjuntos. Conjunto Potencia. Propiedades del conjunto Potencia. Relaciones.
Transcripción de la presentación:

¿Cómo nos comunicamos?

A través del Lenguaje Los hay: Semántica: significado Sintaxis: reglas gramaticales. Naturales Ejemplos: Lenguaje de humanos: chino, español, inglés. y Sintaxis: reglas gramaticales. Reglas gramaticales preestablecidas. Formales Ejemplos: Lenguajes de programación.

Lenguajes Formales Alfabeto Letra o Caracter Símbolo = Cadena o palabra Lenguajes Formales Autómatas

¿Qué forma parte de un lenguaje? Símbolos Lenguaje Operaciones Reglas

Un alfabeto es un conjunto no vacío y finito de símbolos Un alfabeto es un conjunto no vacío y finito de símbolos. Los símbolos del alfabeto son las letras, strings o caracteres. Ejemplos: La letra e forma parte del alfabeto español, italiano, inglés, entre otros. V* denota a todas las palabras del alfabeto V, es decir que cada elemento de V* es una secuencia finita ya que es una palabra. Ejemplo: Sea V = {a, b}, el alfabeto formado por los símbolos a y b. v = ababbaaa w = bbbb x = aaaaa son palabras de V*

Cadena de caracteres Palabra Longitud de Palabra Ejercicios La cadena o palabra es una secuencia finita de caracteres del alfabeto, que se obtiene mediante las operaciones de los símbolos del mismo.   V* denota a todas las palabras del alfabeto V, es decir que cada elemento de V* es una secuencia finita ya que es una palabra. Ejemplo: Sea V = {a, b}, el alfabeto formado por los símbolos a y b. v = ababbaaa w = bbbb x = aaaaa son palabras de V* La longitud de una cadena es la cantidad de símbolos que la forman.. Long v = |v| = 4 Long w = |w| = 4 Long y = long v + long w = 8 Se identifica con la letra griega λ a la cadena o palabra vacía o nula, es decir que carece de caracteres o símbolos, con longitud cero, |λ | = 0. Cadena de caracteres Palabra Longitud de Palabra Ejercicios

Operaciones con Palabras Concatenación ¨Si x e y son palabras, la concatenación, x.y es una palabra formada por los símbolos de x seguidos por los símbolos de y. Ejemplo: Sea V = {0,1} alfabeto binario, sean v, w e y palabras de V* Sea v=0111 Sea w=1110 Sea y=vw léase y = v contatenado con w, por lo que resulta y = 01111110 Ejercicios Reflexión, Inversa o Trasposición Si la palabra x está formada por los símbolos A1, A2, ...., An, entonces la palabra inversa de x, xR , se forma invirtiendo el orden de los símbolos en la palabra; xR = An, ...., A2, A1. Ejemplo: Sea w = abc entonces wR = cba Potenciación Si concatenamos n veces una cadena x, es decir xxxxxx.... x n veces, obtendremos x. Ejemplos: si concatenamos 2 veces la cadena x, obtendremos x². si concatenamos 3 veces la cadena x, obtendremos x³. n

Operaciones con Lenguajes Reflexión, Inversa o Trasposición Concatenación Dados dos lenguajes L1 y L2, su concatenación, L1 . L2 contendrá todas las palabras que se puedan formar por la concatenación de una palabra de L1 y otra de L2. Ejemplo: Dados L1 = { nana, napa, lana} y L2 = { , nana, napa, pana, palabra, papa, pala} L1 . L2 = { nana, napa, lana, nananana, napanana, ...} La reflexión de un lenguaje L está formada por la aplicación de la reflexión a cada una de las palabras del lenguaje; L R = { x R tal que x ε L } Ejemplo: Dado L = { 0, 1 , 00, 10 }, entonces L R = { 0, 1, 00, 01 } Más Operaciones Potencia La potencia i-ésima de un lenguaje corresponde a la concatenación i veces del lenguaje en él mismo; L = L . L . L ..... L i veces Ejemplo: Dado L1 = { 0, 1} entonces L² = { 00, 01, 10, 11 } i

Más Operaciones con Lenguajes Unión Resta Dados dos lenguajes L1 y L2, su unión L1 L2 contendrá todas las palabras que pertenezcan a cualquiera de los dos lenguajes, L1 L2 = { x tal que x ε L1 ó x ε L2 } Ejemplo: Dados L1 = { nana, napa, lana} y L2 = { , nana, napa, pana, palabra, papa, pala} L1 L2 = { , nana, napa, lana, pana, palabra, papa, pala } Si L1 y L2 son lenguajes la resta de L1 y L2, L1 - L2, contendrá todas las palabras que pertenezcan a L1 y no pertenezcan a L2 , L1 - L2 = { x tal que x  L1 y x  L2 } Ejemplo: Dados L1 = { nana, napa, lana} y L2 = { , nana, napa, pana, palabra, papa, pala} L1 - L2 = { napa, lana } L2 - L1 = { , pana, palabra, papa, pala } Intersección Más Operaciones Dados dos lenguajes L1 y L2, su intersección L1 L2 contendrá todas las palabras que pertenezcan a los dos lenguajes; L1 L2 = { x tal que x ε L1 y x ε L2 } Ejemplo: Dados L1 = { nana, napa, lana} y L2 = { , nana, napa, pana, palabra, papa, pala} L1 L2 = { nana, napa }

Ejemplos Más Operaciones con Lenguajes Clausura de Kleene Sea V un alfabeto, sea N el conjunto de los números naturales, sea n ε N U {0} y sea L un lenguaje de V* entonces: L* = Lº U L¹ U L² U L³ U....U L es la clausura de Kleene del lenguaje L. L * = Clausura de Kleene i Clausura Positiva Clausura Positiva: Sea V un alfabeto, sea N el conjunto de los números naturales, sea n ε N y sea L un lenguaje de V* entonces: L = L¹ U L² U L³ U....U L es la clausura de positiva del lenguaje L. L = + + i Ejercicios Ejemplos

Ejemplo Clausura de Kleene Sea el alfabeto V = {0, 1} entonces: V* = U Vi = {0, 1}0 U {0, 1}1 U {0, 1}2 U .... U {0, 1}n U ..... i=0 V* = Λ U {0, 1} U {00, 01, 10, 11} U {000, 001, 010, 011, 100, 101, 110, 111} U ... Ejemplo Clausura Positiva Sea el alfabeto V = {0, 1} entonces: V + = U Vi = {0, 1}1 U {0, 1}2 U .... U {0, 1}n U ..... i=1 V + = {0, 1} U {00, 01, 10, 11} U {000, 001, 010, 011, 100, 101, 110, 111} U ...

Complejidad Media Complejidad Alta Sea V = {0,1} Indicar la longitud de las siguientes palabras del alfabeto V: a = 01011; b = 01; c = 00; d = λ 2. Sea V = {a, b}, el alfabeto formado por los símbolos a y b. Indicar cuales de las siguientes son palabras de V* v = ababbaca w = z z = a Complejidad Alta 1. ¿Un Lenguaje formal puede ser infinito? 2. Indique si las siguientes opciones son verdaderas o falsas: Sea V = {1, 2, 3} a=111 ε L (V) b=312 ε L (V) c=114 ε L (V)

Complejidad Media Complejidad Alta Sean V = {1, 2, 3} , a=111 ε V; b=312 ε V Concatenar ab y ba e Indicar Indicar vR y wR , con v = ab y w = ba. 2. ¿Es conmutativa la operación concatenación? 3. Sea V = {0, 1}, w = 0101010, hallar w con potencia 0, 1, 2 y 3, dar las longitudes de dichas palabras. Complejidad Alta Probar que la concatenación en V* es un semigrupo. Probar utilizando inducción matemática en a, que: long wª = a long w. Sea w ε V*, indicar los valores de: => (wR ) R => λR

Complejidad Media Complejidad Alta 1. Dados los lenguajes Lı = {abc, aa, aba} y L2 = {bbb, aaaaaaaa, abc} Hallar Lı* y L2*, Lı+ y L2+. 2. Dados los lenguajes Lı = {10, 00} y L2 = {10, 00, 0000}. Indicar si ¿Lı* = L2*? Y ¿ Lı+ = L2+? Complejidad Alta Sea el lenguaje L = {111, 000} mostrar que la concatenación es cerrada en L*.

Gramáticas Algunos Conceptos Clasificación de Gramáticas Ejercicios ¿Cómo se genera una gramática? Clasificación de Gramáticas Ejercicios

Las gramáticas son descripciones estructurales de las sentencias de los lenguajes, tanto naturales como formales. Si describen a un lenguaje formal se dicen formales. Las gramáticas permiten describir de forma intencional a los lenguajes. Ejemplo Se define a la Gramática formal G, como la cuádrupla: G = (Vn; Vt ; P ; s) donde: v     Vn es un conjunto de elementos llamados no terminales, suele llamarse vocabulario de elementos no terminales. v     Vt es un conjunto de elementos llamados terminales, suele llamarse vocabulario de elementos terminales. v     P es un conjunto de producciones (reglas de sustitución). v     S es un elemento de Vn llamado símbolo inicial. Algunos Comentarios

Ejemplo Sea una determinada gramática G en la cual: Vt = {a, b} Vn = {S, A, B}, donde S es el símbolo inicial. Sea S  aB S  bA A  a A  aS A  bAA B  b B  bS B  aBB el conjunto de producciones. Observamos que los enunciados del lenguaje son todas las cadenas de letras a y b en las que el núemro de letras a es igual al número de letras b. La no terminal A representa el conjunto de cadenas en las que el número de letras a es uno más que el número de letras b, y la no terminal B representa el conjunto de cadenas en las que el número de letras b es uno más que el número de letras a.

¿Cómo se genera una gramática? El proceso de generar palabras usando una gramática G = (Vn; Vt; P, s), se denomina “derivación”. Se comienza con el símbolo inicial s. Se aplican las producciones de P al símbolo inicial s hasta obtener solo elementos terminales. iii Cualquier hilera que se consigue usando el ii. es un elemento del lenguaje L(G). Ejemplo: La gramática G especifica el lenguaje formado por todas las cadenas sobre L = {a, b, c} que contienen a la subcadena cc. G = (Vn ={S, A, B}; Vt = {a, b, c}, P, S), donde P: S  AccA A  BA / B  a | b | c Una palabra w es una cadena formada sólo por símbolos terminales o por la cadena nula (si está permitida). Para determinar si w L(G) se debe iniciar con el símbolo inicial S, y aplicar las reglas de producción P (derivación) sucesivamente hasta obtener w. Si no es posible, entonces w L(G).

Ejemplo Sea G = {(0,1,2)}; (a, b); P; 0} con las siguientes producciones: 0 => a2 / b1 1 => a / a0 / b11 2 => b / b0 / a22 Entonces algunas de las palabras del lenguaje L(G) son: 0 => a2 => ab ε L(G) 0 => a2 => ab0 => aba2 => abab ε L(G)   Árbol de derivación Árbol de derivación

Gramática Tipo 0 Gramática Tipo I Gramática Tipo II Gramática Tipo III Sin restricciones Genera lenguajes recursivamente numerables Ejemplos Gramática Tipo 0 Dependientes del contexto (se tiene en cuenta lo que viene antes y después del símbolo que se sustituye). Genera lenguajes sensibles (o dependientes) al contexto Las producciones son del tipo: α  β donde α, β Є {Vn U Vt} Las producciones son no-contractivas: | α | | β | Nunca genera a la palabra nula Ejemplos Gramática Tipo I Libres de contexto Genera lenguajes libres al contexto El lado izquierdo debe consistir en un solo no terminal No hay restricciones al lado derecho Ejemplos Gramática Tipo II Regulares Genera lenguajes regulares El lado izquierdo debe consistir en un solo no terminal El lado derecho debe ser un terminal seguido de un no terminal, o un solo terminal o la cadena vacía Ejemplos Gramática Tipo III

Ejemplos Gramáticas Tipo 0 S  aSBC | aBC CB  BC aB  ab bB  bb bC  bc cC  cc G = ({0, 1}; {A, B, S}, S, P), donde P: S  A0 A0  1B1 1A  0B0 B  B  1 B  0 El lenguaje generado por esta gramática es: L(G) = {11, 101, 111}

Ejemplos Gramáticas Tipo 1 S  abc | aAbc Ab  bA Ac  Bbcc bB  Bb aB  aa | aaA 2. G = ({0, 1}; {A, B}, A, P), donde P: A  1B1 A  11 1B1  101 1B1  111 El lenguaje generado por esta gramática es: L(G) = {11, 101, 111}

Ejemplos Gramáticas Tipo 2 S  aSb | ab L = {ak bk tal que k 1} es un lenguaje de tipo 2, pues puede especificarse mediante la gramática de tipo 2: A  aAb A  ab Sea G = ({0, 1}, {A, B}, A, P), donde P = {( A  1B1), (A  11), (B  1), (B 0)} Esta gramática G, genera a L(G) = {11, 101, 111}

Ejemplos Gramáticas Tipo 3 A  aB | a | Sea la gramática G = ({ a, b, c }; {0, 1}; P; a ) con P dada por: a  b1 | c1 b  b0 |  c   | 0 3. Sea la gramática G = ({ a, b, c }; {0, 1}; P; a ) con P dada por: a  1b | 1c b  0b | 

Algunos Comentarios El lenguaje generado por una gramática G se denomina L(G). Una gramática genera un lenguaje. G  L(G) Dos gramáticas G1 y G2 son equivalentes si L(G1) = L(G2); es decir, si generan el mismo lenguaje. Dependientes del contexto significa que se tiene en cuenta lo que viene antes y después del símbolo que se sustituye. Existe una jerarquía entre los distintos tipos de gramáticas tal que las gramáticas del tipo i son más generales que las de tipo i + 1. Formalmente, G3 G2 G1 G0

Complejidad Media Ejercicios Complejidad Alta

Complejidad Media Ejercicios Obtener las derivaciones de las palabras 002 y 0001 a partir de la siguiente gramática: G = ({0, 1, 2}, {A, B}, A, P}) P: A  0B A  2 B  0A B  1 Describir el árbol de derivación y obtener el lenguaje que genera. 2. Dados los siguientes alfabetos: V ı = { 1, 2, 3, 4, 5, 6, 7, 8 } V 2 = { a, b, c, d, e, f, g, h } Y los lenguajes: Lı(Vı ) = { x | x Vı } y L2(V2 ) = { x | x V2 } Definir los lenguajes Lı U L2, Lı . L2 y (L1 . L2)² Ejercicios

Complejidad Alta Ejercicios Determine si la gramática dada es sensible al contexto, libre del contexto, regular o bien ninguna de éstas: a. T = { a, b } , N = { ơ*, A }, con composiciones: ơ*  b ơ*, ơ*  aA, a  a ơ*, A  bA, A  a, ơ*  b, y símbolo inicial ơ*. b. T = { a, b } , N = { ơ*, A, B }, con composiciones: ơ*  b ơ*, ơ*  AAB, Aa  ABa, a  aA, Bb  ABb, AB  ABB, B  b, y símbolo inicial ơ*. c. <S>  b <S> | a<A> | a <A>  a <S> | b<B> <B>  b <A> | a<S> | b, con símbolo inicial <S>. Ejercicios

Complejidad Media Sea V = {0,1} Indicar la longitud de las siguientes palabras del alfabeto V: a = 01011; Rta: | a | = 5 b = 01; Rta: | b | = 2 c = 00; Rta: | c | = 2 d = λ Rta: | d | = 0

Complejidad Media 2. Sea V = {a, b}, el alfabeto formado por los símbolos a y b. Indicar cuales de las siguientes son palabras de V* v = ababbaca Rta: v es palabra de V* ya que a y b pertenecen al alfabeto V, y las mismas operadas con la operación concatenación generan palabras de V*. w = z Rta: w no es palabra de V* ya que z no pertenece al alfabeto V. z = a Rta: z es palabra de V* ya que a pertenece al alfabeto V.

Complejidad Alta ¿Un Lenguaje formal puede ser infinito? Rta: Todas las palabras que se pueden formar con símbolos del alfabeto Σ corresponde al universo del alfabeto V (Σ ). Contiene un número infinito de elementos (palabras). La palabra vacía pertenece a todos los universos. L (Σ ) es todo subconjunto de W (Σ ). Como el universo asociado a un alfabeto es infinito, hay infinitos lenguajes asociados a un alfabeto.

Complejidad Alta 2. Indique si las siguientes opciones son verdaderas o falsas: Sea V = {1, 2, 3} a=111 ε L (V) Rta: la concatenación es válida y como 1 pertenece al alfabeto V, la palabra a pertenece a L (V), ya que resulta de concatenar 1, 1, 1. VERDADERO. b=312 ε L (V) Rta: la concatenación es válida y como 3, 2 y 1 pertenecen al alfabeto V, la palabra b pertenece a L (V), ya que resulta de concatenar 3, 1, 2. VERDADERO. c=114 ε L (V) Rta: la palabra c no pertenece a L (V), ya que 4 no es un elemento del alfabeto V. FALSO.

Complejidad Media Sean V = {1, 2, 3} , a=111 ε V; b=312 ε V Concatenar ab y ba e Indicar vR y wR con v = ab y w = ba. Rta: ab = 111312 ba = 312111 vR = 213111 wR = 111213

Complejidad Media 2. ¿Es conmutativa la operación concatenación? Rta: la concatenación no es conmutativa. Contraejemplo: a=111 ; b=312 ab = 111312 ba = 312111

Complejidad Media Sea V = {0, 1}, w = 0101010, hallar w con potencia 0, 1, 2 y 3, dar las longitudes de dichas palabras. Rta: wº = λ | wº | = 0 w¹ = w = 0101010 | w¹ | = 7 w² = w.w = 01010100101010 | w² | = 14 w³ = w.w.w = 0101010 0101010 0101010 | w³ | = 21

Complejidad Alta Probar que la concatenación en V* es un semigrupo. Sean x = x1 x2 x3 ... Xn  V* y t = t1 t2 t3 ... tr  V* entonces: x.t = x1 x2 x3 ... xn t1 t2 t3 ... tr  V* luego V* x V*  V*, es decir que  x  V*,  y  V*  x.y  V*, de donde se dice que la concatenación es cerrada y binaria en V* (1) Sean x  V* y y V*, z  V*, tales que: x = x1 x2 x3 .... xm  V* y = y1 y2 ....yn  V* z = z1 z2 .....zt  V*, entonces x.(y.z) 0 (x1 x2 x3 .... xm).[y1 .... ym z1 .... zt] = = x1 x2 x3 .... xm y1 ... yn z1 ... zt = = (x1 x2 x3 .... xm y1 ... yn).( z1 ... zt) = = (x.y).z, entonces la concatenación es asociativa (2) La palabra nula λ es un elemento de V* y para cualquier x de V* con x = x1 x2 .... xm se verifica λ .x = λ x1 x2 ... xmλ = x. λ = x de donde la palabra nula λ es el elemento neutro (3) Por (1), (2) y (3) queda demostrado que V* bajo la concatenación es un semigrupo con neutro.

Complejidad Alta Probar utilizando inducción matemática en n, que: long wn = n long w. Rta: P(1): n= 1  long w¹ = w y 1. long w = w por lo cual v(P(1) = V. P(h): n = h  long w h = h long w HIPOTESIS INDUCTIVA P(h+1): n = h+1  long w ( h+1)= (h+1) long w TESIS INDUCTIVA D/ long w( h+1) = long ( w wh ) = long w + long wh = long w + h long w reemplazando por la hipótesis inductiva. = long w ( 1 + h) sacando factor común long w = (h+1) long w utilizando propiedad conmutativa del producto. Con lo cual queda probado.

Complejidad Alta Sea w ε V*, indicar los valores de: (wR) R Rta: (wR) R = w Sea w = w1 w2 ... wt entonces y en virtud de la definición de inversión de w: wR = wt ... w2 w1  (wR) R = ( wt .... w2 w1) R  (wR) R = w1 w2 ... wt  (wR) R = w => λR = λ por la definición de la palabra nula.

Complejidad Media 1. Dados los lenguajes L1 = {abc, aa, aba} y L2 = {bbb, aaaaaaaa, abc}. Hallar L1* y L2*, L1+ y L2+ . L1* = L1º U L1¹ U L1² U L1³ U....U L1n L1* = U { abc, aa, aba } U { abcabc, abcaa, abcaba, aaaa, aaabc, aaaba, abaaba, abaabc, abaaa} U ..... L1+ = L1¹ U L1² U L1³ U....U L1n L1+ = { abc, aa, aba } U { abcabc, abcaa, abcaba, aaaa, aaabc, aaaba, abaaba, abaabc, abaaa} U ..... L2 * = L2º U L2¹ U L2² U L2³ U....U L2n L2 * = U { bbb, aaaaaaaa, abc } U { abcabc, abcaa, abcaba, aaaa, aaabc, aaaba, abaaba, abaabc, abaaa} U ..... L2+ = L2¹ U L2² U L2³ U....U L2n L2+ = { bbb, aaaaaaaa, abc } U { bbbbbb, bbbaaaaaaaa, bbbabc, aaaaaaaaaaaaaaaa, aaaaaaaabbb, aaaaaaaaabc, abcabc, abcbbb, abcaaaaaaaa } U ......

Complejidad Media 3. Dados los lenguajes Lı = {10, 00} y L2 = {10, 00, 0000}. Indicar si ¿Lı * = L2*? Y ¿ Lı+ = L2+ ? Lı* = Lıº U Lı¹ U Lı² U Lı³ U....U Lın Lı* = U { 10, 00 } U { 1010, 1000, 0010, 0000} U { 101010, 101000, 100010, 100000, 001010, 001000, 000010, 000000} U ..... Lı+ = Lı¹ U Lı² U Lı³ U....U Lın Lı+ = { 10, 00 } U { 1010, 1000, 0010, 0000} U { 101010, 101000, 100010, 100000, 001010, 001000, 000010, 000000} U ..... L2* = L2º U L2¹ U L2² U L2³ U....U L2n L2* = U { 10, 00, 0000 } U { 1010, 1000, 1000000, 0010, 0000, 000000, 000010, 000000, 00000000 } U ..... L2+ = L2¹ U L2² U L2³ U....U L2n L2+ = { 10, 00, 0000 } U { 1010, 1000, 1000000, 0010, 0000, 000000, 000010, 000000, 00000000 } U .....

Complejidad Alta Sea el lenguaje L = {111, 000} mostrar que la concatenación es cerrada en L*. Por Propiedad, Si V es un alfabeto entonces el conjunto V* bajo la concatenación es un semigrupo con neutro. Con lo cual L* bajo la concatenación es un semigrupo con neutro, consiguientemente cumple que la concatenación es cerrada en L*.

Complejidad Media Obtener las derivaciones de las palabras 002 y 0001 a partir de la siguiente gramática: G = ({0, 1, 2}, {A, B}, A, P}) P: A  0B A  2 B  0A B  1 Describir el árbol de derivación y obtener el lenguaje que genera. Las palabras se pueden obtener de la siguiente derivaciones: 002: A  0B  00A  002 0001: A  0B  000B  0001 Los árboles de derivación aparecen la figura siguiente: Más

Complejidad Media Lı = { 0n 2 | n = 2.x } Para obtener el lenguaje, habrá que analizar qué palabras pueden derivarse desde el axioma. Así que se pueden obtener las siguientes derivaciones: A  2 A  0B –> 01 A  0B –> 00A  002 A  0B –> 00A  000B  0001 A  0B –> 00A  000B  0000A  00002 Por lo tanto, puede aparecer un 2 precedido de un número par de 0s ó un 1 precedido por un número impar de 1s. Si se define un lenguaje Lı como: Lı = { 0n 2 | n = 2.x } y un lenguaje L2 = { 0ª 1 | a = 2.y + 1 } Entonces, el lenguaje generado por la gramática se puede definir como L(G) = Lı U L2, o lo que es lo mismo: L(G) = { 0n 2 U 0ª 1 | n = 2.x y a = 2.y +1 }

Complejidad Alta Ejercicios Dados los siguientes alfabetos: V ı = { 1, 2, 3, 4, 5, 6, 7, 8 } V2 = { a, b, c, d, e, f, g, h } Y los lenguajes: Lı(Vı ) = { x | x  Vı } y L2 (V2 ) = { x | x  V2 } Definir los lenguajes Lı U L2, Lı . L2 y (Lı . L2)² Lı U L2 = { x | x  Vı ó x  V2} = { 1, 2, 3, 4, 5, 6, 7, 8, a, b, c, d, e, f, g, h } Lı . L2 = { xy | x  Vı e y  V2 } = { 1a, 2a, ... ,8a, 1b, 2b, ...., 8b, ...., 1h, ...., 8h } En este caso, una numeración muy utilizada para los tableros de ajedrez es numerar las filas del 1 al 8 y las columnas de la a a la h, con lo que el lenguaje resultante de Lı . L2 representaría todas las casillas de ajedrez. (Lı . L2)² = { x ² = x.x | x  (Lı . L2) } = = { 1a1a, ... , 1a8a, 1a1b, ... , 1b1a, ... , 8h8h } El número de palabras del lenguaje resultante sería | (Lı . L2)² | = 8ˆ4. Ejercicios

Complejidad Alta Ejercicios Determine si la gramática dada es sensible al contexto, libre del contexto, regular o bien ninguna de éstas: a. T = { a, b } , N = { ơ*, A }, con composiciones: ơ*  b ơ*, ơ*  aA, a  a ơ*, A  bA, A  a, ơ*  b, y símbolo inicial ơ*. Regular, libre de contexto, sensible de contexto. b. T = { a, b } , N = { ơ*, A, B }, con composiciones: ơ*  b ơ*, ơ*  AAB, Aa  ABa, a  aA, Bb  ABb, AB  ABB, B  b, y símbolo inicial ơ*. Sensible al contexto. c. <S>  b <S> | a<A> | A <A>  a <S> | b<B> <B>  b <A> | a<S> | b, con símbolo inicial <S>. Ejercicios

Lenguajes y ¿Qué relación hay Gramáticas Regulares entre ellos? Autómatas ¿Qué relación hay entre ellos? Gramáticas Regulares Equivalentes Genera Lenguajes Regulares Autómatas Finitos Reconoce

Lenguajes Regulares Expresiones Regulares Un lenguaje es regular si existe una gramática regular que lo genere. Un lenguaje regular sobre un alfabeto V se define recursivamente de la siguiente forma: es un lenguaje regular. { } es un lenguaje regular. a Vı, {a} es un lenguaje regular. Si Lı y L son dos lenguajes regulares entonces: Lı L, Lı L y Lı* son lenguajes regulares. 5. Ningún otro lenguaje sobre V es regular. Ejemplos Expresiones Regulares Observaciones: Un lenguaje formal es finito entonces es un Lenguaje Regular. Un lenguaje es regular si puede ser reconocido por un Autómata Finito

Ejemplos Lenguaje Regular 1. Sea V = {a, b} los siguientes lenguajes son regulares: Lı = { ab, ba } L = { bb } Lı L = { ab, ba, bb } L3 = V* 2. Todos los números binarios que comienzan con un número par de 1s y terminan con un 0, es un lenguaje regular infinito. L = { 1 0 con n 0 } 2n

Autómatas Finitos Determinísticos Diferencia Entre ambos Autómatas Finitos No Determinísticos

Autómatas Finitos Determinísticos Ejemplos A = (Q; V; ; q; F) con  = Q x V  Q Un autómata finito es un modelo matemático de un sistema que determina para cada cadena del alfabeto V si pertenece al lenguaje que el autómata reconoce. Es una máquina de estado finito, que se define como: la 5-upla M = (Q; V; δ; q; F) donde: Q = {q1, q2, ..., qn } es el conjuntofinito de estados de la máquina. V es el alfabeto de entrada. δ: Q x V  Q es la relación de transición. q  Q y se dice estado inicial.   F  Q es el conjunto de estados finales. Ejercicios Algunos Comentarios

Para cualquier estado, la lectura de una letra determina, sin ambigüedades, el estado de llegada. Para todo (q, a)  Q x V  (q, a) = p si y sólo si la máquina puede pasar del estado q al estado p al “leer” el símbolo a. Para cada estado en un diagrama de transición debe existir a lo sumo una arista etiquetada para cada letra del alfabeto V. Un A.F.D. es completo si cada estado tiene una transición por cada letra del alfabeto. Ninguna arista está etiquetada con . La relación de transición es una función. Un A.F.D. Es completo si cada estado tiene una transición por cada letra del alfabeto. Algunos Comentarios

Ejemplo de Máquinas de Estado Finito como reconocedoras de Lenguaje. El autómata A = ( {0, 1}; {q, q1 }; f; q; { q }), donde f se define como: f (q, 0) = q f (q, 1) = q1 f (q1, 0) = q1 f (q1, 1) = q Si la palabra de entrada es 0110, el autómata pasará por los siguientes estados: q  q  q1  q  q Vamos a armar la tabla de transiciones: En las filas estarán los estados q  Q El estado inicial se precederá del símbolo  Cada estado final se precederá del símbolo * En las columnas estarán los símbolo de entrada a  V En la posición (q,a) estará el estado que determine f(q,a) 1 1 Sigue

δ 1 q q1 Respecto del diagrama de transiciones: En los nodos estarán los estados El estado inicial tendrá un arco entrante no etiquetado Los estados finales estarán rodeados del doble círculo Habrá un arco etiquetado con a entre el nodo qi y el nodo qj si f (qi , a) = qj y entonces el autómata A nos queda de la siguiente manera: 1 q1 q 1 Otro Ejemplo

1 1 1  A B C D 1 Esta máquina de estado finito es un Autómata Finito determinístico, ya que cumple con la definición del mismo. De cada estado ( A, B, C, o D) por cada letra del alfabeto (en este caso 0 o 1) existe una única transición hacia otro estado.

Complejidad Media Ejercicios Complejidad Alta

Complejidad Media Determine cuáles son las palabras aceptadas por los siguientes autómatas: 1. 1 * 1 q2 q1 q 1 011 b. 1010 c. 00010 2. 1 q2 1 * q q1 00011011100 b. 010110 c. 100

q Complejidad Alta  I  a b  * q q1 Indique si el siguiente autómata finito es o no determinístico. Justifique. Sea el autómata finito A = ({q, q1, q 2 }; {a, b}; ; q; { q }), con  dada por 1 * 1  q1 q2 q3 q 1  a b  * q q1 q2 q Dibuje el digrama de transición. I

Complejidad Media Rta. Rta. Determine cuáles son las palabras aceptadas por los siguientes autómatas: 1. 1 * 1 q2 q1 q Rta. 1 011 Verdadero 1010 Verdadero 00010 Falso 2. 1 q2 1 * q q1 Rta. 00011011100 Falso 010110 Verdadero 100 Verdadero

Complejidad Alta Indique si el siguiente autómata finito es o no determinístico. Justifique. 1 * 1  q1 q2 q3 q 1 Rta: no corresponde a un A.F.D. pues para el estado q hay dos aristas etiquetadas con 0

determinístico completo Complejidad Alta 2. Sea el autómata finito A = ({q, q1, q 2 }; {a, b}; ; q; { q }), con  dada por  a b  * q q1 q2 q Dibuje el digrama de transición. Rta. b Es un autómata finito determinístico completo a *  q q1 a b b q2 a

Expresiones Regulares Ejemplos Sea A un alfabeto. Una expresión regular sobre A es un secuencia de elementos de A conectados por los siguientes símbolos (,), v, *,  (palabra nula) que verifican: Es una expresión regular. Si a  A entonces a es un expresión regular. Si x e y son expresiones regulares entonces xy es una expresión regular. Si x e y son expresiones regulares entonces x  y es una expresión regular. Si x es una expresión regular entonces (x)* es una expresión regular. Observación: Asociado a cada expresión regular sobre el alfabeto A hay un subconjunto de A*, que se llama subconjunto o lenguaje regular.

Ejemplos Expresiones Regulares La Expresión Regular a*ba*ba representa al lenguaje de todas las palabras sobre el alfabeto {a, b} con 2 b y una b comenzando o no por aes, una b, pueden ser o no más aes, una b y una a. Son palabras de este lenguaje: bba, abba, aabaaba.... Sea el alfabeto A = { 0, 1 }, la Expresión Regular (1  0) 1* representa al lenguaje de los números binarios que comienzan con un 1 ó un 0, el que puede o no ser seguido por 1 ó más 1s. Son palabras de este lenguaje: 1, 0, 11, 01, 111, 011, ....

Autómatas Finitos No Determinísticos Ejemplo A = (Q; V; ; q; F) con  = Q x (V  {  }) P(Q) Un autómata finito no determinístico es un autómata finito que puede realizar transiciones por la palabra . Una transición por la palabra , es un cambio de estado sin la intervención de ningún carácter de la palabra en estudio. La transición que se ejecuta en una etapa dada puede ser incierta pues nada lo determina, por eso se dicen no determinístico. Cada estado puede tener, en el diagrama de transición, más de una arista etiquetada con cada letra del alfabeto V. Para cualquier estado q se pueden tener cero ó más alternativas a elegir como estado siguiente, todas para el mismo símbolo de entrada. Si A = (Q; V; ; q; F) es un autómata finito no determinístico, el lenguaje que acepta A se indica L(A) y es regular. Ejercicios

Autómatas Finitos Determinísticos Autómatas Finitos No Determinísticos Diferencia Una de las principales más importantes entre un autómata finito determínistico (A.F.D.) y un autómata finito no determinístico (A.F.N.) es que:  q  Q,  a  V => | (q;a) |  1 (A.F.D) Para los A.F.N.:  q  Q,  a  V  {  } y | (q;a) | > 1

Ejemplos Autómatas Regulares No Determinísticos Sea A = ( {q, q1, q2 , q3, q4 }; { 0, 1}; ; q; {q2 , q4 }), con  dada por (q; ) = {q1, q3 } (q1; 0) = { q2 } (q3; 1) = { q4 } (q2; 0) = { q2 } (q4; 1) = { q4 } El diagrama de transición correspondiente es:  * q2  q q1  1 q4 q3 1

Complejidad Media Ejercicios A.F.N Complejidad Alta

q2 Complejidad Media    * q  Grafique los diagramas de transición de los autómatas finitos no determinísticos 1. A = ( {q, q1, q2 }; { 0}; ; {q2}), con  dada por la siguiente tabla de transición:    * q  q1 q2 2. A = ( {q, q1, q2, q3}; { 0, 1 }; q; {q3}), con  dada por: (q; 0) = {q } y (q; 0) = {q1 }  (q; 0) = {q, q1 } (q; 1) = {q } (q1; 1) = {q2 } (q2; 1) = {q3 }

Complejidad Alta Grafique los diagramas de transición de los autómatas finitos no determinísticos 1. A = ( {q, q1, q2, q3, q4 }; { 0, 1}; ; q; {q2, q4}), con  dada por: (q; ) = {q1, q3 } (q1; 0) = {q2 } (q3; 1) = {q4 } (q2; 0) = {q2 } (q4; 1) = {q4 } 2. A = ( {a, b, c }; { 0, 1}; ; a; {a, b}), con  dada por: (a; 0) = {b } (a; 1) = {a } (b; 0) = {a } (b; 1) = {c } (c; 0) = {a } (c; 1) = {b }

q2 Complejidad Media Rta.     * q   Grafique el diagrama de transición del autómata finito no determinístico A = ( {q, q1, q2 }; { 0}; ; {q2}), con  dada por la siguiente tabla de transición:    * q  q1 q2 Rta.   q2 q q1

Complejidad Media Grafique los diagramas de transición de los autómatas finitos no determinísticos 2. A = ( {q, q1, q2, q3}; { 0, 1 }; q; {q3}), con  dada por: (q; 0) = {q } y (q; 0) = {q1 }  (q; 0) = {q, q1 } (q; 1) = {q } (q1; 1) = {q2 } (q2; 1) = {q3 } 1 * 1  q q1 q2 q3 1

Complejidad Alta Grafique los diagramas de transición de los autómatas finitos no determinísticos 1. A = ( {q, q1, q2, q3, q4 }; { 0, 1}; ; q; {q2, q4}), con  dada por: (q; ) = {q1, q3 } (q1; 0) = {q2 } (q3; 1) = {q4 } (q2; 0) = {q2 } (q4; 1) = {q4 } q1 q2  *  q 1  1 q3 q4

Complejidad Alta Grafique los diagramas de transición de los autómatas finitos no determinísticos 2. A = ( {a, b, c }; { 0, 1}; ; a; {a, b}), con  dada por: (a; 0) = {b } (a; 1) = {a } (b; 0) = {a } (b; 1) = {c } (c; 0) = {a } (c; 1) = {b } 1 * b  a 1 1 c