Introducción a la teoría de los autómatas

Autómatas - ¿Qué es?

El término "Autómatas" se deriva de la palabra griega "αὐτόματα" que significa "autoactiva". Un autómata (Automata en plural) es un dispositivo informático autopropulsado abstracto que sigue automáticamente una secuencia predeterminada de operaciones.

Un autómata con un número finito de estados se llama Finite Automaton (FA) o Finite State Machine (FSM).

Definición formal de un autómata finito

Un autómata se puede representar mediante una tupla de 5 (Q, ∑, δ, q 0 , F), donde -

  • Q es un conjunto finito de estados.

  • es un conjunto finito de símbolos, llamado alphabet del autómata.

  • δ es la función de transición.

  • q0es el estado inicial desde donde se procesa cualquier entrada (q 0 ∈ Q).

  • F es un conjunto de estados finales de Q (F ⊆ Q).

Terminologías relacionadas

Alfabeto

  • Definition - un alphabet es cualquier conjunto finito de símbolos.

  • Example - ∑ = {a, b, c, d} es una alphabet set donde 'a', 'b', 'c' y 'd' son symbols.

Cuerda

  • Definition - A string es una secuencia finita de símbolos tomados de ∑.

  • Example - 'cabcad' es una cadena válida en el conjunto alfabético ∑ = {a, b, c, d}

Longitud de una cuerda

  • Definition- Es el número de símbolos presentes en una cadena. (Denotado por|S|).

  • Examples -

    • Si S = 'cabcad', | S | = 6

    • Si | S | = 0, se llama empty string (Denotado por λ o ε)

Estrella de Kleene

  • Definition - La estrella de Kleene, ∑*, es un operador unario en un conjunto de símbolos o cadenas, , que da el conjunto infinito de todas las cadenas posibles de todas las longitudes posibles en incluso λ.

  • Representation- ∑ * = ∑ 0 ∪ ∑ 1 ∪ ∑ 2 ∪ ……. donde ∑ p es el conjunto de todas las cadenas posibles de longitud p.

  • Example - Si ∑ = {a, b}, ∑ * = {λ, a, b, aa, ab, ba, bb, ……… ..}

Cierre Kleene / Plus

  • Definition - El conjunto + es el conjunto infinito de todas las cadenas posibles de todas las longitudes posibles sobre ∑ excluyendo λ.

  • Representation- ∑ + = ∑ 1 ∪ ∑ 2 ∪ ∑ 3 ∪ …….

    + = ∑ * - {λ}

  • Example- Si ∑ = {a, b}, ∑ + = {a, b, aa, ab, ba, bb, ……… ..}

Idioma

  • Definition- Un idioma es un subconjunto de ∑ * para algún alfabeto ∑. Puede ser finito o infinito.

  • Example - Si el lenguaje toma todas las cadenas posibles de longitud 2 sobre ∑ = {a, b}, entonces L = {ab, aa, ba, bb}