0

I am current tweaking and fine tuning my installer booking assignment optimizer, just recently upgraded my library to Optaplanner 6.2.0 Final. I am using the benchmarker to observe which optimization strategy (EntityTabu, SimulatedAnnealing, with or without TailChainSwapMove) I have a few questions:
1) I made an eventListener attached to my Solver, for displaying any improvements in scoring. Can I attached the eventListener to my benchmark?
2) For ChangeMove and SwapMove selector, can I use a filterClass in conjuction with an entitySelector, so I could utilize nearbyDistanceMeterClass?

<solverBenchmark>
<name>Entity tabu w tailChainSwapMove</name>
<solver>
  <localSearch>
    <unionMoveSelector>
        <changeMoveSelector>
            <filterClass>com.tmrnd.pejal.opta.solver.move.InstallerChangeMoveFilter</filterClass>
        </changeMoveSelector>
        <swapMoveSelector>
          <filterClass>com.tmrnd.pejal.opta.solver.move.SamePttSwapMoveFilter</filterClass>
        </swapMoveSelector>
        <tailChainSwapMoveSelector>
            <entitySelector id="entitySelector3"/>
              <valueSelector>
                <nearbySelection>
                  <originEntitySelector mimicSelectorRef="entitySelector3"/>
                  <nearbyDistanceMeterClass>com.tmrnd.pejal.opta.solver.move.BookingNearbyDistanceMeter</nearbyDistanceMeterClass>
                  <parabolicDistributionSizeMaximum>20</parabolicDistributionSizeMaximum>
                </nearbySelection>
              </valueSelector>
        </tailChainSwapMoveSelector> 
      </unionMoveSelector>
      <acceptor>
        <entityTabuRatio>0.05</entityTabuRatio>
      </acceptor>
      <forager>
        <acceptedCountLimit>1000</acceptedCountLimit>
      </forager>
  </localSearch>
</solver>

Pejal Hebat
  • 116
  • 6

1 Answers1

1

1) Do you mean like all the optional statistics that the benchmarker supports, such as the BEST_SCORE statistic (see docs) etc? All those statistics are nicely shown in the benchmark report.

2) Try it out.

Geoffrey De Smet
  • 26,223
  • 11
  • 73
  • 120
  • 1) I would just like to see my logs showing the progress in real-time, while the benchmark is running.

    2) I have just tried the entitySelector as in the tailChainSwapMoveSelector only into the changeMoveSelector. I've only tested on one dataset, and the result looked worse than filterClass-only
    befor:time spent (236352), best score (-100hard/-2760soft), average calculate count per second (5807)
    after:time spent (53480), best score (-105hard/-91896soft), average calculate count per second (3567)
    I may test in combination with the swapMoveSelector, and other datasets. Thank you.

    – Pejal Hebat Jun 08 '15 at 09:10
  • 2) For the benchmarks I've ran nearbyDistanceMeterClass with filterClass, shows the same result, but slower time spent. I think it is because the nearbyDistanceMeterClass also act as a filterClass, for me to implement in tailChainSwapMoveSelector. It seems that running the benchmark with small dataset(200 entities) may have different localSearchStrategies than large datasets(1200 entities). – Pejal Hebat Jun 09 '15 at 06:42