Free cookie consent management tool by TermsFeed Policy Generator

Opened 9 years ago

Last modified 5 years ago

#2431 assigned feature request

Run-length distribution (RLD) Analysis — at Version 9

Reported by: abeham Owned by: abeham
Priority: medium Milestone: HeuristicLab 3.3.17
Component: Analysis Version: branch
Keywords: Cc:

Description (last modified by abeham)

Run-length distributions give insight into the required algorithmic effort (in terms of function evaluations or wall-clock time) for reaching a certain target. These distributions can be

The empirical cumulative distribution function can be calculated from several runs of an optimization algorithm. From a first-hit graph several targets will be defined in the objective function and it will be measured when a target is hit by an algorithm. The proportion of all these hits forms the empirical cumulative distribution function (ECDF).

Necessary tasks:

  1. Create analyzers that calculate the quality progress with respect to function evaluations and also with respect to wall-clock time
  2. Create a run collection view that will calculate and compare the ECDF in one chart

TODO:

  • ECDF comparison view:
    • Minimization is assumed when comparing against levels -> extract Maximization parameter from run
    • Logscaling sometimes fails breaking the chart
    • Test with view open and new runs arriving
    • Add feature to calculate fixed-cost and fixed-target values and add them to the runs
  • IRRestarter:
    • Count number of restarts
    • Difficult to abort Algorithm earlier as the Analyzers may not have run

Design issues:

  • Algorithm Execution time is hard to obtain (similar problem with the introduction of terminators)
    • Here algorithms add this as a result
  • ResultParameter's ActualValue property is confusing, I had to lookup usage of this parameter myself
  • Move-based algorithms often output EvaluatedMoves, we should probably have all algorithms output EvaluatedSolutions
  • Analyzers depend on BestAverageWorstQualityAnalyzer, in my opinion best-so-far quality and execution time are results that the algorithm itself must provide and not an analyzer

Change History (9)

comment:1 Changed 9 years ago by abeham

  • Status changed from new to accepted
  • Version changed from 3.3.12 to branch

r12764:

  • branched relevant plugins
  • added analyzer to calculate quality vs evaluation first-hit graph
  • (also added results parameter)

comment:2 Changed 9 years ago by abeham

r12766: forgot to commit

comment:3 Changed 9 years ago by abeham

r12771:

  • Added run collection view
  • Changed name of analyzers
  • Modified algorithms to include Execution Time as a result

Logscaling is still an issue

comment:4 Changed 9 years ago by abeham

  • Description modified (diff)

comment:5 Changed 9 years ago by abeham

  • Description modified (diff)

r12774: minor improvements

comment:6 Changed 9 years ago by abeham

  • Description modified (diff)
  • Summary changed from Algorithm performance comparison by ECDF to Run-length distribution (RLD) Analysis

comment:7 Changed 9 years ago by abeham

r12803: worked on RLD analysis

  • started implementation of IRRRun
  • renamed view from ECDF to RLD
  • reverted algorithms (execution time)
  • changed per clock analyzer

comment:8 Changed 9 years ago by abeham

r12804:

  • worked on IRRestarter (early abort still troublesome)
  • Updated RLD view to allow defining targets
  • Attempting to handle maximization/minimization

Fun detail:

  • HeuristicLab.Analysis references HeuristicLab.Optimization
  • HeuristicLab.Optimization.Views references HeuristicLab.Analysis.Views

IRRestarter is currently placed in HeuristicLab.Analysis, its view in HeuristicLab.Optimization.Views.

comment:9 Changed 9 years ago by abeham

  • Description modified (diff)
Note: See TracTickets for help on using tickets.