Interface LaneChangeModel

All Known Implementing Classes:
AbstractLaneChangeModel, Altruistic, Egoistic, FixedLaneChangeModel

public interface LaneChangeModel
All lane change models must implement this interface.
TODO: Lane change models should use the perceived nearby GTUs rather than a provided list of same lane traffic, etc.

Copyright (c) 2013-2019 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.

Version:
$Revision: 1401 $, $LastChangedDate: 2015-09-14 01:33:02 +0200 (Mon, 14 Sep 2015) $, by $Author: averbraeck $, initial version 3 nov. 2014
Author:
Alexander Verbraeck, Peter Knoppers
  • Method Details

    • computeLaneChangeAndAcceleration

      LaneMovementStep computeLaneChangeAndAcceleration​(LaneBasedGTU gtu, java.util.Collection<Headway> sameLaneTraffic, java.util.Collection<Headway> rightLaneTraffic, java.util.Collection<Headway> leftLaneTraffic, Speed speedLimit, Acceleration preferredLaneRouteIncentive, Acceleration laneChangeThreshold, Acceleration nonPreferredLaneRouteIncentive) throws GTUException, ParameterException, OperationalPlanException
      Compute the acceleration and lane change.
      Parameters:
      gtu - LaneBasedGTU; the GTU for which the acceleration and lane change is computed
      sameLaneTraffic - Collection<Headway>; the set of observable GTUs in the current lane (can not be null and may include the gtu)
      rightLaneTraffic - Collection<Headway>; the set of observable GTUs in the adjacent lane where GTUs should drive in the absence of other traffic (must be null if there is no such lane)
      leftLaneTraffic - Collection<Headway>; the set of observable GTUs in the adjacent lane into which GTUs should merge to overtake other traffic (must be null if there is no such lane)
      speedLimit - Speed; the local speed limit
      preferredLaneRouteIncentive - Acceleration; route incentive to merge to the adjacent lane where GTUs should drive in the absence of other traffic
      laneChangeThreshold - Acceleration; threshold that prevents lane changes that have very little benefit
      nonPreferredLaneRouteIncentive - Acceleration; route incentive to merge to the adjacent lane into which GTUs should merge to overtake other traffic
      Returns:
      LaneMovementStep; the result of the lane change and GTU following model
      Throws:
      GTUException - when the speed of the GTU can not be determined
      ParameterException - in case of a parameter problem.
      OperationalPlanException - if DefaultAlexander perception category is not present.
    • getName

      java.lang.String getName()
      Return the name of this GTU following model.
      Returns:
      String; just the name of the GTU following model
    • getLongName

      java.lang.String getLongName()
      Return complete textual information about this instantiation of this GTU following model.
      Returns:
      String; the name and parameter values of the GTU following model