Autómatas Finitos No-Deterministicos (NFA)

Documentos relacionados
Autómatas Finitos Deterministicos (DFA)

Autómatas Finitos Deterministicos (DFA)

Autómata de Pila (AP, PDA) Tema 18

Computabilidad y Lenguajes Formales: Autómatas Finitos

Minimización de Aútomatas Finitos

Autómatas de Estados Finitos

Introducción a la Lógica y la Computación

Introducción a la Lógica y la Computación

3 Propiedades de los conjuntos regulares 3.1 Lema de Bombeo para conjuntos regulares

El Autómata con Pila

Autómatas Mínimos. Encontrar el autómata mínimo. Universidad de Cantabria. Introducción Minimización de Autómatas Deterministas Resultados Algoritmo

autómatas finitos y lenguajes regulares LENGUAJES FORMALES Y

Curso Básico de Computación

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

2 Autómatas finitos y gramáticas regulares.

Teoría de Lenguajes. Clase Teórica 7 Autómatas de Pila y Lenguajes Independientes del Contexto Primer cuartimestre 2014

Equivalencia Entre PDA y CFL

MÁQUINAS DE TURING CIENCIAS DE LA COMPUTACION I 2009

Máquinas de Turing, recordatorio y problemas

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

Propiedades de Lenguajes Regulares

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos

Expresiones Regulares y Gramáticas Regulares

Autómatas de Pila y Lenguajes Incontextuales

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Máquinas de Turing

Introducción a la Teoría de Autómatas, Lenguajes y Computación

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

Departamento de Tecnologías de la Información. Tema 5. Decidibilidad. Ciencias de la Computación e Inteligencia Artificial

Máquinas de estado finito y expresiones regulares

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 4: Expresiones Regulares. Luis Peña

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Tema 5: Autómatas a pila. Teoría de autómatas y lenguajes formales I

Autómatas Deterministas. Ivan Olmos Pineda

La máquina de Turing

Conjuntos y expresiones regulares. Propiedades de las expresiones regulares (1) Propiedades de las expresiones regulares (2)

Expresiones regulares, gramáticas regulares

Expresiones regulares y derivadas

Máquinas de Turing Definición y descripción

Un autómata con pila no determinista (APND) es una septupla Q A B F en la que

Convertir un AFND a un AFD

Expresiones regulares, gramáticas regulares Unidad 3

Compiladores: Sesión 3. Análisis léxico, expresiones regulares

Apuntes de compiladores

Coordinación de Ciencias Computacionales INAOE. Teoría de Autómatas y Lenguajes Formales. Temario detallado para examen de ingreso 2012

PRACTICA 5: Autómatas Finitos Deterministas

La Ambigüedad en el Parsing

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 3.1: Autómatas Finitos Deterministas

Tres versiones de Pal. Sesión 19. Una máquina para aceptar Pal El lenguaje: Tabla de transición para Pal. Más de un siguiente estado.

Teoría de autómatas para investigadores en XML

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

Otras propiedades de los lenguajes regulares

Gramáticas independientes del contexto TEORÍA DE LA COMPUTACIÓN LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

El lema de bombeo y los lenguajes no regulares

Autómatas Finitos. Leopoldo Altamirano, Eduardo Morales. Verano, 2011 INAOE. Introducción a. Autómatas. Definición formal de un. Finito Determinístico

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.

10 Análisis léxico VI Compiladores - Profr. Edgardo Adrián Franco Martínez

INAOE. Expresiones Regulares. Operadores y Operandos. Equivalencia de Lenguajes de FA y Lenguajes RE. Leyes Algebraicas de las. Expresiones Regulares

Clases de complejidad computacional: P y NP

Tema 6: Máquina de Turing

Lógica - Conjuntos inductivos

Ciencias de la Computación I

Ciencias de la Computación I

Topologías. Segundo cuatrimestre Práctica Encuentre todas las topologías sobre conjuntos de a lo sumo cuatro elementos.

Paréntesis: Una aplicación en lenguajes formales

CONJUNTOS REGULARES. Orlando Arboleda Molina. 19 de Octubre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle

TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY

Expresiones Regulares

Introducción a la indecidibilidad

Entscheidungsproblem I TEORÍA DE LA COMPUTACIÓN MÁQUINAS DE TURING Y DECIDIBILIDAD. Máquinas de Turing (TM) Procedimiento efectivo

Examen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003.

Gramáticas independientes del contexto AUTÓMATAS Y LENGUAJES FORMALES LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

Lógica Proposicional IIC1253. IIC1253 Lógica Proposicional 1/64

Teorema de Compacidad

Teoría de la Computación Lenguajes Regulares (LR) - Propiedades

Equivalencia de Autómatas finitos deterministas y no deterministas

Nivel del ejercicio : ( ) básico, ( ) medio, ( ) avanzado.

Expresiones Regulares y Derivadas Formales

TEORÍA DE AUTÓMATAS Y LENGUAJES

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

Lógica Proposicional (LP)

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

Algebra Lineal. Gustavo Rodríguez Gómez. Verano 2011 INAOE. Gustavo Rodríguez Gómez (INAOE) Algebra Lineal Verano / 21

Transcripción:

(NFA) Introducción a la Lógica Fa.M.A.F., Universidad Nacional de Córdoba 2//5 Outline of the Talk Intuiciones Definición Lenguaje de un NFA Euivalencia de Lenguajes de un NFA y un DFA Determinización Euivalencia de Lenguajes 2 Definición Lenguajes de un NFA- Determinización Euivalencia de Lenguajes

Determinismo vs. No-determinismo Autómata: Modelo matemático de un sistema con entradas y salidas discretas. Finito: Tiene un nro. finito de estados. Deterministico: En todo momento está en un solo estado. 2 Un DFA define un lenguaje. Determinismo vs. No-determinismo Qué pasa si permitimos, o más transiciones por símbolo?, 2 En ué estado está el autómata luego de δ(, )? El autómata esta en un conjunto de estados al mismo tiempo. Ya no es deterministico: es no deterministico.

Definición Autómata: Modelo matemático de un sistema con entradas y salidas discretas. Finito: Tiene un nro. finito de estados. No-Determinístico: El autómata está en un conjunto de estados. Autómata Finito No-Deterministico (NFA) Un NFA es una 5-tupla M = (Q, Σ, δ,, F) donde: Q = {, 2,..., m } es un conjunto finito de estados. Σ = {a, a 2,..., a n } es un conjunto finito símbolos. δ : Q Σ P(Q) es la función de transición de estados. Q es el estado final. F Q son los estados finales. Ejemplo, 2 Definimos M = (Q, Σ, δ,, F): Q = {,, 2 }. Σ = {, }. F = { 2 }. es el estado inicial. δ esta definida por: {, } { } { 2 } 2

Procesando el input con no-determinismo En un DFA, cada símbolo transforma un estado en otro. Cómo funciona una autómata no-deterministico?, 2 2 2 Transforma en Ahora trabajamos con un conjunto de estados. Transforma en Sea M = (Q, Σ, δ,, F) un NFA y α = a, a,..., a n Σ. Diremos ue α transforma p en (p α ) si existen,..., n Q tal ue δ(p, a ), 2 δ(, a ),..., i+ δ( i, a i ),..., n δ( n, a n ), δ( n, a n ). α puede transformar en varios estados. α genera distintos recorridos desde. α es aceptada si algún recorrido llega a un estado final.

Lenguaje de un NFA Lenguaje Aceptado por un NFA Sea M una NFA, el lenguaje aceptado por M (L(M )) es el conjunto de cadenas aceptadas por el autómata, L(M ) = {α Σ existe p F tal ue α p}. Ejemplo:, 2 Cúal es el lenguaje del NFA? L(M ) = {w w termina en }. Intuiciones Los NFA son una generalización de los DFA. Los NFA reconocen más lenguajes ue los DFA? Ejemplo: 2 Cúal es el lenguaje del DFA? L(M ) = {w w termina en }. Los NFA reconocen los mismos lenguajes ue los DFA. Para todo NFA existe un DFA euivalente.

Construcción por Subconjuntos Construyamos un DFA a partir de un NFA. Construcción por Subconjuntos. Sea N = (Q, Σ, δ,, F) un NFA. Definimos el DFA D = (Q, Σ, δ,, F ) de la siguiente forma: Q = P(Q). Σ = Σ. F = { Q F }. = { }. δ (, a) = {p Q existe t.. a p} = δ(, a) δ (, a): Estados accesibles a través de a desde cada. Si Q = n entonces Q = 2 n!!! No preocuparse: no todos son accesibles. Ejemplo Sea D = (Q, Σ, δ,, F ): 7 4 5 2 3 6,, () () { } {, } { } (2) { } { 2 } (3) { 2 } (4) {, } {, } {, 2 } (5) {, 2 } {, } { } (6) {, 2 } { 2 } (7) {,, 2 } {, } {, 2 }, 2

Construcción Lazy No todos los 2 Q estados son necesarios. Podemos ser mas eficientes en la construcción de Q. Construcción Lazy de Q Data: estado inicial, función δ, alfabeto Σ Result: conjunto de estados Q Q {{ }}; Q ; for (Q \Q ) do for a Σ do Q Q { δ(, a)}; end Q Q { }; end Euivalencia entre DFA y NFA Lema Sea N = (Q, Σ, δ,, F) un NFA y D = (Q, Σ, δ, { }, F ) el DFA obtenido a partir de N usando la construcción por subconjuntos. Para todo α Σ y todo Q, si α p entonces p = {p Q existe t.. α p} Lema Sea N = (Q, Σ, δ,, F) un NFA y D = (Q, Σ, δ, { }, F ) el DFA obtenido a partir de N usando la construcción por subconjuntos. Luego L(D) = L(N ). Teorema Los lenguajes aceptados por los DFA son los mismos ue los aceptados por los NFA.

Lema Sea N = (Q, Σ, δ,, F) un NFA y D = (Q, Σ, δ, { }, F ) el DFA obtenido a partir de N usando la construcción por subconjuntos. Para todo α Σ y todo Q, si α p entonces p = {p Q existe t.. α p} Por inducción en α. Casos Base: α = : Si α = entonces α = y por def. de,. Q.v.. = {p Q t p}. Sea = {, 2,..., n }, luego, i i, i, se sigue ue = {p Q t p} = {, 2,..., n }. ya ue transforma todo estado en sí mismo. α = : Sea α = a con a Σ. Si a p entonces p = {p Q t a p} por definición de δ. Paso Inductivo: Sea α = βa con β y a Σ. Q.v.. si βa p entonces p = {p Q existe t.. βa p}. Si βa p entonces existe r tal ue, β r a p. Por HI, tenemos ue r = {r Q existe t.. β r}. Por el CB donde α = tenemos ue, p = {p Q existe r r t.. r a p}. : Si p p existe r r t r a p y, como r r, existe t β r, y por lo tanto, β r a p βa p de donde se sigue ue p {p Q existe t.. βa p}. : Si p {p Q existe t.. βa p}, existe r Q t.. β r a p. Luego, por HI y CB, r r y p p, lo cual prueba la otra inclusión.

Lema Sea N = (Q, Σ, δ,, F) un NFA y D = (Q, Σ, δ, { }, F ) el DFA obtenido a partir de N usando la construcción por subconjuntos. Luego L(D) = L(N ). Por el lema anterior sabemos ue α {p Q existe t.. α p}. Si instanciamos =, entonces tenemos ue: α {p Q α p}( ). : Supongamos ue α L(D). Por definición tenemos ue α p y p F. Como p es estado final, tenemos ue p p α t. p F. Luego por ( ) tenemos ue p y por lo tanto α L(N ). α : Supongamos ue α L(N ). Luego p con p F. Por ( ) tenemos ue p p y ue α p. Como p F, p F, con lo cual α L(D). Teorema Los lenguajes aceptados por los DFA son los mismos ue los aceptados por los NFA. Q.v.. para todo DFA D (NFA N ) existe un NFA N (DFA D) tal ue L(D) = L(N ). Sea D = (Q, Σ, δ,, F) un DFA, luego, podemos construir un NFA N = (Q, Σ, δ,, F) donde δ (, a) = {δ(, a)}. Es evidente ue L(D) = L(N ). Sea N = (Q, Σ, δ,, F) un NFA. Luego usando la construcción por subconjuntos podemos construir un DFA D y por el Lema 2, sabemos ue L(N ) = L(D).

Entonces, para ué sirven? (Hopcroft et al) Intuiciones Ahora extendamos la definición de un NFA permitiendo: Transiciones mediante el símbolo (-transiciones). Transiciones espontáneas. b a a b 2 Agregan cierto tipo de conveniencia programatica.

Definición Autómata Finito No-Deterministico con -transiciones (NFA-) Un NFA- es una 5-tupla M = (Q, Σ, δ,, F) donde: Q = {, 2,..., m } es un conjunto finito de estados. Σ = {a, a 2,..., a n } es un conjunto finito símbolos. δ : Q (Σ {}) P(Q) es la función de transición de estados. Q es el estado final. F Q son los estados finales. Ejemplo: 2 2 Definimos M = (Q, Σ, δ,, F): Q = {,, 2 }. Σ = {,, 2}. F = { 2 }. es el estado inicial. δ esta definida por: 2 { } { } { } { 2 } 2 { 2 }

Transforma en Transforma en Sea M = (Q, Σ, δ,, F) un NFA- y α Σ. Diremos ue α transforma p en (p α ) si existen a, a,..., a n Σ {} y,..., n Q tal ue α = a a... a n y δ(p, a ), 2 δ(, a ),..., i+ δ( i, a i ),..., Importante: δ(p, a) implica p a, pero, p a no implica δ(p, a). n δ( n, a n ), δ( n, a n ). p a permite la existencia de -transiciones. Ej. p a p a p a α es aceptada si algún recorrido llega a un estado final. Lenguaje de un NFA- Lenguaje Aceptado por un NFA- Sea M un NFA-, el lenguaje aceptado por M (L(M )) es el conjunto de cadenas aceptadas por el autómata, L(M ) = {α Σ existe p F tal ue α p}. Ejemplo: 2 2 Cúal es el lenguaje del autómata? L = {w w = i j 2 k con i, j, k}.

Construcción por Subconjuntos Las -transiciones no expanden la clase de lenguajes. -clausura Sea M = (Q, Σ, δ,, F) un NFA- y Q. Definimos la -clausura de ([]) como Para {,..., k }, definimos [] = {p Q p}. [,..., k ] = k [ i ]. i= Notar ue =... Recordar ue. Construcción por Subconjuntos para NFA- Construyamos un DFA a partir de un NFA-. Construcción por Subconjuntos. Sea N = (Q, Σ, δ,, F) un NFA-. Definimos el DFA D = (Q, Σ, δ,, F ) de la siguiente forma: Q = {[,..., i ],..., i Q} P(Q). Σ = Σ. F = {[,..., i ] [,..., i ] F }. = [ ]. δ (, a) = [{p Q existe t.. a p}].

Ejemplo 2 2 2 { } { } { } { 2 } 2 { 2 } 2 [ ] [ ] [ ] [ 2 ] [ ] [ ] [ 2 ] [ 2 ] [ 2 ] [ ] = [ ] = {,, 2 } [ ] = {, 2 } [ 2 ] = { 2 } [, ] = [ ] [, 2 ] = [ ] [, 2 ] = [ ] [,, 2 ] = [ ],, 2 [ ] [ ] 2 2, [ 2 ] 2 Euivalencia entre DFA y NFA- Lema Sea E = (Q, Σ, δ,, F) un NFA- y D = (Q, Σ, δ, { }, F ) el DFA obtenido a partir de E usando la construcción por subconjuntos. Para todo α Σ y todo Q, si α p entonces p = {p Q existe t.. α p}. Lema Sea E = (Q, Σ, δ,, F) un NFA- y D = (Q, Σ, δ, { }, F ) el DFA obtenido a partir de E usando la construcción por subconjuntos. Luego L(D) = L(E). Teorema Los lenguajes aceptados por los DFA son los mismos ue los aceptados por los NFA-.