Algoritmo para encontrar o caminho mais curto, com obstáculos

Tenho uma coleção de pontos que representa uma grade, estou procurando um algoritmo que me permita a menor distância entre o ponto A e B. A captura sendo qualquer ponto (excluindo A e B) pode ter um obstáculo para obstruir o caminho, e, portanto, deve ser desviado. O caminho pode não se mover na diagona

Para quem quer resolver esse tipo de problema, achei essas referências muito úteis:

http: //optlab-server.sce.carleton.ca/POAnimations2007/DijkstrasAlgo.htm

http: //en.literateprograms.org/Dijkstra%27s_algorithm_%28Java%29#chunk%20def: visite% 20each% 20vertex% 20u,% 20sempre% 20visite% 20vertex% 20com% 20smallest% 20minDistance% 20first

questionAnswers(2)

yourAnswerToTheQuestion