<br><br><div class="gmail_quote">2011/10/19 Geoffrey De Smet <span dir="ltr"><<a href="mailto:ge0ffrey.spam@gmail.com" target="_blank">ge0ffrey.spam@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<u></u>
<div text="#000000" bgcolor="#ffffff">
<br>
<br>
Op 19-10-11 15:00, Guilherme Kunigami schreef:
<div><blockquote type="cite"><br>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
<div text="#000000" bgcolor="#ffffff"> <br>
In this use case, that is probably a bad idea in my
experience. Why? Well I hope this makes any sense:<br>
<i>You need to allow the optimization algorithms to break it
now and then to tunnel through a bad search space into
another good search space.</i><br>
If it doesn't, don't worry.</div>
</blockquote>
<div><br>
</div>
<div>Hmm, I think I understood it. Allowing infeasible solutions
may help to scape from local minima in the space of feasible
solutions for example.</div>
</div>
</blockquote></div>
Yep :)
<div><blockquote type="cite">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204, 204, 204);padding-left:1ex">
<div text="#000000" bgcolor="#ffffff">
<div>
<blockquote type="cite">
<div>
<div><font face="'courier new', monospace">rule "Avoid
conflicting activities"</font></div>
<div><font face="'courier new', monospace">when </font></div>
<div><font face="'courier new', monospace"><span style="white-space:pre-wrap"> </span>Assignment($room1
: room, $act1: activity, $id : <a href="http://activity.id/" target="_blank">activity.id</a>)</font></div>
<div><font face="'courier new', monospace"><span style="white-space:pre-wrap"> </span>Assignment(room==
$room1, room != null, $act2 : activity, <a href="http://activity.id/" target="_blank">activity.id</a> >
$id)</font></div>
<div><font face="'courier new', monospace"><span style="white-space:pre-wrap"> </span>Conflict(act1
== $act1, act2 == $act2)</font></div>
</div>
</blockquote>
</div>
I would put Conflict first. But try it this way too and let
me know which works better ;) I don't know.<br>
Stated differently: Instead of checking every 2 simultaneous
assignments if they are a conflict,<br>
I would check if every 2 conflict assignments are
simultaneous (like in examinationScoreRules.drl).
<div><br>
</div>
</div>
</blockquote>
<div><br>
</div>
<div>Ok! I will perform some stress tests to verify which one
works better.</div>
</div>
</blockquote></div>
Nice, please report your results to this mailing list. It doesn't
matter if they are worse, better or equal: it's interesting to know.<br>
<br>
Look for "stepLimit" in the examples to see how I do very short
stress tests when adding extra constraints.<br>
</div>
<br></blockquote><div><br></div><div>I've made a test with each model limited to 70 steps. I've attached a graph comparing both runs using drools planner benchmark. </div><div>It seems that using Conflict first is indeed faster :)</div>
<div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">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></blockquote></div><br>