Revisando la jerarquía de Chomsky





Hierarchies are celestial. In hell all are equal— Nicolás Gómez Dávila



Ivan Meza

Gramáticas dependientes de contexto (sensitivas)

Son una tupla $G=(V,\Sigma,P,S)$, donde:
  • $V$ es otro alfabeto que denominamos símbolos no terminales (generalmente en mayúsculas)
  • $\Sigma$ es un alfabeto que denominamos símbolos terminales
  • $P$ es conjunto de reglas con la forma $\alpha A \beta \rightarrow \alpha \gamma \beta$ donde $\alpha,\beta \in (\Sigma\cup V)^*$ $\gamma \in (\Sigma\cup V)^+$ y $A\in V$
  • $S\in V$ que denominamos símbolo inicial
$$ \begin{array}{rcl} & S & & \rightarrow & & a b c &\\ & S & & \rightarrow & & a S B c &\\ & c & B & \rightarrow & & W & B\\ W & B & &\rightarrow & W & X & \\ & W & X &\rightarrow & & B & X \\ B & X & &\rightarrow & B & c &\\ b & B & &\rightarrow & b &b &\\ \end{array}$$

¿Alguien ve el error?

$$ \begin{array}{rcl} & S & & \rightarrow & & a b C & \\ & S & & \rightarrow & & a S B C & \\ & C & B & \rightarrow & & W & B \\ W & B & & \rightarrow & W & X & \\ & W & X & \rightarrow & & B & X \\ B & X & & \rightarrow & B & C & \\ b & B & & \rightarrow & b & b & \\ b & C & & \rightarrow & b & c & \\ c & c & & \rightarrow & c & c & \\ \end{array}$$

Jerarquía de Chomsky

Lenguaje Gramática Máquina Ejemplo
Dependiente del contexto Tipo 1
($\alpha V \beta \rightarrow \alpha \gamma \beta$)
?? $ww, a^nb^nc^n$
Independiente del contexto Tipo 2
($V\rightarrow \alpha$)
Autómata de pila $ww^r, a^nb^n$
Regular Tipo 3
($V \rightarrow aA|\epsilon$)
Autómata finito $w, a^*$

El lenguaje aceptado por una GDC

$L(G)=\{ w \in \Sigma^* | S \Rightarrow^+ w \}$

Gramáticas monotónicas

Son una tupla $G=(V,\Sigma,P,S)$, donde:

  • $V$ es otro alfabeto que denominamos símbolos no terminales (generalmente en mayúsculas)
  • $\Sigma$ es un alfabeto que denominamos símbolos terminales
  • $P$ es conjunto de reglas con la forma $\alpha \rightarrow \beta$ donde $|\alpha| \leq |\beta|, \alpha$ y $\beta \in (\Sigma\cup V)^*$ y $S \rightarrow \epsilon$
  • $S\in V$ que denominamos símbolo inicial
$$ \begin{array}{rcl} S & \rightarrow & aSBc \\ S & \rightarrow & abc \\ cB & \rightarrow & Bc \\ bB & \rightarrow & bc \\ \end{array}$$

Las gramáticas dependientes del contexto (GDC) son equivalente as las gramáticas monotónicas (GM)

Formas normales

Forma normal de Chomsky para GLC

    $A \rightarrow BC$

    $A \rightarrow a$

    $A \rightarrow \epsilon$

Propiedades

Forma normal de Chomsky

  • Todas las producciones tienen $2n-1$ para $|w|=n$
  • Se puede buscar por fuerza bruta
  • Toda gramática libre de contexto se reduce a FNC

Reducción: paso cero

Agregar inicial

  • Agregar $S_0 \rightarrow S$

Reducción: paso uno

Quitar transiciones $\epsilon$

  • Identificar las reglas que producen $\epsilon$
  • Crear versiones de otras reglas donde la producción aparece

    $P\rightarrow AxB$ si $A\rightarrow \epsilon$ y $B\rightarrow\epsilon$, entonces $P\rightarrow Ax | xB | x$

  • Borrar transiciones $\epsilon$

Reducción: paso dos

Quitar transiciones unitarias

  • Identificar las reglas de la forma $A\rightarrow B$ (unitarias)
  • Por cada producción $B\rightarrow \alpha$ agregar $A \rightarrow \alpha$
  • Borrar transiciones unitarias

Reducción: paso tres

Reducir transiciones largas

  • Identificar las reglas de la forma $A\rightarrow X_1 ... X_n$
  • Agregar las versiones $A\rightarrow X_1 A_1$, $A_2 \rightarrow X_2A_2$ ... $A_{n-1}\rightarrow X_{n-1}X_n$
  • Quitar versión original

Reducción: paso cuatro

Remover terminales

  • Identificar las reglas de la forma $A\rightarrow X_1 ...a... X_n$
  • Agregar la regla $A\rightarrow X_1 ...N_a... X_n$
  • Y agregar la regla $N_a\rightarrow a$
  • Quitar versión original

Reducir

  • $S\rightarrow ASA | aB$
  • $A\rightarrow B | S$
  • $B\rightarrow b | \epsilon$

Forma normal de Greibach (GLC)

    $A \rightarrow aA_1 ... A_n$

    $S \rightarrow \epsilon$

Forma normal de Kuruda (GDC)

    $AB \rightarrow CD$

    $A \rightarrow BC$

    $A \rightarrow B$

    $A \rightarrow a$

En resumen

  • GLC tienen FNC y FNG
  • GM tienen FNK
  • Toda GLC se puede transformar a FNC y FNG; son debilmente equivalentes
  • Toda GM se puede transformar a FNK; son debilmente equivalentes

Jerarquía de Chomsky

Lenguaje Gramática Máquina Ejemplo
Dependiente del contexto Tipo 1
($\alpha V \beta \rightarrow \alpha \gamma \beta$)
?? $ww, a^nb^nc^n$
Independiente del contexto Tipo 2
($V\rightarrow \alpha$)
Autómata de pila $ww^r, a^nb^n$
Regular Tipo 3
($V \rightarrow aA|\epsilon$)
Autómata finito $w, a^*$

¿Dónde uso todo este conocimiento?

Con AF

Con GLC

Con GDC

Lenguajes regulares

  • Una estructura rígida, hoja de excel
  • Tener algo bajo control, protocolo
  • Buscar un patrón

Lenguajes independientes del contexto

  • Una estructura de árbol, html
  • Deseño de relaciones, lenguajes
  • Dar significado

Lenguajes independientes del contexto

  • Una estructura interconectada, lenguaje natural
  • Relaciones entre árboles
  • Casi todos los problemas, pero soluciones raras

Autómata lineal con frontera

Es una tupla $(Q,\Sigma,\Gamma,q_0,B,A,\delta)$

  • $Q$ conjunto finito de estados
  • $\Sigma$ alfabeto de cadenas reconocidas
  • $\Gamma $ alfabeto de cinta, $\Sigma \subset \Gamma$
  • $q_0$ estado inicial
  • $B$ Símbolo de espacio en blanco $B \in \Gamma$ pero $B \not\in \Sigma$
  • $A$ estados finales
  • $\delta$ función de transición $Q \times \Gamma\cup \{\lt,\gt\} \rightarrow Q\times\Gamma\cup \{\lt,\gt\}\times\{der,izq\}$

Restricción, no se puede ir más allá de los símbolos $\lt,\gt$

Autómata de doble pila*

Es una tupla $(Q,\Sigma,\Gamma,q_0,Z_0,A,\delta)$

  • $Q$ conjunto finito de estados
  • $\Sigma$ alfabeto de cadenas reconocidas
  • $\Gamma$ alfabeto de pila
  • $q_0$ estado inicial
  • $Z_0$ símbolo inicial de la pila
  • $A$ estados finales
  • $\delta$ función de transición $Q \times (\Sigma \cup \{\epsilon\}) \times \Gamma \times \Gamma \rightarrow Q\times\Gamma^*\times\Gamma^*$

Un AFND-$\epsilon$ + dos pilas

Jerarquía de Chomsky

Lenguaje Gramática Máquina Ejemplo
?? ?? Autómata de Pila Doble ??
Dependiente del contexto Tipo 1
($\alpha V \beta \rightarrow \alpha \gamma \beta$)
Autómata lineal con frontera $ww, a^nb^nc^n$
Independiente del contexto Tipo 2
($V\rightarrow \alpha$)
Autómata de pila $ww^r, a^nb^n$
Regular Tipo 3
($V \rightarrow aA|\epsilon$)
Autómata finito $w, a^*$
Licencia de Creative Commons
Revisando la jerarquía de Chomsky by Ivan V. Meza Ruiz is licensed under a Creative Commons Reconocimiento 4.0 Internacional License.
Creado a partir de la obra en http://turing.iimas.unam.mx/~ivanvladimir/slides/lfya/chomsky.html.