Class SplittingRateDataComplete
- java.lang.Object
-
- org.goplanit.assignment.ltm.sltm.loading.SplittingRateDataComplete
-
- All Implemented Interfaces:
SplittingRateData
public class SplittingRateDataComplete extends Object implements SplittingRateData
Store the splitting rates used during sLTM loading updates (Step 1 and 5). In this implementation we track all splitting rates of turns that are used by a path and assumed they are potentially blocking. This implementation explicitly requires registering tracked nodes (not all nodes might be used in loading) but the way the information is stored is different to reduce the memory footprint. All nodes of used paths are tracked providing a complete picture of the network. This requires more memory compared to the partial implementation. This way of tracking is compatible with the PhysicalQueue solution methods as well as the Advanced PointQueue solution method.- Author:
- markr
-
-
Constructor Summary
Constructors Constructor Description SplittingRateDataComplete(long numberOfLinkSegments)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
activateNode(DirectedVertex trackedNode)
Activate a node so we are able to track its splitting rates (and turn flows) during loading.org.ojalgo.array.Array1D<Double>
getSplittingRates(EdgeSegment entrySegment)
Obtain the downstream splitting rates of given node entry segment (can be modified)TreeSet<DirectedVertex>
getTrackedNodes()
Collect all registered potentially blocking nodesboolean
isPotentiallyBlocking(DirectedVertex nodeToVerify)
Verify if node is registered as potentially blockingboolean
isTracked(DirectedVertex nodeToVerify)
Verify if node is registered as being tracked with splitting ratesvoid
resetPotentiallyBlockingNodes()
Reset registered potentially blocking nodesvoid
resetSplittingRates()
Reset splitting rate datavoid
resetTrackedNodes()
Reset registered tracked nodes-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.goplanit.assignment.ltm.sltm.loading.SplittingRateData
getSplittingRate, reset
-
-
-
-
Method Detail
-
activateNode
public void activateNode(DirectedVertex trackedNode)
Activate a node so we are able to track its splitting rates (and turn flows) during loading. It is regarded as both tracked and potentially blocking- Parameters:
trackedNode
- to start tracking turn flows and splitting rates for
-
isPotentiallyBlocking
public boolean isPotentiallyBlocking(DirectedVertex nodeToVerify)
Verify if node is registered as potentially blocking- Specified by:
isPotentiallyBlocking
in interfaceSplittingRateData
- Parameters:
nodeToVerify
- the node to verify- Returns:
- true when registered as potentially blocking, false otherwise
-
isTracked
public boolean isTracked(DirectedVertex nodeToVerify)
Verify if node is registered as being tracked with splitting rates- Specified by:
isTracked
in interfaceSplittingRateData
- Parameters:
nodeToVerify
- the node to verify- Returns:
- true when registered as tracked, false otherwise
-
getTrackedNodes
public TreeSet<DirectedVertex> getTrackedNodes()
Collect all registered potentially blocking nodes- Specified by:
getTrackedNodes
in interfaceSplittingRateData
- Returns:
- registered potentially blocking nodes
-
getSplittingRates
public org.ojalgo.array.Array1D<Double> getSplittingRates(EdgeSegment entrySegment)
Obtain the downstream splitting rates of given node entry segment (can be modified)- Specified by:
getSplittingRates
in interfaceSplittingRateData
- Parameters:
entrySegment
- to obtain for- Returns:
- currently set next splitting rates
-
resetTrackedNodes
public void resetTrackedNodes()
Reset registered tracked nodes- Specified by:
resetTrackedNodes
in interfaceSplittingRateData
-
resetPotentiallyBlockingNodes
public void resetPotentiallyBlockingNodes()
Reset registered potentially blocking nodes- Specified by:
resetPotentiallyBlockingNodes
in interfaceSplittingRateData
-
resetSplittingRates
public void resetSplittingRates()
Reset splitting rate data- Specified by:
resetSplittingRates
in interfaceSplittingRateData
-
-