Class NetworkTurnFlowUpdateData
- java.lang.Object
-
- org.goplanit.assignment.ltm.sltm.consumer.NetworkFlowUpdateData
-
- org.goplanit.assignment.ltm.sltm.consumer.NetworkTurnFlowUpdateData
-
public class NetworkTurnFlowUpdateData extends NetworkFlowUpdateData
Base class to aid updating of the network turn flows during loading. Derived classes can apply a path or bush based approach to this update for example. This class stores the current network state information required to perform the update regardless of the chosen assignment strategy (bush, path).Depending on the applied solution scheme a slightly different approach is to be taken with this update where:
POINT QUEUE BASIC: Also update the network sending flow. Only during basic point queue solution scheme, sending flows are NOT locally updated in the sending flow update step. Therefore sending flows of most links are not updated during the sending flow update because it only updates the sending flows of outgoing links of potentially blocking nodes. When an incoming link of any node is not also an outgoing link of another potentially blocking node its sending flow remains the same even if it actually changes due to further upstream changes in restrictions. In this approach this is taken care of by making sure the sending flows are updated during (this) loading on the path level. Hence, we must update sending flows here.
ANY OTHER SOLUTION APPROACH: Here we update all used nodes and sending flows are updated iteratively and locally propagated without the need of the loading in the sending flow update. Therefore, there is no need to update the sending flows. On the other hand we now update the turn flows on all used nodes rather than only the potentially blocking ones.
- Author:
- markr
-
-
Field Summary
Fields Modifier and Type Field Description protected org.apache.commons.collections4.map.MultiKeyMap<Object,Double>
acceptedTurnFlows
The output of this update that can be collected after execution.protected SplittingRateData
splittingRateData
Splitting rate data to useprotected boolean
trackAllNodeTurnFlows
Flag indicating if we are tracking all (used) node turn flows or not-
Fields inherited from class org.goplanit.assignment.ltm.sltm.consumer.NetworkFlowUpdateData
flowAcceptanceFactors, outFlows, sendingFlows
-
-
Constructor Summary
Constructors Constructor Description NetworkTurnFlowUpdateData(boolean trackAllNodeTurnFlows, SendingFlowData sendingFlowData, SplittingRateData splittingRateData, NetworkLoadingFactorData networkLoadingFactorData)
ConstructorNetworkTurnFlowUpdateData(boolean trackAllNodeTurnFlows, SplittingRateData splittingRateData, NetworkLoadingFactorData networkLoadingFactorData)
constructor where sending flows are not to be updated
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addToAcceptedTurnFlows(EdgeSegment entrySegment, EdgeSegment exitSegment, double flowToAddPcuH)
add to accepted turn flowsorg.apache.commons.collections4.map.MultiKeyMap<Object,Double>
getAcceptedTurnFlows()
Access to the result, the accepted turn flows, where key comprises a combined hash of entry and exit edge segment ids and value is the accepted turn flow v_ab-
Methods inherited from class org.goplanit.assignment.ltm.sltm.consumer.NetworkFlowUpdateData
isOutflowsUpdate, isSendingflowsUpdate
-
-
-
-
Field Detail
-
splittingRateData
protected final SplittingRateData splittingRateData
Splitting rate data to use
-
trackAllNodeTurnFlows
protected final boolean trackAllNodeTurnFlows
Flag indicating if we are tracking all (used) node turn flows or not
-
-
Constructor Detail
-
NetworkTurnFlowUpdateData
public NetworkTurnFlowUpdateData(boolean trackAllNodeTurnFlows, SendingFlowData sendingFlowData, SplittingRateData splittingRateData, NetworkLoadingFactorData networkLoadingFactorData)
Constructor- Parameters:
trackAllNodeTurnFlows
- to applysendingFlowData
- to usesplittingRateData
- to usenetworkLoadingFactorData
- to use
-
NetworkTurnFlowUpdateData
public NetworkTurnFlowUpdateData(boolean trackAllNodeTurnFlows, SplittingRateData splittingRateData, NetworkLoadingFactorData networkLoadingFactorData)
constructor where sending flows are not to be updated- Parameters:
trackAllNodeTurnFlows
- flag indicating where or not to track all node turn flowssplittingRateData
- to usenetworkLoadingFactorData
- to use
-
-
Method Detail
-
addToAcceptedTurnFlows
protected void addToAcceptedTurnFlows(EdgeSegment entrySegment, EdgeSegment exitSegment, double flowToAddPcuH)
add to accepted turn flows- Parameters:
entrySegment
- to useexitSegment
- to useflowToAddPcuH
- to add
-
getAcceptedTurnFlows
public org.apache.commons.collections4.map.MultiKeyMap<Object,Double> getAcceptedTurnFlows()
Access to the result, the accepted turn flows, where key comprises a combined hash of entry and exit edge segment ids and value is the accepted turn flow v_ab- Returns:
- accepted turn flows
-
-