GNOME Bugzilla – Bug 139443
Use priority to help resolve overallocated resources
Last modified: 2021-06-09 20:30:21 UTC
The priority field is now effective in CVS. Planner doesn't yet use this field but planner could use this field as follows; An example: if you have TASK 1,2,3 and TASK2 and 3 are both linked to TASK 1 as FS and both use the same set of resources which are now at MAX (100%) then the "higher" priority task out of 2 or 3 should take precedence over the "lower" priority task. Thus the start of e.g. TASK 3 is the, max(f(constraint(predecessor))->end, f(priority(siblings))->end) As mentioned if priority is 0 then its never checked. Other things... -we would have to have flags to turn on/off this behaviour across a project and also a task (A "UsePriority" flag) -we would have to have a project-wide definition as define if 1 is the "higher" or "lower" priority -if priority is used then we would have to have a project-wide check to make it take into account resources (range of no resources, any resource or all resources). If no-resources then this means that a higher priority task would always be completed before a lower priority task within its siblings. Other note: priority would only ever be compared within the siblings.
I actually said...priority would only ever be compared within the siblings...but to there is no reason why you couldn't also set a priority to a summary tasks to resolve contention within its siblings and so on to the top level tasks.
...or that priority could have a global meaning across the whole project. Maybe a flag to say that the task has local or global precedence on priority.
What if there was some kind of priority propagation from children tasks to parents? This way you can designate priorities correctly to children and have it reflected on parents. The higher priority goes also to the parent, and it gets ordered accordingly to the time that task should be performed, as a second index variable. When there are conflicts in both tasks, one can change the priority slightly or opt for an automatic solver: the first scheduled task wins over the last one... (I suppose it was thought first, so it must be a bit more important than the other one, although not so important to make the other with a lower priority level).
Once the UNDO/REDO trache of patches is over I do think that this priority hint is a good thing for allocation of task dates and so will work on a functional specification for it (as opposed to my usual approach of simply knocking up a GLADE dialog box and then wacking code in at random ;) So yes - priority could be compared within siblings and then a suitable function of the sibling priorities could be propagated to the parent summary tasks and so on up (e.g. work weighted average or cost weighted average or maximum sibling priority - I actually like the idea of a work weighted average. What that means is if we had 3 tasks, T1 = 3 days @ prio = 5 cost 300 T2 = 1 day @ prio = 2 cost 50 T3 = 4 days @ prio = 3 cost 800 the work weighted average would be, (3/8 * 5) + (1/8 * 2) + (4/8 * 3) = 3.625 the maximum sibling priority would be 5 and the cost weighted average would be, (300/ 1150 * 5) + (50/1150 * 2 ) + (800/1150 * 3) = 3.478 as to which you chose well maybe we have a global flag of priority propagation based on work, costs or priority. Rgds, Lincoln.
...or propagate the minimum sibling priority ! we won't hard code 1= high and 9999 = low but will let the customer decide as to which is which on a project-wide flag.
Created attachment 30998 [details] Open Office SXW - DRAFT: v0.3 Not for further release. Issued just so people can see where I'm up to on this. Needs lot more work and so little time.
*** Bug 329279 has been marked as a duplicate of this bug. ***
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/World/planner/-/issues/53.