/**
*
*/
package iamrescue.routing.dijkstra;
import iamrescue.agent.ISimulationTimer;
import iamrescue.belief.IAMWorldModel;
import iamrescue.routing.IRoutingAlgorithm;
import iamrescue.routing.costs.IRoutingCostFunction;
import iamrescue.routing.queries.IRoutingLocation;
import java.util.List;
import rescuecore2.misc.Pair;
/**
* @author Sebastian
*
*/
public class BidirectionalDijkstrasRoutingModule extends
SimpleDijkstrasRoutingModule {
public BidirectionalDijkstrasRoutingModule(IAMWorldModel worldModel,
IRoutingCostFunction routingCostFunction, ISimulationTimer timer) {
super(worldModel, routingCostFunction, timer);
}
@Override
protected IRoutingAlgorithm createSolver(IRoutingLocation from) {
Pair<List<Integer>, List<Double>> initial = computeSearchNodes(from);
return new MultiDirectionalDijkstrasShortestPath(graph,
initial.first(), initial.second());
}
}