Class 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 Detail

      • SplittingRateDataComplete

        public SplittingRateDataComplete​(long numberOfLinkSegments)
        Constructor
        Parameters:
        numberOfLinkSegments - in the network
    • 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 interface SplittingRateData
        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 interface SplittingRateData
        Parameters:
        nodeToVerify - the node to verify
        Returns:
        true when registered as tracked, false otherwise
      • 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 interface SplittingRateData
        Parameters:
        entrySegment - to obtain for
        Returns:
        currently set next splitting rates