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