Package org.goplanit.assignment.ltm.sltm
Class PasFlowShiftOriginBasedSmartLabelledExecutor
- java.lang.Object
-
- org.goplanit.assignment.ltm.sltm.PasFlowShiftExecutor
-
- org.goplanit.assignment.ltm.sltm.PasFlowShiftOriginBasedSmartLabelledExecutor
-
public class PasFlowShiftOriginBasedSmartLabelledExecutor extends PasFlowShiftExecutor
Functionality to conduct a PAS flow shift by means of the smart labelling technique where we try to minimise the number of labels required across each bush to reduce both computational and memory burden.- Author:
- markr
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<RootedLabelledBush,List<LinkedList<BushFlowLabel>>>
s1ReverseLabelChains
the label chains (list of list map value), per origin (map key) in reverse order (end to start) that traverse S1protected Map<RootedLabelledBush,List<LinkedList<BushFlowLabel>>>
s2ReverseLabelChains
the label chains (list of list map value), per origin (map key), in reverse order (end to start) that traverse S2-
Fields inherited from class org.goplanit.assignment.ltm.sltm.PasFlowShiftExecutor
bushEntrySegmentS1S2SendingFlows, EPSILON, pas, PAS_MIN_S2_FLOW_THRESHOLD, pasMergeVertexNumExitSegments, settings, totalEntrySegmentS1S2Flow, usedCongestedEntryEdgeSegments
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
PasFlowShiftOriginBasedSmartLabelledExecutor(Pas pas, StaticLtmSettings settings)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
executeBushFlowShift(RootedLabelledBush origin, EdgeSegment entrySegment, double bushFlowShift, double[] flowAcceptanceFactors)
Perform the flow shift for a given bush.void
initialise()
Initialise by determining the desired flows along each subpath (on the network level) + identify the label chains along the PAS-
Methods inherited from class org.goplanit.assignment.ltm.sltm.PasFlowShiftExecutor
activatePasS2RemovalIf, determineEntrySegmentFlowShift, getS1SendingFlow, getS2SendingFlow, getUsedCongestedEntrySegments, isPasS2RemovalAllowed, isTowardsEqualAlternativeFlowDistribution, run
-
-
-
-
Field Detail
-
s2ReverseLabelChains
protected final Map<RootedLabelledBush,List<LinkedList<BushFlowLabel>>> s2ReverseLabelChains
the label chains (list of list map value), per origin (map key), in reverse order (end to start) that traverse S2
-
s1ReverseLabelChains
protected final Map<RootedLabelledBush,List<LinkedList<BushFlowLabel>>> s1ReverseLabelChains
the label chains (list of list map value), per origin (map key) in reverse order (end to start) that traverse S1
-
-
Constructor Detail
-
PasFlowShiftOriginBasedSmartLabelledExecutor
protected PasFlowShiftOriginBasedSmartLabelledExecutor(Pas pas, StaticLtmSettings settings)
Constructor- Parameters:
pas
- to usesettings
- to use
-
-
Method Detail
-
executeBushFlowShift
protected void executeBushFlowShift(RootedLabelledBush origin, EdgeSegment entrySegment, double bushFlowShift, double[] flowAcceptanceFactors)
Perform the flow shift for a given bush. Delegate to concrete class implementation- Specified by:
executeBushFlowShift
in classPasFlowShiftExecutor
- Parameters:
origin
- to perform shift forentrySegment
- entry segment at hand to apply flow shift forbushFlowShift
- the absolute shift to apply for the given PAS-bush-entrysegment combinationflowAcceptanceFactors
- to use
-
initialise
public void initialise()
Initialise by determining the desired flows along each subpath (on the network level) + identify the label chains along the PAS- Overrides:
initialise
in classPasFlowShiftExecutor
-
-