I didn't read the whole thread so excuse me If someone already said what I'll say.
The current most efficient pathfinding method use "navigation mesh". This method is generaly used in non-tile based map, but only because it's easier to use each tile as a node , not because it's more efficient. here are the basics:
-First we "cut" the map in convex polygons (rectangle in our case)
-We represent this polygons with a graph , each polygon is a node, 2 nodes are connected if the polygons they represent are touching. ( so a node will often represent more than 100 tiles)
-We use A* on this graph, this will give us the list of polygons our path go through.
-Then we use the funnel algorithm (here is a link
http://digestingduck.blogspot.com/2010/03/simple-stupid-funnel-algorithm.html )
At this point we should have a set of points where our dwarf just need to go in straight line between each points. But what is a straight line between 2 points in tile based map? Well , we could define it as going in diagonal (starting form the 1st point) until reaching one of the two coordonates of the 2nd point , then going in "true" straight line (horizontal or vertical) for example.
IF the map was static , I think this method could easily be 100 times (depending on the fortress shape) faster than the actual method.
But the map isn't static, it's true, but the map is changing only 1 tile by 1 tile. We could create a function that will add a node to our graph each time a dwarf dig 1 tile, and merge 2 rectangles if they share an entire side, this function should also check each time a door is closed or a wall build if there is change to do in the graph. I don't think this function is very hard to make, and probably not very CPU expensive. So I have hope this method could still be at least 10times faster than the actual method.
Each part of this method is very easy , and shouldn't take more than 100 lines.
There is tons of ways to represent a graph (
http://en.wikipedia.org/wiki/Graph_(data_structure) give the most common)
I hope toady will make something about it , his game is fucking great , if he doesn't want to dive in the pathfinding, maybe if he could just give the format he uses to represent the map and coordonates , and the format he wants for the output path , I'll be glad doing this for him.
Forgive my poor english.