Operación de productos cruzados en DFA

Requisito previo: Diseño de autómatas finitos
Comprendamos la operación de productos cruzados en Deterministic Finite Automata (DFA) con la ayuda del siguiente ejemplo:

Al diseñar un DFA para el conjunto de strings sobre {a, b}, de modo que la string del idioma contenga un número par de a y b, entonces el idioma deseado será como se muestra a continuación:

L = {ε, aa, bb, abab, aabb, baba, bbaa, .......}

Veamos los pasos para la operación de productos cruzados en DFA:

Paso 1:
formemos un DFA que cuente un número par de a.
En el siguiente diagrama de transición de estado, ‘W’ es el estado inicial y el estado final también, que aceptan un lenguaje de string que contiene un número par de a y cualquier número de b.

El lenguaje aceptado por DFA anterior es-

L = {ε, aab, b, baa, aabbbbb, aaaab, ..........}

El idioma no es aceptado por DFA anterior is-

L = {aaa, abbb, baaa, bbaaba, ...........}

Paso 2:
Formemos un DFA que cuente un número par de b.
En el siguiente diagrama de transición de estado, ‘Y’ es el estado inicial y el estado final también, que aceptan un lenguaje de string que contiene un número par de b y cualquier número de a.

El lenguaje aceptado por DFA anterior es-

L = {ε, bba, a, abb, bbbbaaaa, bbbba, ...........}

El idioma no es aceptado por DFA anterior is-

L = {bbb, bbba, abbb, aaba, ...........}

Paso 3:
aquí los estados del paso 1 y el paso 2 se multiplican de forma cruzada y producen un resultado como el siguiente:

{W, X} * {Y, Z} = {WY, WZ, XY, XZ} 

Y en el siguiente diagrama de transición de estado, los cuatro estados {WY, WZ, XY, XZ} utilizados son el resultado del producto cruzado de los estados del paso 1 y 2, de los cuales ‘WY’ es el estado inicial y final también porque en el paso 1 ‘W’ es el estado inicial y final y en el paso 2 ‘Y’ es el estado inicial y final y el resto son estados normales.
Luego, el diagrama de transición de estado resultante después de la operación de productos cruzados se vuelve como a continuación.

Por lo tanto, el DFA anterior acepta todo el idioma de un número par de strings de a y b y el idioma que es aceptado y no aceptado por el DFA anterior se proporciona a continuación:

L1 = {ε, aa, bb, abab, aabb, baba, bbaa, .......}
L2 = {aaa, aaabb, aaabaabb, aaabb, baaba, bbbaa, .......}

L1 es aceptado por el DFA anterior, pero L2 no.

Publicación traducida automáticamente

Artículo escrito por Kanchan_Ray y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *