2016-04-22 1 views
2

Je tente d'utiliser les plans de test OptaPlanner comme décrit au http://docs.jboss.org/optaplanner/release/6.4.0.Final/optaplanner-docs/html_single/index.html#benchmarkBlueprint.Comment spécifier simulatedAnnealingStartingTemperature à l'aide des plans de test OptaPlanner

Lorsque j'utilise un solverBenchmarkBluePrintType de EVERY_CONSTRUCTION_HEURISTIC_TYPE_WITH_EVERY_LOCAL_SEARCH_TYPE, je reçois l'erreur suivante:

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

J'ai essayé d'ajouter ce qui suit à mon fichier benchmark.xml dans la section inheritedSolverBenchmark:

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

Et Je reçois cette erreur:

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 [email protected]ab0f). 
Initialize the solution by configuring a Construction Heuristic phase before this phase. 

Il semble que l'inclusion de la section localSearch dans le inheritedSolverBenchmark a des effets secondaires que je n'avais pas prévus. Comment puis-je transmettre le simulatedAnnealingStartingTemperature à chaque itération de l'algorithme de recuit simulé utiliser le blueprint?

Répondre

1

C'est a bug (jira lié). Je n'ai pas encore trouvé de moyen de déterminer une température par défaut SA quelque peu raisonnable (elle est trop spécifique à un cas d'utilisation).

Solution de contournement: ignorez simplement les résultats de SA dans le rapport de référence du plan directeur.

Corrections possibles pour jira: supprime SA du plan ou fait une température par défaut stupide comme 10hard/1000soft. Ce dernier pourrait donner aux gens la fausse impression que SA est inutile sur leur cas, mais le premier pourrait ne pas les amener à donner une chance à SA ...