Re: [taskjuggler-users] Sharing of mandatory material resources across many tasks

128 views
Skip to first unread message

Chris Schlaeger

unread,
Nov 28, 2012, 2:30:42 PM11/28/12
to taskjugg...@googlegroups.com
You can try to model the oven as a group of resources, e. g. each representing 25% of your capacity. That solves one problem, but you may run into others. I'm not sure if TJ is the ideal tools for such tasks.

Chris


On Sun, Nov 25, 2012 at 1:13 AM, Pierre Cyr <pierr...@mail.mcgill.ca> wrote:
Hello,

First, thank you for sharing taskjuggler with the community.  I used it back in 2009 when I was leading an aerospace engineering project and we somehow were the only supplier that could provide accurate estimates for the completion of work.  The tool also came in handy to demonstrate that some decisions perceived by upper management as major dependencies could actually be delayed for some time before they impacted schedule.  That project was however fairly straight forward as it only dealt with people as resources.  I am now working on a somewhat more complex project (that I imagine would still be a fairly common scenario).  Yet, I have not been able to figure out how to translate my problem into taskjuggler code.

As an example of what I am trying to do, I will describe a bakery.  I have a number of bakers making 6 different types of cakes.  Making a cake involves 3 tasks: mix, bake and ice done in that order.  The mixing and the icing take a different amount of effort depending on the type of cake.  Cake A, B and C bake at 300F for 60 minutes, cake D, E and F bake at 350 for 45 minutes.  The cakes A and D require 25% of the oven volume, cakes B and E require 50% and cakes C and F require 75%.  There is only one oven...

My problem is with the allocation of the oven.  I need to be able to:
- properly represent that I cannot use more than 100% of the oven volume at any one time.
- I cannot bake the cakes using the wrong baking cycle.
- A baking cycle cannot be interrupted.  (i.e. Even if the oven was only 25% full at the start of the bake, the remaining 75% is unavailable until the baking time is finished.)

Can a situation like this be represented in taskjuggler?  I've been scratching my head for a few days on this already...  I might just be rusty.

Best Regards and thanks again,

--
You received this message because you are subscribed to the "TaskJuggler Users" group.
To post to this group, send email to taskjugg...@googlegroups.com
To unsubscribe from this group, send email to
taskjuggler-us...@googlegroups.com
For more information about TaskJuggler visit http://www.taskjuggler.org
 
 

Bhasker Pandya

unread,
Feb 17, 2013, 6:41:34 AM2/17/13
to taskjugg...@googlegroups.com
Does this sound like a job for Drools Planner instead?

Bas de Bruijn

unread,
Feb 17, 2013, 7:06:04 AM2/17/13
to taskjugg...@googlegroups.com
Here is my penny,

I think that the oven is the difficulty here. I would make the oven a resource doing the baking tasks.
The process should be further specified, meaning "icing cake A" is a different task than "icing cake B". Also the oven has different baking times, and different temperatures for different cake types (bake task). Meaning these should thus be different tasks.
Allocating the oven to these tasks leaves only the question of finding different cake types with the same baking time and the same temperature. Don't know how to let Taskjuggler combine cakes for the oven to be 100% full. This depends on the amount of cakes to be produced (more of one type than others has an impact on finding the right combinations of cakes in the oven)
Interesting to know is of there is a time dependency between the mixing and the baking, or can the mixing be done in advance?

first step i should find out is the oven-temperature unit… 15 minutes means cakes A/B/C need 4 oven units (60 minutes 300F) and D/E/F need 3 oven units (45 minutes 350F)

Regards,
Bas

--
You received this message because you are subscribed to the "TaskJuggler Users" group.
To post to this group, send email to taskjugg...@googlegroups.com
To unsubscribe from this group, send email to
taskjuggler-us...@googlegroups.com
For more information about TaskJuggler visit http://www.taskjuggler.org
---
You received this message because you are subscribed to the Google Groups "TaskJuggler Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to taskjuggler-us...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Mike Mastroianni

unread,
Apr 15, 2013, 6:30:15 PM4/15/13
to taskjugg...@googlegroups.com
I have a similar problem of interest. A laboratory has two centrifuges, and each can hold, say, 10 test tubes to spin, once properly prepared. Once a spin begins, the centrifuge is unavailable for use for a fixed time, for example, 30 minutes. Also the tubes to be spun can't sit around forever, their contents will degrade otherwise. Can the slots in the centrifuge each represent a "sub-resource" of a specific centrifuge, perhaps? It's maddening to not be able to use TJ in this capacity including equipment constraints because it would handle so much of the other schedule issues concerning personnel so well ...

Cheers,

Mike

Bas de Bruijn

unread,
Apr 16, 2013, 10:09:27 AM4/16/13
to taskjugg...@googlegroups.com

Mike,
What happens if you make a resource centrifuge1 with subresources cen1pos1 (position 1 of centrifuge1) cen1pos2 etc. then assign the task "sample1_cen1pos1" to that resource. Start these n tasks with some common milestone or something. You can start this milestone at a given time.
Cheers,
Bas

Op 16 apr. 2013 00:30 schreef "Mike Mastroianni" <michael.m...@gmail.com> het volgende:
I have a similar problem of interest. A laboratory has two centrifuges, and each can hold, say, 10 test tubes to spin, once properly prepared. Once a spin begins, the centrifuge is unavailable for use for a fixed time, for example, 30 minutes. Also the tubes to be spun can't sit around forever, their contents will degrade otherwise. Can the slots in the centrifuge each represent a "sub-resource" of a specific centrifuge, perhaps? It's maddening to not be able to use TJ in this capacity including equipment constraints because it would handle so much of the other schedule issues concerning personnel so well ...

Cheers,

Mike

--

Mike Mastroianni

unread,
Apr 16, 2013, 3:17:57 PM4/16/13
to taskjugg...@googlegroups.com
Hi Bas,

Yes, I will try and construct something simple to test using this approach. But I'm wondering how this could work in practice; I've been thinking of it as each individual tube to be spinned in a centrifuge is a task, and yes, each centrifuge resource is composed of 10 individual tube positions. But ideally I would like TJ to manage these tasks in queue, so to speak. Tying them to a single milestone that triggers a centrifuge load-and-spin sounded ok, but how would TJ know to initiate the spin of for example 4 tubes, because they will cease to be viable if not spun now? And would this scheme properly eliminate the availability of the other 6 free tube positions in the centrifuge? And would additional tube-spin tasks properly use a second centrifuge or more? I'm guessing that I sort of need a "Centrifuges" group resource that lists the each centrifuge as alternates. So a hierarchy like 

Centrifuges{ 
Cent1{pos1,pos2, ... 10}, Cent2{pos1, pos2, ... ,pos10}, ... CentN{pos1,pos2, ... , pos10}
}

with each tube-spin task assigned the "Centrifuges" resource, something like that?

I won't even get into the finer timing resolution issues yet (chuckles.) But I have to say even as new as I am learning TJ3, it's just an amazing work of software as it stands. If it can indeed be made to handle these kinds of equipment availability constraints with some reasonable construction I will be very much more impressed! I'm guessing that I might need to roll some kind of pre-processor to generate .tjp file source to have a good shot at using TJ3 in the way I'd like, though.

Thanks for the help --

Cheers,
Mike
Reply all
Reply to author
Forward
0 new messages