All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.drools.planner.examples.curriculumcourse.benchmark.curriculumCourseSolverBenchmarkConfig.xml Maven / Gradle / Ivy

Go to download

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.

There is a newer version: 6.0.0.Alpha9
Show newest version
<?xml version="1.0" encoding="UTF-8"?>
<solverBenchmarkSuite>
  <benchmarkDirectory>local/data/curriculumcourse</benchmarkDirectory>
  <solverStatisticType>BEST_SOLUTION_CHANGED</solverStatisticType>
  <warmUpSecondsSpend>30</warmUpSecondsSpend>

  <inheritedSolverBenchmark>
    <unsolvedSolutionFile>data/curriculumcourse/unsolved/comp01.xml</unsolvedSolutionFile>
    <unsolvedSolutionFile>data/curriculumcourse/unsolved/comp02.xml</unsolvedSolutionFile>
    <!--<unsolvedSolutionFile>data/curriculumcourse/unsolved/comp03.xml</unsolvedSolutionFile>-->
    <!--<unsolvedSolutionFile>data/curriculumcourse/unsolved/comp04.xml</unsolvedSolutionFile>-->
    <!--<unsolvedSolutionFile>data/curriculumcourse/unsolved/comp05.xml</unsolvedSolutionFile>-->
    <!--<unsolvedSolutionFile>data/curriculumcourse/unsolved/comp06.xml</unsolvedSolutionFile>-->
    <!--<unsolvedSolutionFile>data/curriculumcourse/unsolved/comp07.xml</unsolvedSolutionFile>-->
    <!--<unsolvedSolutionFile>data/curriculumcourse/unsolved/comp08.xml</unsolvedSolutionFile>-->
    <!--<unsolvedSolutionFile>data/curriculumcourse/unsolved/comp09.xml</unsolvedSolutionFile>-->
    <!--<unsolvedSolutionFile>data/curriculumcourse/unsolved/comp10.xml</unsolvedSolutionFile>-->
    <!--<unsolvedSolutionFile>data/curriculumcourse/unsolved/comp11.xml</unsolvedSolutionFile>-->
    <!--<unsolvedSolutionFile>data/curriculumcourse/unsolved/comp12.xml</unsolvedSolutionFile>-->
    <!--<unsolvedSolutionFile>data/curriculumcourse/unsolved/comp13.xml</unsolvedSolutionFile>-->
    <!--<unsolvedSolutionFile>data/curriculumcourse/unsolved/comp14.xml</unsolvedSolutionFile>-->

    <solver>
      <solutionClass>org.drools.planner.examples.curriculumcourse.domain.CurriculumCourseSchedule</solutionClass>
      <planningEntityClass>org.drools.planner.examples.curriculumcourse.domain.Lecture</planningEntityClass>
      <scoreDrl>/org/drools/planner/examples/curriculumcourse/solver/curriculumCourseScoreRules.drl</scoreDrl>
      <scoreDefinition>
        <scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType>
      </scoreDefinition>
      <!--<termination>-->
        <!--&lt;!&ndash;-->
          <!--Official benchmark maximumSecondsSpend allowed on:-->
          <!--ge0ffrey's main pc: 429-->
          <!--ge0ffrey's old pc: 1152-->
        <!--&ndash;&gt;-->
        <!--<maximumSecondsSpend>429</maximumSecondsSpend>-->
      <!--</termination>-->
      <!--<constructionHeuristic>-->
        <!--<constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>-->
      <!--</constructionHeuristic>-->
    </solver>
  </inheritedSolverBenchmark>

  <solverBenchmark>
    <name>FIRST_FIT</name>
    <solver>
      <constructionHeuristic>
        <constructionHeuristicType>FIRST_FIT</constructionHeuristicType>
      </constructionHeuristic>
    </solver>
  </solverBenchmark>
  <solverBenchmark>
    <name>FIRST_FIT_pickEarly</name>
    <solver>
      <constructionHeuristic>
        <constructionHeuristicType>FIRST_FIT</constructionHeuristicType>
        <constructionHeuristicPickEarlyType>FIRST_LAST_STEP_SCORE_EQUAL_OR_IMPROVING</constructionHeuristicPickEarlyType>
      </constructionHeuristic>
    </solver>
  </solverBenchmark>
  <solverBenchmark>
    <name>FIRST_FIT_DECREASING</name>
    <solver>
      <constructionHeuristic>
        <constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>
      </constructionHeuristic>
    </solver>
  </solverBenchmark>
  <solverBenchmark>
    <name>FIRST_FIT_DECREASING_pickEarly</name>
    <solver>
      <constructionHeuristic>
        <constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>
        <constructionHeuristicPickEarlyType>FIRST_LAST_STEP_SCORE_EQUAL_OR_IMPROVING</constructionHeuristicPickEarlyType>
      </constructionHeuristic>
    </solver>
  </solverBenchmark>
  <solverBenchmark>
    <name>BEST_FIT</name>
    <solver>
      <constructionHeuristic>
        <constructionHeuristicType>BEST_FIT</constructionHeuristicType>
      </constructionHeuristic>
    </solver>
  </solverBenchmark>
  <solverBenchmark>
    <name>BEST_FIT_pickEarly</name>
    <solver>
      <constructionHeuristic>
        <constructionHeuristicType>BEST_FIT</constructionHeuristicType>
        <constructionHeuristicPickEarlyType>FIRST_LAST_STEP_SCORE_EQUAL_OR_IMPROVING</constructionHeuristicPickEarlyType>
      </constructionHeuristic>
    </solver>
  </solverBenchmark>
  <solverBenchmark>
    <name>BEST_FIT_DECREASING</name>
    <solver>
      <constructionHeuristic>
        <constructionHeuristicType>BEST_FIT_DECREASING</constructionHeuristicType>
      </constructionHeuristic>
    </solver>
  </solverBenchmark>
  <solverBenchmark>
    <name>BEST_FIT_DECREASING_pickEarly</name>
    <solver>
      <constructionHeuristic>
        <constructionHeuristicType>BEST_FIT_DECREASING</constructionHeuristicType>
        <constructionHeuristicPickEarlyType>FIRST_LAST_STEP_SCORE_EQUAL_OR_IMPROVING</constructionHeuristicPickEarlyType>
      </constructionHeuristic>
    </solver>
  </solverBenchmark>

  <!--<solverBenchmark>-->
    <!--<name>propertyTabu10</name>-->
    <!--<solver>-->
      <!--<localSearch>-->
        <!--<termination>-->
          <!--&lt;!&ndash;<maximumMinutesSpend>6</maximumMinutesSpend>&ndash;&gt;-->
          <!--<maximumSecondsSpend>30</maximumSecondsSpend>-->
        <!--</termination>-->
        <!--<selector>-->
          <!--<selector>-->
            <!--<moveFactoryClass>org.drools.planner.examples.curriculumcourse.solver.move.factory.PeriodChangeMoveFactory</moveFactoryClass>-->
          <!--</selector>-->
          <!--<selector>-->
            <!--<moveFactoryClass>org.drools.planner.examples.curriculumcourse.solver.move.factory.RoomChangeMoveFactory</moveFactoryClass>-->
          <!--</selector>-->
          <!--<selector>-->
            <!--<moveFactoryClass>org.drools.planner.examples.curriculumcourse.solver.move.factory.LectureSwitchMoveFactory</moveFactoryClass>-->
          <!--</selector>-->
        <!--</selector>-->
        <!--<acceptor>-->
          <!--<completePropertyTabuSize>10</completePropertyTabuSize>-->
          <!--<completeSolutionTabuSize>1500</completeSolutionTabuSize>-->
        <!--</acceptor>-->
        <!--<forager>-->
          <!--<minimalAcceptedSelection>900</minimalAcceptedSelection>&lt;!&ndash; TODO tweak me &ndash;&gt;-->
        <!--</forager>-->
      <!--</localSearch>-->
    <!--</solver>-->
  <!--</solverBenchmark>-->
  <!--<solverBenchmark>-->
    <!--<name>simulatedAnnealing100</name>-->
    <!--<solver>-->
      <!--<localSearch>-->
        <!--<termination>-->
          <!--&lt;!&ndash;<maximumMinutesSpend>6</maximumMinutesSpend>&ndash;&gt;-->
          <!--<maximumSecondsSpend>30</maximumSecondsSpend>-->
        <!--</termination>-->
        <!--<selector>-->
          <!--<selector>-->
            <!--<moveFactoryClass>org.drools.planner.examples.curriculumcourse.solver.move.factory.PeriodChangeMoveFactory</moveFactoryClass>-->
          <!--</selector>-->
          <!--<selector>-->
            <!--<moveFactoryClass>org.drools.planner.examples.curriculumcourse.solver.move.factory.RoomChangeMoveFactory</moveFactoryClass>-->
          <!--</selector>-->
          <!--<selector>-->
            <!--<moveFactoryClass>org.drools.planner.examples.curriculumcourse.solver.move.factory.LectureSwitchMoveFactory</moveFactoryClass>-->
          <!--</selector>-->
        <!--</selector>-->
        <!--<acceptor>-->
          <!--<simulatedAnnealingStartingTemperature>0hard/100soft</simulatedAnnealingStartingTemperature>-->
        <!--</acceptor>-->
        <!--<forager>-->
          <!--<minimalAcceptedSelection>4</minimalAcceptedSelection>-->
        <!--</forager>-->
      <!--</localSearch>-->
    <!--</solver>-->
  <!--</solverBenchmark>-->
  <!--<solverBenchmark>-->
    <!--<name>simulatedAnnealing100-propertyTabu10</name>-->
    <!--<solver>-->
      <!--<localSearch>-->
        <!--<termination>-->
          <!--&lt;!&ndash;<maximumMinutesSpend>3</maximumMinutesSpend>&ndash;&gt;-->
          <!--<maximumSecondsSpend>15</maximumSecondsSpend>-->
        <!--</termination>-->
        <!--<selector>-->
          <!--<selector>-->
            <!--<moveFactoryClass>org.drools.planner.examples.curriculumcourse.solver.move.factory.PeriodChangeMoveFactory</moveFactoryClass>-->
          <!--</selector>-->
          <!--<selector>-->
            <!--<moveFactoryClass>org.drools.planner.examples.curriculumcourse.solver.move.factory.RoomChangeMoveFactory</moveFactoryClass>-->
          <!--</selector>-->
          <!--<selector>-->
            <!--<moveFactoryClass>org.drools.planner.examples.curriculumcourse.solver.move.factory.LectureSwitchMoveFactory</moveFactoryClass>-->
          <!--</selector>-->
        <!--</selector>-->
        <!--<acceptor>-->
          <!--<simulatedAnnealingStartingTemperature>0hard/100soft</simulatedAnnealingStartingTemperature>-->
        <!--</acceptor>-->
        <!--<forager>-->
          <!--<minimalAcceptedSelection>4</minimalAcceptedSelection>-->
        <!--</forager>-->
      <!--</localSearch>-->
      <!--<localSearch>-->
        <!--<termination>-->
          <!--&lt;!&ndash;<maximumMinutesSpend>3</maximumMinutesSpend>&ndash;&gt;-->
          <!--<maximumSecondsSpend>15</maximumSecondsSpend>-->
        <!--</termination>-->
        <!--<selector>-->
          <!--<selector>-->
            <!--<moveFactoryClass>org.drools.planner.examples.curriculumcourse.solver.move.factory.PeriodChangeMoveFactory</moveFactoryClass>-->
          <!--</selector>-->
          <!--<selector>-->
            <!--<moveFactoryClass>org.drools.planner.examples.curriculumcourse.solver.move.factory.RoomChangeMoveFactory</moveFactoryClass>-->
          <!--</selector>-->
          <!--<selector>-->
            <!--<moveFactoryClass>org.drools.planner.examples.curriculumcourse.solver.move.factory.LectureSwitchMoveFactory</moveFactoryClass>-->
          <!--</selector>-->
        <!--</selector>-->
        <!--<acceptor>-->
          <!--<completePropertyTabuSize>10</completePropertyTabuSize>-->
          <!--<completeSolutionTabuSize>1500</completeSolutionTabuSize>-->
        <!--</acceptor>-->
        <!--<forager>-->
          <!--<minimalAcceptedSelection>900</minimalAcceptedSelection>&lt;!&ndash; TODO tweak me &ndash;&gt;-->
        <!--</forager>-->
      <!--</localSearch>-->
    <!--</solver>-->
  <!--</solverBenchmark>-->
</solverBenchmarkSuite>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy