Opened 9 years ago
Closed 8 years ago
#2249 closed defect (done)
BestScopeSolutionAnalyzer chains previous best solutions in the scope
Reported by: | abeham | Owned by: | abeham |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 3.3.11 |
Component: | Analysis | Version: | 3.3.10 |
Keywords: | Cc: |
Description
If the "BestSolution" is placed in the same scope that the analyzer clones as best solution it will create a lengthy chain. The analyzer should either not put its "BestSolution" in the scope and only keep it inside the results.
Another problem, if the scope to apply this analyzer on is the global scope it will have to clone a lot of variables such as quality charts and even the results collection will be cloned etc.
Algorithms should be designed or rewritten to always put solutions in a sub-scope of the global scope and never inside the global scope itself. This should be enforced as a design guideline for developing algorithms.
Change History (12)
comment:1 Changed 9 years ago by abeham
- Owner set to architects
- Status changed from new to assigned
comment:2 Changed 8 years ago by gkronber
comment:3 Changed 8 years ago by gkronber
- Owner changed from architects to abeham
comment:4 Changed 8 years ago by mkommend
- Owner changed from abeham to mkommend
- Status changed from assigned to accepted
comment:5 Changed 8 years ago by mkommend
- Owner changed from mkommend to abeham
- Status changed from accepted to reviewing
r11615: Refactored best scope solution analyzer.
- Removed lookup parameters and stored solution only in the results and not in the scope.
- Added type check for results.
- Removed cloning of subscopes.
The BestScopeSolution does not throw an exception if it is applied on the global scope.
comment:6 Changed 8 years ago by mkommend
r11616: Removed BestScopeSolutionAnalyzer.BestKnownSolution parameter wiring in ExternalEvaluationProblem.
comment:7 Changed 8 years ago by mkommend
- Owner changed from abeham to mkommend
- Status changed from reviewing to assigned
comment:8 Changed 8 years ago by mkommend
- Status changed from assigned to accepted
comment:9 Changed 8 years ago by mkommend
- Owner changed from mkommend to abeham
- Status changed from accepted to reviewing
r11618: Added fixed value parameter in BestScopeSolutionAnalyzer to enable changing the produced result name.
comment:10 Changed 8 years ago by abeham
- Owner changed from abeham to mkommend
I reviewed the changes and tested the operator. The erratic behavior is still present e.g. in the LM-BFGS algorithm as still the whole scope is cloned (including the results). We could change that algorithm, but in the interest of time, I fixed the recursion in that I excluded the results collection to be cloned in a similar way to how you exclude subscopes to be cloned.
r11854: Added code to remove obsolete parameters in AfterDeserialization hook r11856: Prevent recursive cloning of best solution in results
Please have a quick look at the changes and forward to release or discuss if inappropriate in your opinion.
comment:11 Changed 8 years ago by mkommend
- Owner changed from mkommend to abeham
- Status changed from reviewing to readytorelease
comment:12 Changed 8 years ago by abeham
- Resolution set to done
- Status changed from readytorelease to closed
r11906: merged to stable
Discussion in architects meeting: Analyzer should throw an exception if it is applied to the global scope. Subsequently, all algorithms that write solutions to the global scope should be fixed.