Está en la página 1de 3

Una introduccin a

Automatas finitos
deterministicos (Maquinas
de estado)

En este tutorial haremos una pequea introduccin a los automatas finitos deterministicos, esto quiere
decir que hablamos de maquinas de estado donde los estados siguientes a un estado actual estan
predeterminados sin equivocacin alguna. Para ello he preparado el siguiente video que espero les pueda
servir para comprenderlo de una manera sencilla.

Codigo fuente (ejemplo de automata finito):


Implementacin del siguiente automata para evaluar cadenas de numeros binarios (1 y 0 ).

El siguiente codigo esta en Java, sin embargo el concepto deberia ser valido para implementarse en otros
lenguajes.
01 public class Main {
02
03
04
05
06

/**
* @param args
*/
public static void main(String[] args) {

07
08

int[] input = {1,0,0,0,0};

09

int inicio = 1;

10

int finalizar = 1;

11

int actual = inicio;

12
13

boolean fin = false;

14
15
16
17
18
19
20

int contador = 0;
while(fin==false)
{
if(contador > input.length-1)
{
fin = true;

21
22

break;

23
24

if(actual==1)
{

25
26

if(input[contador]==1)
{

27
28

actual=1;

29
30

if(input[contador]==0)
{

31
32

actual=2;
}

33
34

contador++;
continue;

35
36

}
if(actual==2)

37
38

{
if(input[contador]==1)

39
40

41
42

}
if(input[contador]==0)

43
44

45
46

}
contador++;

actual=2;

actual=1;

47
48

continue;
}

49

50
51
52

if(actual==finalizar)
{

53
54

System.out.println("La cadena es correcta");


}

55
56

else
{

57
58

System.out.println("La cadena es incorrecta");


}

59
60
61
62 }

También podría gustarte