LMRSsync.java

package org.opentrafficsim.road.gtu.lane.tactical.lmrs;

/**
 * Implementation of the LMRS (Lane change Model with Relaxation and Synchronization). This is extended by:
 * <i>Tag-along behavior</i> at low speed during synchronization, which prevents the driver from being overtaken as
 * it waits for an acceptable gap. This occurs as the follower in the target lane starts accelerating before the 
 * potential lane changer does. As a result, the potential lane changer is overtaken. This process may occur 
 * sequentially letting the potential lane changer make small jumps and reaching standstill for every new leader. This
 * significantly disturbs the acceleration process and thus queue discharge.
 * <i>Active gap selection</i>, taking care of not stopping for synchronization upstream of the location where one 
 * can actually merge, and accounting for speed differences with the target lane. The result is synchronization by
 * following a sensible leader in the target lane, rather than simply the direct leader in the target lane. A driver may
 * also decide to reduce acceleration to get behind the follower in the target lane. If synchronization is determined to
 * be impossible, the driver decelerates. Furthermore, speeds may be reduced to allow time for further lane changes.
 * <i>Courtesy lane changes</i>, where the level of lane change desire of drivers in adjacent lanes towards the 
 * current lane, results in an additional lane change incentive towards the other adjacent lane. A factor <i>p</i> is 
 * applied to the lane change desire of the adjacent leader. Further leaders are considered less. The opposite is also 
 * applied. Leaders on the second lane to either direction that have desire to change to the first lane in that 
 * direction, result in a negative courtesy desire. I.e. leave adjacent lane open for a leader on the second lane.
 * <i>Gap-creation</i> is changed by letting drivers reduce speed for any adjacent leader within a given distance, 
 * rather than only the direct leader. Furthermore, gaps are also created during lane changes, also for the adjacent 
 * lane of the target lane.
 * 
 * See Schakel, W.J., Knoop, V.L., and Van Arem, B. (2012), 
 * <a href="http://victorknoop.eu/research/papers/TRB2012_LMRS_reviewed.pdf">LMRS: Integrated Lane Change Model with 
 * Relaxation and Synchronization</a>, 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 
 * <a href="http://victorknoop.eu/research/papers/Erratum_LMRS.pdf">here</a>.
 * @author Wouter Schakel
 */
public class LMRSsync extends LMRS {

	/** Serialization id. */
	private static final long serialVersionUID = 20160803L;

	/**
	 * Sets the default lane change incentives. These are the mandatory route incentive, and the voluntary speed, keep, 
	 * hierarchal and and courtesy incentives. Any existing incentives are removed.
	 */
	@Override
	public void setDefaultIncentives() {
		this.mandatoryIncentives.clear();
		this.voluntaryIncentives.clear();
		this.mandatoryIncentives.add(new IncentiveRoute());
		this.voluntaryIncentives.add(new IncentiveSpeed());
		this.voluntaryIncentives.add(new IncentiveKeep());
		this.voluntaryIncentives.add(new IncentiveHierarchal());
		this.voluntaryIncentives.add(new IncentiveCourtesy());
	}
	
	
	
}