Opened 3 months ago

Last modified 5 weeks ago

#2991 readytorelease enhancement

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: 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 (8)

comment:1 Changed 3 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 3 months ago by bburlacu (previous) (diff)

comment:2 Changed 8 weeks ago by gkronber

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

comment:3 Changed 8 weeks ago by gkronber

  • Status changed from assigned to reviewing

comment:4 follow-up: Changed 7 weeks 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 7 weeks ago by gkronber

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

comment:6 in reply to: ↑ 4 Changed 7 weeks 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 5 weeks ago by gkronber

r16839: made sure CopySelected is really always true

comment:8 Changed 5 weeks ago by gkronber

  • Owner changed from bburlacu to gkronber
  • Status changed from assigned to readytorelease
Note: See TracTickets for help on using tickets.