static Params forTraversalMode(TraversalMode traversalMode) { if (traversalMode.isEdgeBased()) { throw new IllegalArgumentException("Contraction Hierarchies are not supported for edge-based traversal yet"); } else { return new Params(20, 10, 20, 100, 20); } }
int level = 0; checkCounter = 0; long logSize = Math.round(Math.max(10, initSize / 100d * params.getLogMessagesPercentage())); if (params.getLogMessagesPercentage() == 0) logSize = Integer.MAX_VALUE; long periodicUpdatesCount = Math.round(Math.max(10, sortedNodes.getSize() / 100d * params.getPeriodicUpdatesPercentage())); if (params.getPeriodicUpdatesPercentage() == 0) periodicUpdate = false; long lastNodesLazyUpdates = Math.round(sortedNodes.getSize() / 100d * params.getLastNodesLazyUpdatePercentage()); long nodesToAvoidContract = Math.round((100 - params.getNodesContractedPercentage()) / 100d * sortedNodes.getSize()); if (params.getNeighborUpdatePercentage() == 0) neighborUpdate = false; continue; if (neighborUpdate && rand.nextInt(100) < params.getNeighborUpdatePercentage()) { neighborUpdateSW.start(); float oldPrio = oldPriorities[nn];
int level = 0; checkCounter = 0; long logSize = Math.round(Math.max(10, initSize / 100d * params.getLogMessagesPercentage())); if (params.getLogMessagesPercentage() == 0) logSize = Integer.MAX_VALUE; long periodicUpdatesCount = Math.round(Math.max(10, sortedNodes.getSize() / 100d * params.getPeriodicUpdatesPercentage())); if (params.getPeriodicUpdatesPercentage() == 0) periodicUpdate = false; long lastNodesLazyUpdates = Math.round(sortedNodes.getSize() / 100d * params.getLastNodesLazyUpdatePercentage()); long nodesToAvoidContract = Math.round((100 - params.getNodesContractedPercentage()) / 100d * sortedNodes.getSize()); if (params.getNeighborUpdatePercentage() == 0) neighborUpdate = false; continue; if (neighborUpdate && rand.nextInt(100) < params.getNeighborUpdatePercentage()) { neighborUpdateSW.start(); float oldPrio = oldPriorities[nn];
@Override public void doSpecificWork() { allSW.start(); initFromGraph(); runGraphContraction(); logger.info("took:" + (int) allSW.stop().getSeconds() + "s " + ", new shortcuts: " + nf(nodeContractor.getAddedShortcutsCount()) + ", initSize:" + nf(initSize) + ", " + prepareWeighting + ", periodic:" + params.getPeriodicUpdatesPercentage() + ", lazy:" + params.getLastNodesLazyUpdatePercentage() + ", neighbor:" + params.getNeighborUpdatePercentage() + ", " + getTimesAsString() + ", lazy-overhead: " + (int) (100 * ((checkCounter / (double) initSize) - 1)) + "%" + ", " + Helper.getMemInfo()); int edgeCount = ghStorage.getAllEdges().length(); logger.info("graph now - num edges: {}, num nodes: {}, num shortcuts: {}", nf(edgeCount), nf(ghStorage.getNodes()), nf(prepareGraph.getAllEdges().length() - edgeCount)); }
void setNeighborUpdatePercentage(int neighborUpdatePercentage) { checkPercentage(NEIGHBOR_UPDATES, neighborUpdatePercentage); this.neighborUpdatePercentage = neighborUpdatePercentage; }
void setLogMessagesPercentage(int logMessagesPercentage) { checkPercentage(LOG_MESSAGES, logMessagesPercentage); this.logMessagesPercentage = logMessagesPercentage; }
void setPeriodicUpdatesPercentage(int periodicUpdatesPercentage) { checkPercentage(PERIODIC_UPDATES, periodicUpdatesPercentage); this.periodicUpdatesPercentage = periodicUpdatesPercentage; }
void setLastNodesLazyUpdatePercentage(int lastNodesLazyUpdatePercentage) { checkPercentage(LAST_LAZY_NODES_UPDATES, lastNodesLazyUpdatePercentage); this.lastNodesLazyUpdatePercentage = lastNodesLazyUpdatePercentage; }
static Params forTraversalMode(TraversalMode traversalMode) { if (traversalMode.isEdgeBased()) { throw new IllegalArgumentException("Contraction Hierarchies are not supported for edge-based traversal yet"); } else { return new Params(20, 10, 20, 100, 20); } }
private Params(int periodicUpdatesPercentage, int lastNodesLazyUpdatePercentage, int neighborUpdatePercentage, int nodesContractedPercentage, int logMessagesPercentage) { setPeriodicUpdatesPercentage(periodicUpdatesPercentage); setLastNodesLazyUpdatePercentage(lastNodesLazyUpdatePercentage); setNeighborUpdatePercentage(neighborUpdatePercentage); setNodesContractedPercentage(nodesContractedPercentage); setLogMessagesPercentage(logMessagesPercentage); }
public PrepareContractionHierarchies(Directory dir, GraphHopperStorage ghStorage, CHGraph chGraph, TraversalMode traversalMode) { this.dir = dir; this.ghStorage = ghStorage; this.prepareGraph = (CHGraphImpl) chGraph; this.traversalMode = traversalMode; this.weighting = ((CHGraphImpl) chGraph).getWeighting(); prepareWeighting = new PreparationWeighting(weighting); this.params = Params.forTraversalMode(traversalMode); }
void setNodesContractedPercentage(int nodesContractedPercentage) { checkPercentage(CONTRACTED_NODES, nodesContractedPercentage); this.nodesContractedPercentage = nodesContractedPercentage; }
public PrepareContractionHierarchies setParams(PMap pMap) { this.pMap = pMap; params.setPeriodicUpdatesPercentage(pMap.getInt(PERIODIC_UPDATES, params.getPeriodicUpdatesPercentage())); params.setLastNodesLazyUpdatePercentage(pMap.getInt(LAST_LAZY_NODES_UPDATES, params.getLastNodesLazyUpdatePercentage())); params.setNeighborUpdatePercentage(pMap.getInt(NEIGHBOR_UPDATES, params.getNeighborUpdatePercentage())); params.setNodesContractedPercentage(pMap.getInt(CONTRACTED_NODES, params.getNodesContractedPercentage())); params.setLogMessagesPercentage(pMap.getInt(LOG_MESSAGES, params.getLogMessagesPercentage())); return this; }
@Override public void doSpecificWork() { allSW.start(); initFromGraph(); runGraphContraction(); logger.info("took:" + (int) allSW.stop().getSeconds() + "s " + ", new shortcuts: " + nf(nodeContractor.getAddedShortcutsCount()) + ", initSize:" + nf(initSize) + ", " + prepareWeighting + ", periodic:" + params.getPeriodicUpdatesPercentage() + ", lazy:" + params.getLastNodesLazyUpdatePercentage() + ", neighbor:" + params.getNeighborUpdatePercentage() + ", " + getTimesAsString() + ", lazy-overhead: " + (int) (100 * ((checkCounter / (double) initSize) - 1)) + "%" + ", " + Helper.getMemInfo()); int edgeCount = prepareGraph.getOriginalEdges(); logger.info("graph now - num edges: {}, num nodes: {}, num shortcuts: {}", nf(edgeCount), nf(prepareGraph.getNodes()), nf(prepareGraph.getEdges() - edgeCount)); }
void setNodesContractedPercentage(int nodesContractedPercentage) { checkPercentage(CONTRACTED_NODES, nodesContractedPercentage); this.nodesContractedPercentage = nodesContractedPercentage; }
void setPeriodicUpdatesPercentage(int periodicUpdatesPercentage) { checkPercentage(PERIODIC_UPDATES, periodicUpdatesPercentage); this.periodicUpdatesPercentage = periodicUpdatesPercentage; }
void setLogMessagesPercentage(int logMessagesPercentage) { checkPercentage(LOG_MESSAGES, logMessagesPercentage); this.logMessagesPercentage = logMessagesPercentage; }
void setLastNodesLazyUpdatePercentage(int lastNodesLazyUpdatePercentage) { checkPercentage(LAST_LAZY_NODES_UPDATES, lastNodesLazyUpdatePercentage); this.lastNodesLazyUpdatePercentage = lastNodesLazyUpdatePercentage; }
void setNeighborUpdatePercentage(int neighborUpdatePercentage) { checkPercentage(NEIGHBOR_UPDATES, neighborUpdatePercentage); this.neighborUpdatePercentage = neighborUpdatePercentage; }
public PrepareContractionHierarchies(CHGraph chGraph, Weighting weighting, TraversalMode traversalMode) { this.prepareGraph = chGraph; this.traversalMode = traversalMode; this.weighting = weighting; prepareWeighting = new PreparationWeighting(weighting); this.params = Params.forTraversalMode(traversalMode); }