Opened 9 years ago

Closed 9 years ago

#1188 closed feature request (done)

Implement population diversity analysis

Reported by: swinkler Owned by: swagner
Priority: medium Milestone: HeuristicLab 3.3.2
Component: Analysis Version: 3.3.2
Keywords: Cc:

Description


Change History (23)

comment:1 Changed 9 years ago by swinkler

  • Status changed from new to accepted

comment:2 Changed 9 years ago by abeham

  • Version changed from 3.3 to branch

comment:3 Changed 9 years ago by swagner

  • Component changed from Problems.TravelingSalesman to Analysis
  • Summary changed from Implement population diversity analysis for TSP to Implement population diversity analysis

comment:4 Changed 9 years ago by swagner

Several commits by swinkler between r4402 and r4701.

comment:5 Changed 9 years ago by swagner

Merged into trunk in r4703.

comment:6 Changed 9 years ago by swagner

Updated GA & TSP sample in r4705.

comment:7 Changed 9 years ago by swagner

  • Owner changed from swinkler to swagner
  • Status changed from accepted to assigned

comment:8 Changed 9 years ago by swagner

  • Status changed from assigned to accepted

comment:9 Changed 9 years ago by swagner

Worked on in r4715.

comment:10 Changed 9 years ago by swagner

Removed branch in r4738.

comment:11 Changed 9 years ago by swagner

Worked on in r4739.

comment:12 Changed 9 years ago by swagner

Worked on in r4748.

comment:13 Changed 9 years ago by swagner

  • Version changed from branch to 3.3.1

comment:14 Changed 9 years ago by swagner

  • Owner changed from swagner to gkronber
  • Status changed from accepted to reviewing

comment:15 Changed 9 years ago by swagner

  • Milestone changed from HeuristicLab x.x.x to HeuristicLab 3.3.2

comment:16 Changed 9 years ago by gkronber

Reviewed classes HeatMap, HeatMapHistory, PopulationDiversityAnalyzer, DataTableHistory, TSPPopulationDiversityAnalyzer and made minor changes with r4848.

Last edited 9 years ago by gkronber (previous) (diff)

comment:17 Changed 9 years ago by gkronber

Edge similarity for TSP is a bit difficult to understand but seems to be OK.

private double CalculateSimilarity(int[] edgesA, int[] edgesB) {
      // calculate relative number of identical edges
      int identicalEdges = 0;
      for (int i = 0; i < edgesA.Length; i++) {
        if ((edgesA[i] == edgesB[i]) || (edgesA[edgesB[i]] == i))
          identicalEdges++;
      }
      return ((double)identicalEdges) / edgesA.Length;
    }

comment:18 Changed 9 years ago by gkronber

  • Owner changed from gkronber to swagner

Please review my changes and assign the ticket for release.

comment:19 follow-up: Changed 9 years ago by gkronber

Additional remarks: in the PopulationDiversityAnalyzer it is implicitly assumed that the similarities calculated by specialized diversity analyzers are scaled to the range [0..1]. This assumption is never checked explicitly and implementers of specialized diversity analyzers must know this.

It would be possible to implement the abstract PopulationDiversityAnalyzer class in a way that it works correctly for arbitrary similarity ranges.

comment:20 Changed 9 years ago by gkronber

Reviewed classes DataRowVisualProperties, DataRow, DataTable, HeatMapView, HeatMapHistoryView and DataTableHistoryView

comment:21 in reply to: ↑ 19 Changed 9 years ago by swagner

Replying to gkronber:

Additional remarks: in the PopulationDiversityAnalyzer it is implicitly assumed that the similarities calculated by specialized diversity analyzers are scaled to the range [0..1]. This assumption is never checked explicitly and implementers of specialized diversity analyzers must know this.

It would be possible to implement the abstract PopulationDiversityAnalyzer class in a way that it works correctly for arbitrary similarity ranges.

Yes, that's true. I added an additional check in PopulationDiversityAnalyzer to ensure that the similarities are in the intervall [0;1] (see r4862).

comment:22 Changed 9 years ago by swagner

  • Status changed from reviewing to readytorelease

comment:23 Changed 9 years ago by swagner

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