Re: [Planner] Opensched and resource scheduling



Xavier ,

	yup I'd agree that in  the initial instance
if you can at least show the allocation and allow us to
easily allocate resources to tasks then thats the first
big step.

The actual scheduling is a complicated combinatorial/constraint optimisation satisfaction problem as it'll grow to meet
peoples expectations of what a project scheduler should do.
The trouble with hard coding in C/C++ is that when
Planner 1.X needs its scheduler upgraded to handle more
wishes then it gets harder and harder to handle the new
constraints.

I'm thinking that this would need to be looked at from the
point of view of what commercial schedulers like ILOG or
Koalog, or GPL/LGPL solutions of the likes of Cheddar ( http://beru.univ-brest.fr/~singhoff/cheddar/ ) or
StarFLIP++ ( http://www.dbai.tuwien.ac.at/proj/StarFLIP/StarFLIP.htm
) are trying to solve. Anyone know of others ?

I bet we could all work out the constraints we would like
to see in projects, e.g. rules like

-No more than X persons on a task,
-Schedule Time Only within slack,
-Person works on no more than X tasks,
-Person works no more then X% on a task,
-No more than X% or X people allocated from a group,
-Task uses people only from X group,
-Task start is between A and B (with flat or normal arrival distribution),
- etc etc etc...

the last is very much real-world and so our scheduler
would have to resolve fuzzy constraints like a Task start
is between A and B dates and you may have 1 or 2 workers
available because we all know this is very much real life
when people promise to be ready but are not and goods may
arrive within a window.

Some constraints would be set on the Task, some on the
Resource and some on the Project preferences. Given these
constraints, the resources, and the tasks then produce a
schedule not by coding within Planner but by transforming the
inputs and feeding to another program, then taking that other
programs  output and feeding back the result to the project
(all hidden from the user). The result is simply a new list
of Task start/end times and resource allocation and usage
which Planner should have no trouble in updating its GUI.

So I feel that scheduling *could* be quite easy if we could
identify a suitable 3rd party (but LGPL/GPL'd) tool, export
our sets and describe the constraints in the language required
by the scheduler. Does anyone have experience with any
GPL/LGPL schedulers ? or know how they are feed with data
and constraints ?. The cheddar one looks interesting as its
XML input based and GPL and seems like an active project.

Lincoln.

Xavier Ordoquy wrote:
On Sun, 2004-01-25 at 23:03, Jos Vos wrote:

Hi,


Hi


In relation to this: my biggest problem with MrProject was that
it didn't seem to do resource scheduling, so people easily worked
on three tasks in parallel for 100% of their time.


This point has also been discussed on the mailing list ([Planner]
Resource dependencies).
As far as I remember it ended up in the fact that resources can be used
above 100% and that resource usage shall not be compted by the
application because it may lead to an infinite number of possibilities.

However I almost finished correcting the majors bugs on the resources
usage (the former timetable) which will offer you to view the resource
load against the time and enable you to move task to reduce load.

On another hand I *may* start working on a prototype to compute resource
plan and add load constraints.


Has this been improved in the meantime?  Is it planned?  I never
understood how people could use a planning tool that couldn't do
at least that, which caused my disappointement for MrProject,


Again, lemme take the example I've used before.
I got 2 resources (R1 and R2) and two tasks (T1 and T2).
T1 is 35 worked days long and T2 only 5. R2 can work on both but R1 can
only work on T1. Resources may not be used more than 100%.

So, how do you expect the application to solve that ?
You can choose

1]
R2 work full time on T2 and then switch on T1. This will make T2 take 5
days and T1 being 20 days (5 (R1) + 2*15 (R1+R2)).

2]
R2 work half time on T1 and T2. This will make T2 last 10 (5/0.5) days
and T1 20 days ( 10 (R1) + 5 (R2) + 2*10 (R1+R2) )

You can vary that as much as you want.
You can't either set the percentage of work on a task before the
computing. If you consider my previous example in the middle of a
project, any task glitch will false the all planning and it may finish
in having a resource used at 50% because you've set it this way.

Consider you have this:
days: 0----10----20----30
T0:   ====== (R1)
T0':  ====== (R2)
T1:         ------======= (R1,R2) (depends on T0)
T2:         ------ (R2,50%) (depends on T0')

Now imagine you just found that there's no need of TO' because it's
something the customer doesn't want to any longer. You'll now have:

days: 0----10----20----30
T0:   ====== (R1)
T1:         ------======= (R1,R2) (depends on T0)
T2:   ------ (R2,50%)

Now if you consider someone should either be allocated 100% to a task
you're wrong with experts that have various tasks that doesn't take them
full time (like those that get halftime with a crew and halftime with
another within a project).
Sharing time as (100/number of tasks) is also wrong because it may
expand the critical path (examples are left as exercices ;)

Therefore it was decided that planner will not manage resource by itself
(at least in the near future) but will try to provide an accurate view
to plan the resource load. (Do you agree on this point richard and
mickael ?)

The resource usage should be included in the next release (0.12) and
will help gather opinion on it to make it better then.

Regards,
Xavier Ordoquy.


_______________________________________________
Planner mailing list
Planner lists imendio com
http://lists.imendio.com/mailman/listinfo/planner





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]