<html><body><div style="color:#000; background-color:#fff; font-family:tahoma, new york, times, serif;font-size:10pt">Thank you for the response.<br>I think I forgot one level of complexity (?):<br><br>The moment of maintenance of a plane is not fixed.<br><br>We have 12 "periods" per year for maintenance.<br>One period every month.<br><br>We need to make the planning in such way that the list of planes is planned somewhere in these 12 periods.<br>But it is not important that a specific plane is maintained at a specific period.<br>It has though a calendar of unavailability.<br><br>So the job (==Shift) of the Task (==ShiftAssignment) has no hard constraint on period.<br><br>We need to find that combination with the best match between required skills for the job and available technicians.<br>It's better to plan the job on a later period if at that time a more skilled technician is available.<br><br>I hope this is a bit clear.<br><br>So, given this addition,
should I take as planning variables:<br><br>1) Period (List of 12 periods)<br>2) Technician <br><br>Then use period to check availability on both plane and technician (hard-constraint)<br>Then give a better weight on skill-match (soft-constrain)?<br><br>Thank you.<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: tahoma, new york, times, 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> Friday, August 31,
2012 9:08 AM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [rules-users] Best model for planning? technicians, airplanes and shifts<br> </font> </div> <br>
Op 30-08-12 18:02, mvermand schreef:<br>> Hi,<br>><br>> I'd like some advice on how to make my model.<br>><br>> I need to plan maintenance-schedules for - let's say - airplanes.<br>> Constraints are:<br>> - planes are only at given moments available for maintenance (when not in<br>> the air ;-)<br>> - maintenance of a planes requires a number of techniciens (with specific<br>> skills).<br>> - techniciens have skills and also shifts and vacation.<br>><br><br>Sounds like the nurse rostering example in Planner :)<br>In nurse rostering, such a Shift has a ShiftDate and a ShiftType.<br>The difference is, you need to assign jobs instead of shifts.<br><br>> Now, first I tought to make the maintenance of a plane the planningEntity.<br>> But I did not know how to populate and match the techniciens.<br><br>I wouldn't make plane the planningEntity either, it's on the one side of <br>the manyToOne
relation.<br><br>><br>> So, second I tought to make a new Task-class the planningEntity.<br>> A Task is a job that needs to be done by a technicien with specific skills.<br>> Maintaining a plane requires then a number of tasks.<br><br>Good idea. In nurse rostering, a Task is called a ShiftAssignment.<br>You can generate all Tasks in advance based on the Planes and their jobs <br>and the number of technicians needed by each job.<br><br>I recommend to make separate Task instances for multiple technicians <br>that perform the same job together on the same plane. In nurse rostering <br>there are also multiple ShiftAssignments (=tasks) per Shift (=job).<br><br>><br>> If I choose this model, I think I'll have to pass two Plannings variables to<br>> the Task planningEntity:<br>> 1) a Maintenance-fact (Plane + Period + list of required tasks) and<br><br>I don't think this is a planner variable on the planning entity Task.<br>It really
defines the Task: what job on what plane (and some of sort of <br>requiredTechnicanCountIndex)<br><br>> 2) a Technicien-fact (?)<br>This is a planning variable.<br>You're assigning task to techinicians.<br>Each task has exactly 1 technician (because a job has multiple tasks, <br>one per required technician).<br>Each technician can work on multiple tasks, but the hard/soft <br>constraints make sure that it's not at the same time.<br><br>><br>> Then I'll need to check if availabity of plane and availability of<br>> technicien match and also skill-requirement of task and skills of<br>> technicien.<br><br>Yep, with constraints<br><br>><br>> Do you think this second model is the right one?<br>><br>> Will it perform well?<br>> => ? matching all combinations of plane availabilty and<br>> techniciens-availability and -skills.<br><br>It should, see the nurse rostering problem.<br>In Planner 5.5.0.Beta1, I would add a filter on
the swap move selector <br>to prevent it from swapping 2 technicians assigned to different tasks on <br>the same job.<br><br><a href="https://github.com/droolsjbpm/drools-planner/blob/master/drools-planner-examples/src/main/java/org/drools/planner/examples/curriculumcourse/solver/move/DifferentCourseSwapMoveFilter.javatd" target="_blank">https://github.com/droolsjbpm/drools-planner/blob/master/drools-planner-examples/src/main/java/org/drools/planner/examples/curriculumcourse/solver/move/DifferentCourseSwapMoveFilter.javatd</a><br><br>><br>> Thanks in advance<br>><br>><br>><br>> --<br>> View this message in context: http://drools.46999.n3.nabble.com/Best-model-for-planning-tp4019464.html<br>> Sent from the Drools: User forum mailing list archive at <a target="_blank" href="http://nabble.com/">Nabble.com</a>.<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><br><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><br> </div> </div> </div></body></html>