05 21 2020 Algoritmos de busqueda - MatRJ08/Portafolio_DatosII GitHub Wiki

Bitacora

  • Pathfinding

Apuntes

Pathfinding

A*

Similar al BFS pero con un heuristico

  • Heuristico: toma decisión de que ruta seguir según información previa. Puede no ser la mas corta, pero es mas rápido

Similar al Dijkstra, estima que tan cerca esta cada nodo de la meta

Incorpora pococ a poco los nodos a la solucion

Eficiente y rápido

Muy usado en la programación de videojuegos

open list : lista de nodos pendientes de evaluar

close list: nodos posibles de la ruta final. Cada nodo debe decir de donde vino

Como funciona

  • Mete el nodo de inicio a la open list
  • Agrega los nodos adyacentes a este
  • Elimina el punto inicial de la open-list y lo agrega a la close-list
  • Escoge el que tenga un valor F menor, para volver a empezar
  • En el momento que la meta este en un adyacente, el algorimo para y calcula con los nodos de la close list
  • (Se puede agregar la posibilidad de movimientos diagonales)

Formula

F= G + H

  • G: costo de moverse desde un punto dado a otro
    • Se debe asignar costos para los movimientos horizontales/verticales y diagonales
    • Cada nuevo paso se le debe sumar cuanto le tomo llegar ahí
  • H: costo estimado de todas las posiciones al final

Formas de calcular H

Distancia de euclides

  • dx = targetX-currentX
  • dy = targetY-currentY
  • H = sqrt