10 comments

[ 4.6 ms ] story [ 34.7 ms ] thread
I can highly reccomend the book “mazes for programmers” which introduces a lot of graph related alorithms in a clear, accessible way.

Dijkstra’s algorithm is on page 36 and explained in 8 paragrpahs.

https://media.pragprog.com/titles/jbmaze/first.pdf

Yeah, it’s a good book with great visuals. The author, Jamis Buck, actually lives in my town. He visited my University and gave a lecture on generating a Zelda like over-world by using maze algorithms. It was an interesting application. Jamis writes in Ruby and helped with Ruby on Rails. He has a good blog too [1].

[1]: http://weblog.jamisbuck.org

bad taste, you give a link to 10 page version and tell people to look at p. 36
I find Floyd–Warshall algorithm much more facinating. It took me almost 25 years to realize that it was different from the algorithm that I had deviced myself for solving the problem.

Dijkstra's algorithm seems rather obvious to me, as I discovered it myself after I head the problem description. A note in my diary seems to imply that I implemented it in LISP.

"At its heart, Dijkstra’s algorithm is really only a modified bread-first search."

First finish your bread, and only then attempt the search.

I felt similar to the first paragraph, that Dijkstra's algorithm was elevated in so.e way.

Then I found out that Dijkstra's algorithm is 'just' A* where the heuristic function is zero. :| Which is both incredibly simple and intuitive.

This is a pretty good explanation. Putting nodes in a priority queue at each stage is the trick here. I wish I had this explained in such a simple manner earlier.