Está en la página 1de 20

Algoritmo A*

2 4 6

8 7 5

3 1

4 7

5 8

NODO INICIAL

NODO FINAL

NODO INICIAL

2 4

8 7

3 1

F=G+H F=0+20

COLOCAR EN ABIERTOS EL NODO INICIAL, INICIAR CON CERRADOS VACIA CALCULAR EL VALOR DE CADA NODO EN ABIERTOS, CON LA FORMULA F= G+H G = DISTANCIA DEL NODO AL PADRE H = HEURISTICA DEL NODO

NODO INICIAL

2 4

8 7

3 1

F=G+H F=0+20

MEJOR NODO

TOMAR EL NODO DE TODOS LOS ABIERTOS QUE TENGA CON MEJOR F Y LLAMARLE MEJOR NODO.

VERIFICAR SI MEJOR NODO ES EL NODO META, SI ES ASI, INFORMAR LA SOLUCIN. SI NO LO ES,


QUITARLO DE ABIERTOS Y COLOCARLO EN CERRADOS.

NODO INICIAL

2 4

8 7

3 1

F=G+H F=0+20

MEJOR NODO

2 4 6

8 7 5

2 4

8 7

3 1 5

MOVER ARRIBA

MOVER IZQUIERDA

GENERAR LOS SUCESORES DE MEJOR NODO. VERIFICAR CADA SUCESOR CON LAS SIGUIENTES CONDICIONES:

NODO INICIAL

2 4

8 7

3 1

F=G+H F=0+20

MEJOR NODO

2 4 6

8 7 5

2 4

8 7

3 1 5

VERIFICAR SI CADA SUCESOR YA ESTA CONTENIDO EN ABIERTOS. NO ES EL CASO. SI EL SUCESOR NO ESTA CONTENIDO EN ABIERTOS VERIFICAR SI ESTA CONTENIDO ENTRE LOS NODOS CERRADOS. NO ES EL CASO.

NODO INICIAL

2 4

8 7

3 1

F=G+H F=0+20

MEJOR NODO

2
F=1+21

8 7 5

2 4

8 7

3 1 5
F=1+18

4 6

SI EL SUCESOR NO ESTA EN ABIERTOS NI EN CERRADOS, PONERLO EN ABIERTOS Y AADIRLO A LA LISTA DE SUCESORES DE MEJOR NODO.

SI NO SE LLEGA AL NODO OBJETIVO, ES DECIR, SI LA HEURISTICA DEL NODO ES 0, CONTINUAR EL ALGORITMO REPITIENDO LOS PASOS.

NODO INICIAL

2 4

8 7

3 1

F=G+H F=0+20
MEJOR NODO

2
F=1+21

8 7 5

2 4

8 7

3 1 5
F=1+18

4 6

TOMAR EL NODO DE TODOS LOS ABIERTOS QUE TENGA CON MEJOR F Y LLAMARLE MEJOR NODO.

NODO INICIAL

2 4

8 7

3 1

F=G+H F=0+20
MEJOR NODO

2
F=1+21

8 7 5

2 4

8 7

3 1 5
F=1+18

4 6

VERIFICAR SI MEJOR NODO ES EL NODO META, SI ES ASI, INFORMAR LA SOLUCIN. SI NO LO ES,

QUITARLO DE ABIERTOS Y COLOCARLO EN CERRADOS.

NODO INICIAL

2 4

8 7

3 1

F=G+H F=0+20
MEJOR NODO

2
F=1+21

8 7 5

2 4

8 7

3 1 5
F=1+18

4 6

4 6 7

1 5

7 6

1 5

4 6

7 5

MOVER ARRIBA

MOVER IZQUIERDA

MOVER DERECHA

GENERAR LOS SUCESORES DE MEJOR NODO. VERIFICAR CADA SUCESOR CON LAS SIGUIENTES CONDICIONES:

NODO INICIAL

2 4

8 7

3 1

F=G+H F=0+20
MEJOR NODO

2
F=1+21

8 7 5

2 4

8 7

3 1 5
F=1+18

4 6

4 6 7

1 5

7 6

1 5

4 6

7 5

MOVER ARRIBA

MOVER IZQUIERDA

MOVER DERECHA

VERIFICAR SI ALGUN SUCESOR YA ESTA CONTENIDO EN ABIERTOS. NO ES EL CASO.


SI ALGUN SUCESOR NO ESTA CONTENIDO EN ABIERTOS VERIFICAR SI ESTA CONTENIDO ENTRE LOS NODOS CERRADOS.

NODO INICIAL

2 4

8 7

3 1 F=G+H F=0+20

VIEJO

MEJOR NODO

2
F=1+21

8 7 5

2 4

8 7

3 1 5
F=1+18

4 6

SUCESOR

4 6 7
F=2+16

1 5

7 6
F=2+16

1 5

4 6

7 5
F=2+20

SI F DE SUCESOR ES MENOR QUE F DE VIEJO, HACER QUE VIEJO SEA UN NODO HIJO DE MEJOR NODO.
DESHECHAR SUCESOR.

NODO INICIAL

2 8 3 4 7 1 6 5
F=1+21

F=G+H F=0+20

2 8 3 2 8 3 4 7 4 7 1 6 5 1 6 5

F=1+18

F=2+16

2 8 3 2 8 3 4 1 4 7 1 F=2+16 6 7 5 6 5

2 8 3 4 1 6 7 5
F=3+16

2 8 3 4 1 6 7 5
F=3+16

2 3 4 8 1 6 7 5
F=3+16

2 8 3 4 7 1 6 5
F=3+18

NODO INICIAL

2 8 3 4 7 1 6 5
F=1+21

F=G+H F=0+20

2 8 3 2 8 3 4 7 4 7 1 6 5 1 6 5

F=1+18

F=2+16

2 8 3 4 1 6 7 5
2 8 3 4 1 6 7 5
F=3+16

2 8 3 4 7 1 6 5 2 3 4 8 1 6 7 5
F=3+16

F=2+16

2 8 3 4 1 6 7 5
F=3+16

2 8 3 4 7 1 6 5
F=3+17

2 8 3 7 1 4 6 5
F=3+17

NODO INICIAL

2 8 3 4 7 1 6 5
F=1+21

F=G+H F=0+20

2 8 3 2 8 3 4 7 4 7 1 6 5 1 6 5

F=1+18

F=2+16

2 8 3 4 1 6 7 5
2 8 3 4 1 6 7 5
F=3+16

2 8 3 4 7 1 6 5 2 3 4 8 1 6 7 5
F=3+16

F=2+16

2 8 3 4 1 6 7 5
F=3+16

2 8 3 7 1 4 6 5
F=3+17

F=12+9

2 8 3 4 1 6 7 5 2 8 3 4 1 6 7 5
F=13+12

MEJOR NODO

2 8 3 6 4 1 7 5 2 8 3 6 4 1 7 5

SUCESOR
F=12+8

F=13+9

2 8 3 4 1 6 7 5

2 3 4 8 1 F=13+10 6 7 5

2 8 3 2 8 3 8 3 4 1 6 4 1 2 4 1 6 7 5 7 5 6 7 5
F=14+8 F=14+10

VIEJO

MIRAR SI SUCESOR ESTA CONTENIDO EN ABIERTOS, SI ES ASI LLAMAMOS A ESTE NODO VIEJO.

DECIDIR SI EL NODO ACTUAL TIENE MENOR COSTE QUE EL VIEJO.

F=12+9

2 8 3 4 1 6 7 5 2 8 3 4 1 6 7 5
F=13+12

MEJOR NODO

2 8 3 6 4 1 7 5

SUCESOR
F=12+8

F=13+9

2 8 3 4 1 6 7 5

2 3 4 8 1 F=13+10 6 7 5

2 8 3 6 4 1 7 5

2 8 3 2 8 3 8 3 4 1 6 4 1 2 4 1 6 7 5 7 5 6 7 5
F=14+8 F=14+10

VIEJO

F=12+8

F=12+9

VIEJO
F=13+9

2 8 3 4 1 6 7 5 2 8 3 4 1 6 7 5
F=13+12

MEJOR NODO

2 8 3 6 4 1 7 5 2 8 3 4 1 6 7 5

SUCESOR
F=10+9

2 8 3 4 1 6 7 5

2 3 4 8 1 F=13+10 6 7 5

2 8 3 6 4 1 7 5
F=14+8

8 3 2 4 1 6 7 5
F=14+10

SI SUCESOR NO ESTA CONTENIDO EN ABIERTOS, PERO ESTA CONTENIDO EN CERRADOS ENTONCES, LLAMAR VIEJO AL NODO DE CERRADOS.

MIRAR SI EL NUEVO CAMINO ES MEJOR QUE EL VIEJO, SI ES ASI ACTUALIZAR EL ENLACE PATERNO.

F=12+9

VIEJO
F=13+9

2 8 3 4 1 6 7 5 2 8 3 4 1 6 7 5
F=13+12

MEJOR NODO

2 8 3 6 4 1 7 5 2 8 3 4 1 6 7 5

SUCESOR

2 8 3 4 1 6 7 5

2 3 4 8 1 F=13+10 6 7 5

F=10+9

2 8 3 6 4 1 7 5
F=14+8

8 3 2 4 1 6 7 5
F=14+10

PROPAGAR LOS CAMBIOS A LOS SUCESORES DE VIEJO.

F=12+9

2 8 3 4 1 6 7 5

MEJOR NODO

2 8 3 6 4 1 7 5 2 8 3 4 1 6 7 5 2 8 3 6 4 1 7 5
F=11+8

VIEJO

2 8 3 4 1 6 7 5
F=13+12

2 3 4 8 1 6 7 5
F=13+10

F=10+9

8 3 2 4 1 6 7 5
F=11+10

PROPAGAR LOS CAMBIOS A LOS SUCESORES DE VIEJO.

También podría gustarte