Class Lmrs
java.lang.Object
org.opentrafficsim.road.gtu.lane.tactical.AbstractLaneBasedTacticalPlanner
org.opentrafficsim.road.gtu.lane.tactical.lmrs.AbstractIncentivesTacticalPlanner
org.opentrafficsim.road.gtu.lane.tactical.lmrs.Lmrs
- All Implemented Interfaces:
TacticalPlanner<LaneBasedGtu,,LanePerception> Blockable,DesireBased,LaneBasedTacticalPlanner,Synchronizable
public class Lmrs
extends AbstractIncentivesTacticalPlanner
implements DesireBased, Synchronizable, Blockable
Implementation of the LMRS (Lane change Model with Relaxation and Synchronization). See Schakel, W.J., Knoop, V.L., and Van
Arem, B. (2012), LMRS: Integrated Lane Change Model
with Relaxation and Synchronization, Transportation Research Records: Journal of the Transportation Research Board, No.
2316, pp. 47-57. Note in the official versions of TRB and TRR some errors appeared due to the typesetting of the papers (not
in the preprint provided here). A list of errata for the official versions is found
here.
Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
- Author:
- Wouter Schakel
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.opentrafficsim.road.gtu.lane.tactical.Synchronizable
Synchronizable.State -
Field Summary
Fields inherited from class org.opentrafficsim.road.gtu.lane.tactical.AbstractLaneBasedTacticalPlanner
DT, LANE_TACTICAL_PLANNER, LOOKAHEADFields inherited from interface org.opentrafficsim.core.gtu.plan.tactical.TacticalPlanner
TACTICAL_PLANNER -
Constructor Summary
ConstructorsConstructorDescriptionLmrs(CarFollowingModel carFollowingModel, LaneBasedGtu gtu, LanePerception lanePerception, Synchronization synchronization, Cooperation cooperation, GapAcceptance gapAcceptance, Tailgating tailgating) Constructor setting the car-following model. -
Method Summary
Modifier and TypeMethodDescriptionfinal OperationalPlangenerateOperationalPlan(Duration startTime, DirectedPoint2d locationAtStartTime) getLatestDesire(Class<? extends Incentive> incentiveClass) Returns the latest desire from the specified incentive.Returns the synchronization state.booleanReturns whether the GTU is blocking conflicts.final StringtoString()Methods inherited from class org.opentrafficsim.road.gtu.lane.tactical.lmrs.AbstractIncentivesTacticalPlanner
addAccelerationIncentive, addMandatoryIncentive, addVoluntaryIncentive, getAccelerationIncentives, getMandatoryIncentives, getVoluntaryIncentivesMethods inherited from class org.opentrafficsim.road.gtu.lane.tactical.AbstractLaneBasedTacticalPlanner
getCarFollowingModel, getGtu, getPerception, setCarFollowingModelMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.opentrafficsim.road.gtu.lane.tactical.LaneBasedTacticalPlanner
chooseLaneAtSplit
-
Constructor Details
-
Lmrs
public Lmrs(CarFollowingModel carFollowingModel, LaneBasedGtu gtu, LanePerception lanePerception, Synchronization synchronization, Cooperation cooperation, GapAcceptance gapAcceptance, Tailgating tailgating) Constructor setting the car-following model.- Parameters:
carFollowingModel- car-following modelgtu- GTUlanePerception- perceptionsynchronization- type of synchronizationcooperation- type of cooperationgapAcceptance- gap-acceptancetailgating- tailgating
-
-
Method Details
-
generateOperationalPlan
public final OperationalPlan generateOperationalPlan(Duration startTime, DirectedPoint2d locationAtStartTime) throws GtuException, NetworkException, ParameterException - Specified by:
generateOperationalPlanin interfaceTacticalPlanner<LaneBasedGtu,LanePerception> - Throws:
GtuExceptionNetworkExceptionParameterException
-
getLatestDesire
Description copied from interface:DesireBasedReturns the latest desire from the specified incentive.- Specified by:
getLatestDesirein interfaceDesireBased- Parameters:
incentiveClass- incentive class- Returns:
- latest desire from the specified incentive, empty if this incentive is not active
-
getSynchronizationState
Description copied from interface:SynchronizableReturns the synchronization state.- Specified by:
getSynchronizationStatein interfaceSynchronizable- Returns:
- synchronization state
-
isBlocking
public boolean isBlocking()Description copied from interface:BlockableReturns whether the GTU is blocking conflicts.- Specified by:
isBlockingin interfaceBlockable- Returns:
- whether the GTU is blocking conflicts
-
toString
-