I'm working on a solution that involves determining the least effort route between two points in a building. (Imagine students on their first day of university, who need to know where they are and how to get to a given classroom in a building, or how to get from the current classroom to the next class.)
Basically I have a Cartesian structure where each floor is mapped. I also have indicators of access points (doors, ramps for disabled people, staircases) and the points where these points connect (Ground floor staircase connects with 2nd floor staircase in X48 Y4, for example), more or less as the image below:
Wherecyanindicatesastaircase,andstrange-blueelevators,amongothermarkersnotshown.
(Forthecolorblind,mysincereapologiesandsomeadditionalinformation:thestairsarelocatedatthetoprightofthemaps,theelevators,nearthecenter.)
IstartedmycodebasedonavariantoftheDijkstraalgorithmcalled A-Star (A *) , which is basically the shorter path problem with some optimizations. (Curiosity: Several games implement variants of A * to determine the route of characters on a map.)
A*isperfectfordeterminingroutesonthesamefloor,howeverIhavetotakeintoaccountthevariousfloors,eachwithadifferentlayout.
Question
Isthereamoreappropriatewaytosolvethisproblem?
Or,moreclearly(thanksbfavaretto),
GiventheadditionalfactorofNfloors,isthereanyalgorithmthatismoreindicatedthanA*?
Disclaimer: Original isometric image of DougIllustrations.com .