org.drools.planner.examples.app.benchmark.generalDroolsPlannerBenchmarkConfig.xml Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of drools-planner-examples Show documentation
Show all versions of drools-planner-examples Show documentation
Drools Planner optimizes automated planning by combining metaheuristic search algorithms with rule
engine powered score calculation. This is the drools-planner-examples module which contains examples on how to use
Drools Planner.
<?xml version="1.0" encoding="UTF-8"?> <solverBenchmarkSuite> <benchmarkDirectory>local/data/general</benchmarkDirectory> <solverStatisticType>BEST_SOLUTION_CHANGED</solverStatisticType> <warmUpSecondsSpend>30</warmUpSecondsSpend> <solverBenchmark> <name>travelingtournament_tabuSearch</name> <unsolvedSolutionFile>data/travelingtournament/smart/unsolved/1-nl14.xml</unsolvedSolutionFile> <solver> <solutionClass>org.drools.planner.examples.travelingtournament.domain.TravelingTournament</solutionClass> <planningEntityClass>org.drools.planner.examples.travelingtournament.domain.Match</planningEntityClass> <scoreDrl>/org/drools/planner/examples/travelingtournament/solver/smart/smartTravelingTournamentScoreRules.drl</scoreDrl> <scoreDefinition> <scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType> </scoreDefinition> <termination> <maximumMinutesSpend>5</maximumMinutesSpend> </termination> <localSearch> <selector> <moveFactoryClass>org.drools.planner.examples.travelingtournament.solver.smart.move.factory.SmartTravelingTournamentMoveFactory</moveFactoryClass> </selector> <acceptor> <completeSolutionTabuSize>1500</completeSolutionTabuSize> <completeMoveTabuSize>7</completeMoveTabuSize> </acceptor> <forager> <pickEarlyType>NEVER</pickEarlyType> <!-- Real world problems require to use of <minimalAcceptedSelection> --> </forager> </localSearch> </solver> </solverBenchmark> <!-- TODO crashes loading of xstream file because Day is not unique --> <!--<solverBenchmark>--> <!--<name>curriculumcourse_tabuSearch</name>--> <!--<unsolvedSolutionFile>data/curriculumcourse/unsolved/comp08.xml</unsolvedSolutionFile>--> <!-- ... --> <!--</solverBenchmark>--> <solverBenchmark> <name>examination_tabuSearch</name> <unsolvedSolutionFile>data/examination/unsolved/exam_comp_set2.xml</unsolvedSolutionFile> <solver> <solutionClass>org.drools.planner.examples.examination.domain.Examination</solutionClass> <planningEntityClass>org.drools.planner.examples.examination.domain.Exam</planningEntityClass> <scoreDrl>/org/drools/planner/examples/examination/solver/examinationScoreRules.drl</scoreDrl> <scoreDefinition> <scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType> </scoreDefinition> <termination> <maximumMinutesSpend>10</maximumMinutesSpend> </termination> <customSolverPhase> <customSolverPhaseCommandClass>org.drools.planner.examples.examination.solver.solution.initializer.ExaminationStartingSolutionInitializer</customSolverPhaseCommandClass> </customSolverPhase> <localSearch> <selector> <selector> <moveFactoryClass>org.drools.planner.examples.examination.solver.move.factory.PeriodChangeMoveFactory</moveFactoryClass> </selector> <selector> <moveFactoryClass>org.drools.planner.examples.examination.solver.move.factory.RoomChangeMoveFactory</moveFactoryClass> </selector> <selector> <moveFactoryClass>org.drools.planner.examples.examination.solver.move.factory.ExamSwitchMoveFactory</moveFactoryClass> </selector> </selector> <acceptor> <completeSolutionTabuSize>1000</completeSolutionTabuSize> <completePropertyTabuSize>10</completePropertyTabuSize> </acceptor> <forager> <pickEarlyType>NEVER</pickEarlyType> <minimalAcceptedSelection>1400</minimalAcceptedSelection> </forager> </localSearch> </solver> </solverBenchmark> <!-- TODO crashes loading of xstream file because Room is not unique --> <!--<solverBenchmark>--> <!--<name>pas_tabuSearch</name>--> <!--<unsolvedSolutionFile>data/pas/unsolved/testdata01.xml</unsolvedSolutionFile>--> <!--<solver>--> <!--<solutionClass>org.drools.planner.examples.pas.domain.PatientAdmissionSchedule</solutionClass>--> <!--<planningEntityClass>org.drools.planner.examples.pas.domain.BedDesignation</planningEntityClass>--> <!--<scoreDrl>/org/drools/planner/examples/pas/solver/patientAdmissionScheduleBaseScoreRules.drl</scoreDrl>--> <!--<scoreDefinition>--> <!--<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>--> <!--</scoreDefinition>--> <!--<termination>--> <!--<maximumMinutesSpend>5</maximumMinutesSpend>--> <!--</termination>--> <!--<customSolverPhase>--> <!--<customSolverPhaseCommandClass>org.drools.planner.examples.pas.solver.solution.initializer.PatientAdmissionScheduleStartingSolutionInitializer</customSolverPhaseCommandClass>--> <!--</customSolverPhase>--> <!--<localSearch>--> <!--<selector>--> <!--<selector>--> <!--<moveFactoryClass>org.drools.planner.examples.pas.solver.move.factory.BedDesignationPillarPartSwitchMoveFactory</moveFactoryClass>--> <!--</selector>--> <!--</selector>--> <!--<acceptor>--> <!--<completeSolutionTabuSize>1000</completeSolutionTabuSize>--> <!--<completeUndoMoveTabuSize>3</completeUndoMoveTabuSize>--> <!--</acceptor>--> <!--<forager>--> <!--<pickEarlyType>NEVER</pickEarlyType>--> <!--<minimalAcceptedSelection>500</minimalAcceptedSelection>--> <!--</forager>--> <!--</localSearch>--> <!--</solver>--> <!--</solverBenchmark>--> <solverBenchmark> <name>nurseRostering_tabuSearch</name> <unsolvedSolutionFile>data/nurserostering/unsolved/medium01.xml</unsolvedSolutionFile> <solver> <solutionClass>org.drools.planner.examples.nurserostering.domain.NurseRoster</solutionClass> <planningEntityClass>org.drools.planner.examples.nurserostering.domain.ShiftAssignment</planningEntityClass> <scoreDrl>/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl</scoreDrl> <scoreDefinition> <scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType> </scoreDefinition> <termination> <maximumMinutesSpend>10</maximumMinutesSpend> </termination> <customSolverPhase> <customSolverPhaseCommandClass>org.drools.planner.examples.nurserostering.solver.solution.initializer.NurseRosteringStartingSolutionInitializer</customSolverPhaseCommandClass> </customSolverPhase> <localSearch> <selector> <selector> <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeChangeMoveFactory</moveFactoryClass> </selector> <selector> <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.ShiftAssignmentSwitchMoveFactory</moveFactoryClass> </selector> <selector> <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.ShiftAssignmentPillarPartSwitchMoveFactory</moveFactoryClass> </selector> </selector> <acceptor> <completeSolutionTabuSize>1000</completeSolutionTabuSize> <completePropertyTabuSize>11</completePropertyTabuSize> </acceptor> <forager> <minimalAcceptedSelection>800</minimalAcceptedSelection> </forager> </localSearch> </solver> </solverBenchmark> <solverBenchmark> <name>nurseRostering_simulatedAnnealing</name> <unsolvedSolutionFile>data/nurserostering/unsolved/medium01.xml</unsolvedSolutionFile> <solver> <solutionClass>org.drools.planner.examples.nurserostering.domain.NurseRoster</solutionClass> <planningEntityClass>org.drools.planner.examples.nurserostering.domain.ShiftAssignment</planningEntityClass> <scoreDrl>/org/drools/planner/examples/nurserostering/solver/nurseRosteringScoreRules.drl</scoreDrl> <scoreDefinition> <scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType> </scoreDefinition> <termination> <maximumMinutesSpend>10</maximumMinutesSpend> </termination> <customSolverPhase> <customSolverPhaseCommandClass>org.drools.planner.examples.nurserostering.solver.solution.initializer.NurseRosteringStartingSolutionInitializer</customSolverPhaseCommandClass> </customSolverPhase> <localSearch> <selector> <selector> <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeChangeMoveFactory</moveFactoryClass> </selector> <selector> <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.ShiftAssignmentSwitchMoveFactory</moveFactoryClass> </selector> <selector> <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.ShiftAssignmentPillarPartSwitchMoveFactory</moveFactoryClass> </selector> </selector> <acceptor> <simulatedAnnealingStartingTemperature>0hard/8soft</simulatedAnnealingStartingTemperature> <completePropertyTabuSize>5</completePropertyTabuSize> </acceptor> <forager> <!--<pickEarlyType>FIRST_BEST_SCORE_IMPROVING</pickEarlyType>--> <minimalAcceptedSelection>4</minimalAcceptedSelection> </forager> </localSearch> </solver> </solverBenchmark> </solverBenchmarkSuite>