Opened 14 months ago

Closed 9 months ago

#2991 closed enhancement (done)

DiversitySelector for symbolic data analysis problems

Reported by: bburlacu Owned by: gkronber
Priority: medium Milestone: HeuristicLab 3.3.16
Component: Problems.DataAnalysis.Symbolic Version: trunk
Keywords: merged Cc:

Description

The diversity selector wraps any other selection operator (proportional, tournament, etc), but instead of selecting based on fitness it selects based on population diversity (calculated using the hash-based similarity measure).

Preliminary testing suggests that this selection method works quite well in combination with other selectors (eg as a male selector in gender-specific selection) or with offspring selection.

Change History (12)

comment:1 Changed 14 months ago by bburlacu

r16623: DiversitySelector initial implementation. A weight parameter was added to control the importance of the diversity term. Final "diversity" value computed as w * diversity + (1 - w) * fitness (similar for minimization).

r16626: Add plugin dependency to Plugin.cs.frame

Last edited 14 months ago by bburlacu (previous) (diff)

comment:2 Changed 12 months ago by gkronber

  • Owner changed from bburlacu to gkronber
  • Status changed from new to assigned

comment:3 Changed 12 months ago by gkronber

  • Status changed from assigned to reviewing

comment:4 follow-up: Changed 12 months ago by gkronber

Reviewed r16623 and r16626. I'm not sure what this code is supposed to accomplish:

  private void CopySelected_ValueChanged(object sender, EventArgs e) {
    if (CopySelected.Value != true) {
      CopySelected.Value = true;
    }
  }

Otherwise the changes are fine. I tested the DiversitySelector and did not get any errors.

comment:5 Changed 12 months ago by gkronber

  • Owner changed from gkronber to bburlacu
  • Status changed from reviewing to assigned

comment:6 in reply to: ↑ 4 Changed 12 months ago by bburlacu

Replying to gkronber:

Reviewed r16623 and r16626. I'm not sure what this code is supposed to accomplish:

  private void CopySelected_ValueChanged(object sender, EventArgs e) {
    if (CopySelected.Value != true) {
      CopySelected.Value = true;
    }
  }

Otherwise the changes are fine. I tested the DiversitySelector and did not get any errors.

Originally, the DiversitySelector tried to prevent crossover between too similar individuals, so I adapted it from the NoSameMatesSelector. The snippet in question is an artifact from there and should probably be removed.

comment:7 Changed 12 months ago by gkronber

r16839: made sure CopySelected is really always true

comment:8 Changed 12 months ago by gkronber

  • Owner changed from bburlacu to gkronber
  • Status changed from assigned to readytorelease

comment:9 Changed 9 months ago by abeham

  • Keywords depends-2520 added

comment:10 Changed 9 months ago by abeham

  • Keywords depends-2971 added; depends-2520 removed

Merging the changes results in a conflict with #2971 as both make changes to the .csproj file.

The change was unrelated, #2971 is still a branch, there was a changeset in the trunk (r16672) that referenced #2971, but which was only a trunk commit

Last edited 9 months ago by abeham (previous) (diff)

comment:11 Changed 9 months ago by abeham

  • Keywords merged added; depends-2971 removed

r17140: merged to stable

  • fixed merge conflict (order of items added to csproj, first DiversitySelector.cs, then SymbolicDataAnalysisExpressionTreeAverageSimilarityCalculator.cs

comment:12 Changed 9 months ago by abeham

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