RE: Fwd: Programming bounty



Maurice;

First let me introduce myself.  I am recently retired person who did
simulations early in my career before moving into project management.

While managing projects, I wrote a scheduling program that includes the
features of your planner.  It had the following elements which I have not
seen in your planner:  1) Project end date; 2) Early start; 3) Early finish;
4) Late start; and 5) Late finish.

To compute early start and early finish I treated the schedule as a discrete
event simulation.  I would "activate" tasks with no predecessors at the
project start time (assuming resource availability).  When a task completed,
I would start it's successors at the completion time.

To compute late start and late finish, again I treated the schedule as a
discrete event simulation with time starting at the project end date with
time running in reverse.  Those tasks with no successors would be activated
at the project end time (assuming resource availability).  The latest start
would be calculated by subtracting task duration from latest finish.  At
latest start, the task would be marked as complete and the resources would
be released (for use by a predecessor task). 

These two simulations handled the FS, SS, FF relationships.

Slack for each task is calculated by subtracting early finish from late
finish.   

This two step simulation needs to be invoked whenever a task or resource is
added, deleted or modified.

I did the above work before C++ and object oriented programming (OOP) and
the wonderful graphics we now have.  In summary, I know the algorithms, but
am not facile with the C++ and OOP that the planner is written in.

I would like to contribute to the planner by teaming with a C++, OOP expert
who is VERY facile with linked lists.  The symbiosis would enable us to make
a major step forward in the planner capabilities.

One additional functionality that I also request is the ability to designate
a resource as "returnable".  For example if a pool of trucks is shared by
various tasks, when a task completes the truck used by the task would be
returned to the pool.  i.e. the resource is not consumed by the task.

Please advise if this is a direction you would like to explore.

Dan 
Virginia, USA


-----Original Message-----
From: planner-dev-list-bounces gnome org
[mailto:planner-dev-list-bounces gnome org] On Behalf Of Maurice van der Pot
Sent: Tuesday, July 22, 2008 12:22 PM
To: planner-dev-list gnome org
Subject: Re: Fwd: Programming bounty

On Tue, Jul 22, 2008 at 10:57:40AM -0400, Kurt Maute wrote:
> I haven't started experimenting with it yet, but I think it looks real 
> promising.

Indeed it does.

Two requirements from my side for the implementation of a scheduling
algorithm in planner are:
1) that it has a well-defined interface to allow it to be easily
   replaced with a different algorithm (and make selection at run-time
   possible at later stage).
   This could turn out to be the interface of LibRCPS if it is generic
   enough.
2) that we have a way of benchmarking it with other algorithms. Using
   PSPLIB (http://129.187.106.231/psplib/) would be very useful in this
   case, because it would allow us to reuse the benchmark results
   generated by others. I saw that the author used the J30 set from
   PSPLIB, so maybe we don't need to do any work here.

Additionally there are a few things I would like us to at least keep in mind
while thinking about solutions.

Although libRCPS can find solutions to multi-mode resource-constrained
project scheduling problems (MMRCPSP), I don't think this means it can
handle split tasks. Split tasks will probably eventually need to be
supported. Maybe the author of libRCPS has already thought about it.

Finally, we have to think about how to mix automated scheduling and manual
modification by the user.

Regards,
Maurice.

--
Maurice van der Pot

Gentoo Linux Developer   griffon26 gentoo org    http://www.gentoo.org
Gnome Planner Developer  griffon26 kfk4ever com
http://live.gnome.org/Planner




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