autómatas - corpus.unam.mx · autómatas de estados finitos definición formal: conjunto de cinco...
TRANSCRIPT
![Page 1: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/1.jpg)
Autómatas
Escuela Nacional de Antropología e Historia (ENAH)Agosto – diciembre de 2015
![Page 2: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/2.jpg)
Cadena de texto
• Es una secuencia de caracteres alfanuméricos (letras, números, espacios, tabuladores y signos de puntuación).
![Page 3: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/3.jpg)
Expresiones regulares
• Lenguaje para especificar búsqueda de cadenas de texto
• Uso práctico
• Herramienta teórica para las ciencias de la computación y la lingüística
![Page 4: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/4.jpg)
Expresiones regulares
• Es una fórmula escrita en un lenguaje especial usada para especificar clases de cadenas
• Es una notación algebraica para caracterizar un conjunto de cadenas
![Page 5: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/5.jpg)
Expresiones regulares
• Puede especificar una cadena de búsqueda así como definir un lenguaje de manera formal
![Page 6: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/6.jpg)
Expresiones regulares
• Patrón de búsqueda
• Corpus dónde buscar
• Una función de búsqueda de una expresión regular busca a través de un corpus y regresa todas las cadenas que contienen el patrón
![Page 7: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/7.jpg)
Expresiones regulares
• Patrón de búsqueda
• Corpus dónde buscar
• Una función de búsqueda de una expresión regular busca a través de un corpus y regresa todas las cadenas que contienen el patrón
![Page 8: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/8.jpg)
Expresiones regulares
Cadena de texto
• /bix/
• /u/
Sensible a mayúsculas y minúsculas
• /Bix/
Caracteres opcionales []
• /[bB]ix/
• /[1234567890]/
• /[ABCDEFGHIJKLMNOPQRSTUVWXYZ]/
![Page 9: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/9.jpg)
Expresiones regulares
Rango [ - ]
• /[0-9]/
• /[a-z]
• /[A-Z]/
• /[A-Za-z0-9]/
Negación
• /[^A-Z]/
• /[^A-Za-z0-9]/
• /[^A-Za-z0-9\']/
![Page 10: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/10.jpg)
Expresiones regulares
Repeticiones de caracteres
• /uu/
• /uuu/
• /uuuu/
![Page 11: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/11.jpg)
Expresiones regulares
Contadores
• ? = Cero o una vez
• /u?/
• * = Cero o más veces
• /u*/
• + = Una o más veces
• /u+/
![Page 12: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/12.jpg)
Expresiones regulares
Contadores
• /uu?/ = u, uu
• /uu*/ = u, uu, uuu, uuuu
• /uu+/ = uu, uuu, uuuu
![Page 13: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/13.jpg)
Expresiones regulares
Contadores
{n} = n ocurrencias del carácter anterior
{n,m} = de n a m ocurrencias del carácter anterior
{n,} = al menos n ocurrencias del carácter anterior
• /u{2}/
• /u{2,3}/
• /u{2,}/
![Page 14: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/14.jpg)
Expresiones regulares
Comodín (wildcard)
• /./ = cualquier carácter
• /u.u/
• /.*/ = cualquier cadena de caracteres
Anclas
• ^ inicio
• $ final
• /^u/
• /u$/
![Page 15: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/15.jpg)
Expresiones regulares
Escapar caracteres especiales
• \ ., \?, \*, \+
• /u\.u/
Disyunción |
• /ya|yo/
![Page 16: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/16.jpg)
Expresiones regulares
Alias
• \d = cualquier dígito [0-9]
• \D = cualquier no dígito [^0-9]
• \w = cualquier carácter alfanumérico y guion bajo [a-zA-Z0-9_]
• \W = cualquier no carácter alfanumérico ni guion bajo [^\w]
• \s = espacio [ ]
• \S = cualquier no espacio [^ ]
![Page 17: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/17.jpg)
TAREA
• ¿Cuál es la diferencia entre /^ka|ku$/ y /^ka$|^ku$/
• Obtener /u/ como palabra completa
• Obtener palabras con más de una /a/
• Obtener palabras con prefijo /mee/
• Obtener palabras con sufijo /tik/
• Escriba las expresiones para comprobar si existen palabras con consonantes a, e, i, o y u repetidas dos o más veces
• Obtener palabras donde tik no sea ni sufijo ni prefijo. Ayuda: la palabra debe tener caracteres al principio y al caracteres al final
![Page 18: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/18.jpg)
TAREA
• Escriba la expresión para buscar si existen palabras con las secuencias de caracteres sk, lk y rk.
![Page 19: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/19.jpg)
Autómatas de estados finitos
• Finite-state automaton (FSA)
• Toda expresión regular puede implementarse como un FSA
• Describe un lenguaje regular
![Page 20: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/20.jpg)
Autómatas de estados finitos
• baa!
• baaa!
• baaaa!
• baaaaa!
![Page 21: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/21.jpg)
Autómatas de estados finitos
Grafo dirigido
• Vértices o nodos = círculos
• Arcos = flechas
![Page 22: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/22.jpg)
Autómatas de estados finitos
• Estados representados por nodos
• q0 = estado inicial
• q4 = estado final (estado de aceptación)
• Transiciones representadas por los arcos
![Page 23: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/23.jpg)
Autómatas de estados finitos
Autómata reconocedor o aceptador: llegar al estado de aceptación
• aba!b
• ba!
• bbaa!
![Page 24: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/24.jpg)
Autómatas de estados finitos
Autómata reconocedor o aceptador: llegar al estado de aceptación
• baaa!
![Page 25: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/25.jpg)
Autómatas de estados finitos
Definición formal: conjunto de cinco elementos
𝑄 = 𝑞0𝑞1𝑞2…𝑞𝑁 − 1 Conjunto de N estados
∑ Alfabeto de símbolos de entrada
𝑞0 Un estado de entrada
𝐹 Un conjunto de estados finales, 𝐹 ⊆ 𝑄
𝛿(𝑞, 𝑖) Funciones de transición. Dado un estado y un símbolo, regresan un nuevo estado
![Page 26: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/26.jpg)
Autómatas de estados finitos
𝑄 = 𝑞0𝑞1𝑞2…𝑞𝑁 − 1 𝑄 = {𝑞0, 𝑞1, 𝑞2, 𝑞3, 𝑞4}
∑ Σ = {𝑎, 𝑏, !}
𝑞0 𝑞0
𝐹 𝐹 = {𝑞4}
𝛿(𝑞, 𝑖) 𝛿 𝑞0, 𝑏 = 𝑞1𝛿 𝑞1, 𝑎 = 𝑞2𝛿 𝑞2, 𝑎 = 𝑞3𝛿 𝑞3, 𝑎 = 𝑞3𝛿 𝑞3, ! = 𝑞4
![Page 27: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/27.jpg)
Ejercicio• xooko'
• xook
• xooki'
• xooke'
• xoot
• xooko'obo'
• xooknak
• xookna'ako'on
• xooka'
• xooko'obe'
![Page 28: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/28.jpg)
TAREA• wiliko'
• wilike'ex
• wila'aj
• wilej
• wilike'
• wilik
• wilibe'
• wilaj
• wil
• wili'
• wile'
• wile'ex
• wilmaj
• wilajo'
• wilmaji'
• wilmi'
• wili'i
• wilo'ob
• wilike'exe'
• wilaje'
• wilme'exi'
• wilmaje'ex
• wilmaje'exi'
• wilike'exo'
• wila'e'
![Page 29: Autómatas - corpus.unam.mx · Autómatas de estados finitos Definición formal: conjunto de cinco elementos 𝑄=𝑞0𝑞1𝑞2…𝑞𝑁−1 Conjunto de N estados ∑ Alfabeto](https://reader030.vdocuments.net/reader030/viewer/2022040704/5e011c4d501c467376136b5d/html5/thumbnails/29.jpg)
Fin