edu.mit.ll.group43.surfaceoptimization.dp.factory.cost
Class AllGapsSpotCostStrategy

java.lang.Object
  extended by edu.mit.ll.group43.surfaceoptimization.dp.factory.cost.CostStrategy
      extended by edu.mit.ll.group43.surfaceoptimization.dp.factory.cost.SpotCostStrategy
          extended by edu.mit.ll.group43.surfaceoptimization.dp.factory.cost.OneGapSpotCostStrategy
              extended by edu.mit.ll.group43.surfaceoptimization.dp.factory.cost.AllGapsSpotCostStrategy
Direct Known Subclasses:
SmartAllGapsSpotCostStrategy

public class AllGapsSpotCostStrategy
extends OneGapSpotCostStrategy

The spot cost strategy for the All Gaps algorithm. This algorithm considers each gap in the projected takeoff sequence when scheduling the current aircraft, only taking into account gaps that are already large enough to fit the current aircraft without having to reschedule previously solved for aircraft.

Author:
William Hawkins

Constructor Summary
AllGapsSpotCostStrategy(int cps, MinimumSeparationCalculator<? extends WeightClass> calc)
           
 
Method Summary
 int earliestRelease(NetworkEdge edge)
          Determines the earliest time at which the last aircraft of the target node of the given network edge can be released from the spot.
 int earliestRelease(NetworkEdge edge, java.util.ArrayList<Aircraft> sortedTakeOffs)
          Determines the earliest time at which the last aircraft of the target node of the given network edge can be released from the spot.
 int safePrevTimeBound(CPSNetworkNode prevNode, Aircraft current)
          Returns the "predecessor bound" for the current aircraft.
 
Methods inherited from class edu.mit.ll.group43.surfaceoptimization.dp.factory.cost.OneGapSpotCostStrategy
canFitBefore, earliestReleaseAfter, earliestReleaseAfter, earliestReleaseBetween, earliestReleaseBetween, sortedAlphasSoFar
 
Methods inherited from class edu.mit.ll.group43.surfaceoptimization.dp.factory.cost.SpotCostStrategy
earliestRelease, earliestRelease, getEdgeWeight, initializeFirstStage, setOptimalValues
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AllGapsSpotCostStrategy

public AllGapsSpotCostStrategy(int cps,
                               MinimumSeparationCalculator<? extends WeightClass> calc)
Method Detail

safePrevTimeBound

public int safePrevTimeBound(CPSNetworkNode prevNode,
                             Aircraft current)
Returns the "predecessor bound" for the current aircraft.

Parameters:
prevNode -
current -
Returns:

earliestRelease

public int earliestRelease(NetworkEdge edge,
                           java.util.ArrayList<Aircraft> sortedTakeOffs)
Determines the earliest time at which the last aircraft of the target node of the given network edge can be released from the spot. Considers all gaps between takeoffs in the given takeoff sequence and tries to fit the current aircraft into the earliest one it can. Failing that, it sends it as early as it can to minimize how long it takes off after the last projected takeoff time, while respecting the optimal spot release time of this aircraft's direct predecessor in the CPS spot release sequence.

Parameters:
edge -
sortedTakeOffs -

earliestRelease

public int earliestRelease(NetworkEdge edge)
Determines the earliest time at which the last aircraft of the target node of the given network edge can be released from the spot. Considers all gaps between takeoffs in the current projected takeoff sequence and tries to fit the current aircraft into the earliest one it can. Failing that, it sends it as early as it can to minimize how long it takes off after the last projected takeoff time, while respecting the optimal spot release time of this aircraft's direct predecessor in the CPS spot release sequence.

Overrides:
earliestRelease in class OneGapSpotCostStrategy
Returns: