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:
- Create analyzers that calculate the quality progress with respect to function evaluations and also with respect to wall-clock time
- 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
comment:2 Changed 9 years ago by abeham
r12766: forgot to commit
comment:3 Changed 9 years ago by abeham
- 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: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
- 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)
r12764: