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