<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 15:08, Michiel Vermandel
schreef:<br>
</div>
<blockquote
cite="mid:1359122931.76044.YahooMailNeo@web161305.mail.bf1.yahoo.com"
type="cite">
<div style="color:#000; background-color:#fff; font-family:arial,
helvetica, sans-serif;font-size:10pt">Hi,<br>
<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>
=> "Computer says no" ;-)<br>
</div>
</blockquote>
Sorry, internal link. But the chapter is in the 5.5.0.Final docs
too, look it up there.<br>
<blockquote
cite="mid:1359122931.76044.YahooMailNeo@web161305.mail.bf1.yahoo.com"
type="cite">
<div style="color:#000; background-color:#fff; font-family:arial,
helvetica, sans-serif;font-size:10pt"><br>
I'm still running unit tests with very little entities /
variables. That is then probably the cause.<br>
<div><br>
</div>
<div>First I thought it was because I wrote my own move factory,
but after reverting to the default classes, it remained the
same.</div>
<div>So, I do want to use a custom move factory; in that case
would it be wise to change to "Cached shuffled selection"
(because all moves are already cached because of my custom
factory (without iterator - for the moment))?</div>
<div>Or would the benefit still be minimal?<br>
<span></span></div>
<div style="color: rgb(0, 0, 0); font-size: 13.3333px;
font-family: arial,helvetica,sans-serif; background-color:
transparent; font-style: normal;"><br>
</div>
</div>
</blockquote>
Let the benchmarker (see manual) make that call for you.<br>
Configure production sized datasets and see which of both configs
works best.<br>
<blockquote
cite="mid:1359122931.76044.YahooMailNeo@web161305.mail.bf1.yahoo.com"
type="cite">
<div style="color:#000; background-color:#fff; font-family:arial,
helvetica, sans-serif;font-size:10pt">
<div style="color: rgb(0, 0, 0); font-size: 13.3333px;
font-family: arial,helvetica,sans-serif; background-color:
transparent; font-style: normal;"><span></span></div>
<div style="color: rgb(0, 0, 0); font-size: 13.3333px;
font-family: arial,helvetica,sans-serif; background-color:
transparent; font-style: normal;"><span>Thanks</span></div>
<div style="color: rgb(0, 0, 0); font-size: 13.3333px;
font-family: arial,helvetica,sans-serif; background-color:
transparent; font-style: normal;"><br>
<span></span></div>
<div style="color: rgb(0, 0, 0); font-size: 13.3333px;
font-family: arial,helvetica,sans-serif; background-color:
transparent; font-style: normal;"><span>Michiel<br>
</span></div>
<div> </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><br>
</div>
<div style="font-family: arial, helvetica, sans-serif;
font-size: 10pt;">
<div style="font-family: times new roman, new york, times,
serif; font-size: 12pt;">
<div dir="ltr"> <font face="Arial" size="2">
<hr size="1"> <b><span style="font-weight:bold;">From:</span></b>
Geoffrey De Smet <a class="moz-txt-link-rfc2396E" href="mailto:ge0ffrey.spam@gmail.com"><ge0ffrey.spam@gmail.com></a><br>
<b><span style="font-weight: bold;">To:</span></b> Rules
Users List <a class="moz-txt-link-rfc2396E" href="mailto:rules-users@lists.jboss.org"><rules-users@lists.jboss.org></a> <br>
<b><span style="font-weight: bold;">Sent:</span></b>
Friday, January 25, 2013 2:47 PM<br>
<b><span style="font-weight: bold;">Subject:</span></b>
Re: [rules-users] Planner: duplicate moves within a
single step?<br>
</font> </div>
<br>
<div id="yiv735977214">
<div> <br>
<div class="yiv735977214moz-cite-prefix">Op 25-01-13
14:26, Michiel Vermandel schreef:<br>
</div>
<blockquote 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 moz-do-not-send="true" rel="nofollow"
class="yiv735977214moz-txt-link-freetext"
target="_blank"
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="yiv735977214literal">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 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 moz-do-not-send="true" rel="nofollow"
class="yiv735977214moz-txt-link-freetext"
target="_blank"
href="http://www.codessentials.com/">http://www.codessentials.com</a>
- Your essential software, for free!<br>
Follow us at <a moz-do-not-send="true"
rel="nofollow"
class="yiv735977214moz-txt-link-freetext"
target="_blank"
href="http://twitter.com/#%21/Codessentials">http://twitter.com/#!/Codessentials</a></div>
</div>
<br>
<fieldset class="yiv735977214mimeAttachmentHeader"></fieldset>
<br>
<pre>_______________________________________________
rules-users mailing list
<a moz-do-not-send="true" rel="nofollow" class="yiv735977214moz-txt-link-abbreviated" ymailto="mailto:rules-users@lists.jboss.org" target="_blank" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>
<a moz-do-not-send="true" rel="nofollow" class="yiv735977214moz-txt-link-freetext" target="_blank" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a>
</pre>
</blockquote>
<br>
</div>
</div>
<br>
_______________________________________________<br>
rules-users mailing list<br>
<a moz-do-not-send="true"
ymailto="mailto:rules-users@lists.jboss.org"
href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a moz-do-not-send="true"
href="https://lists.jboss.org/mailman/listinfo/rules-users"
target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br>
<br>
</div>
</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>