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(a)gmail.com>
*To:* rules-users(a)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-e...
>
> 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(a)lists.jboss.org <mailto:rules-users@lists.jboss.org>
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org <mailto:rules-users@lists.jboss.org>
https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users