Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/10/10 17:40:41 (14 years ago)
Author:
svonolfe
Message:

Added some Potvin operators (RBX, SBX, LSM) (#1039)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.VehicleRouting/3.3/Encodings/Potvin/Crossovers/SequenceBasedCrossover.cs

    r4179 r4186  
    3535    public SequenceBasedCrossover()
    3636      : base() { }
    37    
    38     private Tour FindRoute(PotvinEncoding solution, int city) {
    39       Tour found = null;
    40 
    41       foreach (Tour tour in solution.Tours) {
    42         if (tour.Cities.Contains(city)) {
    43           found = tour;
    44           break;
    45         }
    46       }
    47 
    48       return found;
    49     }
    50    
     37       
    5138    protected override PotvinEncoding Crossover(IRandom random, PotvinEncoding parent1, PotvinEncoding parent2) {
    5239      PotvinEncoding child = parent1.Clone() as PotvinEncoding;
     
    7865          child.Unrouted.Add(city);
    7966
    80       if (Repair(random, child, newTour))
     67      if (Feasible(newTour) &&
     68          Repair(random, child, newTour)) {
    8169        return child;
    82       else {
    83         if(random.NextDouble() < 0.5)
     70      } else {
     71        if (random.NextDouble() < 0.5)
    8472          return parent1.Clone() as PotvinEncoding;
    8573        else
Note: See TracChangeset for help on using the changeset viewer.