Optimizing A* for grid maps
simblob.blogspot.com
simblob.blogspot.com
https://github.com/memononen/recastnavigation
He does automatic graph construction from dense data. Recast can generate this dense data automatically by populating a graph at voxel centers based on the level geometry, but it can also accept a tile-grid at that point.
It is a terrific system, and if you want to learn about how robust pathfinding should be done in games, you can do much worse that find out how it works.
You can feed it raw tris, the same stuff you would send to the graphics card to render, and get out a high quality, extremely fast navigation mesh.
http://zerowidth.com/2013/05/05/jump-point-search-explained....
Navigation meshes in particular are worth consideration. There is a great reference here [1] from Epic Games about navigation meshes, and why they made the switch from a traditional node-based graph to them for the Unreal Engine. Although for most simple cases, a graph is much easier to conceptualize and implement.
[1] https://udn.epicgames.com/Three/NavigationMeshReference.html
For straightforward corridor and room maps, each corridor/room object just becomes a node.
I used this for a similar problem in my computer science studies. We had a map with an unknown layout of fields, each with a different travel cost and had to drive a tour of multiple flags in the fastest way possible. It worked quite well.