Tips on using this forum..

(1) Explain your problem, don't simply post "This isn't working". What were you doing when you faced the problem? What have you tried to resolve - did you look for a solution using "Search" ? Has it happened just once or several times?

(2) It's also good to get feedback when a solution is found, return to the original post to explain how it was resolved so that more people can also use the results.

Identify Optimal Resource Quantity in Resource Constrained Schedule without using Variable Quantity

13 replies [Last post]
Tong Cong Tuan
User offline. Last seen 16 weeks 3 days ago. Offline

Dear all,

My project have activities including:

+ Productivity Type

+ Volume of Work

+ "estimated" Resource Quantity for each activity (refer to historical data, estimation)

+ minimal Resource Quantity

+ Limitation of each resource (Quantity in Resource View of SP)

So SP can easily establish "estimated" activity durations

 

The question is: Can SP identify "optimal" Resource Quantity in Resource Constrained Schedule without using Variable Quantity? (also identify optimal activity duration)

 

Thank you,

Tuan

Replies

Bogdan Leonte
User offline. Last seen 1 week 3 days ago. Offline
Joined: 18 Aug 2012
Posts: 167

Vladimir,

thank you for fixing the bug. I still have some follow-up questions:

2068
varqwl_1.jpg

In this scenario no activities are critical and both seem to have Total Float. When assigning only to Activity 2 the ALAP property nothing changes, but when assigning the ALAP property to Activity 1, then activity 1 becomes critical. Assigning both activities the ALAP property results in activity 1 becoming critical.

2069
varqwl_2.jpg

Also by comparing the first and second scenario it seems that the ALAP schedule shown in the first scenario is not respected (or is shown wrong in the first scenario).

Is the behavior correct, am I missing somethig or it is a bug?

The file: http://speedy.sh/vZxjy/VarQ-WL.001.sprj

Best Regards,

Bogdan

Bogdan, it looks like the bug. We will fix it soon.

Bogdan Leonte
User offline. Last seen 1 week 3 days ago. Offline
Joined: 18 Aug 2012
Posts: 167

Vladimir,

I am still trying to understand how the Variable Quantity and Workload works with productivity type activities under different scenarios when I got stuck on the following:

2060
newvarqw_1.png

According to the schedule activity 2 can start 2 hours later. When setting the Asap/Alap option on activity 2 to ALAP I get the following:

2061
newvarqw_2.png

The link between activity 2 and 3 is critical but it is not respected and the Finish[Latest] in this case and in my opinion isn't calculated correctly or something else is not done as expected, I don't know what to make of this. This also happens if the links between all 3 activities are S-S.

The File: http://speedy.sh/PQMav/P-VQ-W.001.sprj

Best Regards,

Bogdan

Rafael Davila
User offline. Last seen 32 min 11 sec ago. Offline
Joined: 1 Mar 2004
Posts: 4765

Bodgan,

Sorry, I understood you were asking for performing all 3 activities in parallel. To my understanding there is no sure way to do this other than using a single activity that will drive the others as hammocks, strict links are unreliable, sometimes work, sometimes are not respected.

Best Regards,

Rafael

Bogdan Leonte
User offline. Last seen 1 week 3 days ago. Offline
Joined: 18 Aug 2012
Posts: 167

Rafael,

I don't fully follow/your workaround, I was asking if there is a way to configure an algorithm to consider other priorities then those built in the algorithm, if my assumptions are wright about the way the algorithms works.

Regrads,

Bogdan

Rafael Davila
User offline. Last seen 32 min 11 sec ago. Offline
Joined: 1 Mar 2004
Posts: 4765
Bodgan,
  • is there a way to set up an algorithm that would perform all 3 activities in parallel if only 3 resources were available?

If resources must work together then they belong to same team, and this you model within a single team on a single activity.  I represent the sibling activities using hammocks that will invariably move as the main activity is moved by the schedule calculations, in this way I can cost load the activities as per Payment Breakdown WBS. 

You can use a Duration type or a Productivity Type activity as it fits your needs.

In the following figure I used same resource assigned 3 times, but frequently I use different multi-resources assigned to the same team, same activity. This is how I keep electircal and plumbing teams assigned at same time other resources working on an elevated slab. I use partial assigments as the electrical teams and plumbing teams work a fraction of the time on other activities on same day.

 photo resourcesatsametime_zpsb30e0e3c.jpg

Rafael

Bogdan Leonte
User offline. Last seen 1 week 3 days ago. Offline
Joined: 18 Aug 2012
Posts: 167

Greetings Vladimir,

for a couple of weeks or so I have been trying to get a better grasp on how Spider handels Variable Quantiy and Workloads.

Initialy I though that there might be a bug when using this option and wrote to the team, but now I'm having second thoughts... .

From what I can understand  Spider does the following:

1. If Quantity = 1 to all assignments and workload is variable then the workload will be varied according to the minimal workload of each assignment.

Figure 1:

1956
varqw_2.png

2. If Quantity > 1 then Spider will attempt to assign a value close to the maximal quantity for each assignments, while assigning as many resource as possible to the rest of the activities. Also workload isn't varied in this scenario, it is constant and equal to the defined Workload Column.

Figure 2:

1957
varqw_1.png

In this example the amount of available resource is 8.

Even though the all activities could be started in parallel Spider tries to maximize the use of the 8 available resource. At least that's how I see it.

 

I'm certain there are some priorities and more rules the ones mentioned, I would like to know if  1. and 2. represent the general ideea. If so, is there a way to configure the scheduling algorithm to consider as priority the start of all activities in at the same time regardless of the optimal use of resources?

If there are only 3 resources available all activities are delayed, in order to assign the maximum number of available resources to each assignment:

1958
varqw_3.png

Considering my example, is there a way to set up an algorithm that would perform all 3 activities in parallel if only 3 resources were available? Or if 8 resource available not to consider a priority assigning the maximum number of resource to each activity?

Here is the file: http://speedy.sh/JVzNC/VariableQuantity2.001.sprj

 

OR, what am I missing?

Regards,

Bogdan

Rafael Davila
User offline. Last seen 32 min 11 sec ago. Offline
Joined: 1 Mar 2004
Posts: 4765

Usually unused assigments are hidden but at times it is convenient to see them all at the Activity Gantt instead of searching activity by activity.  Select Gantt-Options and make sure Hide-Idle Assigments is unmarked, when finish if desired mark it again.

Tong Cong Tuan
User offline. Last seen 16 weeks 3 days ago. Offline

Mr Vladimir,

Agree that shall take along time to do a huge of loops. Assumes have 5 resource quantity values of each activity, and have 2000 actitivities, so the number of loops is 5^2000 = cannot count.....

I read again Mr Rafael's post slowly and realise that it's a good enough solution in this case!

Thank All!

Tuan,

what is optimize in this case? To find minimal crews that still may finish the schedule on time?

Imagine that we use three different crews that use different resources and it is possible to achieve required finish by adding one resource unit to any of these crews. But we don't know all factors that may determine an optimal decision. Resource A may be more expensive but available, resource B is cheaper but less reliable, we want to use resource C because want to keep workers that have certain skill. A lot of soft factors may determine the decision.

Besides, Rafael suggested certain way for solving this task: create potential crews as multi-resources, create skills that include potential crews (multi-resources) and assign these skills. Spider will look for the crew that is available at the time of assignment.

But it does not optimize assignments. Better result could be achieved if to reconsider previous assignments making some resource available for future assignments, but it means a lot of loops in the resource leveling algorithms. As the result the leveling may become too slow and we cannot afford this.

Regards,

Vladimir

Tong Cong Tuan
User offline. Last seen 16 weeks 3 days ago. Offline

Dear Mr Rafael, and Mr Vladimir,

Sorry for not clearly, the question is not about selection of which kind of crews (define the number of different resources in assigned crew). Assumes that it's already determined well enough. The question is also about quantity of crew assignments.

"Spider Project does not :optimize" resource assignments because it is not possible to consider "soft" factors that define which resource quantity can be increased or decreased and which not."

Still not understand, I have:

+ the maximal Crew Quantity for each activity

+ the minimal Crew Quantity for each activity

+ total quantities of available resource for whole project (resource restriction)

When I turn on "Variable Resource Quantity", SP can define the various value of Resource Quantity (in Crew) during its activity durations for resource constrained purpose.

So why it cannot define when I turn off "Variable Resource" option? I image that can do a script (in Visual Basic code, or Spider Project code) that make brute forces for Crew Quantity in each activities run from minimum to maximum in turn, with the criteria for stop the loop code is resource constrained purpose.

Some activities are good when using Variable Resource, SP do it better other softwares, IMHO. But some activities I need not to use Variable Resource, when the Crew Quantity are unchanged during its activity durations, like "fixed" teams for special tasks which dont know how many team for optimization of resource constrained schedule.

Rafael Davila
User offline. Last seen 32 min 11 sec ago. Offline
Joined: 1 Mar 2004
Posts: 4765

As an alternative you can model several crew compositions as a multi-resource, each with fixed resource amount and its own productivity and define each as a skill. Instead of assigning individual resources or a single fixed resources crew assign the skill. 

Say Sill 1 members = multi-resource 1, multi-resource 2, multi-resource 3

Multi-resource 1 = 3 masons, 3 mason helpers, 1 mortar mixer   Productivity 30 sy plaster/hr

Multi-resource 2 = 2 masons, 4 mason helpers, 1 mortar mixer  Productivity 25 sy plaster/hr

Multi-resource 3 = 6 masons, 6 mason helpers, 1 mortar mixer  Productivity 50 sy plaster/hr

..... 

  • Note that crew productivity will not necessarily be linear with amount of resources, a common real life scenario. 
  • Note that crew composition is not limited to a single resource type and this shall be addressed.

Depending on availability the software will select best multi-resource option among those you defined and will assign the fixed resources of the selected multi-resource.

You can also combine the approach for some activities using variable quantities, and for some activities using a set of fixed quantities alternatives and the software will look for best selection.

But there is also the issue on cost and optimizing both at the same time might be impossible as the units for cost are not the same as the units for duration.

If a single activity job then for duration optimization Multi-resource 3 is the solution while for cost optimization Multi-resource 2 might be the best option subject to the relative costs of each resource.

We usually find it easier to follow Vladimir suggestion but the above is an alternative you might want to explore. The above methodology we use for other issues such as possible changes in whole crews when work moves from one season to another, at times because of seasonal weather, at times because of availability of some individual resource. 

Still the most efficient way to reduce cost of idle time is by making use of variable resource quantities and workloads. Any Project Manager will look for cost reduction and will make use of variable quantities whenever possible [more often than not] no matter what the dumb schedule says. 

Tuan,

please clarify.

Volume of work is activity property. If an activity is of productivity type then its duration is defined by activity volume of work and total productivity of assigned resources. If assignments do not include resource skills or variable assignments, activity duration does not depend on the project schedule.

When resources are assigned then you shall define the number of different resources in assigned crew. For variable assignments you may define minimal and maximal number of assigned resources.

In Spider Project materials (non-renewable resources) are assigned separately and different way (fixed, per volume unit, per hour of activity execution and/or resource work).

When resources are assigned and total quantities of available resources are defined Spider Project calculates the shortest possible resource constrained schedule.

Spider Project does not :optimize" resource assignments because it is not possible to consider "soft" factors that define which resource quantity can be increased or decreased and which not.

It is easy to play "what if" scenarios changing assigned crews and comparing results. For this we suggest to create and to assign predefined crews (multi-resources). When multi-resources are assigned it is easy to change resources that belong to multi-resources (or their quantities) and these changes will happen at all activities where specific nulti-resource is assigned.

So we suggest to optimize resource pool and resource assignments manually because people know better which resource quantity is flexible. For each option you will get optimized schedule for defined resource pool and resource crews.