<?xml version="1.0" encoding="UTF-8"?>
<solver xmlns="https://www.optaplanner.org/xsd/solver" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://www.optaplanner.org/xsd/solver https://www.optaplanner.org/xsd/solver/solver.xsd">
  <!-- To slowly prove there are no bugs in this code -->
  <!--<environmentMode>FULL_ASSERT</environmentMode>-->
  <!-- To solve faster by saturating multiple CPU cores -->
  <!--<moveThreadCount>AUTO</moveThreadCount>-->

  <!-- Domain model configuration -->
  <solutionClass>org.optaplanner.examples.cloudbalancing.domain.CloudBalance</solutionClass>
  <entityClass>org.optaplanner.examples.cloudbalancing.domain.CloudProcess</entityClass>

  <!-- Score configuration -->
  <scoreDirectorFactory>
    <!--<easyScoreCalculatorClass>org.optaplanner.examples.cloudbalancing.optional.score.CloudBalancingEasyScoreCalculator</easyScoreCalculatorClass>-->
    <!--<easyScoreCalculatorClass>org.optaplanner.examples.cloudbalancing.optional.score.CloudBalancingMapBasedEasyScoreCalculator</easyScoreCalculatorClass>-->
    <constraintProviderClass>org.optaplanner.examples.cloudbalancing.score.CloudBalancingConstraintProvider</constraintProviderClass>
    <!--<incrementalScoreCalculatorClass>org.optaplanner.examples.cloudbalancing.optional.score.CloudBalancingIncrementalScoreCalculator</incrementalScoreCalculatorClass>-->
    <!--<scoreDrl>org/optaplanner/examples/cloudbalancing/optional/score/cloudBalancingConstraints.drl</scoreDrl>-->
    <initializingScoreTrend>ONLY_DOWN</initializingScoreTrend>
    <!--<assertionScoreDirectorFactory>-->
      <!--<easyScoreCalculatorClass>org.optaplanner.examples.cloudbalancing.optional.score.CloudBalancingMapBasedEasyScoreCalculator</easyScoreCalculatorClass>-->
    <!--</assertionScoreDirectorFactory>-->
  </scoreDirectorFactory>

  <!-- Optimization algorithms configuration -->
  <termination>
    <minutesSpentLimit>2</minutesSpentLimit>
  </termination>

  <!-- Power tweaked optimization algorithms configuration -->
  <!--<constructionHeuristic>-->
    <!--<constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>-->
  <!--</constructionHeuristic>-->
  <!--<localSearch>-->
    <!--<unionMoveSelector>-->
      <!--<changeMoveSelector/>-->
      <!--<swapMoveSelector/>-->
      <!--<pillarChangeMoveSelector/>-->
      <!--<pillarSwapMoveSelector/>-->
    <!--</unionMoveSelector>-->
    <!--<acceptor>-->
      <!--<entityTabuSize>7</entityTabuSize>-->
    <!--</acceptor>-->
    <!--<forager>-->
      <!--<acceptedCountLimit>1000</acceptedCountLimit>-->
    <!--</forager>-->
  <!--</localSearch>-->

  <!-- Alternative power tweaked optimization algorithms configuration -->
  <!--<partitionedSearch>-->
    <!--<solutionPartitionerClass>org.optaplanner.examples.cloudbalancing.optional.partitioner.CloudBalancePartitioner</solutionPartitionerClass>-->
    <!--<solutionPartitionerCustomProperties>-->
      <!--<partCount>4</partCount>-->
      <!--<minimumProcessListSize>300</minimumProcessListSize>-->
    <!--</solutionPartitionerCustomProperties>-->
  <!--</partitionedSearch>-->
</solver>
