Free cookie consent management tool by TermsFeed Policy Generator

Opened 7 years ago

Closed 7 years ago

#2775 closed defect (done)

MultiRealVectorCrossover throws exception when applied during multi-objective optimization

Reported by: abeham Owned by: abeham
Priority: medium Milestone: HeuristicLab 3.3.15
Component: Problems.TestFunctions Version: 3.3.14
Keywords: Cc:


The multi-objective test function problem should properly configure this operator. Specifically, the HeuristicCrossover and the BlendAlphaBetaCrossover are not suited in multi-objective optimization and should be removed by the problem.

Admittedly, it's not entirely the problem's fault as the operators are discovered by the Encoding, which however is agnostic to the number of objectives in the problem.

Change History (5)

comment:1 Changed 7 years ago by mkommend

Yes, I have experienced this issue as well, but never really thought about it. In my opinion there are two options to handle this situation.

  • The multi-obj. problem could alter the operators provided by the encoding by filtering operators and removing them from multi operators.
  • The encoding does not discover/add operators, which are not always applicable. Such operators would have to be added by the concrete problem.

I would prefer the second option, where the problem adds additional operators similar to problem dependent operators.

comment:2 Changed 7 years ago by mkommend

  • Owner set to abeham
  • Status changed from new to assigned

comment:3 Changed 7 years ago by abeham

  • Owner changed from abeham to mkommend
  • Status changed from assigned to reviewing

I implemented the first option which was a smaller change compared to touching every encoding (and every associated problem). I think problem development should stay as simple and clean as possible and the less the problem developer needs to know or care about the more usable our framework is.


  • All single-objective operators inside IMultiOperators are now removed by the multi-objective problem
  • All multi-objective operators inside IMultiOperators are now removed by the single-objective problem

Please review ASAP, this is a core change!

Last edited 7 years ago by abeham (previous) (diff)

comment:4 Changed 7 years ago by mkommend

  • Owner changed from mkommend to abeham
  • Status changed from reviewing to readytorelease

Reviewed r15084 and tested with NSGA-II and multi-obj. test functions. Everything works.

comment:5 Changed 7 years ago by abeham

  • Resolution set to done
  • Status changed from readytorelease to closed

r15108: merged r15084 to stable

Note: See TracTickets for help on using tickets.