<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">On 18-03-14 09:24, Scott Danner wrote:<br>
</div>
<blockquote
cite="mid:CAOQce+AsGLauEn98+sc_g3ZYAin__uGMEcFLwv8Bse+YULP_Rg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>Hello,</div>
<div><br>
</div>
<div>We have a resource allocation problem. Could this be solved
with OptaPlanner?</div>
<div><br>
</div>
<div>Here it is:</div>
<div>There are N projects located in various places that need
work done with machines (just one machine type for all machine
work).</div>
<div>Work can be parallelized, e.g. 6 work days can be done in 6
calendar days by one machine or in 3 calendar days by two, or
in 4 calendar days by 2 machines (one works 4, other 2).</div>
</div>
</blockquote>
Take a look at these examples:<br>
<br>
Cloud Balancing<br>
<a class="moz-txt-link-freetext" href="https://www.youtube.com/watch?v=xhCtuM-Hiic">https://www.youtube.com/watch?v=xhCtuM-Hiic</a><br>
use as less machines as possible<br>
<br>
Project Job Scheduling<br>
<a class="moz-txt-link-freetext" href="https://www.youtube.com/watch?v=_2zweB9JD7c">https://www.youtube.com/watch?v=_2zweB9JD7c</a><br>
in case the work has dependencies on other work items<br>
<br>
Vehicle routing with Time Windows<br>
<a class="moz-txt-link-freetext" href="https://www.youtube.com/watch?v=BxO3UFmtAPg">https://www.youtube.com/watch?v=BxO3UFmtAPg</a><br>
When a work gets assigned to a machine, use shadow variables to
capture when the work will be done.<br>
See docs about "variable listeners"<br>
<br>
<blockquote
cite="mid:CAOQce+AsGLauEn98+sc_g3ZYAin__uGMEcFLwv8Bse+YULP_Rg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div><br>
</div>
<div>How to best allocate machines to projects?</div>
<div>Looking at planned project work, how many machines are
needed for each calendar day? How many machines should we buy,
and how many to rent, and when?</div>
<div><br>
</div>
<div><br>
</div>
<div>Details</div>
<div><br>
</div>
<div>For each project, the work can & must be done only in
some selected calendar periods.</div>
<div>Machine locations are always known. </div>
<div><br>
</div>
<div>Machine costs:</div>
<div>* moving from location A to location B (per km). Moving
also takes time, and a machine can be moved a maximum amount
of km per day.</div>
<div>* operating (per day)</div>
<div>* staying in a project location (per day)</div>
<div>* staying in a hangar (per day)</div>
<div>* being rented for one day from location L (total cost =
transport from rent location to project location and back, and
daily rent)</div>
<div>* being purchased</div>
<div><br>
</div>
</div>
</blockquote>
These are all just constraints, I don't see any special stuff there.<br>
To make them easy to write, the domain classes will need a (shadow)
variable that says when a work starts.<br>
<blockquote
cite="mid:CAOQce+AsGLauEn98+sc_g3ZYAin__uGMEcFLwv8Bse+YULP_Rg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div><br>
</div>
<div><br>
</div>
<div>A machine also needs an operator, but for now that can be
considered a single unit.</div>
<div><br>
</div>
<div>Ideally, also take into accounting weather for each project
location. Weather might be known with 2 weeks in advance. Just
re-plan by blocking the rainy days for some projects?</div>
</div>
</blockquote>
Yes, see docs on repeated planning.<br>
<blockquote
cite="mid:CAOQce+AsGLauEn98+sc_g3ZYAin__uGMEcFLwv8Bse+YULP_Rg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div><br>
</div>
<div>Thanks,</div>
<div>Scott</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>