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.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users