Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
09/29/11 15:51:56 (13 years ago)
Author:
svonolfe
Message:

Added support for multi depot CVRP instances (#1177)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/ProblemInstances/SingleDepotVRP/CVRP/CVRPTW/CVRPTWEvaluator.cs

    r6838 r6851  
    9292
    9393        //drive there
    94         double currentDistace = vrptw.GetDistance(start, end);
     94        double currentDistace = vrptw.GetDistance(start, end, solution);
    9595        time += currentDistace;
    9696        distance += currentDistace;
     
    150150    }
    151151
    152     protected override double GetTourInsertionCosts(IVRPProblemInstance instance, TourInsertionInfo tourInsertionInfo, int index, int customer,
     152    protected override double GetTourInsertionCosts(IVRPProblemInstance instance, IVRPEncoding solution, TourInsertionInfo tourInsertionInfo, int index, int customer,
    153153      out bool feasible) {
    154154      CVRPTWInsertionInfo insertionInfo = tourInsertionInfo.GetStopInsertionInfo(index) as CVRPTWInsertionInfo;
     
    166166      double tardinessPenalty = vrptw.TardinessPenalty.Value;
    167167
    168       double distance = instance.GetDistance(insertionInfo.Start, insertionInfo.End);
     168      double distance = instance.GetDistance(insertionInfo.Start, insertionInfo.End, solution);
    169169      double newDistance =
    170         instance.GetDistance(insertionInfo.Start, customer) +
    171         instance.GetDistance(customer, insertionInfo.End);
     170        instance.GetDistance(insertionInfo.Start, customer, solution) +
     171        instance.GetDistance(customer, insertionInfo.End, solution);
    172172      costs += instance.DistanceFactor.Value * (newDistance - distance);
    173173
     
    186186      if (index > 0)
    187187        time = (tourInsertionInfo.GetStopInsertionInfo(index - 1) as CVRPTWInsertionInfo).LeaveTime;
    188       time += instance.GetDistance(insertionInfo.Start, customer);
     188      time += instance.GetDistance(insertionInfo.Start, customer, solution);
    189189      if (time > dueTime[customer]) {
    190190        tardiness += time - dueTime[customer];
     
    193193        time += readyTime[customer] - time;
    194194      time += serviceTimes[customer];
    195       time += instance.GetDistance(customer, insertionInfo.End);
     195      time += instance.GetDistance(customer, insertionInfo.End, solution);
    196196
    197197      double additionalTime = time - (tourInsertionInfo.GetStopInsertionInfo(index) as CVRPTWInsertionInfo).ArrivalTime;
Note: See TracChangeset for help on using the changeset viewer.