<html><body><div style="color:#000; background-color:#fff; font-family:Courier New, courier, monaco, monospace, sans-serif;font-size:10pt">Hi Geoffry,<br><br>Thanks for the advice.<br><br>About: Is 4) worse than 1)?<br>Yes it is because in 4) there is a gap (P7) and in 1) there is not.<br>I understand it seems strange, but that is a requirement of the customer...<br><br>Regards,<br><br>Michiel<br><div><span><br></span></div><div> </div><div>-----------------<br>http://www.codessentials.com - Your essential software, for free!<br>Follow us at http://twitter.com/#!/Codessentials<br></div> <div style="font-family: Courier New, courier, monaco, monospace, 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 <ge0ffrey.spam@gmail.com><br> <b><span
style="font-weight: bold;">To:</span></b> rules-users@lists.jboss.org <br> <b><span style="font-weight: bold;">Sent:</span></b> Monday, February 11, 2013 11:21 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [rules-users] Planner: What is a good example/algo to chain entities?<br> </font> </div> <br>
<div id="yiv1071036688">
<div>
<br>
<div class="yiv1071036688moz-cite-prefix">Op 08-02-13 09:20, Michiel Vermandel
schreef:<br>
</div>
<blockquote type="cite">
<div style="color:#000;background-color:#fff;font-family:arial, helvetica, sans-serif;font-size:10pt;">Hi,<br>
<br>
Any one got an idea?<br>
<br>
Thanks<br>
<div><span></span></div>
<div> </div>
<div>-----------------<br>
http://www.codessentials.com - Your essential software, for
free!<br>
Follow us at http://twitter.com/#!/Codessentials<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>
Michiel Vermandel <a rel="nofollow" class="yiv1071036688moz-txt-link-rfc2396E" ymailto="mailto:mvermand@yahoo.com" target="_blank" href="mailto:mvermand@yahoo.com"><mvermand@yahoo.com></a><br>
<b><span style="font-weight:bold;">To:</span></b> Rules
<a target="_blank" href="http://lists.jboss.org/">lists.jboss.org</a> <a rel="nofollow" class="yiv1071036688moz-txt-link-rfc2396E" ymailto="mailto:rules-users@lists.jboss.org" target="_blank" href="mailto:rules-users@lists.jboss.org"><rules-users@lists.jboss.org></a> <br>
<b><span style="font-weight:bold;">Sent:</span></b>
Wednesday, February 6, 2013 8:44 AM<br>
<b><span style="font-weight:bold;">Subject:</span></b>
[rules-users] Planner: What is a good example/algo to
chain entities?<br>
</font> </div>
<br>
<div id="yiv1071036688">
<div>
<div style="color:#000;background-color:#fff;font-family:arial, helvetica, sans-serif;font-size:10pt;">
<div><span>Hi,</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>I need
to keep some Planning entities (Tasks) together
and I am looking for some insights/ideas/examples
in how to tackle this.</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>Tasks
are grouped by a groupId (Groups are problem
facts).<br>
</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>The
Tasks do not have to be grouped like a pillar but
more like an accordion.</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;">One of the
planning variables is "Period", a Period typically
is 3 weeks and we have 12 Periods to plan the tasks
into.<br>
</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>The
requirement is that all tasks within a group need
to be kept together in such a way that:</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>- the
spread (nr of periods) of the tasks is minimal</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>- the
spread is never more than the sum of the duration
of the separate tasks in the group.</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>So
given a group of 3 tasks:</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>1)This
is good:</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 style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;">Period 12345789ABC<br>
<span></span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>T1: xxx</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>T2: xx</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>T3: x</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><br>
<span></span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>2)This is better:</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><br>
<span></span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;">Period 12345789ABC<br>
<span></span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>T1: xxx</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>T2: xx</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>T3: x</span></span></div>
<span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><br>
</span>
<div><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>3)This is
(one of) the best:</span></span>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><br>
<span></span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;">Period 12345789ABC<br>
<span></span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>T1: xxx</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>T2: xx</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>T3: x</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;font-family:Courier New, courier, monaco, monospace, sans-serif;"><br>
<span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span></span></span></div>
<div style="color:rgb(0, 0, 0);font-size:13.3333px;background-color:transparent;font-style:normal;font-family:Courier New, courier, monaco, monospace, sans-serif;">4<span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>)This is bad:</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><br>
<span></span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;">Period 12345789ABC<br>
<span></span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>T1: xxx</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>T2: xx</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span>T3: x</span></span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
Is 4) worse than 1)?<br>
<blockquote type="cite">
<div style="color:#000;background-color:#fff;font-family:arial, helvetica, sans-serif;font-size:10pt;">
<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 id="yiv1071036688">
<div>
<div style="color:#000;background-color:#fff;font-family:arial, helvetica, sans-serif;font-size:10pt;">
<div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;font-family:Courier New, courier, monaco, monospace, sans-serif;"><br>
<span style="font-family:Courier New, courier, monaco, monospace, sans-serif;"><span></span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span><span><span>Of
course 3 is favorite, but maybe not possible
due to other planning variables (->
availability of people to execute the tasks)</span>.</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span><span>I
need to plan a few hundred of such groups of
tasks which all share the same Period space
and list of available people.</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;font-family:arial, helvetica, sans-serif;"><span><span>(A person can
only do one task per period)<br>
</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><br>
<span><span></span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span><span>I
have got the DRL rule that keeps the tasks
together (rule counts the gaps) , but giving
penalty for making gaps (by shifting a single
task) makes it hard to find a good solution.</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span><span>What
would be the best approach to solve this
problem?</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><br>
<span><span></span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span><span>-
A combination of custom mover and swapper
which moves/swaps groups instead of single
tasks?</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;font-family:arial, helvetica, sans-serif;"><span><span>- The above in
combination with a group shuffle factory
(swapping tasks in a single group)?<br>
</span></span></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
Not sure what you mean with these last 2 questions,<br>
but course grained moves are probably a good way to get out this
situations.<br>
For example: move all T's in the same period (or that share a
period).<br>
<pillarSwapMoveSelector> does this if the value is exactly the
same (you'll need variableNameInclude since 6.0.0.Alpha7 if you have
multiple vars...)<br>
Otherwise, take a look at BedDesignationPillarPartSwapMoveFactory
for inspiration (it's pretty different, but interesting to learn).<br>
<blockquote type="cite">
<div style="color:#000;background-color:#fff;font-family:arial, helvetica, sans-serif;font-size:10pt;">
<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 id="yiv1071036688">
<div>
<div style="color:#000;background-color:#fff;font-family:arial, helvetica, sans-serif;font-size:10pt;">
<div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><br>
<span><span></span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><span><span>Other
ideas?</span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><br>
<span><span></span></span></div>
<div style="color:rgb(0, 0,
0);font-size:13.3333px;background-color:transparent;font-style:normal;"><br>
<span><span></span></span></div>
<span>Thanks a lot!</span><br>
</div>
<div>-----------------<br>
<a rel="nofollow" class="yiv1071036688moz-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 rel="nofollow" class="yiv1071036688moz-txt-link-freetext" target="_blank" href="http://twitter.com/#!/Codessentials">http://twitter.com/#!/Codessentials</a></div>
</div>
</div>
</div>
<br>
_______________________________________________<br>
rules-users mailing list<br>
<a rel="nofollow" ymailto="mailto:rules-users@lists.jboss.org" target="_blank" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a rel="nofollow" target="_blank" href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br>
</div>
</div>
</div>
<br>
<fieldset class="yiv1071036688mimeAttachmentHeader"></fieldset>
<br>
<pre>_______________________________________________
rules-users mailing list
<a rel="nofollow" class="yiv1071036688moz-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 rel="nofollow" class="yiv1071036688moz-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 ymailto="mailto:rules-users@lists.jboss.org" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br><a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br><br> </div> </div> </div></body></html>