Opened 5 weeks ago

Last modified 5 weeks 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 5 weeks ago by mkommend

  • Description modified (diff)
  • Status changed from new to accepted

comment:2 Changed 5 weeks ago by mkommend

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.

comment:3 Changed 5 weeks 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.