1. A method of route retrieval comprising: a programmed processor initializing a first weighted graph; a programmed processor converting a blueprint of an area into a weighted graph where the weighted graph is a set of nodes connected to one another by a set of edges, the nodes of the weighted graph are at least one of a starting point, a way point or destination within the area and where weights assigned to each edge describes the relative cost to travel across that particular edge between a starting or way point and a destination within the area; a programmed processor updating the weighted graph in real time where at least some of the weights of the weighted graph are defined as the product of distance and one of smoke density and temperature; a programmed processor calculating a plurality of optimal routes in the area using the weights of the weighted graph; and displaying the optimal routes wherein said plurality of optimal routes includes at least some partially overlapping routes and wherein upon detection that one or more of the plurality of optimal routes is blocked, the step of updating includes dividing the blocked route into two or more parts and calculating a new plurality of optimal routes based upon the one or more blocked routes.