Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/20/12 17:00:09 (12 years ago)
Author:
jkarder
Message:

#1331:

  • added problem specific improvement operators (KnapsackImprovementOperator, TravelingSalesmanImprovementOperator)
  • added custom interface (IScatterSearchTargetProcessor) for Scatter Search specific operators that use a target parameter
  • added custom operator (OffspringProcessor) to process multiple children that were created by crossovers
  • extracted diversity calculation and added problem/encoding specific operators (BinaryVectorDiversityCalculator, PermutationDiversityCalculator) for it
  • added parameters and adjusted types
  • adjusted event handling
  • minor code improvements
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ScatterSearch/HeuristicLab.Algorithms.ScatterSearch/3.3/ReferenceSetUpdateMethod.cs

    r7740 r7744  
    4646      get { return (IValueLookupParameter<IntValue>)Parameters["ReferenceSetSize"]; }
    4747    }
    48     public IValueLookupParameter<IItem> QualityParameter {
    49       get { return (IValueLookupParameter<IItem>)Parameters["Quality"]; }
     48    public IValueLookupParameter<IItem> TargetParameter {
     49      get { return (IValueLookupParameter<IItem>)Parameters["Target"]; }
     50    }
     51    public IValueLookupParameter<DiversityCalculator> DiversityCalculatorParameter {
     52      get { return (IValueLookupParameter<DiversityCalculator>)Parameters["DiversityCalculator"]; }
    5053    }
    5154    #endregion
     
    6164      get { return ReferenceSetSizeParameter.ActualValue; }
    6265    }
    63     private IItem Quality {
    64       get { return QualityParameter.ActualValue; }
     66    private IItem Target {
     67      get { return TargetParameter.ActualValue; }
     68    }
     69    private DiversityCalculator DiversityCalculator {
     70      get { return DiversityCalculatorParameter.ActualValue; }
    6571    }
    6672    #endregion
     
    8086      Parameters.Add(new ValueLookupParameter<IntValue>("NumberOfHighQualitySolutions"));
    8187      Parameters.Add(new ValueLookupParameter<IntValue>("ReferenceSetSize"));
    82       Parameters.Add(new ValueLookupParameter<IItem>("Quality"));
     88      Parameters.Add(new ValueLookupParameter<IItem>("Target"));
     89      Parameters.Add(new ValueLookupParameter<DiversityCalculator>("DiversityCalculator"));
    8390      #endregion
     91      TargetParameter.ActualName = "KnapsackSolution"; // temporary solution for the knapsack problem
    8492    }
    8593
     
    8896      foreach (var pScope in CurrentScope.SubScopes[0].SubScopes) {
    8997        int diversity = 0;
    90         var pSol = pScope.Variables[QualityParameter.ActualName].Value;
     98        var pSol = pScope.Variables[TargetParameter.ActualName].Value;
    9199        foreach (var rScope in CurrentScope.SubScopes[1].SubScopes) {
    92           var rSol = rScope.Variables[QualityParameter.ActualName].Value;
    93           if (pSol != null && rSol != null) diversity += Knapsack.DiversityCalculator.CalculateDiversity(pSol, rSol);
     100          var rSol = rScope.Variables[TargetParameter.ActualName].Value;
     101          diversity += DiversityCalculator.ExecuteCalculation(pSol, rSol);
    94102        }
    95103        population[pScope] = diversity;
Note: See TracChangeset for help on using the changeset viewer.