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>>>s1ReverseLabelChainsthe 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>>>s2ReverseLabelChainsthe 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 protectedPasFlowShiftOriginBasedSmartLabelledExecutor(Pas pas, StaticLtmSettings settings)Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidexecuteBushFlowShift(RootedLabelledBush origin, EdgeSegment entrySegment, double bushFlowShift, double[] flowAcceptanceFactors)Perform the flow shift for a given bush.voidinitialise()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:
executeBushFlowShiftin 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:
initialisein classPasFlowShiftExecutor
-
-