THE UNIVERSITY OF MICHI3GAN INDUSTRY PROGRAM OF THE COLLEGE OF ENGINEERING A COMPUTER PROGRAM FOR LEVELING RESOURCE USAGE R. V. Galbreath August, 1964 IP-679

d16m

TABLE OF CONTENTS Page LIST OF TABLES.......................................... iii LIST OF FIGURES.......................................... iv SYNOPSIS........*....................1...................... 1 INTRODUCTION................................................. 2 DIFFERENCES BETWEEN THE CPM AND LEVELING PROBLEMS5......... 5 EXAMPLE PROBLEM...................................... 10 PROGRAM METHOD..............................................16 IMPERFECTIONS OF THE PROGRAM........................... 24 CONCLUSIONS.................................................. 25 APPENDIX —-NOTATION................ 26 ii

LIST OF TABLES Table Page 1 List of Project Activities.............................. 29 2 Values Returned by CPM Program........................ 31 iii

LIST OF FIGURES Figure Page 1 Conventional Bar Chart (Single Resource)............ 30 2 Arrow Diagram........................... 31 3a Bar Chart, Leveling Program Trial No. 1 - CPM Output Activity Location (Single Resource).... 32 3b Bar Chart, Leveling Program Trial No. 3 - Floated Activity Location (Single Resource)........ 32 4 CPM Activity Bar.................................. 31 5 Flow Chart, Resource Leveling Program............ 33 iv

A COMPUTER PROGRAMI FOF LEVELING RESOURCE USAGE Robert V~ Galbreath, Mo ASCE SYNOPSIS The Critical Path Method study for a construction project does not provide all the information requisite to a comprehensive and practical schedule for that projecto An investigation into the results of such a study is necessary to reveal the demands which would be placed upon construction resources and the rates of change of these demands. The process by which this latter investigation is made and which, further, attempts to bring these usages and rates within workable limits is commonly referred to as "Resource Leveling'" The object is to "level" the day-to-day, week-to-week usages of resources, principally manpower, within the current availability of those resources The leveling problem differs from CPM in that it is not susceptible to precise mathematical statement. There is as much difficulty attendant with deciding how a leveling problem shall be approached as with performing the operations once decided upono Lack of general agreement as to how leveling should be accomplished and the apparent uniqueness of each construction project problem seem to preclude the formulation of a "universal" program capable of solving any and all leveling problems, Assistant Professor of Civil Engineering, University of Michigan, Ann Arbor, Michigano -1

..2 The program described here has been formulated with three purposes in mind. (1) The manipulations built into the program have been designed with simplicity and logical directness as objectives, and the program is to operate within full view of the user Also' features have been incorporated which provide the user with the ability to manipulate his problem data to test alternate plans and schedules (2) The program is so consituted as to be readily adaptable to innovationO The testing of leveling schemes i.s as much an objective as the working of problems (3) The intent is that by making available a basic program which can be modified or refined or, if it is warranted, completely supplanted this whole topic of resource leveling may be discussed withb greater candor than has been the case in the past. This is an important problem which must be dealt with effectively if recent progress in the development of construction management tools is to be continuedo INTRODUCTI ON The accomplishnmenrt of the Critical Path. Metrhod phase of planning and scheduling a const-ruction project leaves undone an important task which must be performed if the benefits of t.ne CPM study are to be fully realized. This operatior is known by several names, probably the most common of whichb is "Resource Leveling" or sometimes simply "'Manpower Leveling" ThIe earliest presentations of the Critical Path Method expressly recognized the need for further inrestigation into the results of a CPM study for a given project with regard to the demands which would be placed upon constructio n resources and the ratess of change of these demands. While CPM continues to become more widespread in its usage, it

is suspected that few of its users, even the most experienced, have at their disposal an efficient method for examining and solving this very important companion problem. The results of the CPM study for a project may appear quite feasible on the surface, but investigation is likely to reveal that exceedingly high levels of resource requirements or far-ranging swings in such requirement levels make revisions or modifications of the CPM schedule as first rendered a necessityo This basic problem, i.eo., the need to efficiently utilize the resources which are required to accomplish the work, confronts every manager of construction whether CPM is employed or not. The objective, of course, is to "level" the day-to-day, week-to-week usages of resources, principally manpower, within the current availability of those resources. Further, transitions from one level of usage to another should not be so abrupt as to cause disruption in the steady flow of construction activity, A few of the adverse influences working against efficient project operation which are present when wide variations in resource usage occur are as follows~ (a) Hiring and layoff processes involve extra cost, The same is true of shipping equipment to and from the project site, whether it be contractor-owned or rented, (b) New men are less familiar with a project, and hence less efficient, and supervisors require time to become familiar with the capabilities of new people (c) The better tradesmen naturally search out those projects or employers having a reputation for providing longer periods of sustained employment. Systematic attempts at the solution of the resource leveling problem, while perhaps appearinrg with greater regularity in recent years,

certainly predate the advent of computers and computer programs written to provide aid in the solution, of problems of construction management. It is true, however, that the devising of computer-oriented methods of planning and scheduling construction work, most notably CPM, has constituted a sizable step forward in the quest for techniques which will permit the construction manager to search out the most systematic and efficient rate and order of utilization of the resources which must go into his projecto Before CPM became available there were few systems for selecting the "best" order of activities for a given project which could, in turn, be used in preparation for the attempt at leveling resource usage The concepts of "float' and:'event time boundaries" within which an activity must be accomplished have provided a logical solution upon which schemes for leveling can be superimposed. As was noted above, the earliest announcements of CPM fully recognized the companion problem of resource leveling. It generally has not been emphasized, however, that there are basic differences in the two problems which make the solnution of the second far more involved than that of the firs t. Acceptance -of t.h.e logic and assuamptions of CPM has come with relative ease, and the resul ting program is one of precise mathematical steps TIhere is only onl e CP'M solution for a given arrow diagram. The same cannot be sai.d however, of the problem of resource leveling If assumptions could be agreed upon, a precise mathematical solution perhaps could be provided, ut so large a Tnumer of assumptions would be necessary upon which to base such, a solution that the likelihood

-5 of these being widely accepted seems extremely remote. Also, it should become apparent that the assumptions must vary with the specific project problem submitted. These factors lead to the conclusion that a "universal" program capable of solving all resource leveling problems is not likely to appear in the immediate future The purpose of this discussion is not to attempt to provide a scheme to solve the ultimate in resource leveling problems, but rather the program here described is intended as an intermediate step in that direction. In order to accomplish this purpose it is necessary to provide a means of arriving at usable solutions to present, practical, lessthan-ultimate problems DIFFERENCES BETWEEN THE CPM AND LEVELING PROBLEMS An example will serve to review briefly the methods which have been employed in the past to cope with the resource utilization problem and may serve to clarify the various complications which are encountered when one is confronted with this tasko Table 1 lists five activities which are but a part of an entire steam power plant construction project~ Opposite each activity description are figures representing the number of pipefitters required to perform the activity and the estimated number of working days which will be required to execute the activity~ (Ti-me units for this paper will be "working dayse unless otherwise noted ) A number of things should be apparent concerning this selection of activities: (a) Using only five activities to represent the installation of a main steam system in a power plant probably is an oversimplification of the work involved o

(b) The main steam system is only one of perhaps thirty or forty piping systems which would be undergoing installation in the power plant example chosen, (c) Piping installation is but one phase of the entire construction and engineering projecto (d) The numbers of pipefitters required to perform the work involved in each activity constitute but one of many resources necessary to accomplish each of the activities listed, Factors such as these may affect the degree of accuracy of a CPM network9 but the validity of the program will remain unimpaired. The results, though imperfect, are usableo Such factors, not properly handled, will have a far more devastating effect upon the leveling solution, however9 and all semblance to reality easily may be losto The basic principles and assumptions upon which CPM has been developed can be, indeed, frequently are, illustrated by a simple arrow diagram consisting of five, or so, activity arrows The logic and arithmetic employed in the solution of such a sample diagram, however, remain valid regardless of the size of the diagram to which they are appliedo The same is not triue of the resource leveling problemo A diagram such as the one which, will be presented herein perhaps is susceptible to general agreement as to the leveling solution which could be pronounced'best" It should be readily apparent, however, that any scheme devised for arriving at thisi "bestv" sol tion for a simple problem such as this, would likely be ineffective foril leveling resources for a larger or more complicated network., To illustra-te

(a) By oversimplifying the representation of the work involved in installing this system is there not a good possibility that misleading results will be obtained? Should not there be a larger number of activities, and, if there were, would not the resulting resource usage be different than that shown? (b) Is not this but one group of a much larger number of activities which place demands upon the one resource considered? (c) Is not the task of installing the mechanical systems of this plant, along with the attendant demands upon available resources, but a part of the whole project which must be considered in its entirety as regards resource allocation and relative importance of same? (d) What of other resources which may be required for each of these five activities? May not the availability of the following be just as important as that which is shown? (1) Pipefitter Welders. (2) Welding Mac.hineso (53; j Stre -ss- P e l evi. rg:Ma c, i ne.e {4) LayDut; Erngi.:eer- (5) Electri.ci. an (6) Tugger Boi ts. (7) Yard Handling Equipment. (e) When more than one resource is involved which is to be considered paramount? Is there a prlDritvy order fr the resource requirements of an activilty? Is thiere a pr orr t order for the resource requirements of the project as a. hol.e%

(f) What of the relative levels of availability of the resources and the interplay of these as regards any given activity and the project as a whole? When a manager is to determine the availability levels within which the project is to operate (and these almost always are arbitrary within certain bounds) what is there upon which he can base this judgment? (g) If a satisfactory solution were found for one resource leveling probem is it at all likely that the same scheme or program will yield a satisfactory solution to the next problem? These, and other considerations which may occur to the reader give rise to the suspicion that any system or scheme or computer program which is claimed to be capable of providing "the best" solution to a resource leveling problem is either oversimplifying the situation or making assumptions which, if fully understood, would not necessarily be acceptable to constructi.on managers. For these reasons the program presented here is designed with three objectives in mind: (1) The manipuiation ofs acti.,i.dties wh.ich;nave been built into the program are intended to be as logica.l a.nd direct as possible The criteria used to arrive at a "trial solution: are, it is felt, those which an experienced constrictior manager mlight be expected to use in an attempt to solve his resource leveling problem An effort has been made to keep these activity movements wit, in tt-e'iview' and u!nderstanding of the manager in order that he may apply hi,.-'judsmen't to make alterations in the planning and scleduling a. re.^ired, Also, several feature-s have been incorporated w1itcC provide tre mager aer with the abll ty to manipulate his problem in order to seek ouat betmter solubtion3rs

(2) The computer is to be Jsed as a'workh.orse" for testing not only variations on network logic and activity schedules but also for testing alternate schemes for the manipulation of activitiesO One approach to the design of a computer program for solving the resource leveling problem would be that it must first be decided what the entire scheme is to be before a program is written to accomplish its endso While this method would seem to be logical iLt is highly unlikely that such an approach will. be entirely fruitful. One difficulty is that it is virtually impossible adequately to test a scheme whic-h may be devised without resorting to a computer. Even the simplest of problems and trial schemes take a considerable amount of time to test by manual methodso Also, there may come a time when increasingly sophisticated programs can be written which will make evaluations and decisions which, in the program here presented9 must be made by the user but, it is submitted, much more practical data must be collected before that point is reachedo (3) It is intended, in disclosing the program in detail, to encourage others to take arn irnterest i.n thls problem and to come forward wi th subs'ti.tut ions for, or va.riati.- ot- t.h is ba-a schemeo One such refinementJ, for example, woul d be. to superimpose upon t.e scheme additional criteria for manipulati.on r f a.ctIri.ties I't is ioped this program is basic enoughb that it may be modified., pres-et;, re.fined a~nd biased to suit the tastes of t+he e.xperi:merter Alo, the hope. is that it will be found to be of practi. cal val.uIe to app'll t:he program as it now is written and t.hat the construction industry mar hare tne e:refit of a use:ful tooal immediately and that data may be corllected the!-reb with w.icn to suggest improve ments.:

EXAU-LIE PROBLEM Before the appeara.,ce of C"FM i.t was quite common to represent a schedule for construction project acti'vities i.n the manner shown in Figo lo Most often the sequence selected fo.,llowed the experience of the person making the schedule o Usually,, not too much objection would be raised as the pattern was fairly familiar, and any differences generally would be a matter of personal preference. Thr.e contractor would fi.nd it not too difficult to work within the general sc`.hedule) and if.e made any attempt at resource leveling at all it probably took the form shown in Fig. 1, namely adding the requirements of the most important one or two, or perhaps three, resources to determine'the daily total requirements for the project. Some minor shifting might then take place until t he levels of the rquirements were somewh.at consistent and were. witi-Ln thec realm of feasibility. It can be seen. that criteria for attackuing, the leveling problem were few and relatively crude The combinations of possible individual activity sequence for a. project of any realr.iauble magnitude. were virtually infiniteo Since terwas availaibl.e c ogi.cal vtem r t easi l. e.l.pl ori ng t.ie sequencing of ac'tivl t-ie: t'e,.:sr ied:^- - tia. ag reei uApon amounted to a selection based upon pati expere-;ice -in-tu 1.itiOn. per:uasi'veness of indi. vidual persorna.lit ies, and t'l,, -mt.e.r lack of time t) e.:xplore more than a few of the more obvious po:i.-i I'i. tie-~ The con.struc'lon. maagera z -aced w -ltt-, oiui9r example problem, were he a user of CPM, would ee toa tr,'- re,- l.,i.iti.o of a plan for accompli$hing the work whicrh would r?- accep-table'; ~R a.E on:cernerl Ti-s, of cCourse, would take the. form of tnue I"'oft ci a.i' alrrow dl.agram for t.ihat project

For the sample portion of thre exampie power piant project this diagram might look something like: t'hat shown in Fig. 2o At this point it is imperative tThat there be a clear understanding of an important premise whiLch appears) to the author at least, to be axiomatic and upon which this paper is based~ Thre solution of the planning and scheduling problem depicted by the arrow diagram, even though pronounced' official' by those with the authority to do so, is neither the only, nor the "best" solution possible. At most it is the "best" solution arrived at after careful consideration of all the factors which were available to that point, Not among the available factors which bear on the ultimate selection of an arrow diagram configuration and the execution of the work was the effect of the resulting work schedule upon resource usage, (It will be remembered that an arrow diagram is constructed assuming unlimited resou.rce.,)- Anc5 scheme for the solution of the resource leveling problem whichK takes from management the ability to review and revise th.e whole plan, or ary part thereof, for accomplishing the work and sucbstitute some na tr' matncal so lution wnc. i s beyvond th.e "view" or comprehensleon or con.tro::- itnaragemen. perverts the true purpose of these managemenr too'ls. Those wh-o contribute to t;e development of an arrow diagram and t:e -P Ilto do C-c wSt t4 t.e u.inderstanding that eac' sub-plan which they contribui t:e and whicn becomes a part of tL.he entire diae gram merely is a plar, probah'-':or o' many w'hi cl c:uld be conceived, for that portion of the prot:ect r' whi^:. t, aW re in.volved, Tr place even a sub-plar, mut.c. lsst the rtegrlated -.e —d>le: be ev-ond the control of management to change ozr caonsider for cha.nge. w:i uld. be: to alter the baslc rules

-1.2upon which a CPM solution is strt.cturedo Any resource leveling program should be so devised as to encourage rather than discourage frequent review of the entire plan, the CPM portion included, in light of the results provided thereby. Returning to the sample problem; the values rendered for each. activity by the CPM program appear ir Table 2. It is assumed these are familiar to the reader, but a brief review of the notation used here may assist in understanding the tables. -:. = An activity - One part of the total project with a corresponding demand on time and resources; (O =~ An event (node) - The point in time at which one or more activities have been completed and one or more activities may be started; I = Identifying number assigned to the node at the tail of an activity arrow;. = Identifying nmrmber a.."ine:. to tne norde at t he. h.ead of an activi ty arrow; TE(!) = Earliest event tlmne of' the I- rode of an acti v\ity; ST Starting time of an activtitv- (ar t e outset ST - TE(I) for all acti vities); Y = Normal-tilme d.ratiloan of t-he activit+y; FT - Finish time of an a ct vit y (at the outset, FT ST + Y for ail activities ); TL(J) = Latest event tirL me of t:ec. -:d- node of an a.ctivity';

-13FF = Frpe: f lat for an activity (FF = TE(J) - (ST + Y), or FF- TE(J) -FT); TF = Total float for an activity (TF = TL(J) -(ST + Y), or TF = TL(J) -FT); ITF = Interfering float for an activity (ITF = TF - FF, or ITF = TL(J) -TE(J))o Figure 3a further illustrates the relation of the various values which are derived from the CPM solution for each activity. One minor point which might cause confusion is that having to do with the values shown in Table 2, and subsequent tables, for "TE(I)" and "ST" for each activityo The first day during which work may be performed on an activity is the day following the value given by the CPM program. It is necessary that this or some similar rule be adopted in order to simplify the arithmetic used in the CPM and leveling programs, and this seems to be the standard convention. For example, the activity illustrated in Figo 4 (activity "C") has a normal duration ('). The simplest computation which will yield TE(J), the earliest event time of the J-node, (which, of course, also is TE(I), the earliest event time of the I-node for subsequent activities originating at that node ) is Max(TE(I) + Y = TE(J))......... (1) Once accustomed to the idea that all event times are as of the end of the day given the reader should experience little difficulty in visualizing the results of the arithmetic used,

-14In the left-hand portion of the chart in Fig. 3a are repeated, from Table 2, those values for each activity which are necessary to produce the leveling program bar chart which appears in the right-hand portion of the figure. TE(I) and TL(J) for each activity are represented by vertical lines at the right edge (the end of the respective event-time day as explained above) of the column representing the appropriate working day, These are the event-time boundaries for that activity. During the execution of the floating process in the leveling program TE(I) may be relocated to the right, toward the end of the project. TL(J) values are never changed in this program but remain fixed as does the total duration of the project which remains fixed at CPM normal duration. Trial 1 (Fig. 3a) in the leveling program is computed with all values, including TE(I), in the location given by the CPM program for an all-normal-duration, all-early-start project. The decision to maintain unchanged all TL(J) values, and hence the duration of the project, throughout the program follows a second important premise which, like the one mentioned earlier, is basic to this discussion. Properly constituted, a leveling program should reveal trouble spots so that the user can re-evaluate the input data or assumptions and make changes as necessary to yield a feasible schedule. The length of the project should not be extended until all other possible remedies have failed to level resource usage as desired. Trouble areas should not be concealed by resorting too quickly to this solution. In this program trouble spots are flagged by the values "EXTEM," the excess of a resource requirement for a day over the resource availability for that day. Almost

-1never is the data supplied by the user so precise and rigid that alterations cannot be made. Indeed, incentive to investigate new and different approaches is quite desirableo If a project is to be lengthened this decision should come from management, not from the internal workings of an imperfect leveling scheme, In using this approach an additional important benefit is realized in that the concepts of total float and free float and critical path are not sacrificed to the leveling solution. These can be retained for use in the continual updating process which should be a part of project control by CPMo In Figso 3a and 3b (and in Fig. 4), the values for each activity are represented by a bar as follows: The left extremity of the bar is the starting time (ST) and may be coincident with, or to the right of TE(I)o (ST will always be coincident with TE(I) in Trial 1.) The shaded portion of the bar is the activity and its length equals the duration (Y). As will be explained later the activity may be split into a number of segments (except in Trial 1)o The right end of the last shaded (activity) segment of the bar is the finish time (FT)o The entire remainder of the bar, open portion (if any) and cross-hatched portion combined, between FT and TL(J) is total float (TF)o The left extremity of the cross-hatched portion of the bar is TE(J), If FT and TE(J) are not coincident the portion of the bar between them is left open and this represents free float (FF)o If there is no open portion in the bar there is, of course, no free float for the acticity and TE(J) equals FTo The cross-hatched portion of the bar, lying between TE(J) and TL(J) is commonly known as interfering float (ITF)o

OD TIhe Flow C:hart for thi. program. i.s found in Figs. 5a, 5b, 5c, and 5do The accomplished prograimmer doubtless will be able to find many ways to improve upon its efficiencyo Extensive format portions which are necessary in order to keep track of the operations performed and to properly organize results have been omitted in the interest of brevity A complete list of all notation is foaund in the Appendix at the close of the sapero A brief descripti.on of the program follows~ Io Data Which Must be Suppliedo Ao Activity data from the CPM program, as in Table 2n B Values supplied by user~ 1. Activity Character - Determination for each activity as to whether it' may be. split into segments in its performance or that it mu.st be pe-rformed as a block, i.oeo once started the activity must carry through to completiono (Code: 1- ='Cannot be cplit,'; 0 -'Can be split o) If an activity is spi..t,able arid t i's S-plit, during the leveling process the number of time-: -,. is lone and th.e days upon which rh-;.se gaips oar -r;..i:.-c.r - 11., -e5 pri rnted with the resultsF'The decis: r a- t',1ru.., acti'vi.ties cain be split has an important effect or. tr^e prob.em s ol.uiton and is one of the!arl,'at'o ippurrn'i t:es wanch is? u.nder the control of the us er 2 P.eo.,-rce: - — e t:rm rati;:.) of thee re-sorce which are to be con Ilsi dered. Ar p rese. Ktnl. writte n ninre re-sources can be hanrdl.ed and a'l:.,r-c, can be. used for an.y and a ll activities Thi.s number cooi..'d hbe e.x'panded if the need aroseo

_173" Priority Selection of the job-wise priority order for the resources considered. Other priority orders, of course, could be tested in subsequent runs. 4, Requirements - Determination of the requirements of each activity for each resource o Availability- Determination of the level of availability of each resourceo Each resource availability level can be preset to any curve desired These levels can be varied to test for different results in subsequent runs. 6. Activity Order - Selection of the order in which the activity cards are to be fed to the program, This order will have an effect on the outcome except in the simplest of problems There are several criteria for systematically selecting the ordering of activities, and, of course, the mathematical possibilities of ordering activities are more numerous than could be tested in a reasonable time even with a relatively small number of activities. 7o Miscellaneous ao Number of activities b, Normal project durationo As was discussed above this program does not alter the normal duration of the projecto If the user wishes to consider such a change he can do so, but the program will not take such license with the data suppliedo co Number of trials desired. As presently written Trial 1 is computed in the all-early-start positiono Trial 2

1 A is not, of itself, usable~ Trial 3 is computed after the floating operation Experimentation to the time of writing indicates that subsequent trials usually yield no changes in the results. IIo Operation of the Program~ 1, The CPM data and other data supplied is printed in proper format, Also computed and printed with this information are ITF and a value known as "HOLD N' (HOLD = TL(J) - ST) The use of this value is explained below 2, Trial. 1 Daily Resource Requirements: Beginning at the first day each activity is examined in its turn to determine whether it is scheduled for performance on that dayo If ST < D < FT the activity is so scheduled. If this condition exists the requirement of the activity for each resource is added to the appropriate resource requirement running total, TRRQo After the examination of the last activity the total resource requirement for each re ourc e for t.ia.t dav, THR.Q(). o ooTRRQ(RMAX), is printed; and th.e exce-, ifT any, of eachL of th.ese, EXTEM() o EX'TEM(RFMAX), over the total availability of each resource for -triat day, TRAV'7 ID).oTRAV(FR'MAX.,D) also is printed, all in proper format. Each subsequent day is treated similarly until the entire numrber of rnormalduration days have been so bhandled, At tlhat point th-e grand totals of the daily resource requirements- for eac, resource are prilted, REUTTOT(l). RIaTNTOT(RMAX)o These totals are used to ins.pect the action which has taken place during subsequlren trialso

3~ Trial 2, Daily Fe-. u:rc- F>,?i rementso Beginning with the first day (D- i) and the. fir rt rc-otrce (R=i) a total requirement for that resource, TRIRQ.,, - computed as in Trial lo If this amount is in excess of the availa.'blitv. of the resource, TRAV(1,D), for that day an attempt ic made immediately to red-ce the excess to zero in the following fa:'i.on: a. The activities sc:ed-uled for performance during that day are examined) in order, ard t.ie first such activity which has enough Free Float (FF) aval.lable will be moved to the right. If not erough: Free Float.r is available thre activity will not be disturbed u.ntii all other activities scheduled for that day have been -imilarly examined with regard to their available Free Float and mcvFed if poe.si.ble. b, If thee excess has not been. reduced to zero at the conclusion of the exami.nation.of all..c tivi ttie for available Free Float the activities s -: d-.;.l.'cd for performance during that day are exarn.-ed r.: c more-, a~sa -r:.;- rd-r, and t'-e first 3uc- activi ty wi"' a.- e.:::"::~.~a' I o:att T", availa:.l e will be morved tc, t:- rigt f - -3 -.o.g- 3ta1 Fl at ic available t':.F aS t i tv':tv t."_.'.t?s di:.re-d.. A li sc t, ies t c -heduled for tha' da,T.: > d.t. +i t-a.:e exces c na,- been.7 a::n:: a: - ~t. alte o: f tn. xce-ss X n:rEX l t is st'-ared a i e -i. f s,..c:::}fc te'.e t:stal re:s-ource rel.ui.rement for t: at da,,'-FQ.,

-20.The next rezsource f..F-2) -i cor:.idered for the same day (D=i) in similar fasnionr as is each e.-ucceeding resource, until the last resource (R-RMAX)'has bee.n o treated for that day. At this point the values TRRQ(1). oTRRQ (RMAX) EXTEM() oooEXTEM(RMAX) and the identifying nmmber (. PM order of activities), K(C), of any activity which hias been s-plit are printed and these storage locations are cleared for use durirg t.e process for the succeeding day. Considerati.on thlen moves to the next day (D=2) and the entire process is repeated. The program thus proceeds until the final day (IL:DA'S):has been computed. At that point the grand totals of the daily resource requirement for each resource are printed, RUINTOT(l).PRT-TOT(PIMAX) Almost always some of these totals for Trial 2 will1 differ from th;.se in Trial 1 hlence t:his table is unusable except as a record o- to-h action of the program during Trial 2,. The reason for th.is is explained in Subsection 7, below, 4. Trial 2, Result<s of the Leveling Proces s A table is printed at the end of ti.e above:;e:e;.e.sce wiccI l i.se t rhe ~val.ueis of all the items whic`h de:scrnibe aac,'. a.i:-itv.t Some tof thee values. will di.ffer from t.os-e ir- t-e nnlar a cable printed at t -e o,utset, and these new values will {di. sc!'l e t;e so.ifting of activiries which has b gnC eer-_ bou+ ab,2' b'rv tr-: pr ce s: s; desc ribed in, tlhe preceding paragraph; all- \.c.-d d - tr- taade are r, r9, SPLIT (if the act'lt.-, —,tasv -1' - -, f ttime'- - t -pt. pr-. rted, T..r S......, i..e rd r,.mer of the a.cti:1 tvr. pm rTv t':r,r-, j e.or.....g ral PM ordedr number

of the activitv, acendrd.rng order of Is, subascending order of J's), ITF and HOLD. A. i1 the case with the table "Trial 2, Resource Requirements" tils "'Trial 2, Results of Leveling" table is not usable except as a record of the action of the program during Trial 2o 5 Trial 3, Daily Resource Requirements: This is a repeat of the operation described in Subsection 3, except t:hat the results now are valid The difference is caused by the fact that some selected revised values of ST are carried over from Trial 20 Further elaboration on this action is found in Subsection 7, below 6o Trial. 3, Results of the Leveling Process. This is a repeat of the operation described in Subsection 4, except that the results now are valid. (See the following s ubsection for further explanation o) Experimentation t, t-'e time of writing indicates that additional trials make no coanges in the results, however, a greater variety of problems mu+t. be rin before it can be stated flatly that there is ri? -et -Lf cicrl.m-tSce? peci-.uliar to a particular problem which will', pri-dvc- - rr- I,,1'd_ Wni.nc will be different in trials sosequent to ria'l 3- 7~ The action orf tre ev1F-T-dl p:r ctc,: dti:ring Trial 2 (or Trial 3 for that matter) on a _.n rskpli ttable activity frequently will proceed a- follows. An e-xce of resource requirement, TRRQ, over resource ava.iabii:t+, 4 oPA. nc.crs, As- a result+ an activity is viewed as a cardidate -'or - -l:ti ng. Tohe sce:u.eduled start time of the. act ivityw i-;s loc1 ate..'',d'flre teer.a;n one day tor the left of the

-22day under consideration. The activity is found to have available enough Free Float (or Total Float as the case may be) to allow the activity to be moved toward the end of the project until the scheduled start time of the activity, ST, equals the day under consideration (remembering that work on the activity begins on the day following start time). It is readily apparent that for those prior days during which this activity had been acheduled for performance there has been included all resource requirement values, AR(CR)oo.AR(C,RMAX), for this activity in the values already printed out for total resource requirements, TRRQ(1)... TRRQ(RMAX). These total figures are, therefore, in error by said amounts. To overcome this and to provide the method by which the problem solution is refined by subsequent trials the new values for ST are permanently retained, in these instances, and when the next trial proceeds the totals will be computed properly. When a splittable activity is to be moved the same action does not take place, and start time (ST) is not revised in these instances. The portion of the activity which is scheduled for performance during days prior to the day under consideration is not moved, and the remainder of the activity is simply moved one day toward the end of the project. The action described for the non-splittable activity in the first paragraph sometimes results in the lowering of a total resource requirement, TRRQ, for a prior day to such a level that

-23an activity which had been moved to reduce the excess could, under the new circumstances, remain scheduled for performance during that day, If such were the case the subsequent trial would recognize this, and an activity (splittable or non-splittable) which had been removed from that day might be allowed to remain. It also occurs frequently that a non-slittable activity is "pushed" ahead one day at a time through an area of high usage of one or more resources. This action is contrasted with that described at the outset of this Subsection 7 in that the movement is not triggered at a day past the point of beginning, hence no incorrect daily total resource requirement is left in a prior day's figures. In this case start time (ST) is not permanently changed. If, due to the permanent relocation of other non-splittable activities, "vacancies" occur, some of these latter nonsplittable activities may find places closer to the beginning of the project than had been found in the earlier trial. From the foregoing it can be seen that the scheme is one of successive trials using the identical process during each trial and differing only in that retained with the data supplied at the beginning of the later trials are all starting times (ST) changed by the action described in the first paragraph of this Subsection 7. This is accomplished by the use of the value "HOLD" (HOLD = TL(J) - ST) for each activity. Also, any new TE(J) value affected by such a change is likewise retained by the use of the value "ITF (IITF - TL(J) - TE(J)) for each activity. All other

-24activities are restored to their original position, all-earlystart, and all splits are removed at the beginning of each new trial The results of the leveling run can be put in bar chart form readily for general use and for further testing as to the validity and practicality of the new arrangement of activities. IMPERFECTIONS OF THE PROGRAM Brief mention should be made of some of the more obvious imperfections or fallacies of the above-described program. 1. Whatever the order selected for the activities in a leveling run a bias is introduced, but the bias itself is changing and unpredictable. For example: a. Using CPM order (ascending order of I's, subascending order of J's) as representative of the order in which activities will be performed, - The assumption may bear little relation to truth, Perhaps late start order is more appropriate. b. Using ascending order of Total Float so as to make a limited movement of an activity (within float boundaries) more productive. - The Free Floats will not necessarily fall in the same order. More important, after some floating has taken place the order will not necessarily remain ascending. The same would be true if descending order of total float were initially used to order the activitiesO co Placing activities with the highest demands on resources at the top of the list. - If only slight reductions are needed

-25. the bias will tend to produce larger-than-necessary corrections. If the reverse of this order is selected too many activities may be relocated before the desired reduction is affected. 2. Relocating an activity without regard to the area into which it is placed is, to some at least, not a proper treatment of the problem. Lack of sufficient computer storage is the chief deterrent to taking this factor into account. 3~ Relocating an activity strictly on the basis of an excess of requirement over availability for one resource considered alone is a scheme open to criticism, Suppose there is a similar excess for another resource during that day, Would not it be better to be more selective in choosing the activity to be removed? Perhaps an activity could be found which contains the proper combination of resource requirements, and which, if moved, would solve that day's problem, whereas the program as now written might move two or more activities to accomplish the same end. CONCLUSIONS The CPM study for a construction project, while extremely valuable, by itself is not really complete without a companion leveling study and certainly will be more meaningful if this latter study is made. The program offered here is proposed as a means by which the construction industry can "learn by doing." Emphasis is placed on the concept that neither the leveling solution, nor the CPM study to which it is companion, should become static or unchangeable but both should

-26remain open for review in the light of new insights as they become available. The theory is set forth that a leveling program of itself, should not lengthen a project and that the concepts of event time boundaries, float and critical path should not be abandoned when entering into the leveling phase of a problem solutiono In keeping with the theory that the user should be provided as much control as possible over his problem solution the program requires that he decide such things as; (1) the "splittable" character of an activity; (2) the selection of the resources which are to be considered; (3) the job-wise priority of resources; (4) the activity resource requirements; (5) the availability of resources; and (6) the order in which activities are to be considered for shifting, APPEND IX- - NOTATI ON The following symbols have been adopted for use in this paper: A = Total number of activities in a given problem; AR = One-day requirement of an activity for a resource; B = Number used in iteration of resource availability data; C = Common subscript of variables related to a given activity; D = Day number; DAYS Normal duration of project (from CPM solution); DIDSPL Indicator that an activity has been split on a given day and therefore cannot be split again; EXCESS Difference between a resource requirement and the corresponding resource availability for a given day; EXTEM = Computed as is EXCESS but stored temporarily;

-27FF = Free Float; FINISH = Last day of a level of resource availability, used as a subscript for TRAV; FT = Finish Time of an activity; HOLD = TL(J) - ST; I = Number of node at the tail of an arrow; ITF = Interfering Float; J = Number of node at the head of an arrow; K = Number of activity when in CPM order; R = Number of resource in project priority order; RCD = The total number of resource availability data cards; RMAX = The total number of resources; RSR = Alphabetic storage of resource description; RLNTOT = Cumulative total of daily resource requirements for a resource; S = Iteration subscript for SPOT; SPLIT = Code for splitability and number of days split; SPOT = Day upon which an activity was split; START = Day preceding the first day of a level of resource availability, used as an subscript for TRAV; ST = Start Time of an activity; TE = Earliest event time of a node; TEITEM = Temporary storage, earliest event time of an I-node; TF - Total Float; TL = Latest event time of a node; TLJTEM = Temporary storage, latest event time of a J-node;

-28TRAV = Total availability of a resource for a given day; TRIALS = Maximum number of trials for a problem run; TRRQ = Total requirement of a resource for a given day; TRVTEM = Temporary storage, total availability of a resource; W = Number used in iteration of resource requirement; Y = Normal duration of an activity.

-29TABLE 1 LIST OF PROJECT ACTIVITIES No. OF No. OF ACT. ACTIVITY DESCRIPTION FITTS DA FITTR'S DAYS INSTALL MAIN STEAM PIPING SYSTEM A ERECT PIPE: BOILER TO COLD- SPRING WELD 8 10 B ERECT PIPE: THROTTLE VALVE TO C-S WELD 8 15 C INSTALL HANGERS 5 7 D COLD SPRING PIPE, MAKE FINAL WELD 6 3 E PERFORM HYDROSTATIC TEST 4 2

ACT ACTIVITY DESCRIPTION DAYS, MONTH OF,____I__ AiVY I11 II2 3 4 5 8 9 10 11 12 15 16 17 18192223242526 INSTALL MAIN STEAM PIPING SYSTEM: 818181818 88181818 A ERECT PIPE- BLR. TO C.S. WELD ~ 8888888181818 88881818188 B ERECT PIPE - THROTT. V. TO C.S.WELD C INSTALL HANGERS *, m' D COLD SPRING, MAKE FINAL WELD 414 E |PERFORM HYDROSTATIC TESTl NUMBERS OF PIPEFITTERS REQUIRED- |16 1616 11616161616161616 1313 1313131 1 110 4 Figure 1. Conventional Bar Chart (Single Resource).

-31ACTIVITY AAll (PF -10 DAYS) 0(8 P-F- - 15 DAYS r (6 P- F- - 3 DAYS) ^ IVITC C ACTIVITY "E" (5 PF. - 7 DAYS) (4 P-F - 2 DAYS ) Figure 2. Arrow Diagram TABLE 2 VALUES RETURNED BY CPM PROGRAM I J TE(I) ST Y FT TL(J) FF TF ACT. 100 103 202 202 10 212 220 0 8 A 101 104 200 200 15 215 220 0 5 B --- 102 105 205 205 7 212 223 6 II C 103 104 212 212 0 212 220 3 8 D 104 105 215 215 3 218 223 0 5 E 105 106 218 218 2 220 225 0 5 F DAY NUMBER o Ln o W *- ao) O = - 1q ro t to 0 -) ~ r) N a) N N NN N 0 ~~ N N N. N N N C N CM N N N CN CN NJ NJ CN N CN N N FT ~ TE(J) ~ TL(J)(212) (218) (223) TE( I) (205) (ACTIVITY "C" ) ST(C)~ Figure. CM A TF Figure 4. CPM Activity Bar.

=ACTIVITY DURATION (Y); - = TOTAL FLOAT (TF), * =FREE FLOAT (FF);zz=INTERFERING FLOAT(ITF) DAY NUMBER TE(1),~~-C...... I04 o ~CD 004 D0)40 CM 1 1(0 d CD f) 04 M 0 1 0 I J TE(I) ST Y FT TL(J) oo l oooo o o - 100 103 202 202 10 212 220 01 104 200 200 15 215 2208 8 8 18 8 8 8818181 18 818 102 105 205 205 7 212 223 5555555 J! _I_ 103 104 212 212 0 212 220 I " I I 104 105 215 215 3 218 223 6 6 6 105 106 218 218 2 220 225'' 414 (ALL ACTIVITIES AT EARLY START POSITION) NUMBERS OF PIPEFITTERS REQUIRED- 8 8 1616116121 212112121 211218 81 816 1616 4 4 0 0 0 Figure 3a. Bar Chart, Leveling Program Trial No. 1 - CPM Output Activity Location (Single Resource). DAY NUMBER -- ro' to ~D r — CD(Ir)_.fvi -r to w r-ia>0~DJI M I J TE(I) ST Y FT YTL(J) 0 0 000 0 CM cNN NJCM c'JN cu | Ju ITE I ST |u Y | F T ITL( )~ | ~ 1 ~ 1 ~ I N I | N | N | N I Nu I N | N | N |N I N I N | N I N I N N 100 103 202202 10 212 220 8 8 18 8 8 81 8 8818 818 818 101 104 200200 15 215 220 102 105 205212 7 219 223 --- 103 104 212 212 0 212 220 01 TE 0) 104 105 215 215 3 218 223 6 66 105 106 218 218 2 2201225 1 1 1 4 NUMBERS OF PIPEFITTERS REQUIRED-o- 8 8 16 16 16 16 16 16 16 16 16 161313 13 I II 11 11 194010 00 Figure 3b. Bar Chart, Leveling Program Trial No. 3 - Floated Activity Location (Single Resource).

BEGIN AR(I,I)...AR(A,R MA X) EXTEM(R)(O O ~"' cR = I,I R)RMA> =C -F T A,RMAX,DAYS,RCD, TRIALS = - - *~ ~ T=1,D;I, EXTEM(R)=O 1 \ _____________| RUNTOT(RMAX)=O TRRQ(R)= ~" / Al \ I/ ~ VII I ~ ~ 1 ITRRQ(R)+AR(C,R) Al I(C), J(C), TEITEM,, B=1I,1,B>RCD D>DAYS ST(C),Y(C) TLJTEM, A) \I/T~[,-AA89 FF,TF, SPLIT(C), K(C) I \i F AR(C,I)... AR(C, RMAX)I...TRRQ( ) ITRRQ( I )...TRRQ(RMAX~ D, TRRQ (I)... R,RSR(I)... RSR(4), 0, EXTEM()... C=C+ TRRQ(RMAX), I EXTEM(RMAX) = O, START, FINISH, EXTEM(I)... TRVTEM EXTEM(RMAX TE() = TEITEM, TL(J)= TLJTEM, I A9A \ | 1 4 ITF(J )= TF- FF, ( C>A R=I,I, R>RMAX) TRAV (R, START )... TRAV (RSTART).. HOLD(C)=TL(J)-ST(C)F D=D+ TRAV(R, FINISH) F = TRVTEM Al IIFJT TS((), FT= ST(C)+Y(C) TRU NTOT(R)= T LT~ 1 K(C), IT HOLDC... RUNTOT(R)+TRR(R), RUNT R,RSR(1)... RSR(4), ~ EXTEML(R),= RUNTOT(RMAX)S START, FINISH, T \~ ~TRRQ(R)-TRAV(R,D) Figure 5a. Flow Chart, Resource Leveling Program. (Contd in Fig. 5b). ~' 1Fwi,J, TE(I), ST(C) Y(C),P ~' Figure 5a. Flow Chart, Resource Leveling Program. (Cont'd in Fig. 5b).

~=I, I _I-.~ ~ REPEAT r RUNTOTL (I). ^TE(I)>ST C) TRRQ(R)= BRACKETS "A" RUNTOT (I'... RUNTOT(RMAX)=O F T~ TRRQ(R)+AR(C,R) I~~|{ TST(=TE ST(C)(D & FT>D ST(C)= TE ( T=2 I I I SPLT(C) = I DA /~yJT (D-ST(C))I(TE(c-:T) D>DAYS AR(CR)0 ~ 3 t^J TRR(1)... TRRQ(RRMAX) -I (I I |~+ SPLI i~S 2 \ =0,EXTEM(.)... FT=(ST(C)TY(C))u T-RRQ(R) F T TRIALS EXTE M(RMAX) =, __L__ TRAV(RD) C=1,1, C( A a J D \IIZ HOLD(C)= LI LI\ / t DIDSPL(1)..DDP111 JJ(C ) I 17 I I ITL(J)-D ^ ~ ~ I =0, R=1 I 1 1 I SPLIT(C)10 T~~ ~ \ ~ F ~T F TT ~i~ D EX-S ST(C)=S, ASPLII 0,O EXTEM(l).. FT (ST(C)+Y(C)) EXCESS = (~ J RJR(CMAX' |SP ) -1 EXCESSF T- TRA|(RAR(C, R) EXTEP M(R)= FMAX)=5 5. ~ ( A17A0, C C >C,IA ) ST(C)<D FTD DIDSPL( I) DIDSPL(A)a 1 Tr(c) F T J=J(C) ~ CD SPLIT(C)> 6 FT= (ST(C)+Y(C),: EX AR(C, R)E {^) ~'DA ^ ^_______ TRRQ(W)-AR(C F (l \__y J=J(C) = I ___ SPLIT(C) =0 & C AIA1=DSLC)= TRQ W A(C) TR Figure 5b. (Cont-'d.)

FIO"] (^~I ^^i~~ C + D-STY(C)=1 DIDSPL(C)=I, RR \C=C+l ~ \TE{J)<(D~Y(C)) SPLIT(C)=SPLIT(C)+ I, ~~____________________ ~EXCESS= ST(CXDaFT>,D 5~~I EXCESS-AR(C,R) 17 6 & (TE(J)-FT)Oa TE=(DY() SPLIT(C)>Oa DIDSPL(C) \ =0kAR(C,R)0 TE(J)=(ST(C)+ SPOT(I)SPOT(3= Li_________ oD c D-ST(C)>I & \ Y(C)+SPLIT(C)) =l,_ T z^ ^TE(J)<(~(D Y(C)) T S=l DIDSPL(C)=ILLJ I.12 DIDSPL(C) =1, TE(J)=(ST(C)+ SPLIT(C)- SPLIT(C)+I, ITF(J= Y(C) SPLIT(C)) EXCESS - TL(J)-(D +Y(U), _ ( A y T TE M] = (D + Y(U)), EXCESS-AR(C,R) 0 C>A F T Lii 13 HOLD(C)=TL(J)- R < REPEAT ~ 1 BRACKETS"B" IL L REPEAT'5" ~z BRACKETS B 1=1(C) 1 ( DIDSPL(C)=0 EOC 1 __~ 8~ ^J=i (C) ST(C)=D, ~ ^JCF T EXCESSI EOC^ J ~~EXCESS-AR(CR) SPOT(S)=K(C). REPEAT EXCESS(O S=S+I BRACKETS A" REPEAT EXCESS O BRACKETS ___F T o_______ I~1R=R+I C=C+I ST(C) < D & FT>D U~ R=R+Il / ~ SPLIT(C) =-I & (D -ST(C)< (TL(J)- FT) 6 ST(C)< D FT>D \ & AR (CA s 0 6 & AR (CR) ___ ^ 0 8(TL(J)-FT)O a 1 T F \ SPLIT(C),O a DIDSPL(C) V C=C+ 1 Figur 5c I (onn=Ouae AR(C,R)d T F Figure 5c - (continued),

14 D=D+1 I FT= (ST(C)+Y(C) ~ C=C+1 A25A R=l,l, R>RMAX SPLIT(C)O ) ~\ ___~/ r^ ~1s~ ^ ~^~F T~ RUNTOT(I)... \, I |!RUNTOT(RM1) |T=T+I 1 RUNTOT (RMAXJ FT=(ST(C)+ Y(C) I~RUNTOT(R) + SPLIT(C)) RUNTOT (R) = [ -I _ __ RUNTOT (R) + TRRQ(R), A29A EXTEM (R) = TRRQ(R)- TRAV(R,D) C= TF=(TL(J)-FT) C> FF= (TE(J)-FT), ~^ ~^ I 1 1, I o EXTEM (R)O ) O\_ I Fp T~1~ I( C> A FF(O 1=1I(C), J=J(C), ~F T ~F T TE(J)=(TL(J)- ITF(J)), EXTEM (R)=O I 1 I I T ST(C)=(TL(J)- HOLD(C)) FF=O SA25A 1 C A 29I I=I(C) I J =J(C) I I I I r~ M( ~ 1 J,Y((C) I S PUT C), D, TRRQ( I )... TRRQ(RMAX), I TE(I,ST(C),FTTL(J), TE(I), ST(C), FT, TL(J), EXTEM (1)... EXTEM(RMAX), ~TF,FF,C,K(C), SPOT( I)... SPOT(S) I SPLIT(C)= ITF(J), HOLD(C) (END F Tigure Figure 5d. (Continued.)