<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<div class="moz-cite-prefix">Op 25-01-13 14:26, Michiel Vermandel
schreef:<br>
</div>
<blockquote
cite="mid:1359120370.71201.YahooMailNeo@web161304.mail.bf1.yahoo.com"
type="cite">
<div style="color:#000; background-color:#fff; font-family:arial,
helvetica, sans-serif;font-size:10pt"><span><span style="color:
rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"><span>Hi,</span></span><span
style="font-weight: bold;"><br>
<br>
</span><span style="color: rgb(0, 0, 0);"><span>I noticed
something really strange in my trace logging: certain
moves are made multiple times, even consecutive.<br>
How is this possible?<br>
I am using Planner 5.5.0.Final and no custom move
factories (see config below).<br>
<br>
</span></span><span style="font-weight: bold;"><br>
TRACE: [2013-01-25 14:12:28,309] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (12), score (-515hard/0soft),
accepted (true) for move ({T= Inspect B747-AX1.I#1
[7->7] Jesse IV} => (P4) ).</span></span><br>
TRACE: [2013-01-25 14:12:28,309] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Ignoring not doable move ({T= Inspect A380-TR1.I#0
[5->6] Kristof IV} => IV).<br>
TRACE: [2013-01-25 14:12:28,310] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (14), score (-2090hard/0soft), accepted
(true) for move ({T= Inspect A380-TR1.I#1 [5->6] Gerald IV}
=> (P9) ).<br>
TRACE: [2013-01-25 14:12:28,310] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Ignoring not doable move ({T= Inspect A320-CZ4.I#0
[7->9] Kristof IV} => IV).<br>
TRACE: [2013-01-25 14:12:28,310] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Ignoring not doable move ({T= Inspect A380-TR1.I#1
[5->6] Gerald IV} => IV).<br>
TRACE: [2013-01-25 14:12:28,311] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (17), score (-230hard/0soft), accepted
(true) for move ({T= Inspect B747-AX1.I#1 [7->7] Jesse IV}
=> Andy).<br>
<span style="color: rgb(0, 0, 255);"><span style="font-weight:
bold;">TRACE: [2013-01-25 14:12:28,312] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (18), score (-120hard/0soft),
accepted (true) for move ({T= Inspect B747-AX1.I#0
[5->5] Andy IV} => (P7) ).<br>
TRACE: [2013-01-25 14:12:28,313] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (19), score (-120hard/0soft),
accepted (true) for move ({T= Inspect B747-AX1.I#0
[5->5] Andy IV} => (P7) ).</span></span><br>
</span></div>
</blockquote>
"Just in time random selection" could explain this behavior. Read
this section:<br>
<a class="moz-txt-link-freetext" href="https://jenkins.mw.lab.eng.bos.redhat.com/hudson/view/Drools%20jBPM/view/Master/job/drools-planner/lastSuccessfulBuild/artifact/drools-planner-docs/target/docbook/publish/en-US/html_single/index.html#d0e5069">https://jenkins.mw.lab.eng.bos.redhat.com/hudson/view/Drools%20jBPM/view/Master/job/drools-planner/lastSuccessfulBuild/artifact/drools-planner-docs/target/docbook/publish/en-US/html_single/index.html#d0e5069</a><br>
<br>
"selectionOrder RANDOM (default): Select the selections (<code
class="literal">Move</code>s, entities, values, ...) in
non-shuffled random order. <b>A selection might be selected
multiple times</b>. This scales up well in performance because it
does not require caching."<br>
<br>
It's very unlikely that this happens, except for toy problems. How
many entities and variables does this dataset have?<br>
<br>
Switch to "Cached shuffled selection" to avoid it. Read those docs
to understand the trade-off.<br>
<blockquote
cite="mid:1359120370.71201.YahooMailNeo@web161304.mail.bf1.yahoo.com"
type="cite">
<div style="color:#000; background-color:#fff; font-family:arial,
helvetica, sans-serif;font-size:10pt"><span>TRACE: [2013-01-25
14:12:28,313] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (20), score (-30hard/0soft), accepted
(true) for move ({T= Inspect B747-AX1.I#1 [7->7] Jesse IV}
=> TL).<br>
TRACE: [2013-01-25 14:12:28,315] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (21), score (-2180hard/0soft), accepted
(true) for move ({T= Inspect B747-AX1.I#0 [5->5] Andy IV}
=> (P1) ).<br>
<span style="color: rgb(255, 0, 0);"><span style="font-weight:
bold;">TRACE: [2013-01-25 14:12:28,316] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (22), score (-515hard/0soft),
accepted (true) for move ({T= Inspect B747-AX1.I#1
[7->7] Jesse IV} => (P4) ).<br>
TRACE: [2013-01-25 14:12:28,317] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (23), score (-515hard/0soft),
accepted (true) for move ({T= Inspect B747-AX1.I#1
[7->7] Jesse IV} => (P4) ).</span></span><br>
TRACE: [2013-01-25 14:12:28,318] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (24), score (-3180hard/0soft), accepted
(true) for move ({T= Inspect A320-CZ4.I#1 [7->8] Andy IV}
=> (P1) ).<br>
TRACE: [2013-01-25 14:12:28,318] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Ignoring not doable move ({T= Inspect B747-AX1.I#1
[7->7] Jesse IV} => IV).<br>
TRACE: [2013-01-25 14:12:28,320] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (26), score (-120hard/0soft), accepted
(true) for move ({T= Inspect B747-AX1.I#1 [7->7] Jesse IV}
=> (P5) ).<br>
TRACE: [2013-01-25 14:12:28,322] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (27), score (-45hard/0soft), accepted
(true) for move ({T= Inspect B747-AX1.I#1 [7->7] Jesse IV}
=> (P8) ).<br>
TRACE: [2013-01-25 14:12:28,323] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (28), score (-30hard/0soft), accepted
(true) for move ({T= Inspect A380-TR1.I#0 [5->6] Kristof
IV} => TL).<br>
TRACE: [2013-01-25 14:12:28,324] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (29), score (-2635hard/0soft), accepted
(true) for move ({T= Inspect A320-CZ4.I#1 [7->8] Andy IV}
=> (P2) ).<br>
TRACE: [2013-01-25 14:12:28,325] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (30), score (-650hard/0soft), accepted
(true) for move ({T= Inspect A320-CZ4.I#0 [7->9] Kristof
IV} => (P6) ).<br>
TRACE: [2013-01-25 14:12:28,334] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Ignoring not doable move ({T= Inspect A380-TR1.I#2
[5->6] Jesse IV} => Jesse).<br>
TRACE: [2013-01-25 14:12:28,335] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (32), score (-230hard/0soft), accepted
(true) for move ({T= Inspect B747-AX1.I#0 [5->5] Andy IV}
=> Gerald).<br>
<span style="color: rgb(255, 0, 0);"><span style="font-weight:
bold;">TRACE: [2013-01-25 14:12:28,336] main
org.drools.planner.core.localsearch.decider.DefaultDecider
- Move index (33), score (-515hard/0soft),
accepted (true) for move ({T= Inspect B747-AX1.I#1
[7->7] Jesse IV} => (P4) ).</span></span></span><span
style="color: rgb(255, 0, 0);"><span style="font-weight:
bold;"><span></span></span></span><span style="font-weight:
bold;"><br>
</span>
<div> <br>
Config:<br>
<br>
<?xml version="1.0" encoding="UTF-8"?><br>
<solver><br>
<environmentMode>DEBUG</environmentMode><br>
<br>
<!-- Domain model configuration --><br>
<solutionClass>be.axi.planner.app.InspectionSchedule</solutionClass><br>
<planningEntityClass>be.axi.planner.domain.Task</planningEntityClass><br>
<br>
<!-- Score configuration --><br>
<scoreDirectorFactory><br>
<scoreDefinitionType>HARD_AND_SOFT</scoreDefinitionType><br>
<scoreDrl>/inspectionRules.drl</scoreDrl><br>
</scoreDirectorFactory><br>
<br>
<constructionHeuristic><br>
<constructionHeuristicType>BEST_FIT_DECREASING</constructionHeuristicType><br>
<constructionHeuristicPickEarlyType>FIRST_LAST_STEP_SCORE_EQUAL_OR_IMPROVING</constructionHeuristicPickEarlyType><br>
</constructionHeuristic><br>
<br>
<!--customSolverPhase><br>
<customSolverPhaseCommandClass>be.axi.planner.solution.SolutionInitializer</customSolverPhaseCommandClass><br>
</customSolverPhase--><br>
<br>
<localSearch><br>
<termination><br>
<terminationCompositionStyle>OR</terminationCompositionStyle><br>
<maximumSecondsSpend>3600</maximumSecondsSpend><br>
<scoreAttained>0hard/0soft</scoreAttained><br>
</termination><br>
<unionMoveSelector><br>
<changeMoveSelector><br>
<valueSelector><br>
<planningVariableName>type</planningVariableName><br>
</valueSelector><br>
</changeMoveSelector><br>
<changeMoveSelector><br>
<valueSelector><br>
<planningVariableName>spector</planningVariableName><br>
</valueSelector><br>
</changeMoveSelector><br>
<changeMoveSelector><br>
<valueSelector><br>
<planningVariableName>period</planningVariableName><br>
</valueSelector><br>
</changeMoveSelector><br>
</unionMoveSelector><br>
<br>
<acceptor><br>
<planningEntityTabuSize>7</planningEntityTabuSize><br>
</acceptor><br>
<forager><br>
<minimalAcceptedSelection>1000</minimalAcceptedSelection><br>
</forager><br>
</localSearch><br>
</solver><br>
<br>
Thanks,<br>
<br>
Michiel<br>
</div>
<div>-----------------<br>
<a class="moz-txt-link-freetext" href="http://www.codessentials.com">http://www.codessentials.com</a> - Your essential software, for
free!<br>
Follow us at <a class="moz-txt-link-freetext" href="http://twitter.com/#!/Codessentials">http://twitter.com/#!/Codessentials</a></div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
rules-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a>
</pre>
</blockquote>
<br>
</body>
</html>