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