Guild of Project Controls: Compendium | Roles | Assessment | Certifications | Membership

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.

How to make successor activity to start within certain time after finish of predecessor?

28 replies [Last post]
Evgeny Z.
User offline. Last seen 38 weeks 5 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

Dear all,

I am just wondering, is it possible in Spider to put a condition, that a successor activity shall start within certain time after finish of predecessor?

One can think of plenty technological limitations, when one activity does not necessarily start immediately after the 1st one, but must start within certain period.

Regards.

Evgeny

Replies

Rafael Davila
User offline. Last seen 6 hours 37 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Duplicated

Rafael Davila
User offline. Last seen 6 hours 37 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Vladimir,

Even if limited to only one outgoing/incoming maximal strict links I suspect you will have to program all ProJack Manager checks as if multiple links are allowed, of course I believe a single link will keep incompatibles under control.  To me it looks not as easy as other functionalities like Start Flex you developed on a single day and came out the same day with a bonus, Finish Flex.

BTW I found out with a simple formula using Star Flex I can model an elastic activity that expands duration with competing start and finish links.  

I was also exploring the use of formulas to model "ladder activities" that expand to satisfy longest rung, or shorthen/expand to follow a specific rung.  It worked manually, the formula I was using was a nested IF statement I had some issues with.  The trick is simple and just a couple of traps to take care, not difficult to figure traps. So thanks again for the bonus Finish Flex.  

Best Regards,

Rafael

Rafael,

I hope that our users understand that strict or maximal links may be incompatible. In new version network analysis will provide reports on links that are impossible to satisfy and the users will be warned.

This feature is something that is nice to have but only if possible. And we will restrict the usage of such links.

Minimal links are usual, only maximal links will be retricted like not more than one incoming or outcoming maximal dependency per activity. And still it is not sufficient for avoiding incompatible situations.

Rafael Davila
User offline. Last seen 6 hours 37 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Vladimir,

I was thinking on implementing Strict Links only as a special case of max/min lag limited to a single such link per activity, this will not allow the occurrence of three or more activities linked by strict links. I do not believe such limited definition would yield impossible situations, maybe a warning on resource availability in rare cases. 

About maximal/minimal lag I wonder what will happen during a Monte Carlo Run unless limited to a single maximal/strict link per activity.

An activity shall not have a strict and a maximal link if we want to rule out the possibility of incompatible links as the strict link might compete with maximal links on incompatible ways.  

If the above is correct then at least there would be no surprises, always working as expected.  

Both would be needed as a strict link modeled as a combination of a maximal and minimal lag would break the rule for only one such link per activity.

I also believe that all functionalities shall be compatible with resource leveling and use of other constraints such starting with date constraints, financial constraints and any other. This means than when any such constraint can invalidate strict link or maximal links, the software shall warn and reject the link. I just want to express my concerns about maximal lags.

I advocate for new functionalities but never at the expense of unexpected results.

About Reference Books I believe they are so well implemented that probably not a single code line will be needed as to prevent the transfer of incompatible links. Just a report of what was not transferred as well as of duplicates is needed, if not available already. 

Best regards,

Rafael

Yes, we plan to limit them but still it is impossible to avoid contradictions.

Of course ALAP works properly. Now we are making some improvements that will take a couple of weeks.

Rafael Davila
User offline. Last seen 6 hours 37 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Try setting Activity 1 to ALAP and use regular link instead of strict?

I believe strict links might be modeled as a special case of maximal/minimal lags and should be limited to a single such link per activity.

Such approach if possible might be a practical application of maximal/minimal lag mathematics without adding too much complication to the model as verification of schedule logic under complex maximal/minimal lag can be quite a difficult task.

Thank you, I assigned resource in wrong order.

Regards,

Vladimir

Evgeny Z.
User offline. Last seen 38 weeks 5 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

Evgeny,

I cannot repeat your case where Spider creates unoptimal schedule when the link is strict.

For the same project ny schedule is fine.

Can you upload your model?

Regards,

Vladimir

Rafael Davila
User offline. Last seen 6 hours 37 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

I would say a strict link represents a minimal lag and a maximal lag relationship combination with lag values equal and that when not enforced, when not driving, it shall be identified as a broken link.  I see them as a special case of scheduled out-of-sequence.

I understand when enforceable they will delay preceding activity as to keep the fixed distance. Resource constraining complicates things but must be addressed as well. If resource leveling overrides the strict link it shall be identified as a resource broken link. 

Yes, the same problem with strict links. That is why we suggest our users to use them rarely and avoid more than one link to activity that have strict predecessor.

At the moment we reconsider strict links algorithms, so be patient and check them again in a couple of weeks.

In any case in some situations they will be broken.

With NLT links the situation might be even worse.

It is easy to learn if strict link is violated - in this case it is not driving.

Evgeny Z.
User offline. Last seen 38 weeks 5 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

Vladimir,

as I understand, Strict Links have pretty much the same restrictions, so in this respect this maximum-type relation does not change too much.

That is why, as I understand, in Spider the Strict Links are defined as the links, which only resource-constraind schedule considers as a restriction. The normal Scheduling does not even give a warning, if the strict link is violated

Regards.

Evgeny

Alexandros,

Evgeny asked about using dependency restrictions like next activity shall start no later than 10 days after predecessor finish.

At the moment all dependencies in most softwares are of No Earlier Than type.

If to add No Later Than types of dependencies we will meet contradictory requirements.

Imagine that activity A follows both activities B and C (FS) with start no later than 5 days after predecessor finish.

Now imagine that activity C with 10 days duration also follows activity B (FS).  In this case no later than restriction cannot be satisfied.

This is the problem with such dependencies. It is easy to create the network with NLT dependencies that just cannot be properly scheduled.

Alexandros Kroustis
User offline. Last seen 2 years 7 weeks ago. Offline
Joined: 29 Dec 2006
Posts: 18
Groups: None

1. Correct if I am wrong, but "slack" isn't the same with Free Float (Which every scheduling program has)?

2. Can't we just solve the above mentioned problem in Spider Project just by selecting the Excavation (Activity 1) to start ALAP (As Late As Possible)?

1688
spider_example.jpg

Rafael Davila
User offline. Last seen 6 hours 37 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

I have been testing some models using ProJack.  In the following example Task 2 is a maxSF(3d) predecessor of Task 1 while at the same time Task 1 is maxFF(3d) predecessor of Task  2.  This means Task 2 shall start at least 3 days before finish of Task 1 while it cannot finish 3 days over Task 1 finish.  It is a circular reference, that has a mathematical solution traditional CPM software cannot deal with. I added Task 3 as a minFS(0d) predecessor of Task 2 and tested the model by changing the duration of Task 3, the model worked as expected.

 photo pj01_zpsda241a6d.jpg  photo pj02_zpseb32858e.jpg  photo pj03_zps772b2923.jpg  photo pj04_zps9c7558b1.jpg

It looks like with the use of maximal/minimal links some things can be done you cannot dream of if using traditional CPM links alone.  

While exploring other circular references the software consistently crashed and I had to recur to the Task Manager to close the application.

There is also a Combination of Relationship link that might be of interest. 

http://www.projackmanager.com/?q=node/179

ProJack Manager brings many interesting functionality but it's unreliability and tendency to crash on the smallest of jobs is too much for me. 

I tried Evgeny sample job with ProJack Manager and got the same non optimal result on a simple job that optimal can be determined manually.  Spider Project users know that optimal algorithm not always yield absolute optimal but equal or better than most other algorithms. As a matter of fact at times I refer to optimal as "optimal or near optimal" as to make a distinction to absolute optimal that in many cases is not known.

On large, complex schedules the results by Spider are better than what most schedulers can figure it out manually. When I asked about how good ProJack manager resource leveling algorithm I knew about this, I was wondering about it being equal or better or at least close to Spider. I was also wondering if the additional constraints imposed by max/min lags would make it harder, same as strict relationships I believe shall make it harder.  My request for maximal links to be inactivated/re-activated among other reasons is to compare results, if not too far then manual resource leveling attempts on complex jobs make no sense at all. 

Best Regards,

Rafael

Evgeny Z.
User offline. Last seen 38 weeks 5 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

Vladimir,

I just looked at the strict links feature (I didn’t know it before). Yes, I agree, that it provides solution for most of the examples I put below.

The only thing which the maximum-type relation would add – is to give a resource leveling algorithm more flexibility in selecting the most optimal time (from overall schedule point of view) to perform certain job within allocated time window. (e.g. vaccination of a baby must happen within certain time frame, but resource-leveling algorithm has a flexibility to move it around within this time-frame to make sure, that parents can do other important tasks).

However I noticed, that at the moment when Strict links are used, even Optimization Plus algorithm does not produce an optimal result even for very simple schedule.

E.g. in the example below Activity 1 and Activity 2 have a strict link between them. You can see that Spider did not resource leveled the schedule optimally

https://docs.google.com/file/d/0B1FBt_G3gCVqQmdrMl8xZDEyRWM/edit

 photo Spider_StrictLinks_none_optimal_zpsed1af6cc.png

This is what I would consider the optimal schedule (I have done manual resorce-leveling here)

 photo Spider_StrictLinks_optimal_zpsb3a9ef67.png

Conclusion (the way I see it at the moment and may be I miss something):

  • Strict links  provide minimal functionality to ensure, that activities, which cannot be pulled apart from technology point of view would not be resource leveled apart.
  • Addiing maximum-type relation would only add more fexibility to allow for more optimal resource allocation
  • It feels, that would make  sense to implement the maximum-type relations only when the part of the resource leveling algorithm, which takes these restrictions into considerations, is improved to produce more optimal results. 

Evgeny,

Spider includes strict dependnencies that cover some of your examples. I will think about implementing maximal links but still think that they may create a lot of confusions. Strict links also do not work in all times and Spider warns if they shall be broken.

Rafael Davila
User offline. Last seen 6 hours 37 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Mike,

You said - In Asta PowerProject there is a constraint that says "must start between" for a fixed period.

This is a Date Constraint not a linkage maximal, two very different things as Vladimir warned before. So different that as soon as I realized of what Evgeny was talking about I had to edit my postings. 

What Evgeny is asking is for a more advanced functionality.  I believe same as Spider Development team decided not to implement there is a possibility Asta Development team and P6 also decided not to implement.

That they decided not to implement the functionality it does not means you shall not have a strategy, Evgeny question is very relevant.

Although never before I had to work on such a strategy and came out with my own on the run any improvement on the strategy is welcomed. I might need in the future to resort to such strategy, never say never.  It is a strategy that might be adapted to/from other software.

Maximal links can be of the type SSmax, SFmax, FFmax or FSmax. As soon as a few are added the model becomes very complicated.  In the following example we have SSmin=0, SSmax=3, FFmin=0 and FFmax=5.  If Activity 3 duration is reduced to 2 days or if deleted no maximal will be broken.

 photo MaximalLag03_zpsccc345bc.jpg

Comparing against the link "slack" shall be substantially easier.

Even when in agreement with Vladimir that this functionality might create confusion I wonder if implementing it with the option to toggle it on/off might be a good idea. "Off" to make existing maximal links not to be considered in scheduling and the creation of new maximal links unavailable.  "On" to enable creation of new maximal links and to activate maximal links.  

I am starting to believe that the strategy to solve manually the issue might be more confusing than using this functionality.  Delaying the activity will usually solve it when resources are unlimited but limited resource availability can make it very hard to solve manually.  

https://lirias.kuleuven.be/bitstream/123456789/220858/1/OR_9804.pdf

Best Regards,

Rafael

Mike Testro
User offline. Last seen 4 weeks 4 days ago. Offline
Joined: 14 Dec 2005
Posts: 4418

Hi Evgeny

This has been a fascinating exchange but there is no place for such maxima linkage in construction.

Other spheres such as pharmaceuticals really do have such a need and software providers should provide it.

I have already said that Asta PowerProject do have such a set of constraints but they are not providing solely for construction.

Best regards

Mike Testro

Rafael Davila
User offline. Last seen 6 hours 37 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229
  • Maybe  such restrictions can be checked by looking at the Relationship Slack: 
  • http://scheduleanalyzer.com/sa_long_theory.htm
  • The term “slack” as it concerns a CPM relationship is the amount of ‘unused’ time difference between the predecessor and the successor activities. This slack value has nothing to do with the float values or either of the two activities that it relates. It merely indicates how close each predecessor is to becoming the driving relationship for the successor activity.
  • If relationship lag + slack > maximal then maximal is broken. 
  • With the use of a Milestone and a Hammock you can find if the condition was broken and by how much.

 photo BrokenMaximal02_zps615bcf2d.jpg

With the use of a user defined field to identify Over Maximal Hammocks and the condition of duration not equal to 0 you can filter out broken maximal. Use of signals is another option. Delaying the activity will usually solve it but very frequently it might be desirable to use other alternatives. 

  • I do not recall a real need for maximal on my jobs. Trench excavation is a continuous operation and shoring of trench excavation is incidental to the trench excavation activity.  On a same day you excavate say 10 ft and shore, then continue excavation and shore, you cannot excavate more than a certain distance without shoring or it will collapse.  Even for basement excavation the sequence is different, you excavate up to a certain depth, brace the soldier beams, then continue the excavation without a limit.  If it rains there will be no collapse of the excavation or of nearby buildings. 
Evgeny Z.
User offline. Last seen 38 weeks 5 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

Vladimir,

I was thinking about this. The real world around in full of such restrictions:

  • Shoring of the trench has to be done not necessarily immediately after excavation, but within certain time, otherwise the trench will collapse
  • Vaccination of baby has to be done not immediately after birth, but within certain time
  • Renewal of the passport has to be done some time after the current one has been issued, but before it expires.
  • If somebody has completed the work for you, you don’t have to pay him immediately, but must within certain time.

 

Maximal-Type relations are all over the place and we all take them into account in real life, without formally realizing, that we are working with advanced scheduling features.

So, I wonder now: how in real life on big schedule such restrictions are being checked without having the feature being formally available in the software?

 

Regards.

Evgeny. 

Evgeny,

with this feature it is too easy to create contradictory dependencies.

We try to add to Spider anything that may be useful in practice but this feature will certainly create a lot of confusions.

Best Regards,

Vladimir

Evgeny Z.
User offline. Last seen 38 weeks 5 days ago. Offline
Joined: 13 Jan 2008
Posts: 442
Groups: None

Rafael,

as always, you come with very interesting links.

Apparently what I have asked for is called "Maximal-Type Relationship" and in accordance to the link, you provided

<<

This kind of logical dependency can occur in numerous cases. Earlier these could not be used because the products already on the market are not able to manage these relationships. In 1959 G. B. Roy, French scientist, described the maximal-type relationships in the network technique invented by him. This technique is considered to be the base of the Precedence Diagramming (MPM) used today. At the end of the 60s Alan Battersby described this type of relationship that affects the predecessor pulling it closer to the successor.

>>

Vladimir,

some time ago you started the "Let’s Challenge SPIDER" thread.  

As Spider is positioned (and I believe quite rightly) as the "best scheduling engine out there", this is a challenge to the core competence of Spider, which Projackmanager allegedly brings, isn't it? (By the way it also comes from Eastern Europe) 

Regards.

Evgeny

 

Rafael Davila
User offline. Last seen 6 hours 37 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Suppose you have Activity C shall start 5 to 10 days after finish of A and also 20 to 30 days after finish of B.  If activities A and B finish at the same time when will Activity C be scheduled?  If activities A and be do not finish at the same time then it might be there are some possible solution sets. 

There are a few software that tackles the maximal lag such as ProJack Manager.

http://www.projackmanager.com/?q=pj

I would assume that it looks for the earliest as well as latest possible solutions and if not enforceable then it will ignore the requred maximal lag which is a constraint on the link.  

I wonder how good the algorithm is at identifying the best solution set as selecting some values for lag will affect the availability of following selections even on the simple models. The resource leveling algorithm shall also consider these constraints and might increase the possibilities for no solution sets that meets the time lag constraints imposed on the links. 

I also wonder if ProJack Manager can deal with the issue of multiple incoming maximal links into a single activity. 

Mike,

date range may be set assigning both Start No Earlier Than and Finish No Later Than constraints.

Evgeny asked about No Later Than dependencies.

Best Regards,

Vladimir

Rafael Davila
User offline. Last seen 6 hours 37 min ago. Offline
Joined: 1 Mar 2004
Posts: 5229

Having a range of values for a link might result in an impossible schedule. Just imagine several activities connected in tandem by such links. 

Mike Testro
User offline. Last seen 4 weeks 4 days ago. Offline
Joined: 14 Dec 2005
Posts: 4418

Hi Evgeny

In Asta PowerProject there is a contraint that says "must start between" for a fixed period - though why you would ever nead it in a construction programme is a puzzle.

Unless it gets right down to "must spread the plaster before it sets".

Best regards

Mike Testro

No, like in most other softwares Spider uses No Earlier Than types of dependnecies.

But there are also strict dependencies that define that the following activity shall start on certain time that depends on start or finish time of preceding activity. This dependency is much harder to model and sometimes it cannot be satisfied. We suggest to use them rarely and Spider delays succeeding activity if the solution cannot be found.