Opened 2 years ago

Closed 2 years ago

#2332 closed feature request (done)

Overhaul operators for similarity calculation and analysis

Reported by: ascheibe Owned by: mkommend
Priority: medium Milestone: HeuristicLab 3.3.12
Component: Optimization Version: 3.3.11
Keywords: Cc:

Description (last modified by jkarder)

  • Quality and maximization parameters are not needed in SingleObjectivePopulationDiversityAnalyzer
  • The SimilarityCalculator should be a ConstrainedValueParameter
  • Operators that use similarity calculators can look
  • The name of the SingleObjectivePopulationDiversityAnalyzer should be changed to PopulationSimilarityAnalyzer
  • Add parameter that defines how crowd similarity is calculated: commutative and noncommutative

Change History (29)

comment:1 Changed 2 years ago by ascheibe

  • Summary changed from Improve DiversityCalculators to Improve SimilarityCalculators

comment:2 Changed 2 years ago by ascheibe

  • Description modified (diff)
  • Owner changed from ascheibe to jkarder
  • Status changed from new to assigned

comment:3 Changed 2 years ago by jkarder

  • Description modified (diff)
  • Status changed from assigned to accepted
  • Summary changed from Improve SimilarityCalculators to Improve PopulationDiversityAnalyzer

comment:4 Changed 2 years ago by jkarder

  • Description modified (diff)

comment:5 Changed 2 years ago by jkarder

  • Description modified (diff)
  • Summary changed from Improve PopulationDiversityAnalyzer to Overhaul operators for similarity calculation and analysis

comment:6 Changed 2 years ago by jkarder

  • Description modified (diff)

comment:7 Changed 2 years ago by jkarder

r12069: refactored operators and analyzers

  • removed quality and maximization parameters in SingleObjectivePopulationDiversityAnalyzer
  • renamed SingleObjectivePopulationDiversityAnalyzer to PopulationSimilarityAnalyzer
  • added ConstrainedValueParameter for similarity calculators of analyzer
  • added ValueLookupParameter for similarity calculator of the following operators:
    • DuplicatesSelector, ProgressiveOffspringPreserver, ReferenceSetUpdateMethod, SolutionPoolUpdateMethod
  • removed some wiring code in specific problems

comment:8 Changed 2 years ago by jkarder

  • Owner changed from jkarder to mkommend
  • Status changed from accepted to reviewing

Could you please have a look at the changes in r12069? I still need to implement noncommutative similarity calculation, but some feedback would be nice. Thanks!

comment:9 Changed 2 years ago by jkarder

r12070: added SolutionSimilarityCalculator.IsCommutative

comment:10 Changed 2 years ago by jkarder

Please have a look at r12070 as well. Thanks!

comment:11 Changed 2 years ago by mkommend

Reviewed and tested changes r12069 and r12070.

comment:12 Changed 2 years ago by bburlacu

r12076: Changed the way the update counter is incremented in the PopulationSimilarityAnalyzer so that it's easier to use in the analyzers derived from this class.

comment:13 Changed 2 years ago by bburlacu

r12085: Move SolutionVariableName and QualityVariableName properties to ISolutionSimilarityCalculator, implement Equals and GetHashCode in the SolutionSimilarityCalculator

comment:14 Changed 2 years ago by jkarder

r12087: removed unused similarity analyzer properties

comment:15 Changed 2 years ago by jkarder

r12102: used ISolutionSimilarityCalculator instead of ISingleObjectiveSolutionSimilarityCalculator

  • changed interfaces
  • removed ISimilarityCalculatorView
  • renamed ISingleObjectiveSolutionSimilarityCalculatorView to ISolutionSimilarityCalculatorView
  • algorithms no longer add QualitySimilarityCalculator and NoSimilarityCalculator; problems do that now

comment:16 Changed 2 years ago by jkarder

r12106: fixed build fail

  • algorithms add generic similarity calculators if needed (i.e. problem does not provide similarity calculators)
  • added pragmas to suppress obsolete warnings

comment:17 Changed 2 years ago by mkommend

  • Owner changed from mkommend to jkarder
  • Status changed from reviewing to assigned

Reviewed r12076, r12085, r12087, r12102, r12106.

Please add the quality and nosimilartiy calculator if these are not present and not only if no similarity calculators are present. Furthermore, the quality calculator has to be wired to the evaluator.quality parameter in the scatter search and rapga if it has been added by the algorithm.

comment:18 Changed 2 years ago by jkarder

  • Status changed from assigned to accepted

comment:19 Changed 2 years ago by jkarder

r12113: quality and no-similarity calculators are added only if they are not present

comment:20 Changed 2 years ago by jkarder

  • Owner changed from jkarder to mkommend
  • Status changed from accepted to reviewing

Thanks for the review! The quality calculator is wired, but the view does not reflect changes to the name properties. See #2349.

Replying to mkommend:

Furthermore, the quality calculator has to be wired to the evaluator.quality parameter in the scatter search and rapga if it has been added by the algorithm.

comment:21 Changed 2 years ago by mkommend

  • Owner changed from mkommend to jkarder

comment:22 Changed 2 years ago by jkarder

  • Status changed from reviewing to assigned

comment:23 Changed 2 years ago by jkarder

  • Status changed from assigned to accepted

comment:24 Changed 2 years ago by jkarder

r12126:

  • fixed SolutionSimilarityCalculator.Equals
  • problems now wire all of their ISolutionSimilarityCalculators

comment:25 Changed 2 years ago by bburlacu

r12129: SolutionSimilarityCalculator: throw exception in the CheckQualityEquality method if the double arrays are not of the same length, simplify equality check for double arrays.

comment:26 Changed 2 years ago by jkarder

  • Owner changed from jkarder to mkommend
  • Status changed from accepted to reviewing

comment:27 Changed 2 years ago by mkommend

  • Status changed from reviewing to readytorelease

Reviewed r12113, r12126, r12129.

Last edited 2 years ago by mkommend (previous) (diff)

comment:28 Changed 2 years ago by mkommend

r12280: Merged all changes from this ticket into stable.

comment:29 Changed 2 years ago by mkommend

  • Resolution set to done
  • Status changed from readytorelease to closed
Note: See TracTickets for help on using tickets.