Opened 3 years ago
Last modified 3 years ago
#3144 reviewing defect
Results of MultiEncodingOperators are not stable / reproducable
Reported by: | mkommend | Owned by: | abeham |
---|---|---|---|
Priority: | high | Milestone: | HeuristicLab 3.3.17 |
Component: | Optimization | Version: | trunk |
Keywords: | Cc: |
Description (last modified by mkommend)
If an algorithm uses a MultiEncoding for representing individuals and hence the respective MultiEncodingOperators, the results could vary although the random seed is fixed and a SequentialEngine for the algorithm execution is used.
Change History (3)
comment:1 Changed 3 years ago by mkommend
- Description modified (diff)
- Status changed from new to accepted
comment:2 Changed 3 years ago by mkommend
comment:3 Changed 3 years ago by mkommend
- Owner changed from mkommend to abeham
- Status changed from accepted to reviewing
r18153: Ordered discovered parameters of MultiEncodingOperator before operation creation.
Note: See
TracTickets for help on using
tickets.
After bug hunting for several hours, we discovered that MultiEncodingOperators have dedicated operators saved in a separate parameter for each individual part of the MultiEncoding. This parameters are iterated and a new operation is spawned for parameter / operator that is executed on the part of the encoding.
The issue now is that parameters are internally saved within a dictionary. Iteration over an dictionary does not guarantee the same order, hence the execution order of the spawned operations differs and in turn the algorithm produces different results.