Class BushTurnFlowUpdateConsumer
- java.lang.Object
-
- org.goplanit.assignment.ltm.sltm.consumer.BushFlowUpdateConsumer<NetworkTurnFlowUpdateData>
-
- org.goplanit.assignment.ltm.sltm.consumer.BushTurnFlowUpdateConsumer
-
public class BushTurnFlowUpdateConsumer extends BushFlowUpdateConsumer<NetworkTurnFlowUpdateData> implements Consumer<Bush>
Consumer to apply during bush based turn flow update for each non-zero demand bushDepending on the applied solution scheme a slightly different approach is taken to 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 this 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 only identified when we make 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 inherited from class org.goplanit.assignment.ltm.sltm.consumer.BushFlowUpdateConsumer
dataConfig
-
-
Constructor Summary
Constructors Constructor Description BushTurnFlowUpdateConsumer(NetworkTurnFlowUpdateData dataConfig)
constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
applyAcceptedTurnFlowUpdate(int prevSegmentId, EdgeSegment currentSegment, double turnAcceptedFlowPcuH)
track the turn accepted flows when they are classified as being tracked, otherwise do nothingMap<Integer,Double>
getAcceptedTurnFlows()
The found accepted turn flows by the combined entry-exit segment hash code-
Methods inherited from class org.goplanit.assignment.ltm.sltm.consumer.BushFlowUpdateConsumer
accept
-
-
-
-
Constructor Detail
-
BushTurnFlowUpdateConsumer
public BushTurnFlowUpdateConsumer(NetworkTurnFlowUpdateData dataConfig)
constructor- Parameters:
dataConfig
- to use
-
-
Method Detail
-
applyAcceptedTurnFlowUpdate
protected void applyAcceptedTurnFlowUpdate(int prevSegmentId, EdgeSegment currentSegment, double turnAcceptedFlowPcuH)
track the turn accepted flows when they are classified as being tracked, otherwise do nothing- Overrides:
applyAcceptedTurnFlowUpdate
in classBushFlowUpdateConsumer<NetworkTurnFlowUpdateData>
- Parameters:
prevSegmentId
- to usecurrentSegment
- to useturnAcceptedFlowPcuH
- to use
-
-