3

I'm attempting to use OptaPlanner benchmark blueprints as described at http://docs.jboss.org/optaplanner/release/6.4.0.Final/optaplanner-docs/html_single/index.html#benchmarkBlueprint.

When I use a solverBenchmarkBluePrintType of EVERY_CONSTRUCTION_HEURISTIC_TYPE_WITH_EVERY_LOCAL_SEARCH_TYPE, I get the following error:

The acceptorType (SIMULATED_ANNEALING) currently requires a simulatedAnnealingStartingTemperature (null).

So I tried adding the following to my benchmark.xml file in the inheritedSolverBenchmark section:

<localSearch>
  <acceptor>
  <simulatedAnnealingStartingTemperature>0hard/500soft</simulatedAnnealingStartingTemperature>
  </acceptor>    
</localSearch>

And I get this error:

 The exception of the firstFailureSingleBenchmarkRunner  
(solution_FIRST_FIT-HILL_CLIMBING_0) is chained. /   
java.lang.IllegalStateException Local Search phase (0) needs to start 
from an initialized solution, but the planning variable 
(HatchEventOrderAllocator3bOrder.assignedHatchEvent) is uninitialized
for the entity com.mm.server.inventory.app.HatchEventOrderAllocator3bOrder@7216ab0f).
Initialize the solution by configuring a Construction Heuristic phase before this phase.

It seems that including the localSearch section in the inheritedSolverBenchmark has side effects that I didn't intend.

How can I pass the simulatedAnnealingStartingTemperature to every iteration of the Simulated Annealing algorithm use the blueprint?

Mitch
  • 989
  • 1
  • 9
  • 25

1 Answers1

2

It's a bug (jira linked). I haven't found a way yet to determine a somewhat reasonable SA default temperature (it's too use case specific).

Workaround: just ignore the results of SA in the blueprint's benchmark report.

Possible fixes for jira: remove SA from blueprint or do some stupid default temperature like 10hard/1000soft. The latter might give people the wrong impression that SA is useless on their case, but the former might not get them to give SA a chance at all...

Geoffrey De Smet
  • 26,223
  • 11
  • 73
  • 120