DFA de una string con al menos dos 0 y al menos dos 1

Problema: dibujar autómatas finitos deterministas (DFA) de una string con al menos dos 0 y al menos dos 1. Lo primero que me viene a la mente después de leer esta pregunta es que contamos el número de 1 y 0. A partir de entonces, si ambos son al menos 2, la string se acepta; de lo contrario, no se acepta. Pero no tenemos ningún concepto de memoria en un DFA por lo que no podemos hacerlo por este método.

Input  : 1 0 1 1 0 0
Output : Accepted

Input  : 1 1 1 0 1 
Output : Not accepted

Enfoque utilizado: lo primero que observamos es que tanto los 0 como los 1 deben ser al menos 2. Si alguno de estos es menor que 2, no se aceptará la string. En esta string solo se aceptará el último caso, donde tanto los 0 como los 1 serán al menos 2.

Estado Cuenta de 0 Cuenta de 1
Q0 0 0
Q1 0 1
Q2 0 >=2
Q3 1 0
Q4 1 1
Q5 1 >=2
P6 >=2 0
P7 >=2 1
Q8 ACEPTADO >=2 >=2

Inicialmente, el conteo de 0 y 1 es cero y estamos en el estado Q0.

  • Paso 1: si la entrada es 1, la cuenta de 1 aumenta a 1. Ir al estado Q1 Si la entrada es 0, la cuenta de 0 aumenta a 1. Ir al estado Q3
  • Paso 2: Si la entrada es 1, la cuenta de 1 aumenta a 2. Ir al estado Q2 Si la entrada es 0, la cuenta de 0 aumenta a 1. Ir al estado Q4
  • Paso 3: Si la entrada es 1, la cuenta de 1 sigue aumentando en 1. Permanece en el mismo estado. Si la entrada es 0, la cuenta de 0 aumenta a 1. Ir al estado Q5
  • Paso 4: Si la entrada es 1, la cuenta de 1 aumenta a 1. Ir al estado Q4 Si la entrada es 0, la cuenta de 0 aumenta a 2. Ir al estado Q6
  • Paso 5: Si la entrada es 1, la cuenta de 1 aumenta a 2. Ir al estado Q5 Si la entrada es 0, la cuenta de 0 aumenta a 2. Ir al estado Q7
  • Paso 6: si la entrada es 1, el conteo de 1 sigue aumentando en 1. Permanezca en el mismo estado. Si la entrada es 0, la cuenta de 0 aumenta a 2. Ir al estado Q8
  • Paso 7: Si la entrada es 1, la cuenta de 1 aumenta a 1. Ir al estado P7 Si la entrada es 0, la cuenta de 0 sigue aumentando en 1. Permanece en el mismo estado.
  • Paso 8: Si la entrada es 1, la cuenta de 1 aumenta a 2. Ir al estado P8 Si la entrada es 0, la cuenta de 0 sigue aumentando en 1. Permanece en el mismo estado.
  • Paso 9: si la entrada es 1, el conteo de 1 sigue aumentando en 1. Permanezca en el mismo estado. Si la entrada es 0, la cuenta de 0 sigue aumentando en 1. Permanece en el mismo estado. Si la string está terminada, entonces ACEPTADO

Publicación traducida automáticamente

Artículo escrito por RishabhMalik 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 *