1¾ « gÊ ° 7 8 @ A A C:\WORD\NORMAL.STY CAN20LQDB @ šóÐ jy 9 8 @ µ Chapter 10 Advanced Modelling Introduction In the previous Chapters we have dealt with many aspects of the theory and practice of System Dynamics. The illustrations we have used, such as the DMC problem and the simple combat model, though not forgetting the modelling case studies discussed in Chapter 6, used only some of the simple techniques which are possible in System Dynamics modelling. The reason for that was, of course, that we wished to reinforce the reader's command of essential principles, without confusing the argument with too much detail. We have, however, hinted that System Dynamics has a practically limitless range of applicability, a subject we shall explore more comprehensively in the next Chapter. Such a range of potential topics means that modelling problems are likely to be encountered which are beyond the scope of the fairly simple equation structures which have been used so far, so this Chapter will deal with ways of handling some of the more complex problems which might be encountered. The underlying aim is to show the reader what can be done so as to stimulate his understanding in such a way that, when he encounters a problem which is not like those considered here, he will be able to handle it. In a sense, this Chapter is a modeller's handbook, though it is not to be confused with the User Manual for a particular software package. The best approach to using this Chapter will be, first, to review Chapter 5 and then to read this one quickly, without worrying too much about detailed understanding of all the illustrations. Try, instead, to become familiar with what it contains so that it can be referred to at need. We must, however, add a strong note of caution. There is no merit in making a model big and complicated just for the sake of looking impressive or showing off one's modelling virtuosity. The larger a model gets, or the more elaborate its equations become, the harder it is likely to be to understand it oneself or to be able to explain it to others. In general, small, simple models are always to be preferred. Sometimes, though, circumstances call for more complexity and the aim of this Chapter is to equip the reader to deal with such cases when they arise. Before tackling some difficult problems, we must first deal with a simple technique which will be used later. Changes in a Variable The essential skill in System Dynamics is to think in terms of time. To emphasise that, recall that an auxiliary variable, VAR, is normally denoted by VAR.K to indicate that it has a numerical value at TIME.K on the time axis. As we saw in Chapter 4, it also had a value at TIME.J, but that value is discarded when time shift and relabelling take place as the old values are not usually of interest. However, as we shall see in the next example but one, we might sometimes need to know whether VAR has increased or decreased during the interval from TIME.J to TIME.K. Clearly that means preventing the time shift from discarding the old value and the only way to do that is to carry the old value forwards. To remember an old value, we need a Level, because Levels are the memories of the system. The equations : l oldvar.k=oldvar.j+(dt/dt)*(var.j-oldvar.j) n oldvar=var (1) produce the desired effects, though the reader must write a small model to prove that they do. They work because, as shown in Figure 4.4, the Level, OLDVAR, is not recalculated until after the auxiliaries have been computed. The rather inelegant DT/DT ensures that OLDVAR has the same dimensions as VAR. Equation 1 has the effect of introducing a delay of 1 DT in which the previous value of VAR is carried forward without change. It is a perfect, or pipeline, delay but, although most of the System Dynamics packages have built-in functions for such delays they cannot be used in this case. The delay has a magnitude and, as we saw in Chapter 4, the value of DT must be less than the magnitude of the delay. To carry forward old values requires the magnitude to be DT, and DT clearly cannot be less than its own value. We have illustrated this technique by using VAR as an Auxiliary variable, but it will work perfectly well for the old values of a Rate or for a Level. In the latter case the software has to be sophisticated enough to sort the levels into their correct sequence. See Appendix A. To record whether VAR has increased or not, we define two indicators, VARUP and VARDOWN, and EPS for a very small number : a varup.k=clip(1,0,var.k,oldvar.k+eps) a vardown.k=clip(1,0,oldvar.k,var.k+eps) (2) (3) and NOCHAN, for no change greater then +EPS or -EPS, : a nochan.k=1-(varup.k+vardown.k) (4) Review of the logical CLIP function in Chapter 4 will show that equation 2 will give the value 1 to VARUP if VAR is greater than or equal to OLDVAR+EPS, whereas equation 3 will give VARDOWN the value 1 in the opposite circumstances. If neither VARUP nor VARDOWN is 1, equation 4 will make NOCHAN equal to 1. Discrete Changes Practically all of the models we have developed so far are truly continuous, in the sense that the values of variables do not change by discrete amounts (except for some STEP driving forces). Thus, the Production Rate decision in the DMC model can result in variations in Production Rate which are as small as necessary. In many practical problems that is not plausible, so we need to allow for cases in which Production Rate only changes in finite amounts, or not at all. This problem will allow us to introduce a useful modelling trick, which is to distinguish between Desired Production Rate, the rate of production which, for example, the state of backlog calls for, and the Actual Production Rate, the rate which will take account of the necessity for finite changes. Let PCHAN [WMS/WEEK] denote the size of the feasible steps in production, caused, perhaps, by the necessity to operate each machine fully, or not at all. Let DPR be the Desired Production Rate, calculated from the equation used for Production Rate itself in the DMC model. DPR will, however, be an Auxiliary variable, as it is now only a step towards determining the real production rate. Let OPR be the previous Production Rate, calculated using the method just discussed. Then : r pr.kl=opr.k+pchan*int((dpr.k-opr.k)/pchan) (5) Working backwards from the right hand end of the equation, (DPR.K-OPR.K) is the difference between the new requirement and the existing production rate. Dividing by PCHAN gives the number of machines which need to be activated. The INT function takes the integer part to ensure an exact number of machines. When that is multiplied by the first PCHAN, the result is the change in production rate, if any, to be added to OPR. Equation (5) will always round production down to the next lower number of machines. To round up or down to the nearest machine, use (ipr.k-opr.k+0.5*pchan)/pchan for reasons which the reader should work out for herself. With equations such as 5, production changes still take place every DT. The modelling of periodic production decisions is an exercise in Appendix B. Controls Within Limits Background We sometimes wish to trigger-off a control action only when a variable lies between certain limits. For example, in some types of chemical process, production can only take place if the reaction pressure is within a safe range. If pressure falls too low, then production must cease until it has been built up again, and, if pressure is too high, production must again cease until the excess pressure has been dissipated. We shall call this Case 1. By contrast, in Case 2, the problem is that production can only take place when some controlling factor is within the acceptable range, and moving in a certain direction. For example, consider a bunker containing a powdery substance. The bunker is being filled at the top from an earlier stage of the process, and discharges at the bottom to a packing machine. The purpose of the bunker is to ensure continuity of manufacturing or packaging against temporary interruptions in the other process. Such bunkers are usually capable of absorbing quite large variations in the manufacturing and packaging rates, and are rather costly to build. The problem is to design the size of the bunker and the control policies for inflow and outflow. The constraint is that packaging has to stop if the contents of the bunker fall below a certain level; the bottom layer of the contents acts as a cushion for the next batch of material to fall on. Once the packaging process has stopped, it is not worth starting it again until the bunker contents have reached a level high enough to ensure a worthwhile packaging run. In short, the bunker can be allowed to discharge to the packaging plant while the bunker level is between the two limits, but only if the plant has not been stopped because the level had reached the lower limit. If it had, the bunker cannot discharge until the bunker level has again reached the upper limit. General Approach In general, it is better modelling practice to write an equation of the form r pr.kl=ipr.k*dv.k (6) PR=(Ton/Hour) Production Rate or Bunker Discharge Rate IPR=(Ton/Hour) Ideal Value for PR DV=(1) Zero - one control switch The advantage of this approach is that PR, IPR, and DV can all be printed separately. This is a big help in debugging, and also allows us to see exactly what is happening and why. If, for example, PR is 0 is this because IPR is zero, which might be because the control policy is faulty because of conditions elsewhere in the model, or because DV is 0, which could suggest that the bunker is too small. Naturally, it is usually rather more logical to define DVÿto be 1 when the plant is operating, but the converse might occasionally be more convenient, in which case we should need (1-DV.K) in equation (6). We shall proceed on the former basis. Equation for Case 1 The simpler instance of Case 1 is fairly easily handled by writing a dv.k=clip(1,0,press.k,llim)*clip(1,0,ulim,press.k) (7) If PRESS is greater than or equal to the lower limit then the first CLIP will produce a 1. If PRESS is less than or equal to the upper limit, the second CLIP will also produce a 1, and the resulting value of DV will be 1. In all other cases DV will be 0. For example, think through how these CLIPs work if PRESS.K is greater than ULIM . Note that if production stops when the pressure reaches one or other of the limits, as opposed to being just below or just above, we have to replace LLIM and ULIM by LLIM+EPS and ULIM-EPS, where EPS is some fairly small number (say 1% of LLIM). Equations for Case 2 Despite the similarity in the description in the Background section, this Case is rather more subtle and requires more complex handling. The dynamics of the bunker level are shown in Figureÿ10.1. From time 0 to t1 the bunker level is falling from the upper limit to the lower, and discharge is taking place. At t1 the bunker level touches the lower limit, discharge is stopped, and DV has to change from 1 to 0. Between t1 and t2 the bunker fills up, though not necessarily regularly, and at t2, having reached the upper limit, DV changes again from 0 to 1 and discharge recommences. It is this change in the value of DV which will provide us with the clue to modelling this control process. Notice that the level in the bunker might exceed ULIM, which is not the physical top of the bunker, but it ought not to fall below LLIM; such logic is a good way to identify tests of whether or not a model is working correctly. We shall use DR for Discharge Rate, IDR for Ideal Discharge Rate, which need not concern us, and DV for the control variable. Equation 7 would not be satisfactory. It would allow correctly for the period from 0 to t1, but as soon as the bunker level again exceeded LLIM discharge would restart, which would not be correct between t1 and t2. Further, it would stop discharge when the level exceeded ULIM. In that situation the inflow rate would continue until the bunker was physically full, at which point inflow would have to stop. One would then have a full bunker, but no outflow, which would be ridiculous. We therefore start by building up the equation in pieces. First, put a dv.k=clip(1,0,blev.k,llim+eps) (8) BLEV=(Ton) Contents of the Bunker LLIM=(Ton) Lower Limit EPS=(Ton) A small number. This allows the discharge to occur as long as BLEV is, say, 1% above the lower limit. Now introduce ODV, the Old Value of DV, given by: l odv.k=odv.j+(dt/dt)(dv.j-odv.j) (9) The next step is to combine equations 8 and 9 so as steadily to improve the validity of the formulation. This gives a dv.k=clip(1,0,blev.k,llim+eps)*odv.k (10) Equations 10 and 9 will ensure that DV=1 between 0 and t1, as it should be. At t1, BLEV reaches LLIM and DV then goes to 0. At the next DT, BLEV has risen, because of inflow, so the CLIP in equation 10 tries to produce a 1, but that is driven back to zero because equation 9 carries forward the value DV = 0 from t1. With equation 10 as it stands DV would stay at 0 from t1 to t2 and now we need a method of forcing it back to 1 at t2 when BLEV reaches ULIM. That can be done by using clip(1,0,blev.k,ulim) (11) If, however, we simply added the CLIP from equation 11 to equation 10 to get a composite equation for DV, i.e. a dv.k=clip(1,0,blev.k,llim+eps)*odv.k x +clip(1,0,blev.k,ulim) (12) we should still be in error. At t2, the second CLIP will generate a 1, as we require. One DT later, ODV will also be 1 so the 1 generated by the first CLIP will be allowed through and DV will go to 2, thereby doubling the ideal discharge rate. In the author's experience, this kind of error, which will produce quite fallacious dynamics in the model, is likely only to be found by careful study of printed tables of model variables and may well not be seen simply by looking at graphs on a screen. See the review of software packages in Appendix A. The reader may, however, have seen already that the full solution is to put a dv.k=clip(1,0,blev.k,llim+eps)*odv.k x +clip(1,0,blev.k,ulim)*(1-odv.k) (13) At t1, the second CLIP produces the required value of 1, but the first CLIP is suppressed because ODV = 0. One DT after t1, ODV = 1 and control is passed back to the first CLIP, where, logically, it belongs. Methodological Comment The full solution is, therefore, to use equations 13 and 9 but ODV, being a level, requires an initial condition, or N equation. To put N ODV=DV (14) would create a pair of simultaneous initial conditions because DV depends on ODV in equation 13. We must therefore put either 1 or 0 in place of DV on the right hand side of equation 14, carefully choosing which is to be used in the light of the initial value of BLEV. De-bugging When using formulations such as this, it is a good plan to run the model and see whether BLEV passes its critical points. Knowing that, one then arranges for a print out every DT in those regions, and carefully watches what is happening. Explanatory Comment We have explained the equations for Case 2 at some length, showing how the key equation 13 can be evolved in such a way as to produce the behaviour we require. The purpose in explaining the equation in such detail was to remind the reader that equations do not just appear as the result of a mental leap. They can be built to do the required job, and that is what modelling is about. We have also explained the solution at some length to try to illustrate yet again the pattern of thought involved in System Dynamics modelling. The trick is to learn to think of changes against time. Modelling Market Share Background The DMC model deals only with production and raw materials management problems; New Orders, NO, being treated as an uncontrollable exogenous input which, indeed, it is from the point of view of the two managers concerned. From the wider point of view of the firm as a whole, however, that is manifestly not true. DMC is, in fact, very aggressively marketorientated and spends considerable sums of money on promoting its market share. This example suggests a simple approach to modelling the effects of spending to build and maintain market share. At the end of the example we shall relate that to a wider model of the firm as a whole. DMC can promote market share by, for example, spending money to develop new consumer products, supporting a network of dealers to sell their products, and by straightforward advertising and promotion in the media, at exhibitions and so on. We shall group all these together into Market Share Spending, MSS, measured in $/MONTH. The inherent assumption is that DMC's marketing people are, on average, competent to do these things and to get the right balance between them within the overall amount of MSS. The purpose of a wider corporate model would be to study the overall dynamics of the firm, the detailed market spending decisions being left to ordinary managerial choice, or to be analysed by other models, not necessarily of the System Dynamics type. The Market Share Equation We have to allow for the obvious fact that, if DMC completely stopped spending money on propping up its market share, customers would eventually stop buying its products. In a sense, money spent some time ago to 'buy' market share ceases, after a time, to have any effect; the market share it then bought having, as it were, decayed. Market Share, MS, can therefore be thought of as an ordinary Level, which is replenished by spending and depleted by decay : l ms.k=ms.j+dt*(rgms.jk-rdms.jk) n ms=0.25 for instance (15) MS=(1) Current Market Share RGMS=(1/Month) Rate of Growth of Market Share RDMS=(1/Month) Rate of Decay of Market Share The Decay of Market Share One way of modelling the decay of Market Share, RDMS, is by analogy with the half-life of a radioactive substanceÿ: r rdms.kl=ms.k/mslt (16) MSLT=(Month) Market Share Lifetime, or duration of effect of money spent on buying market share An alternative could be used if market share was much more strongly influenced by the introduction of transient new products, such as cosmetics. In such a case it might be more reasonable to use : r rdms.kl=delayN(rgms.jk,plt) PLT=(Month) average lifetime of a product (17) with the value of N being chosen to represent the market characteristics and as an average over the range of products in question. Review the cascading of delays to produce an overall delay of any desired order or see the different types of delay available in the software package you are using. For instance, COSMIC has about 6 methods of representing delays; other packages have their own versions of delays. Growth of Market Share It is clear that RGMS is the key variable. One approach would be to estimate the spending required to maintain a given level of market share. Suppose it turned out that the firm has averaged, say, $50000/month of market share spending over the past 12 months, which we denote by AMSS, for Average Market Share Spending, and that market share has been broadly stable at about 25%. It is also necessary to make some estimate of MSLT, the market share lifetime. That might be done by analysing data on sales, though managers will usually have strong views as to what it is. Let us suppose that the consensus is that MSLT is 36 months. If MS has not changed very much, then the AMSS of $50000/month must be just about replacing the decay. We can thus say that, over the last year, rgms=rdms=0.25/36=0.0069 when AMSS=$50000/month. To deal with what happens when AMSS is not $50000/month we use a nonlinear relationship : r rgms.kl=tabhl(tmsgr,amss.k,0,100000,50000) t tmsgr=0/0.0069/0.01042 TMSGR=(1/Month) table of of market values of Spending, values for rate of growth share for different Average Market Share AMSS. Recalling the discussion of non-linear tables in Chapter 5, these equations allow AMSS to range from 0 to 100000 $/month, in steps of 50000. The value of 0 in TMSGR is RGMS when AMSS=0, and the 0.0069 is the value at 50000 $/month, which we have just estimated. The final value of 0.01042 is based on a conversation with the Marketing Director, who feels that Market Share would be 50% higher (0.375) if spending was doubled, but no amount of spending would take MS above that. Using the same calculation as before rdms=0.375/36=0.01042 when AMSS=$100000/month. It might be possible to make estimates of the effects of spending $25000 or $75000 per month, in which case TMSGR could be made more precise. The TABHL function in COSMIC is a special form of non-linearity which uses the first or the last value in the table statement if the argument, AMSS, falls below or goes above its stated limits, thus putting horizontal 'tails' onto the non-linear curve. Other System Dynamics software packages may have similar facilities. If spending falls between the pairs of table values, the software packages interpolate between the data in the table statement. The Validity of the Data We are not in any way justified in giving these 'data' to four figures, given the crudity of the sources, and the model is clearly likely to be imprecise. In a practical case one would be very careful about sensitivity testing to see if the policy recommendations changed very much with changes to these values. The purpose in this example is to suggest some approaches to a difficult problem. Two Meanings of 'Market Share' The 'Market Share' we have modelled is the prior Market Share; the proportion of people in the market who would have DMC's product as their first choice. This is in contrast to the posterior Market Share; the proportion of goods sold which are actually DMC's products. Posterior Market Share is what is usually measured by market share statistics, because it represents known sales actually made, whereas the Prior share is an unmeasurable preference. Clearly, DMC could run the risk of managing its marketing perfectly and building up a very satisfactory prior position, but failing to achieve that as posterior market share because, say, they failed to manufacture the goods at the right time. As always, the problem is one of strategic balance between manufacturing strategies, capital investment in production plant, market share management, and much else. Corporate models are intended to help get that dynamic balance right. A Corporate Model for DMC One can now see that a variable such as Production Rate is the generator of the cash which fuels DMC's other activities. The cash is drained by expenditure on people, materials, marketing, capital investment and many other demands. The policy issues are to deal with the competition between different demands and to control variables such as the price of DMC's products. We shall study some of these problems as the Chapter unfolds, modelling, for example, a set of company accounts. The reader will, however, find it useful to pause and draw an outline Influence Diagram, at about level 2 or level 3 in the cone, of a corporate model for DMC. The trick will be not to let it get too detailed. Other Applications of this Approach The approach suggested in these equations can, with care, be used to model such factors as 'morale', 'technology' and similar variables. Forecasting Growth and the Business Cycle Background A company makes forecasts in March which are used to plan capital expenditure for the year starting in the following January . These plans take months to prepare and are approved or rejected at a Board meeting held in December. The forecasting horizon, denoted by FHOR, is 36 months and is measured from December. From the Board's point of view they are considering plans for 3 years ahead because that is the time that it takes to build plant, but the forecasters are actually working on a 45 month horizon. The problem is to assess how serious are the errors which inevitably exist in the forecasts. This might help the company to decide whether to spend considerable sums of money on more economic research in the uncertain hope that the forecast 'accuracy' might be improved. The alternative is to design policies for capital investment which are less sensitive to forecast errors and, therefore, less likely to cause problems for the company when the forecasts turn out to have been wrong. To give have to reflect centred the company's management confidence in the model, event times be represented accurately and the forecast equation has to the general level of demand over a span RANGE months wide, on FHOR (i.e. 36) months from the Board meeting. The demand pattern for the system is exponential growth at SLP [%/month] with a superimposed Business Cycle. The forecast must take account of 1. Errors in the forecast of SLP 2. Errors in forecasting the business amplitude The Equation The equation is: a fcast.k=blev.k*exp(slp*sfe.k*(fhor+fts)) x x x x *(1+amp.k*bcme.k*(sin(6.283*(time.k+fhor+fts -range/2)/nbcp)+sin(6.283*(time.k+fhor+fts) /nbcp)+sin(6.283*(time.k+fhor+fts+range/2) /nbcp))/3) (18) where FCAST=(Unit/Month) Demand Forecast BLEV=(Unit/Month) Actual Demand at time of making forecast SLP=(%/Month) Rate of growth of Actual Demand SFE=(1) Multiplier to represent errors in forecast of SLP FHOR=(Month) Forecasting horizon measured from December FTS=(Month) Number of months from forecast being made in March to its nominal base point in December AMP=(1) Actual Business Cycle Amplitude BCME=(1) Multiplier to represent error in forecasting the Business Cycle Amplitude RANGE=(Month) Span to be represented in the forecast NBCP=(Month) Normal value of Business Cycle Period TIME=(Month) Current time in model. Equation 18 breaks down as follows: BLEV gives the starting point EXP (...) multiplies BLEV by the expected growth over the next FHOR+FTS months - the actual forecasting horizon - taking account of SFE to represent, say, optimism if SFE >1. (1+AMP.K*BCME.K) represents the usual amplitude factor in a sine wave, modified by magnitude error. If BCME > 1 the cycles are being predicted to be larger than they actually will be. The three SIN (...) terms calculate where the business cycle will be at, in turn, the nominal forecasting point minus half the range, the point itself, and the point plus half the range. The final division by 3 averages the three sine points - note carefully the location of all the ( and ) - to give a general demand level. The assumption in equation 18 is that the duration of the cycle is forecast perfectly. To relax that assumption, replace NBCP by (NBCP*DFE.K) where DFE> l would represent the length of the cycle being overestimated. Note that replacing NBCP by NBCP*DFE.K would NOT be correct because without the ( and ), DFE would multiply the whole equation, not just NBCP. Freezing of Data or Forecasts It often happens that the data or forecasts on which a decision is to be based are fixed some time before the actual decision is made. For example, accounts represent the state of the firm at December 31st but are not available for decision-making until March 31st because of the time needed to finalise the calculations. The problem in a System Dynamics model is that a variable such as a Forecast, FCAST, is calculated every DT but has to be held over or 'frozen' from the data freezing time to the decision-making time. In Figure 10.2, FFT represents the time at which the forecast is frozen and DMT the time at which the decision is made. For illustration FFT = 3 months (end of March) and DMT = 10 months (end of October). Further, suppose that the outcome of the decision making is, say, a Planned Project Start Rate, PPSR, which is selected at DMT but is not actually operative until DET, the decision execution time (say month 12, the start of the next year) because of the time needed to sign final contracts. A1 represents the forecast frozen at TIME = 3, the first FFT, and held until TIME = 10, the first DMT. B1 is the outcome of the decision - the Impending Planned Project Start Rate - waiting to become PPSR for Year 2 at TIME = 12, the first DET. On the diagram, B1 is much higher than A1, because of the need to expand capacity. The process continues however, so that at TIME = 15 a new forecast A2 is made and held for the forthcoming second DMT at TIME = 22. In turn this generates B2, the PPSR which will come into force at TIME = 24, the end of Year 2 and the start of Year 3. B2 turns out to be lower than A2, because the previous expenditure on B1 has left the company short of money to invest. This is a good example of the way in which output from a corporate planning model helps one to diagnose weaknesses in company policies, in this case a tendency to overinvest. Let FFINT be the interval between freezing between Decision Making Time, and DEINT be Execution Times. After the first year they start at the right time. We no longer need of forecasts, DMINT be the gap the gap between Decision are all 12 but they have to to distinguish between A1 figure 10.2 and A2 and between B1 and B2 as we did in the diagram. Note that the equation for B.K uses variable sampling times, a problem which appears in Appendix B. a a c c a a c a a c a.k=sample(fcast.k,ffint.k,fcast.k) ffint.k=clip(mpy,fft,time.k,fft) fft=3 mpy=12 months per year b.k=sample(f(a.k),dmint.k,f(a.k)) dmint.k=clip(mpy,dmt,time.k,dmt) dmt=10 ppsr.k=sample(b.k,deint.k,b.k) deint.k=clip(mpy,det,time.k,det) det=12 Note that F(A.K) in the third equation denotes an expression involving A.K. In a real model that expression would have to be written explicitly. As long as DET=12, the equation for DEINT is superfluous but, of course, there may be value in choosing some other DET. Financial Accounts Background Many models of business problems contain equations for the financial accounts and the balance sheet of the firm. They indicate corporate performance and can be used to derive the various financial ratios, either as further indicators of performance or as the initiators of control actions, such as cutting back on desired inventory when liquidity falls below a 'safe' level. This example shows how such equations can be built up. Caution 1 It is essential to point out that the accounting practices used in business firms differ somewhat from one to another and between countries. The equations which are produced below are only a guide; they are not a definitive treatment of the topic. Caution 2 The level of detail required in a model depends on its purpose and one should not assume that a model of a business firm must have an accounting sector. The case for including such a sector must be carefully established, and then the proper level of detail must be chosen. The equations in this example may need appreciable revision to fit the circumstances of a particular problem. In, perhaps, three cases out of four, the equations actually used will be a good deal simpler than those given here. While the modeller who simply copied out our equations would save himself effort, he would lose a good deal of the insight to be gained from equation development and that loss would outweigh the saving. Caution 3 It is, in all circumstances, absolutely essential to include an equation of the form a check.k=ta.k-tl.k (19) CHECK=($) Difference between Total Assets and Total Liabilities TA=($) Total Assets TL=($) Total Liabilities We referred in Chapter 4 to the simile of the Levels as the accountants in a model and check variables as the auditors of those accounts. In this context the simile is exact. In practice, TA and as much as 109, and could be about 10-4 is larger than this TL will often be at least in the order of 106 or even rounding error in most computers will mean that CHECK (not 104, but 10-4). If the absolute value of CHECK there is almost certainly something wrong. Stocks and Flows One of the main problems in developing accounting equations is the proper identification of the stocks and flows, or Levels and Rates, in the system. The second principal headache is to establish the difference between the flows in the system and their resultant accumulations, and the calculations of accountancy concepts, particularly Profit and Depreciation. Unless care is exercised, it can be very easy for double counting to occur, or for something to be missed altogether. It is the purpose of the CHECK variable to act as a signal such errors and the responsibility of the analyst to make sure she watches for CHECK's signals. Are Rate-dependent Rates Permissible ? A third difficulty is carelessness over the use of Rate-dependent Rates or, even worse, Rate-dependent Auxiliaries. It is a definite mistake in modelling to write an equation such as r prod.kl=orders.kl (20) where PROD is the Production Rate and ORDERS is the rate at which orders are being received from customers, because .KL refers to the future so equation 20 says that production can be decided on the basis of orders, even before those orders have been received. In this case it would be correct to put r prod.kl=f(avord.k) (21) with, perhaps, the usual inventory correction terms, where AVORD is a smoothed level variable giving the average of orders over some smoothing period TAOR. It would, on the other hand, be rather silly to do anything other than r sr.kl=price.k*ssr.kl (22) SR=($/Week) Sales Revenue (this is the flow of invoices which, after a collection delay, will become the main Cash Inflow to the company) PRICE=($/Unit) Price SSR=(Unit/Week) Rate of Sending Shipments to Customers SSR will have its own equation, involving factors such as Inventory, Order Backlog and so forth, and it would be a waste of space and effort to replace SSR in equation 22 by the function of those factors which defines SSR somewhere else in the model. The modeller should always look carefully at equations in which one rate depends on another. He should consider, honestly, whether such an equation is a piece of lazy and incorrect modelling, as equation 20 is, or whether, as is the case with equation 22, it legitimately saves time and effort. We shall use numerous rate-dependent-rates in this section and each should be critically assessed. An equation of the form a aux.k=f(rate.kl) (23) is always a fundamental mistake, even though a System Dynamics software package might accept it without complaint. It violates the physical reality of the principle that control can be exerted only from a level without the justification of equation 22 of being a genuine short cut and time-saver. In general, an equation of the form of 23 is strongly indicative of poor understanding either of the system being modelled, or of System Dynamics modelling, or both. It should engender deep suspicion of the validity of the results, because the model is not soundly constructed, no matter how well suited it may be to its purpose. After that admonition, which is born of deep experience of the way in which fallacious models are produced, we now attempt to develop the financial equations. The Cash Equation The best place to start is with the variable CASH=($) Cash Balance at Company. This is usually taken to mean actual cash and short-term interestproducing deposits made by the company, such as overnight loans. It is rarely worth bothering with explicit modelling of the latter transactions, unless the financial side of the company is the main object of the model. The typical components of the cash inflow and cash outflow are shown below, though not all of these will occur in every model. Inflows:CCR=($/Week) Cash Collection Rate, a delayed version of Sales Revenue DAR=($/Week) Debt Addition Rate IRR=($/Week) Interest Received Rate NSIR=($/Week) New Share Issue Rate Outflows:MBPR=($/Week) Materials Bills Payment Rate WPR=($/Week) Wages Payment Rate OHER=($/Week) Overhead Expenditures Rate DRR=($/Week) Debt Repayment Rate IPR=($/Week) Interest Payment Rate TPR=($/Week) Tax Payment Rate DIV=($/Week) Dividend Payment Rate CAPEX=($/Week) Capital Expenditures on New Plant (It is usual to ignore the inflow from the sales of scrapped plant) TAX=($/Week) Taxes Paid The time unit for the model needs to be carefully chosen. Depending on the total period to be simulated, months or even years may be more appropriate than weeks. All these variables should normally be rates and the easiest method is to put l cash.k=cash.j+dt*(inflow.jk-outflow.jk) (24) r inflow.kl=ccr.kl+dar.kl+..... (25) r outflow.kl=mbpr.kl+wpr.kl+... (26) with where equations 25 and 26 are continued for exactly as many terms as can be justified in the particular model. INFLOW and OUTFLOW should be printed out, as should all the variables; it is impossible to verify that a model is behaving correctly and for the correct reasons simply by studying graphs. We return later to the problem of suitable initial conditions for CASH and the other level variables. The Balance Sheet The components included in a Balance Sheet, and their level of detail, vary quite considerably between companies. We shall consider a typical case as requiring the following variables, all of which are measured in $ and all of which, except TA and TL, can, for the moment, be assumed to be levels, though later we shall amend that as we disaggregate to a degree of detail which may prove to be necessary in some cases. TA Total Assets TL Total Liabilities CASH + RC + MVI SHC Shareholders Capital + RTP Retained Profit + DEBT Total Debt + FA Cash Receivables Monetary Value of Inventory Fixed Assets + CL Current Liabilities Clearly a ta.k=cash.k+rc.k+mvi.k+fa.k (27) a tl.k=shc.k+rtp.k+debt.k+cl.k (28) and with, repeating equation 19, a check.k=ta.k-tl.k (19) We now deal in turn with each of the components, apart from CASH already mentioned above. Receivables(RC) l rc.k=rc.j+dt*(sr.jk-ccr.jk) (29) r ccr.jk=delay3(ssr.jk,rcd) (30) RC=($) Accounts Receivable RCD=(Week) Receivable Collection Delay. SR was discussed in equation 27. Here we see the first example of a System Dynamics formulation of basic accountancy principles. Cash Collection Rate is debited from RC in equation 29, and simultaneously credited to CASH via equations 25 and 24, CHECK remaining undisturbed. Monetary Value of Inventory (MVI) A simple approach is to group together the valuation of stocks of raw materials, work in progress, and finished goods, into one overall category. We then have l mvi.k=mvi.j+dt*(rmbr.jk+wpr.jk+oher.jk-cgs.jk) (31) MVI=($) Monetary Value of Inventory RMBR=($/Week) Rate of Receipt of Bills for Raw Materials CGS=($/Week) Cost of Goods Sold Note that Overhead Expenditure Rate, OHER, appears as a credit to MVI providing the firm is using a full costing system. The Cost of Goods Sold is calculated from the Average Cost per unit (usually with some allowance for wastage) and the Shipment Sent Rate, using either a Last-in-firstout, LIFO, or First-in-first-out, FIFO, valuation method. MVI is debited by CGS, but CASH is eventually credited by Cash Collection Rate, CCR, which ought, generally, to be larger than CGS, or the firm will be in trouble. This difference, which is profit, is going to unbalance TA and TL unless we take accountants' steps to balance up the liability side of the balance sheet, which we do below when we consider Retained Profit. Fixed Assets (FA) The accountancy term 'Fixed Assets' means the monetary value of the assets, not their physical capacity. This is dealt with very easily by putting l fa.k=fa.j+dt*(capex.jk-depr.jk) (32) FA=($) Value of Mixed Assets DEPR=($/Week) Financial Depreciation Note that Capital Expenditure, CAPEX, debits CASH and credits FA, but DEPR does not credit CASH except indirectly through the mechanism of PROFIT, discussed below. This is in accordance with the System Dynamics principle of carefully tracing actual flows as they occur. In this case, DEPR does not itself actually involve money changing hands. It only functions as something the tax authorities use to calculate how much money will flow from the firm to the Government in the form of Taxes. Equation 32 is easily disaggregated if one treats FA as the integral of CAPEX, and uses cumulative depreciation, CDEP, as the integral of DEPR. One then has Net Fixed Assets, an auxiliary variable, in the balance sheet as the difference between FA and CDEP. We can, of course, use DEPR in the model as a component of so-called 'Cash Flow', but as a managerial variable, perhaps affecting CAPEX, not as an accounting record of money changing hands. Shareholders' Capital (SHC) This is the original paid up capital of the firm, which can be increased only by floating new share issues, a comparatively rare event the modelling of which is not for the faint hearted. To keep the book equations straight we can put l shc.k=shc.j+dt*nsir.jk (33) though New Share Issue Rate, NSIR is usually going to be constant at zero. Profit, Dividends and Retained Profit There are several ways of calculating profits, and it is essential to bear in mind the clear distinction between two aspects of profits. In the first place, 'profit' is an accountants' record of the past, and in the second it is a managerial calculation which is used to regulate future actions, such as investment. It is the first of these which we are concerned with here, and we note that, as all the other flows have been treated as occurring instantaneously, we must treat profit in the same way. This is a perfectly legitimate approximation to what the accounting system does which gives us, as we shall see, instantaneous and continuous payment of taxes and dividends. It is not usually worth the extra effort to model details such as the bi-annual payment of dividends, but is fairly easy by following the approach we are using here. It is not a legitimate approximation to use continuous profit as a managerial variable influencing decisions. For that purpose one has to create a new variable called 'Average Profit', otherwise one would have, by implication, a rate-dependent rate such as r capex.kl=f(profit.kl) (34) Equation 34 is definitely wrong for the same reason that equation 20 was fallacious, since it implies that CAPEX can be controlled by a variable, PROFIT, which is inherently unobservable. It may well be asked why the rate variable, PROFIT, can be used in the accountancy part of the model but not in the decision-making part? If it is observable in one place, why not in the other? The answer is given above, but bears repeating because it is such an important aspect of good modelling practice. PROFIT is used as an approximation to control payments of taxes and dividends, and we could refine the calculation to improve the approximation as far as it was worth the effort of doing so. In the managerial case, we have to use Average Profit (or cumulative profit over a period) because, if we do not, we : 1. Say that managers can do something which cannot be done, namely control on the basis of an unobservable factor. 2. Deny ourselves access to the averaging period as a control parameter. 3. Fail to represent a significant aspect of the managerial process. Returning to the accounting equations, we can calculate r profit.kl=sr.kl-cgs.kl+irr.kl-ipr.kl-depr.kl (35) Recall that IRR and IPR are interest received and paid, and note that, if CGS does not include OHER, it would be brought into equation 35. We then have r tax.kl=taxr*profit.kl (36) where TAXR is the taxable fraction. A little care is needed here if PROFIT is negative, depending on whether the loss can be offset or not, and we ignore the detail of whether the Company has to deduct personal taxes from dividends. We then have the important variable r rrtp.kl=(1-taxr)*profit.kl-div.kl (37) where RRTP=($/Week) Rate of Retaining Profit and finally have l rtp.k=rtp.j+dt*rrtp.jk (38) Clearly, RRTP is the factor referred to earlier which prevents the earning of profits from unbalancing the assets and liabilities. Debt Debt is easily handled, and has clear links with CASH. l debt.k=debt.j+dt*(dar.jk-drr.jk) (39) and DAR and DRR are respectively inflow and outflow components of CASH. Again, we see the System Dynamics representation of standard balance sheet processes whereby, if some debt is taken out, DAR is positive, and both DEBT and CASH, on opposite sides of the balance sheet, increase by equal amounts, as ensured by equations 24 and 25. Current Liabilities The principal current liability (or 'Accounts Payable' or 'Creditors' depending on the accountancy terminology being used) is the payments due for raw materials. This is given by l cl.k=cl.j+dt*(rmbr.jk-mbpr.jk) (40) together with r mbpr.kl=delay3(rmbr.jk,rmbd) (41) RMBD=(Week) Raw Material Bills Delay. It goes without saying, or should, that the appropriateness of DELAY3 should be verified for this and the other delays. Other Current Liabilities, such as taxes and dividends payable, can easily be handled by this approach if desired. The reader should, however, be aware that the 'accuracy' given by the extra equations is largely illusory. The payment of taxes and, to a lesser extent, dividends, is not significantly under managerial control, whereas the ordering of raw materials is completely under control, usually by the production sector on the basis of requirements, and partly by the financial sector on the basis of liquidity etc. We therefore need to be able to model the consequences of control action, or lack of action, on raw material purchases, but we usually need not worry about the detailed modelling of uncontrollable payments. It would be a brave man who modelled dividend policy, and it is usually satisfactory to regard dividends either as a constant absolute amount or a fixed proportion per year of the shareholders' capital. Alternatively, TAXR can be increased to more than the legal corporation tax rate and regarded as a tax and dividend payment fraction. Some modern treatments of corporate finance and micro economics do, indeed, view dividends as a form of tax on the firm. As ever, the issue depends on the managerial problem. An Interim Summary So far, we have developed a fairly detailed accounting sector, which should be adequate for many problems, except those which are explicitly and dominantly concerned with financial matters. We point out, however, that the equations deal with financial accounting and not financial policy. That is an entirely different matter. The accounting system does, however, produce much of the information on which financial and other decisions are made but, before proceeding to that and other matters, it is useful to summarise the flows and stocks we have so far identified and Figure 10.3, shows the interconnecting flows and the resulting balance sheet. Assets are shown in rectangles and Liabilities in ellipses. Note the standard use of solid lines for 'physical flows', in this case of pieces of paper representing money. Dotted lines show calculations which connect flows. For example, (DAR-DRR) feeds CASH by a solid line, because money flows from the lender to the company or vice-versa. A dotted line is used to connect (DAR-DRR) to DEBT because it represents a record being kept of how much has been borrowed and repaid. The way in which Rate of Retention of Profit and Retained Profit appear as separated from the rest of the flows makes it clear that they are the balancing item which we have discussed. If the firm is profitable, RTP will grow to reflect the accumulation of corporate wealth. If, however, the physical inflow of Cash Collection Rate, CCR, is smaller than the outflows from CASH, the firm's lack of profitability will be reflected in the calculation of PROFIT, and RTP will fall to ensure a correct balance. So far, we have explained the equations from first principles, but Figure 10.3 provides an alternative view of the same processes. A diagram such as this is, or should be, to be found in any good accounting text. The variables DAR, Debt Addition Rate, and DRR, Debt Repayment Rate, and IRR, Interest Receipt Rate, and IPR, Interest Payment Rate, have been paired to give two net rates to reduce the number of lines on the diagram. Two important aspects need to be noted as they give useful checks on the technical accuracy of the equationsÿ: Transactions between Assets and Liabilities must have the same sign at the ends of the arrows. Thus (DAR-DRR) has a positive effect on both CASH and DEBT. Note that (IRR-IPR) similarly has a positive effect on both CASH and RTP. On the other hand MBPR has a negative effect on CL and on CASH. Transactions within Assets or Liabilities must have opposite signs on the ends of the arrows. Thus, WPR and OHER increase MVI and deplete CASH, CCR increases CASH but depletes RC, and so on. This shows how neatly System Dynamics procedures match those of accountancy. Notice that PROFIT is not a transaction, but a step in determining actual exchanges. The two variables CGS and SR (Cost of Goods Sold, and Sales Revenue, respectively, both measured in $/Week) have a function slightly different from pure transactions, in that they transmit the effects of major interactions between managerial decisions and signals from the corporate environment. Thus, SR, Sales Revenue, depends in part on decisions about price and volume of production, made by the firm, and on decisions by the market about how much to buy. An increase in SR increases RC, and thereby the Assets side of the Balance, but is partly balanced by an outflow of taxes and partly by a cross-transaction to RTP, the latter producing, one hopes, an increase in both sides of the Balance. This contrasts with the role of CCR, the Cash Collection Rate, which simply transfers Assets from RC to CASH. The variable CGS functions in very similar, though opposite, ways to SR. Once the equivalence between the principles of accountancy and the System Dynamics nomenclature of levels and rates has been fully grasped, the accounting sector described here can be aggregated or disaggregated to any desired degree. We shall consider one example, leaving the reader to draw a revised version of Figure 10.3 - a useful exercise which the serious student ought not to neglect. Disaggregation of Inventory The variable MVI, Monetary Value of Inventory, can often be usefully disaggregated into the values of Raw Material, Work in Progress, and Finished Goods Inventory, providing the purpose of the model calls for it. We denote the three variables respectively by VRMI, VWP and VFGI, and MVI now becomes an auxiliary variable. a mvi.k=vrmi.k+vwp.k+vfgi.k (42) The raw Material Valuation is given by l vrmi.k=vrmi.j+dt*(rmbr.jk-crmu.jk) (43) CRMU=($/Week) Cost of Raw Material Used. In turn, CRMU will be the product of the Production Start Rate and the 'Raw Material Price'; the latter not necessarily being the actual price currently being paid for raw materials, but the price at which it is being charged out, using whatever valuation method the firm adopts. e.g. FIFO, LIFO etc. The Value of Work in Process is then l vwp.k=vwp.j+dt*(wpr.jk+oher.jk+crmu.jk-cpc.jk) (44) CPC=($/Week) Cost of Production Completed and, of course, l vfgi.k=vfgi.j+dt*(cpc.jk-cgs.jk) (45) As before, CPC and CGS are calculated by whatever methods are appropriate. A simple method for CPC is, however, to use, as a model of the physical production process, r pcr.kl=delay3(pdr.jk,pdel) (46) PCR=(Unit/Week) Production Completion Rate PSR=(Unit/Week) Production Start Rate PDEL=(Week) Production Delay and then to put r cpc.kl=delay3(wpr.jk+oher.jk+crmu.jk,pdel) (47) as a model of the process costing system. This simple approach will not do for CGS, as there is no necessary connection between PCR, the Production Completion Rate, and SSR, the Shipments Sent Rate, as there usually is between PSR and PCR. Initial Conditions Reverting to the more aggregated model of Figure 10.3, we now examine the rather awkward problem of assessing initial conditions for the several levels CASH, FA, MVI, DEBT, SHC, RTP and CL. At first glance one might expect that all that was needed was to copy down the values of these from the latest set of corporate accounts. Whilst this may sometimes work perfectly well, there will often be problems caused by delays in the system. For example, equations 40 and 41 describe the behaviour of CL in response to purchases of raw materials, and the value of CL should be the same as the total contents of the 3 internal levels in the DELAY3. The book value of CL may, however, contain factors other than raw materials which the modeller may have chosen to ignore, given the purpose of his model. Further the book value of CL may well tell us nothing about the volume of raw material purchases during the last couple of months of the financial year, assuming RMBD to be in the region of two months, which it usually is. As a general guide, there are two approaches. One is to put n cl=rmi*rmp RMI=(Unit) Raw Materials Inventory RMI=($/Unit) Raw Material Price the other is to use n cl=rmbr*rmbd (48) Similar methods can be used for MVI and RC. The levels of CASH, DEBT, FA and SHC can often be initialised directly from the accounts and RTP can then be initialised as a balancing item by n rtp=ta-debt-cl-shc (49) It is always important to check that the initial values have been chosen suitably. One way of doing this is, for example, to force raw material purchases to zero and to see what happens to CL. If it too decreases to zero in due course, then all the raw material bills eventually get paid by the model. If, however, CL eventually stabilises at some non-zero value, then bills are either remaining unpaid or even being overpaid, and something is wrong with the initial values. The role of check variables in testing for such errors will be obvious. It must be admitted that initial values are a frequent source of trouble and a good deal of care may be needed. It is not enough to rely on CHECK being close to zero. Although that is a necessary condition of validity of the financial sector, it is not a sufficient one. Dimensional Analysis will play its usual vital role in checking for errors. An important modelling trick is to check carefully which of the levels of the Balance Sheet have been modelled in the form of l lev.k=lev.j+dt*(in.jk-out.jk) (50) r out.kl=delay3(in.jk,del) (51) It is rare for this to be true for CASH, SHC, and RTP, but any of the other levels may validly be modelled in that form. It is, for example, rather common for DEBT to be modelled as l debt.k=debt.j+dt*(dar.jk-drr.jk) (52) r drr.kl=delay3(dar.jk,dl) (53) DAR=($/Week) Debt Addition Rate DRR=($/Week) Debt Repayment DL=(Week) Debt Lifetime Since DL may be rather large it is very unlikely indeed that the total value inside the levels of the DELAY3, as initialised automatically from the current value of DAR, will be anything other than much larger than the book value of DEBT, which in the real firm depends on what DAR was perhaps five years ago. One way out of this is to use a function such as DELAYX in COSMIC, or whatever equivalent, if any, is available in other software packages, which allows for rather flexible initialisation, based on historical data for DAR, where such data are available. It should, however, be noted that an approach to debt modelling which is often more useful is to ignore the repayment of maturing debt, assuming that it is automatically refunded or rolled over, unless the company specifically decides to repay. In such a case, DRR would be modelled by equations quite different from the automatic repayment of equation 53, and initialisation of DEBT can be done directly from the accounts without any risk of the problem of non-payment exemplified in our earlier discussion of CL. The end result of even the most careful initialisation may be values which differ to some extent from those given in the accounts. The size of the differences will depend on the approximations which have been made in the modelling and will usually be smaller in cases where the firm can most reasonably be viewed as an integrated processor of fairly homogeneous material - such as an oil company. In practice, the discrepancies between the model's initial accounts and those of the real firm will generate and focus criticism of the model from those who would have been against it in any case. This is exceedingly unfortunate but, like hanging, the prospect of it concentrates the mind wonderfully. Calculation of Financial Ratios From the foregoing discussion, and particularly from Figure 10.3, it should now be very obvious how any or all of the standard debt/equity ratios, liquidity ratios and so on can be calculated, as auxiliary variables, by forming the appropriate combinations of the levels from the equations, exactly as an accountant would do. The use of small quantities, such as EPS, to prevent possible division by zero will probably be essential. We shall not do so here, merely suggesting that, perhaps, instability of liquidity ratio might be an interesting measure of performance for optimisation Final Caution We stress again that a set of equations should not be put into a model merely because they look impressive, but only because they will be useful and relevant. Addition of Integer Units of Capacity Background In modelling the ordering of new capacity, and its installation after a delay, it is quite common, and often perfectly adequate, to put: r car.kl=delay(cor.jk,cdel) (54) l cap.k=cap.j+dt*car.jk (55) CAR=((Unit/Week)/Week) Capacity Addition Rate COR=((Unit/Week)/Week) Capacity Order Rate CDEL=(Week) Capacity Delivery Delay CAP=(Unit/Week) Production Capacity. Equations 54 and 55 have the property that, as soon as any of the plant represented by COR gets through the delay, it is treated as actual capacity, and is capable of taking part in production. This is often very appropriate if the plant is of a type comes on stream gradually, progressively getting nearer to its rated throughput. There are, however, circumstances in which the plant is not capable of producing at all until it is practically all delivered. This is nearly the same thing as the perfect, or pipeline, delays which exist under different names in various System Dynamics software packages. It is not quite the same thing, however, because pipeline delays produce all their output when all that has gone in is ready to come out; whereas, in this case, we require to produce all the output when most of it is ready to come out. In addition, pipeline delays usually have a fixed delay magnitude, and we may need to model cases in which CDEL might vary if the firm allows construction to slow down because of shortage of cash. Another advantage of this simple formulation is that it avoids the complex syntax which is sometimes associated with perfect delays. The purpose of this example is to provide some simple equations which will produce a model of plant delivery which is closer to reality than the perfect delay, and which provides additional information which could well form part of the plant ordering decision. Visualising the Dynamics The situation with which we need to deal is shown in Figure 10.4. Plant is ordered and, as time passes, it gets progressively nearer and nearer to being ready for operation. After its 'readiness' exceeds some threshold value of, say, 90% of its nominal output, it is regarded as capable of producing at full output; the capacity completed suddenly jumps from the threshold to 100%, as shown in Figure 10.4. This appears to be nonsense, but, in fact, is quite close to those real-life cases where figure 10.4 the last stage of plant installation is a running-in phase during which the plant produces full output, but at higher cost. We shall ignore the higher costs and we suggest that they will very rarely be worth bothering about, even in a model of a real problem. Note that those cases where the plant gradually runs up from being capable of zero output to full capacity, as in most of the process industries, are best handled by equations 54 and 55 with, perhaps, a higher order delay in equation 54. Method The concept which is central to the method is that some machine deliveries are, as it were, imminent or pending. As soon as they exceed the threshold, delivery of a whole machine takes place. Thus, by analogy with equation 54 we put: r dcr.kl=delay3(cor.jk,cdel) (56) DCR=((Unit/Week)/Week) Dummy Rate of Capacity Completion COR=((Unit/Week)/Week) Capacity Order Rate CDEL=(Week) Capacity Delivery Delay. We can then feed and deplete the level of capacity delivery pending by: l cdp.k=cdp.j+dt*(dcr.jk-car.jk) (57) CDP=(Unit/Week) Capacity Delivery Pending. ie, plant which is nearing completion but which cannot be installed until the threshold is reached. CAR=((Unit/Week)/Week) Capacity Addition Rate The addition rate is then easily modelled as: r n c c car.kl=(uc/dt)*clip(1,0,cdp.k,thold) thold=frac*uc frac=0.90 illustrative value uc=4000 illustrative value (58) (59) (60) (61) UC=(Unit/Week) Unit size of capacity, eg the output of each machine THOLD=(Unit/Week) Threshold level of completion after which the machine is deemed to be capable of producing, though perhaps at higher cost. The Capacity Addition Rate in equation 58 will deliver a unit of capacity each time there is at least 90% of a machine, ie 3600 (Unit/Week) in CDP. This means that CDP would move sharply from +3600 to -400 but there would still be 400 Unit/Week in the internal levels of the DELAY3 in equation 56. This amount will gradually come through the delay, thereby eventually cancelling out the apparently nonsensical -400 in CDP. We shall also need to have: l dpipe.k=dpipe.j+dt*(cor.jk-dcr.jk) a coo.k=dppe.k+cdp.k (62) (63) DPIPE=(Unit/Week) Capacity on order in the delivery delay COO=(Unit/Week) Total Capacity on Order. Equations 62 and 63 keep correct 'accounts' of the capacity ordered but not yet received, and are similar to a CHECK variable. They would probably have a part to play in the equations for COR, and for the firm's financial commitments. Caution The reader may well be tempted to opt for the more complex representation of equations 58 to 63, rather than the simpler forms of equations 54 and 55, perhaps because the former look more 'scientific' or 'impressive'. The choice really depends on the nature of the process being modelled, the purpose of the model, and the extent to which additional information about capacity in the pipeline and the consequent future arguments to be made. In many cases, equations 54 and 55, with an associated pipeline equation for capacity ordered but not yet received, will be perfectly adequate. There is no special virtue in complicated, 'impressive' equations and this method would be largely pointless if COR is continuous. For such problems, equations 54 and 55 would be perfectly adequate. If, however, COR is spasmodic, the more complicated equations are more satisfactory. Other Applications of This Technique This approach has proved to be extremely useful for all sorts of models. One example is the modelling of the building of a group of ships. Individual vessels are ordered at points over a period of time, so the order rate is a sequence of PULSEs. A complete ship is allowed out of the construction pipeline whenever cumulative construction exceeds a fraction of a ship. This gives a simple set of equations, but avoids the problem that the 'tail' of a DELAY3 is so long that the last ship in the class would practically never be completed if one used the basic formulation in equations 54 and 55. The reader should now think of a few other cases in which this treatment would be necessary. Temporary Withdrawals of Production Capacity Dependent on Throughput Background In many industries production capacity has to be withdrawn from service for repairs when a certain amount of throughput has been achieved, rather than at certain intervals of time. For example, aircraft have to undergo major overhauls, lasting days or weeks, when a certain number of flying hours have been accumulated. Since the usage of the aircraft depends only on demand and not simply on the passage of time, this is a throughputdependent event. Similarly, blast furnaces in the steel industry have to be relined after a given amount of metal has been produced, and rock crushers in mines have to be refaced after so many thousand tons of rock have been broken. Many other instances of this kind of event may suggest themselves to the reader. Once again, we shall explain the equations in detail so that the reader can enhance his ability to work in the time dimension, and gain facility in model development. Equation Formulation First, we need an equation for Cumulative Production, or throughput, and, for the sake of illustration, we shall remain with the blast furnace example. l cpbf.k=cpbf.j+dt*(bfpr.jk-recp.jk) (64) CPBF=(Ton) Cumulative Production since the last Reline BFPR=(Ton/Week) Blast Furnace Production Rate RECP=(Ton/Week) A Rate to empty the Cumulative Production when a Reline becomes necessary. The purpose of RECP is to take CPBF back to zero to restart the comparison of Cumulative Production with the limit to generate the next reline. The next thing we need to model is the passage of time, and we have to consider the time at which the reline started, the time at which it should finish, and, of course, whether or not CPBF has reached the point where a reline is needed. We can start with INVBLF, the Interval for Sampling the Blast Furnace. This is sampling in the System Dynamics sense in that we look at the furnace now to see if it needs a reline. If it does not, we shall look again next DT. If a reline is required, we shall need to hold that time for the duration of the reline, TRLBF (Time to Reline Blast Furnace), weeks. We can write a invblf.k=clip(trlbf.k,dt,cpbf.k,tptbf) (65) INVBLF=(Week) Interval for sampling the blast furnace where TPTBF is the Throughput Level at which the furnace needs relining. Equation 65, and the subsequent equation 68, provide additional examples of the legitimate use of DT in Rate and Auxiliary equations. As we have commented before, such use needs the most rigourous justification ! We then record the time at which the furnace was inspected to see if relining was needed by a htmbf.k=sample(time.k,invblf.k,0) (66) HTMBF=(Week) Dummy variable for the time reline started Thus, if the furnace does not need relining, INVBLF will be DT from equation 65, and HTMBF, the 'Hold Time' for the Blast Furnace, will always be equal to TIME. If, however, CPBF reaches TPTBF at, say, TIME=25 and the reline takes 9 weeks, then HTMBF will be kept at 25 until the reline is completed at TIME=34. Obviously the Blast Furnace output, BFPR, has to be 0 during the reline, but at other times it will have its normal, though variable, value of NPBF, which is governed by the production policy elsewhere in the model. This can be written as r bfpr.kl=clip(0,npbf.k,cpbf.k,tptbf) (67) In words, as soon as Cumulative Production reaches the critical level at which a reline is needed, then production stops. Notice that equation 67 depends on the idea of not emptying out CPBF as soon as the reline is started, but just before it is due to end. This allows us to keep CPBF at the critical value throughout the reline duration and provides a simple method, equation 67, for suppressing BFPR during the reline. This can be seen from the equation for RECP, which is r recp.kl=clip(cpbf.k/dt,0,time.k-htmbf.k,trlbf-dt) (68) Suppose that the reline started at TIME=25, which will be stored as HTMBF, that TRLBF=9, and that DT=0.5, though we choose this DT for ease of explanation and it would not necessarily be an appropriate value for a steel industry model. Now, at any time between 25 and 33, inclusive, TIME.K-HTMBF.K will be less than TRLBF-DT, or 8.5, and RECP will be zero. At TIME=33.5, TIME.K-HTMBF.K reaches 8.5, RECP moves to CPBF.K/DT, and therefore restores CPBF to zero just as the reline ends at 34. When no reline is in progress, HTMBF is continually updated to TIME by equations 65 and 66, so that RECP is held to zero and equations 64 and 67 allow CPBF to mount progressively, though not necessarily at a uniform rate, which is precisely the dynamic behaviour we seek. The Model Behaviour Fig10-5.cos on the disk runs these equations to produce Figure 10.5. We urge the reader to use the model to experiment with the parameters, carefully watching in the printout exactly what happens in the model. This should be a very useful exercise in developing that facility for thinking in terms of time-dependent processes which is the essential ingredient in successful System Dynamics modelling. Figure 10.5 shows the dynamics of selected variables over an illustrative 40-day period and should also be carefully studied. Notice the device of forcing INVBLF, which cannot possibly have negative values, to use a scale from -10 to +10, which has the effect of somewhat separating the graphs on the page. Two sets of graphs are produced to make individual curves easier to see. In the upper graph, the solid line for CPBF shows the expected behaviour of rising to its peak during the production run, staying constant at the peak during the reline, and then dropping back to zero just as the reline comes to an end. Similarly, BFPR is non-zero during the production periods (we have set it to a constant for simplicity), and zero during the reline, though in a practical model BFPR need not be constant in the production phases. The line for INVBLF remains low, at DT, during the production periods, and then jumps to the duration of the reline, 5 days, as soon as a reline is signalled by CPBF reaching a maximum, and INVBLF then holds that value to control the duration of the reline. Finally HTMBF rises steadily during the production phase. However, it stops rising at the time when the reline starts just at the point where CPBF returns to zero, and BFPR moves away from zero. To emphasise, INVBLF and HRMBF alternate their behaviour and each changes at the time when the other does. Such careful checking is an essential feature of model development. In short, the graph behaves exactly as the real system does, and for the same reasons. It is always important to verify carefully that the plotted, and above all the printed, values are doing what they should do. For a realistic model this may take hours, and that is the reason why interactive computing, with its constant demand for the user to do something, is nearly always a very bad way to develop System Dynamics models as opposed figure 10.5 to experimenting with, or optimising, a well-tested model. The time spent in studying the output is time well spent, for that is when we come to understand the system, and that is what System Dynamics is about. Comment 1 Note that it is not necessary to use a PULSE function in equation 68. The factor of CPBF.K/DT provides the same effect as the pulse, but the other equations control the timing. Comment 2 It may happen that TRLBF is a state-dependent variable. For example, a vehicle may need a fairly short service every 5000 miles, a much longer one every 10,000, and a major overhaul every 50,000 miles. This can be modelled by introducing a new variable, Overall Cumulative Mileage, which is not re-zeroed when the service takes place, as would be the case for the variable corresponding to CPBF. We can then provide for TCS, the Time to Complete the Service, analogous to TRLBF, to take one of three values A, B, or C, by considering the number of services which have taken place. We start with three variables a m1.k=int(ocm.k/5000) a m2.k=int(ocm.k/10000) a m3.k=int(ocm.k/50000) (69) (70) (71) where OCM is Overall Cumulative Mileage, INT is the standard integer part function, and M1, M2, M3 simply count the numbers of the three types of service which have taken place. We can then put a tcs.k=clip(b,a,2*m2.k,m1.k) (72) This will make TCS equal to B whenever M1 is twice M2, i.e. at 10000 miles M1=2 and M2=1 and the TCS should be B. To provide for the 50000 mile interval we alter equation 72 to a tcs.k=max(clip(b,a,2*m2.k,m1.k), x clip(c,0,10*m3.k,m1.k)) (73) The first CLIP produces A and B alternately, but, whenever M3=1, at 50000 miles, M1=10 and the second CLIP produces the value C, which is picked up by the MAX as it is greater than B or A. Caution As ever, we exhort the reader not to use the far more complex methods suggested in comment 2 unless they really are required and justified by the nature of the problem and the purpose of the model. We illustrate them here partly to add to the reader's insight into the modelling of dynamic processes, and to develop his skill in using this remarkably powerful and compact simulation syntax. The Use of Multipliers Background Influence Diagrams often have sectors such as are shown in Figure 10.6 in which A, B, C etc. are model variables, jointly affecting some other variable X. For simplicity, all influences are shown as positive though, in practice, they could be negative. In Case A, the influences are the solid lines for physical flow, so X must be a level and we must have l x.k=x.j+dt*(a.jk+b.jk+c.jk+ ...) (74) In Case B, the dotted lines might, at their simplest, represent a Rate which is merely the sum of four auxiliaries : r x.kl=a.k+b.k+c.k+ ... (75) A more complicated case might involve X as a rate which is the product of functions of several auxiliaries : r x.kl=fa(a.k)*fb(b.k)*fc(c.k)*... (76) where fa, fb, fc represent functions of A, B, C, etc. Thus, in production system modelling, X might be the actual production rate, A is the ideal target rate, B stands for the constraint of production capacity, and C denotes the effect of the size of the labour force. A further variable, D, might signify the impact of availability of working capital, and so forth. Naturally, many practical situations are more complicated still and we may need equations such as (fa(a.k)+fb(b.k))*fc(c.k) r x.kl= ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ fd(d.k/e.k) (77) and so on, without limit of complexity or form of equation. Equations 76 and 77 were illustrated using X as a Rate. It could equally well have been an Auxiliary, though, in these equations, it cannot be a Level. Equations 76 and 77 could, of course, simply be translated into System Dynamics syntax and used in a model, provided one knew exactly the mathematical form of the various functions. In practice, the equations for the functions are usually not known and one relies instead on socalled multipliers based on the use of System Dynamics figure 10.6 TABLE functions , such as were explained in Chapter 5. The numerical values in the TABLE act in place of the formula in the mathematical function. Multipliers are an extraordinarily useful and very widely used modelling tool. However, there are snags to be watched out for in their use. The Usefulness of Multipliers Consider the following case. A firm provides or withholds working capital to its operating subsidiaries. The latter, however, decide independently on the Planned Production Rate, PPR [Unit/Month], on the basis of inventory, orders, backlog and other factors. These plans may require more Working Capital than is actually available so the question is how does, or should, the actual Working Capital, WCAP, made available to the operating companies affect the production they actually achieve ? One approach is suggested by dimensional analysis- WCAP is measured in $, but PPR and the Actual Production Rate, APR, are expressed in (Unit/Month). This suggests that we might consider the Working Capital required per Unit of Production, WCPUP, measured in ($/(Unit/Month)). WCPUP is a parameter which is a characteristic of the production technology used in the operating companies. We can now see that WCPUP implies a Sustainable Production Rate, SPR, being the rate which can be achieved from the given amount of working capital : a spr.k=wcap.k/wcpup (78) SPR obviously ought to have dimensions of [Unit/Month], and dimensional analysis of equation 78 shows that it does. The easy, obvious, but also restrictive and probably wrong way to proceed is to put r apr.kl=min(ppr.k,spr.k) (79) APR=(Unit/Month) Actual Production Rate PPR=(Unit/Month) Planned Production Rate SPR=(Unit/Month) Sustainable Production Rate from Available Working Capital Equation 79 makes production either what the company would like to do, PPR, or what it has the working capital to do, SPR, whichever is the smaller. To see why equation 79 is wrong, in the sense of being a poor model rather than in terms of logic or the formal rules of System Dynamics, we rewrite it in the form of r apr.kl=ppr.k*pmfwc.k a pmfwc.k=table(tpmfwc,spr.k/ppr.k,0,1.5,0.5) (80) (81) t tpmfwc=0/0.5/1.0/1.0 (82) PMFWC=(1) Production Multiplier from Working Capital TPMFWC=(1) Table of Values for PMFWC. This is the System Dynamics convention for the ordinary mathematics : r apr.kl=ppr.k*fa(spr.k/ppr.k) the TABLE function in equation 81 and the numbers in equation 82 being carefully chosen to have the same effect as fa. In equations 80-82, TPMFWC is a multiplier to make Actual Production depend on Planned Production, as a function of the ratio of SPR to PPR. If the ratio is 1.0 or more, then the multiplier is also to be 1.0; if SPR exceeds PPR, APR is held back to PPR. If, however, SPR is, say 0.5 of APR, then the multiplier PMFWC is also to be 0.5 (review TABLE functions in Chapter 5), and APR will then be 0.5 of PPR, that is, it will be equal to SPR. The table TPMFWC is drawn in Figure 10.7, equation 82 being shown by the solid line, though its shape should be obvious from inspection of equation 82. This has exactly the same effect as equation 79, but at much greater length. Why bother? Thinking about the physical reality in the factory which equation 82 embodies, we can at once see two shortcomings in equation 79. In the first place, if SPR is, perhaps, 90% of PPR, then in practical life it is unlikely that APR would fall by as much, if at all. Payment of creditors can always be delayed a few days, perhaps slightly keener prices negotiated for raw materials, a shade more productivity can be squeezed out and so on. Secondly, at the lower end of the scale, when SPR is only a small fraction of PPR, it might well be very hard to keep production going at all. The cut-back becomes known, so suppliers are less willing to extend credit, morale in the factory falls as people worry more about losing their jobs than doing them, it becomes very hard to finance delivery pipelines, and so forth. Taking these two factors together, we might argue fairly strongly that the dotted line, labelled 'Curve B' in Figure 10.7, is a better model of the real world and that the simple minimum of equation 79 is inaccurate. Note that Curve B follows the solid line to the right of point figure 10.7 A. Curve B could be set up as a table, using the method shown in Chapter 5, to replace equation 82 changing, if necessary, the numbers at the end of equation 81 which specify the range and step size for the table. Caution Although we have argued that equation 79 is wrong, in the sense that it is not a good model of reality, it is rather a different matter to argue that Curve B is right. Getting the shape right can be quite difficult in a real case. This does not, however, mean that, because getting the correct shape for Curve B is difficult, we should use equation 79 after all (in such a case there would clearly be no point in using equations 80-82 when 79 does the same thing). However, to use equation 79 would be to use the one shape of the function which is definitely wrong. This is a subtle and important point and the reader should pause until it has been grasped. Managerial Choice Having criticised equation 79 for not representing physical factors, we should also consider how well it represents managerial choice. First, consider the region to the right of point A in Figure 10.7, where working capital is adequate to support a larger volume of production than other factors call for. It is not hard to visualise management using this surplus of working capital to push production ahead of PPR so as to make it appear that they are using the working capital given to them, rather than letting it be idle. We might, therefore visualise an extension of Curve B to the right of point A, denoted by curve C in Figure 10.7. Having introduced the idea of managerial choice in Curve C we can see the joint curve B-C as an upper bound to management policy. Curve B reflects an upper limit due to physical factors, and Curve C a similar limit depending mainly on managerial/economic factors. There is, however, no compulsion about operating at those limits and, indeed, any curve drawn in the space below Curve B-C could represent a managerial policy, using, of course, new values in equation 82. We now come to the fundamental reason why equation 79 is 'wrong', namely that it is restrictive of imagination and design possibilities. The solid line which, as equations 80-82 show, is equivalent to equation 79, does indeed lie below B-C over most of the region of interest because, if there is such a shortage of working capital that SPR falls below about 70% of PPR, the firm is in trouble and the fact that the straight line does not correctly represent the physics of the system will not be important. In general, however, uncritically adopting equation 79 is short-sighted. Steps in Setting up a Multiplier The great attractiveness and power of multipliers as modelling devices sometimes leads even experienced modellers into mistakes. A few very elementary tricks can sometimes help. Because they are elementary, they are often omitted but they are useful, not only because they prevent mistakes, but because they may lead the modeller to think, an activity which is all too often forgotten in the excitement of playing with the computer. a) Always define dummy variables for non-elementary table arguments. Thus, equation 81 should really be a prat.k=spr.k/ppr.k a pmfwc.k=table(tpmfwc,prat.k, ... ) (81) (81A) b) Always print and plot the table arguments, either the dummy variable PRAT, or the variable itself if only one is used as the argument for the table. This provides a check on the range of the table. c) Check that the range of the table is sensible. If, for example, PRAT in equation 82 is always between 0.95 and 1.03 there is no point at all in defining TPMFWC over the range 0 to 1.5 and no amount of contemplating the policy space of Figure 10.7 is going to make very much difference to the dynamics of the system. The STATS function in COSMIC produces useful information about the extent to which the range of the table has actually been used. Other software packages may or may not have similar features. d) Concentrating on the range of variation as in point c) leads one to examine the points on the range at which the assumptions and the purpose of the model lose their validity. If, as we suggested earlier, PRAT fell to 0.7 more often than once in a while, then it is very unlikely that the basic assumption of model purpose would hold good. e) Use TABHL very sparingly . This follows from the previous point. If, for example, PRAT usually varied between 0.95 and 1.03 it might be sensible to define the range of the table in equation 81A between, say, 0.9 and 1.1 in steps of 0.025. Using TABHL could allow PRAT to go beyond its stipulated range without being noticed. Using TABLE, the model would fail because the table argument had gone outside its range. One would then replace the offending TABLE by TABHL and run the model again, but this time with all one's wits ready to see what had happened, and why. The sheer snag of human fallibility is that one tends, quite properly, to use TABHL in the early stages of model development simply to reduce model crashes to the minimum, while one is checking that parameter values are correct, for example that one hasn't put 34 when 3.4 was called for, and then simply forgets to put the tables back to the TABLE form. The only real protection against errors is to ask a colleague to go through a documented model, justifying to him all uses of TABHL, ratedependent rate equations, uses of DT on the right-hand side of Rate or Auxiliary equations, and any other modelling abbreviations. Unidirectional Arguments It is perfectly reasonable, and indeed to be expected, that a variable such as PRAT in equation 81 should move back and forth over its range of operation and it could be described as 'bi-directional'. This is not, however, necessarily true of all variables. In the world models of Meadows et al (to be discussed in Chapter 11), there is a relationship showing a fairly marked fall in desired family size as GNP/capita increases. One would not necessarily expect that people who, having been rich and having had fewer children, have more children if they subsequently became poorer. In other words, once family size has fallen it will not necessarily rise again and the multiplier would be uni-directional. An example of this occurs in the problems in Appendix B. Multiple Multipliers The multiplier technique is so powerful that there is a risk of its misuse. Consider, for example, the case of the sales rate achievable by a company which owns a chain of stores. It seems likely that four factors would affect the firm's total sales rate : the 'normal' sales rate for a well-managed shop, which might be a variable to take account of the general level of trade as affected by the business cycle; the number of shops; the number of employees; and the stock available in the shops. One might write a set of equations such as r asr.kl=sps.k*nshops.k*sme.k*sms.k a sme.k=table(tsme,emps.k, ...) a sms.k=table(tsms,stock.k, ...) (83) (84) (85) ASR=($/Month) Aggregate Sales Rate from All Shops SPS=(($/Month)/SHOPS) 'Normal' Sales per shop NSHOPS=(SHOPS) Number of shops SME=(1) Sales Multiplier from Employees SMS=(1) Sales Multiplier from Stock TSME=(1) Table for SME TSMS=(1) Table for SMS EMPS=(PEOPLE) Number of Employees STOCK=($) Amount of Stock. Stock could be measured in Units, but measuring in money avoids the risk of getting trapped in too much detail. Note that the dimension of NSHOPS and EMPS are better not given as (1). These are not merely numbers, they are numbers of something in particular. Dimensions of (1) should only be used for fractions or ratios, while realising that not all ratios are dimensionless. For example, the dimensions of Force Ratio in the simple combat model were (RMEN/BMEN), not (1). A model such as this could be used to design policies for the opening new shops, employment, and stock-holding which a company could use in face of variations in SPS. As they stand, equations 83-85 assume that shops are equal. Alternatively one could work in terms of square feet shop space, feet of counter space, or whatever is appropriate. of the all of In practice one could easily look at 'big-shop' and 'small-shop' policies, but that is not our present concern. The alert reader may already have noticed some of the weaknesses and, indeed, deliberate mistakes, in equations 82-84. There are two main possibilities for mistakes with multiple multipliers - improper specification and double counting. Mistakes of Improper Specification The first mistake is easily revealed. If, for example, the company doubled the number of shops and, at the same time, increased the total number of employees by 20%, assuming employees are spread evenly over the shops, then equation 82 would increase sales by a factor of 2 for the increase in NSHOPS and probably by a factor of at least 1.0 from SME. In short, the model would at least double the sales but, in practice, it should have produced the opposite effect. Twenty percent more staff spread over twice as many shops means fewer employees per shop. Unless the shops were heavily overstaffed in the first place sales should fall due to the poorer staffing ratio. We should, therefore, be using employees per shop. This is really all such elementary commonsense that it would not be worth mentioning if one had not seen so many perfectly good models ruined by just such silly mistakes. The second case of improper specification is to do with NSHOPS. Most towns or suburbs capable of generating the required volume of business, SPS, only have one branch of, say, Marks & Spencer or Sears Roebuck. If, therefore, the company already had a shop in every feasible town or suburb, doubling the number of shops would certainly not double the Aggregate Sales Rate, as equation 83 does. Clearly it is something to do with the number of shops relative to some saturation level. Similarly, the arguments applied to employees per shop also apply to stock. We therefore come to a revised set of equations r a a a a a a asr.kl=sps.k*nshops.k*smsh.k*sme.k*sms.k srat.k=nshops.k/satsh.k smsh.k=table(tsmsh,srat.k, ...) sme.k=table(tsme,eps.k, ...) eps.k=(emps.k/nshops.k)/neps sms.k=table(tsms,stps.k, ...) stps.k=(stock.k/nshops.k)/nstps (86) (87) (88) (89) (90) (91) (92) SMSH=(1) Sales Multiplier from Shops SRAT=(1) Ratio of Number of Shops to Saturation Level SATSH=(SHOPS) Number of Shops required for saturation. Perhaps a variable connected to the forces which affect SPS - probably best treated exogenously. EPS=(PEOPLE/SHOPS) Employees/shop STPS=($/SHOPS) Stock/Shop NEPS=(PEOPLE/SHOPS) 'Normal' employees per shop, in the sense of the number of employees/shop needed to cope with the demand inherent in SPS NSTPS=($/SHOP) 'Normal' stock level per shop: the stock needed to cope with the demand SPS. Naturally TSME and TSMS would not be the same as those used in equations 84 and 85. Note the use of the dummy variables SRAT, EPS and STPS. As mentioned earlier, these should be printed and/or plotted as a check on the range and increment parameters used in equations 88, 89 and 91. We now consider the second problem. The Danger of Double Counting Suppose the firm increases STOCK, keeping EMPS and NSHOPS constant, thereby raising STPS but not EPS or SRAT. Equation 86 will generate an increase in ASR through the table of values, TSMS, and let us imagine that the consequent increase in ASR is 20% i.e. SMS is 1.2. Now, suppose, by contrast, that the company increases both EMPS and STOCK, keeping NSHOPS constant, in such a way that SMS and SME are both 1.2, so that the resulting increase in ASR will be 44%. Is this correct, in the sense of reflecting reasonably faithfully the underlying processes whose flavour we are trying to capture? The answer is that it may or may not be, depending on the circumstances, and that the modeller has to beware lest the uncritical use of a flexible and powerful modelling tool leads him into error. Consider the following scenario. The rise in stock, without any increase in EMPS, does not mean that customer demand can more easily be met, because there may not be enough staff to run the shops properly, and conversely, if EMPS increased, relative to normal, without a concomitant increase in stock to give them something to sell. When both are increased, the added number of employees may be no more than what is required to cope with the 20% extra business from the addition of stock and the apparent 44% rise may well represent double counting of a serious order. In the cases where the foregoing scenario is valid, we clearly need a more sophisticated approach than in equations 86-92. One possibility is to proceed as follows. Define a new dummy variable, Potential Business per Shop, PBS [($/Month)/Shop] where a pbs.k=sps.k*smsh.k*sms.k (93) using the multipliers SMSH and SMS directly from equations 87, 88, 91 and 92. Now introduce the Required Employees per Shop. a reps.k=pbs.k/nep.k (94) REPS=(PEOPLE/SHOPS) Required Employees to cope with the stock-generated volume of business NEP=(($/Month)/PEOPLE) Normal Employee Productivity The connection between NEP and the previous parameter NEPS is a neps.k=sps.k/nep (95) The reader should verify that all this is dimensionally correct! We can now put : r asr.kl=pbs.k*nshops.k*sme.k a sme.k=table(tsme,arer.k, ....) a arer.k=(emps.k/nshops.k)/reps.k (96) (97) (98) ARER=(1) Actual to Required Employee per Shop Ratio. Again, TSME, will have changed from what was used in equation 89. This careful, painstaking, thinking about the underlying processes one is trying to represent, is the very essence of all modelling. It is rather hard work, but enjoyable and challenging. At least it can be done in less time and space than it takes to explain ! The final formulation, whether it be equations 86-90 or 93-98, depends on which is the more appropriate in the circumstances; neither is necessarily completely 'right'. Either approach involves the construction of several table functions, and it is to this that we now turn. We do, however, urge the reader to review the earlier material on Steps in Setting up a Multiplier. The Shapes of Table Functions For this example, we need three tables, TSMSH, and TSMS, which were defined in equations 88 and 91 and used again in equation 93, and TSME which was redefined for use in equation 97. First we consider general shapes for the curves, as shown in Figure 10.8. Later we shall deal with specific values for the tables. TSMSH. This is the 'downward hook' shape of table, and we can infer its general shape fairly easily. When the degree of penetration, SRAT, equation 87, is fairly small, we should expect the multiplier to be less than 1.0 as there is little or no 'national effect' to add to the local effect. When the degree of penetration grows towards 1.0 we should expect SMSH to be 1.0 and to stay that way over a fairly long range of SRAT. If SRAT is a little more than 1.0 the multiplier may well stay at, or very near to 1.0, but we should expect to see a decline after that as more and more shops serve essentially the same customers. There is a strong tendency among modellers to drop the right-hand tail of the curve too fast. We assume that the firm is not going to go mad and put 10 shops in some suburbs and only one or two in others. When SRAT reaches 2 we can imagine two shops in every town or suburb, but SMSH would not necessarily drop to 0.5 and might even stay up to 0.7 or so because of the marginally greater convenience offered by two shops, even in an area which may be only a few miles across. In general we should expect a general shape somewhat similar to Figure 10.8A. TSMS - the Sigmoid relationship. If the stock per shop is very small we should expect it to sell practically nothing, even of what it does have in stock, as customers are driven away by the lack of the things it doesn't figure 10.8 have. After that, as STPS rises towards 1.0, we should expect, at some point, to see a fairly rapid take-off to 1.0 with an eventual levellingoff towards saturation, as suggested by Figure 10.8B. This assumes that the company does not make sharp changes in STPS so that we can ignore the dynamic effect of customer perceptions of the stock level and its effects on the service they can expect. This is easily handled by using a smoothed value of STPS in equation 91, perhaps with a shorter smoothing time constant when STPS is decreasing than when it is increasing. TSME We should expect this curve to be concave upwards in the sense of having a maximum value when ARER = 1.0 in equation 97. At that point each shop has exactly the correct staff for the volume of business generated by the stock position. Fewer staff than this would probably mean poorer service, more staff than the perfect value might depress sales a little because of the 'too many cooks' syndrome, or it might have little effect, the curve for TSME being essentially flat to the right of ARER = 1.0. The result is shown in Figure 10.8C. Caution Inferring the shape that a multiplier curve must have is actually rather fun and it is very easy to delude oneself that one is making judgements involving penetrating new insights into managerial or behavioural processes. This is particularly true when one describes the task in such long, impressive terms. To describe the process as 'making wild generalisations about situations one hasn't bothered to understand' might, in many cases, be far nearer the mark. The analyst should keep this alternative description very firmly in mind, because the people who should be drawing the curves are probably the managers and/or the shop-floor staff, rather than the analyst. The difficulty is to get them to see the situation in the required, dynamic, terms. Putting Numbers on the Curves Inferring, or guessing, the shapes of the curves is one thing, but putting numbers to them is quite another. This falls into two separate categories - managerial policy curves and those for behavioural relationships. The first group are fairly easy. The main problem is to identify upper and/or lower limits and after that the question is to design the shape of the curve. This amounts to saying that it doesn't matter much what they do now, it is what they are going to do in the future that is important. Unfortunately, what is done now does matter because some kind of demonstration has to be made that the model is plausible and this involves showing that the model behaves like the real system to an acceptable extent. The only approach is question-and-answer, i.e. 'what would you do in such-and-such a situation? This is by no means as foolproof as it sounds! For behavioural relationships, the same approach can be used, because it rarely happens that the data, even if they exist, will be clear enough to show anything one way or the other. One is, therefore, nearly always left with a curve where the numbers are, to a greater or lesser degree, a matter of opinion. This leaves one with two main options. Give up. This involves abandoning problems which may be of enormous importance and saying that one cannot help. Whilst this is thoroughly disappointing from a professional standing point of view, it may be the only proper alternative in some cases. Keep trying. The stock-holding, shop expansion, and employment policies of a chain store are important aspects of its corporate strategy and justify the effort involved to get a good model. This has five variants, which are often used in combination. Sensitivity Analysis. Testing the numbers to see how much variation in them the model can stand usually shows that many of the numbers are not very significant, especially as far as the mode of behaviour is concerned. Measure accurately the important numbers. This is useful in the comparatively rare cases where it can in practice be done within acceptable limitations of time and cost. Qualify the Conclusions. If a given parameter or curve is noticeably significant but cannot be measured, one may be able to write the report in such a way as to show which conclusions are dependent on the uncertain value, and which are not. Reduce the Model. Simply cutting out the offending part may be a good option. The advantage is obvious, but the disadvantage is that one may steer too far from the main managerial area. Design Round It. This is rather subtle but has It involves trying to find managerial policies which, through behavioural relationships which are known, or is insensitive, can dominate the uncertain parameter. short-circuits the problem and forces the system into uncertainties in the parameter have the least effect. enormous potential. perhaps acting to which the system In effect, one a region where Summary Multipliers are immensely powerful in System Dynamics models and they are also frequently misused. They may be used thoughtlessly, to cover up aspects of the problem which the modeller does not understand. They can also be used carelessly, leading to improper specification or doublecounting, or both. This is sometimes justified by the weak excuse that one is only dealing with a mode of behaviour, not with precise numerical values for the dynamics. It is certainly true that System Dynamics concerns itself more with modes that with exact values, but that is not an excuse for failing to think carefully. This section has sought to show some of that thinking and the reader should study it carefully whenever she needs to construct a multiplier. Modelling Aircraft Sorties and Losses In System Dynamics modelling of military problems, difficulties usually arise in correctly representing the use of aircraft and allowing for the losses they might suffer in combat. This can be solved providing one carefully handles the dimensions and readers who are not particularly concerned with military modelling will still find the example instructive as it also illustrates other facets of System Dynamics modelling. Similar problems occur in, for example, the modelling of an airline, or any other logistic or distribution system, with breakdowns taking the place of combat losses. The essence of the problem is that an aircraft can undertake more than one mission in a day, each mission being referred to as a 'sortie'. We shall assume that each sortie takes 3 hours of flying and that the aircraft requires a further 1 hour for maintenance and refuelling after each sortie. Over a period of 24 hours this gives a 'unit sortie rate' of 6 per day using, obviously, more than one crew. There are two approaches to the problem; one very detailed and the other rather aggregated. We shall deal with the detailed approach first. A Detailed Model A sortie involves three phases. In the first, the aircraft are en route to the target and are not at risk from enemy forces. In the second, they are in the operational zone, and may be attacked. The third phase is a return flight, which is also risk-free. It is assumed that aircraft which have been damaged but not destroyed in the operational area succeed in reaching home. Each phase takes 1 hour. After returning from the sortie, the aircraft go through a maintenance phase after which they again become available for sorties and, we shall suppose, are launched on a new sortie as soon as they become available. The reader should now draw his own Influence Diagram of this system, comparing the result with Figure 10.9. Most of the system is very straightforward. There are three delayed flow modules, with a buffer of Aircraft Available for Sorties between the interconnected pair and the third. As the problem description stands, there is no need for this buffer. The assumption that aircraft are launched as soon as maintenance is completed would mean that the variables called Rate of Completing Maintenance and Aircraft Launch Rate are identical. The buffer, however, allows scope for further development to allow for policies such as only launching aircraft under certain conditions, or when a certain number of aircraft are available. Leaving scope for obvious developments is a good modelling strategy. The tricky area in Figure 10.9 is the treatment of aircraft in the operational area and the fact that some of them will leave after a certain time while others will be destroyed before they can leave the area. The Duration of the Danger Period is the magnitude of a delay, as are DOUTBOUND, DRETURN and DMAINTAIN but this is a case in which the contents of the delay affect its output in the sense that the number of Aircraft in the Operational Area is a determinant of the Loss Rate and both that rate and LEAVE, the Rate of Leaving the Operational Area, are outputs from the delay. In such a case we must, as we saw in Chapter 6, page 180, disaggregate the delay mechanisms, rather than relying on a standard function such as DELAY3. Fig10-10.cos on the disk shows a possible model for this problem, though the reader should try to develop it himself before studying the solution. The first point to note is that the War Switch prevents any flows from occurring until TIME=5, thereby ensuring that all the delays are empty so that levels for delay contents, such as ACOUT, the aircraft outbound to the target, can be set to 0. Secondly, the outbound and return delays have been modelled as 9th order delays by cascading three DELAY3 functions. The reason for this is that DELAY3 by itself would introduce an unrealistic degree of dispersion into the flight time of the aircraft. On the other hand a perfect or pipeline delay would involve assuming that all aircraft leaving at a given time arrive exactly DOUTBOUND hours later, which is probably also unrealistic, so a DELAY'9' seems to be a reasonable compromise. This requires a very small value for DT, as seen in Chapter 4, page 127. On the other hand, the maintenance delay is modelled as DELAY3, as the amount of attention an aircraft needs will vary considerably from one to another. figure 10.9 The attrition mechanism can be modelled by using the idea of an average 'survival time', SURTIME. Since this is measured in hours, it gives Loss Rate the required dimensions of [aircraft/hour]. This competes with the delay in the danger area so that most aircraft will get out before they are destroyed. The delay in the operational area is thus modelled as a first-order delay with two outputs. This may well be realistic as the dispersion in the time aircraft spend in the operational area is probably quite large, with some aircraft attacking targets close to its edge while others having to fly further. One could easily disaggregate this into a third or higher order delay, though it is doubtful if the increase in 'accuracy' would be more than illusory. One of the problems in Appendix B introduces the complication of non-negativity constraints. A mass balance check is an essential feature of such a model. An alternative formulation which is often used is to write : r lossr.kl=oparea.k*enarea.k*eneff OPAREA=(aircraft) own aircraft in operational area ENAREA=(enaircraft) enemy aircraft in operational area ENEFF=(1/(enaircraft*hour)) enemy aircraft 'hunting' efficiency. The rather strange dimension for ENEFF is correct and is the reciprocal of the number of enemy aircraft-hours needed to find and destroy an attacking aircraft. Note the use of different names for the two sides' aircraft. One of the advantages of this formulation is that it allows one to model the benefits to the attacking side of attempting to attack when there are few enemy aircraft available. Conversely, one can model the enemy's strategy of investing in early warning radar so that aircraft can be available at the right time or in command and control radar to increase ENEFF. Running this model produces the dynamics of Figure 10.10. The immediate launch of all aircraft at TIME=5 leads to a peak of about 35 aircraft in the operational area, because the dispersion in the 9th order delay has spread the aircraft across the outbound and return phases, as has the first order delay in the operational area. Note that, after the initial pulse effect has worn off, the system settles down into smooth decline, as losses mount. This model may be acceptably realistic for a defender who tries to keep aircraft aloft to meet incoming raids, but it is less acceptable for an attacker, who sends aircraft in waves. figure 10.10 This is modelled in fig10-11.cos in which the launch rate is based on sending groups of aircraft every 2 hours, providing there are sufficient aircraft available. This model does not require WSWITCH, as the first pulse of aircraft is launched at WSTART. In Figure 10.11A, groups of 20 aircraft produce a steady flow of attacks until about TIME=55, after which point the cumulative losses make it harder to assemble a sufficiently large group of aircraft and the raid pattern breaks up. With raids of 50 aircraft, Figure 10.11B, a steady rhythm of large raids builds up (very predictably from the defending enemy's point of view) but, after about TIME=65, more than 50 aircraft have been lost, so there are no longer sufficient aircraft to mount another. One aspect of this model is that a decision on whether or not to launch a raid is made every 2 hours. At one decision point, there might be not quite enough aircraft to launch a raid, so none is mounted. The additional aircraft might become available shortly thereafter, but the next decision will not be made until the next two-hour point. A refinement is to launch raids every 2 hours, or as soon after as the aircraft become available. That is a problem in Appendix B. A Simpler Approach The detailed model might be an appropriate basis for aircraft operations when the emphasis of the model is on air warfare. When the air component is only one aspect of a much wider model, a more aggregate approach might be more suitable. The number of aircraft can be written as : l airc.k=airc.j+dt*(-lossr.jk) n airc=inac c inac=100 (99) AIRC=(aircraft) number of aircraft LOSSR=(aircraft/day) loss rate INAC=(aircraft) initial number of aircraft The sortie 'rate' can be modelled as an Auxiliary because it will act as an intermediate step between the level of AIRC and a rate, RDAM, which we shall meet below : a sortrat.k=airc.k*unsortr (100) SORTRAT=(sortie/day) generation of sorties UNSORTR=((sortie/day)/aircraft) unit sortie rate Note the form of the dimensions for UNSORTR. Damage to the enemy from the sorties can be written : r rdam.kl=sortrat.k*dampsort (101) figure 10.11 RDAM=(damageunit/day) rate of inflicting damage on enemy DAMPSORT=(damageunit/sortie) damage inflicted per sortie The 'damageunit' can be anything suitable, such as bombs dropped. The loss rate becomes : r lossr.kl=sortrat.k*lossfac (102) LOSSFAC=(aircraft/sortie) number of aircraft lost per sortie flown This is, in effect, the probability of loss during a sortie, though it is not expressed in the units of probability. Comment and Caution Modelling of defence problems has been a very successful topic for System Dynamics; a brief summary being given in the next Chapter when we survey the range of applications of the discipline. Summary In this Chapter, and in the associated problems in Appendix B, we have endeavoured to dispel the notion that System Dynamics is restricted to the modelling of simple linear and continuous systems. Some further instances of that will be seen in one of the case studies in Chapter 11. The examples chosen for the Chapter are intended to provide some useful tools, such as the accountancy sector, and to help the student to develop the ability and confidence to handle complex problems, such as the blast furnace problem. Space considerations preclude the study of such problems as random breakdowns in production plant and complex logical choices about corporate borrowing and repayment of debt. The author's manual Equations for Systems describes about 25 more comparably complex modelling problems. It is available as explained on the order form at the end of the book. In fact, the capability of the System Dynamics syntax is practically limitless and it is a great tribute to Jack Pugh, the developer of the first System Dynamics package, DYNAMO, that the concepts on which it and its successors are based have stood the test of being applied to problems undreamt of in the 1960s. In short, if a problem involving dynamics can be understood, it can be modelled. The key to understanding is to acquire the skill to think in terms of time. COSMIC has a function called NCLIP which produces the same result from one function. This problem is based on one of the author's consultancy assignments; in this case for a major international resources company. Some accountancy treatments use the term 'Shareholders capital' to refer to the total of the money originally invested and the capital retained in the business. Different System Dynamics software packages use other names for similar features. TABLE is, however, the original terminology. Recall the discussion in Chapter 5 that the TABHL function uses a horizontal 'tail' if the argument goes outside the stipulated range. ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ€ „ ÿÿ¤ w ¨ ÿÿ´ t Q q U n ½ k À h ½ e Ô b _ \ p Y r V ÜÜ r ¤ x u r o l W T V $ $ ¦ ì í î 4 i D f — c ¯ ` ± ] ½ Z r x u Ô' r é' o ½) l ¾) e »* @ b Ñ* _ á6 \ í6 Y Î9 V æ9 S ·; P r ·; Ã; x ¶< W ªK T r ªK ðT x u Ë< r ? o 1? l 5? i ?? f ºD c ÓD ` sG ] ŒG Z ”K U u ›V ^ r ¹V o dZ l }Z i :] f ]] c •] ` ™] ] í] Z ^ W $^ x ¤^ u ¥^ n d k d h šl e ¹l b $x _ 8x @ \ :x Y Fx V üy S z P r ^ T r z O { x { z P r u Š{ r Ž{ o Ö} l á} i ~ f ~ c ú• ` û• Y € V € € O _€ z x a€ q c€ n f€ k i€ h j€ a r€ ^ s€ W t€ P Ø€ M ê€ J € ê€ W a• ˜ ¡ 2¡ ¦ nƒ x †ƒ u ‡ƒ r ”ƒ o f… l ‘… i ?‹ f J‹ c KŽ ` ^Ž ] e• a• T Ô• x ?– u R– r û— o l ˜ i -˜ f µš c Æš ` žœ ] Áœ Z W 2¡ T ©¢ x -¢ u r %¦ o &¦ h (¦ e £§ b ʧ _ /´ \ 5´ Y üµ V ¶ S ϼ P @ Z g• ϼ ã¼ x â½ W ·Æ T ·Æ ØÆ x àÆ u ì½ u r ÿ½ o ¾ l ºÀ i ÄÀ f …Å c ŒÅ ` ²Å ] ¶Å Z ±Æ Í r +Í o øÓ l Ô i ç Lê Xê ï o 1ï T — P ] I! X" c" W ŽŽ- •B ͬ/ x ô 2 (2 f !ç ` •é ] #ê Z Jê W Lê T x Áî u Äî r l £ñ i »ñ f ³õ c »õ ` ýþ ] Z s x ™ Z P! x # T t –ô -/ c pé r ¥ T r ) o D l ›* i ³* f µ* c Á* ` _- q —- j žô g Ÿ- ` Äô ] Åô V È- S Éô L Ì- I Íô ) q ´/ n µ/ g ½/ d ¾/ ô 6 ô x k2 u l2 n •3 k ž3 h ] Ö/ ô i R W — u › W X" u $# o l Z ÿ Z ï/ f e W ô c ú 0 T ` 0 M ] k- 2 J Z l- 5 e 5 b ^< @ _ _< X ä< U å< N ÎD K ô ô ô ÎD S ×D x lG ] P u •G r 2L o kL @ l ,N i NN f <U c =U \ ÖY Y ðY V ó\ ] Âe x æe u ©g r ½g o ÿg l h i ‘q f °q c ~t ` Ót ] >~ Z ]~ W • T • ¥• x F„ u J„ r n‡ o r‡ l •‰ i ™‰ f “Œ c ²Œ ` „‘ ] Œ‘ Z •’ W •’ T •’ €“ x •“ u ^” r q” o • l $• i – f – c À– ` Ж ] W˜ Z ^˜ W S› T S› |› x óŸ u r F o N l ²¦ K S› ô ô ô i º¦ b ½¦ _ æ X ɦ U Ѧ N Jª Jª Lª K S› t |« q ƒ« n „« k …« h •« a í´ ^ ï´ W †» T š» Q Ç» N Ì» ô Ì» ¨Á x »Á u ‚ r ‹Â o [Å l pÅ g ÑÇ d ÔÇ ÿÿÕÇ _ *È [ .È ÿÿ/È V ±È R @ @ ±È ³È y ´È t UÉ p WÉ ÿÿYÉ l ZÉ g ÛÉ c ÝÉ a ÞÉ \ eÊ X gÊ ÿÿ/È V ±È R @ @ @ € ‚ ÿÿ„ ÿÿ• x ’ x ¦ x ¨ x ¶ ÿÿ¸ ÿÿ» ÿÿ½ ÿÿ æ@ð æ @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < ½ ó ÿÿõ ÿÿ ÿÿ ÿÿI ÿÿK ÿÿº ÿÿ½ ÿÿÔ ÿÿÖ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < Ö ô ÿÿö ÿÿ ÿÿ ÿÿ@ ÿÿO ÿÿQ ÿÿ‚ ÿÿ„ ÿÿ‰ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < ‰ ‹ ÿÿ¢ ÿÿ¤ ÿÿ ÿÿ" ÿÿW ÿÿŒ ÿÿŽ ÿÿÆ ÿÿÈ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < È û ÿÿý ÿÿ2 ÿÿ4 ÿÿF ÿÿH ÿÿN ÿÿP ÿÿ2 ÿÿ4 ÿÿ @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ æ@ð æ@ð æ@ð æ@ð < 4 j ÿÿl ÿÿ ÿÿ ÿÿž ÿÿ ÿÿÀ ÿÿ ÿÿý @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < ÿ • ÿÿ— ÿÿ¯ ÿÿ± ÿÿ½ ÿÿ¿ ÿÿ€- ÿÿ‚- ÿÿb! ÿÿd! ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð ÿÿÿ æ@ð ÿÿ æ@ð æ@ð æ@ð æ æ@ð æ@ð < d! $ ÿÿ $ ÿÿ$ ÿÿ!$ ÿÿo$ ÿÿq$ ÿÿ¤$ ÿÿ¦$ ÿÿÞ$ ÿÿ÷$ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < ÷$ % ÿÿF% ÿÿH% ÿÿÛ& ÿÿÝ& ÿÿÒ' ÿÿÔ' ÿÿé' ÿÿë' ÿÿ0( ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < 0( 2( ÿÿm( ÿÿo( ÿÿÁ) ÿÿÃ) ÿÿ¹* ÿÿ»* ÿÿÑ* ÿÿÔ* ÿÿ_+ ÿÿ @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < _+ a+ ÿÿ•+ ÿÿŸ+ ÿÿ•- ÿÿ’ÿÿy. ÿÿ{. ÿÿú. ÿÿü. ÿÿâ0 ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < â0 ä0 ÿÿ*1 ÿÿ,1 ÿÿb1 ÿÿd1 ÿÿˆ1 ÿÿ¡1 ÿÿ½1 ÿÿ¿1 ÿÿ 2 ÿÿ @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < 2 2 ÿÿK2 ÿÿM2 ÿÿƒ2 ÿÿ…2 ÿÿú2 ÿÿü2 ÿÿ23 ÿÿ43 ÿÿ 5 ÿÿ @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < 5 -5 ÿÿP5 ÿÿR5 ÿÿÂ5 ÿÿÄ5 ÿÿí5 ÿÿ$6 ÿÿ&6 ÿÿL8 ÿÿN8 ÿÿ @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < N8 ›8 ÿÿ•8 ÿÿÆ8 ÿÿø8 ÿÿú8 ÿÿ§9 ÿÿÌ9 ÿÿÎ9 ÿÿæ9 ÿÿè9 ÿÿ @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < è9 q: ÿÿs: ÿÿ¥: ÿÿ§: ÿÿµ; ÿÿ·; ÿÿÃ; ÿÿÅ; ÿÿ´< ÿÿ¶< ÿÿ @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < ¶< Ë< ÿÿÍ< ÿÿN> ÿÿP> ÿÿ ? ÿÿ ? ÿÿ3? ÿÿ5? ÿÿA? ÿÿC? ÿÿ @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < C? ÀA ÿÿÂA ÿÿ¸D ÿÿºD ÿÿÕD ÿÿ×D ÿÿ£F ÿÿ¥F ÿÿØF ÿÿòF ÿÿ æ@ð æ@ð æ æ@ð æ æ@ð æ æ@ð æ æ@ð æ æ@ð æ æ@ð æ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < òF ôF ÿÿ G ÿÿBG ÿÿqG ÿÿsG ÿÿŽG ÿÿ•G ÿÿ H ÿÿ H @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < =H ?H ÿÿtH ÿÿ®H ÿÿÇH ÿÿÉH ÿÿ•I ÿÿ‘I ÿÿÆI ÿÿÈI @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < ôI öI ÿÿ’K ÿÿ”K ÿÿ¬K ÿÿ®K ÿÿ¸N ÿÿºN ÿÿÕN ÿÿ×N @ð æ@ð æ@ð æ@ð ÿÿ=H ÿÿ æ@ð æ ÿÿôI ÿÿ æ@ð æ ÿÿñN ÿÿ æ@ð æ æ@ð æ@ð æ@ð æ@ð æ@ð < ñN óN ÿÿOO ÿÿQO ÿÿ€O ÿÿ›O ÿÿ•O ÿÿÒO ÿÿ P ÿÿ;P @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < aP cP ÿÿgR ÿÿiR ÿÿ•R ÿÿƒR ÿÿ+S ÿÿ-S ÿÿðT ÿÿòT ÿÿaP ÿÿ ÿÿ æ@ð æ U ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < U U ÿÿ™V ÿÿ›V ÿÿ»V ÿÿ½V ÿÿaZ ÿÿdZ ÿÿ•Z ÿÿ•Z ÿÿ8] ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < 8] :] ÿÿ_] ÿÿa] ÿÿë] ÿÿí] ÿÿ ^ ÿÿ ^ ÿÿ&^ ÿÿ(^ ÿÿ æ@ð æ@ð b ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < b b ÿÿ c ÿÿ c ÿÿ¦c ÿÿ¨c ÿÿÐc ÿÿ d ÿÿ d ÿÿ d ÿÿ d ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < d +d ÿÿd ÿÿ[d ÿÿ•d ÿÿÄd ÿÿ÷d ÿÿ1e ÿÿ3e ÿÿ:e ÿÿ<e ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < <e ae ÿÿ•e ÿÿ¶e ÿÿæe ÿÿ f ÿÿ0f ÿÿaf ÿÿ}f ÿÿ°f ÿÿêf ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < êf g ÿÿ2g ÿÿ^g ÿÿ– g ÿÿÍg ÿÿ h ÿÿ(h ÿÿ*h ÿÿOh ÿÿQh ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < Qh qh ÿÿsh p $i p &i ÿÿài e âi ÿÿŸj Z æ@ð æ@ð æ@ð æ@ð @ð æ@ð æ@ð æ@ð < Ð 0ý < Ð 0ý < Ð 0ý Ÿj ¡j ÿÿk p /k ÿÿ˜l e šl ÿÿ¹l ÿÿ»l ÿÿºp ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð Ð 0ý < Ð 0ý < Ð 0ý ºp ¼p ÿÿ r ÿÿ r ÿÿ+t ÿÿt ÿÿUu ÿÿòu ÿÿôu ÿÿ v ÿÿAv ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý Av Kv ÿÿjv ÿÿ•v ÿÿµv ÿÿÀv ÿÿãv ÿÿ w ÿÿ w ÿÿ w ÿÿ§w ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý §w ©w ÿÿ"x ÿÿ$x ÿÿ8x ÿÿ:x ÿÿFx ÿÿHx ÿÿÀy ÿÿÂy ÿÿúy ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý úy üy ÿÿ z ÿÿ z ÿÿ { ÿÿ { ÿÿ { ÿÿ { ÿÿ#| ÿÿ%| ÿÿÔ} ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý Ô} Ö} ÿÿá} ÿÿã} ÿÿ9~ ÿÿ;~ ÿÿq~ ÿÿs~ ÿÿ¨~ ÿÿË~ ÿÿæ~ ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý æ~ • ÿÿ • ÿÿ¸• ÿÿº• ÿÿÖ€ ÿÿØ€ ÿÿê€ ÿÿì€ ÿÿ„• ÿÿ†• ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý †• lƒ ÿÿnƒ ÿÿ–ƒ ÿÿ˜ƒ ÿÿ „ ÿÿ „ ÿÿT„ ÿÿV„ ÿÿŒ„ ÿÿŽ„ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý Ž„ ¼… ÿÿ¾… ÿÿô… ÿÿö… ÿÿ“† ÿÿ•† ÿÿÞ† ÿÿà† ÿÿ ‡ ÿÿ ‡ ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý ‡ N‡ p „‡ p ¿‡ ÿÿ⇠ÿÿþ‡ ÿÿ2ˆ ÿÿSˆ ÿÿUˆ ÿÿQ‰ ÿÿ æ@ð æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ < Ð 0ý Q‰ S‰ ÿÿÞŠ ÿÿàŠ ÿÿùŠ ÿÿûŠ ÿÿ1‹ ÿÿ3‹ ÿÿ§• ÿÿ©• ÿÿIŽ ÿÿ @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ æ æ æ æ æ æ æ æ æ@ð æ@ð æ@ð 0ý IŽ KŽ ÿÿ^Ž ÿÿ`Ž ÿÿŽ ÿÿ‘Ž ÿÿ·Ž ÿÿ¹Ž ÿÿØ• ÿÿÚ• @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý Z• \• ÿÿg• ÿÿi• ÿÿ • ÿÿÄ• ÿÿæ• ÿÿ ÿÿZ• ÿÿ æ@ð æ ‘ ÿÿ1‘ ÿÿ3‘ ÿÿ?‘ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý ?‘ A‘ ÿÿn‘ ÿÿ‘ ÿÿ»‘ ÿÿÞ‘ ÿÿ ’ ÿÿ#’ ÿÿH’ ÿÿ’ ÿÿ·’ ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý ·’ é’ ÿÿ “ ÿÿ “ ÿÿ¨“ ÿÿª“ ÿÿù“ ÿÿû“ ÿÿ1” ÿÿ3” ÿÿ9” ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý 9” ;” ÿÿq” ÿÿs” ÿÿ©” ÿÿ«” ÿÿ=– ÿÿ?– ÿÿR– ÿÿT– ÿÿø— ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý ø— ú— ÿÿ-˜ ÿÿ0˜ ÿÿg˜ ÿÿˆ˜ ÿÿº˜ ÿÿÛ˜ ÿÿ ™ ÿÿ"™ ÿÿC™ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý C™ x™ ÿÿz™ ÿÿƒ™ ÿÿ…™ ÿÿ¼™ ÿÿ¾™ ÿÿÙ ÿÿÅ™ ÿÿü™ ÿÿþ™ ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý þ™ š ÿÿ-š ÿÿVš ÿÿXš ÿÿ³š ÿÿµš ÿÿÆš ÿÿÈš ÿÿþš ÿÿ › ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý › 6› ÿÿ8› ÿÿU› ÿÿƒ› ÿÿ…› ÿÿ§› ÿÿ©› ÿÿœœ ÿÿžœ ÿÿÁœ ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý Áœ Ãœ ÿÿc• ÿÿe• ÿÿ • ÿÿ¢• ÿÿÍ• ÿÿ ž ÿÿ"ž ÿÿIž ÿÿKž ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý Kž §Ÿ ÿÿ©Ÿ ÿÿ ¡ ÿÿ¡ ÿÿ2¡ ÿÿ4¡ ÿÿž¡ ÿÿ ¡ ÿÿË¡ ÿÿÍ¡ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý Í¡ ¢ ÿÿ ¢ ÿÿ*¢ ÿÿW¢ ÿÿY¢ ÿÿE¤ ÿÿG¤ ÿÿ ¦ ÿÿ ¦ ÿÿ(¦ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý (¦ *¦ ÿÿè¦ ÿÿê¦ ÿÿ § ÿÿ § ÿÿS§ ÿÿU§ ÿÿ¡§ ÿÿ£§ ÿÿʧ ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý ʧ ̧ ÿÿ « ÿÿ « ÿÿ ¬ ÿÿ-¬ ÿÿT¬ ÿÿV¬ ÿÿ - ÿÿ - ÿÿ‚¯ ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ æ æ æ æ æ æ æ æ@𠂯 @ð < < ÿÿ !³ @ð ,´ @ð ¶ @ð u· @ð æ@ð NÁ æ@ð 0ý „¯ ÿÿú¯ p ü¯ p G° p I° ÿÿ•° e ’° ÿÿÌ° ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð Ð 0ý Ð 0ý Ì° ΰ ÿÿ ± ÿÿ ± ÿÿ¡± ÿÿ£± ÿÿÙ± ÿÿÛ± ÿÿé² ÿÿë² æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý #³ ÿÿ*³ ÿÿ,³ ÿÿZ³ ÿÿ\³ ÿÿn³ ÿÿp³ ÿÿ¦³ ÿÿ¨³ ÿÿ,´ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý /´ ÿÿ5´ ÿÿ7´ ÿÿo´ ÿÿq´ ÿÿ§´ ÿÿ©´ ÿÿúµ ÿÿüµ ÿÿ ¶ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý ¶ ÿÿȶ ÿÿʶ ÿÿ · ÿÿ · ÿÿ · ÿÿ · ÿÿK· ÿÿM· ÿÿu· ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý w· ÿÿð· ÿÿò· ÿÿͼ ÿÿϼ ÿÿã¼ ÿÿæ¼ ÿÿ¬¿ ÿÿ®¿ ÿÿNÁ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý PÁ ÿÿLà ÿÿNà ÿÿ%Ä ÿÿ'Ä ÿÿ Å ÿÿ Å ÿÿuÅ ÿÿwÅ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý wÅ ŸÆ p ¡Æ ÿÿ È e È ÿÿ{Ë ÿÿ}Ë ÿÿjÌ ÿÿlÌ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð < Ð 0ý < Ð 0ý lÌ æ@ð æ ÿÿ!³ æ@ð æ æ æ@ð æ æ@ð æ æ@ð Í ÿÿ Í ÿÿ+Í ÿÿÍ ÿÿpÎ ÿÿrÎ ÿÿ¨Î ÿÿªÎ ÿÿÓÎ æ@ð æ@ð æ@ð æ@ð æ@ð 0ý ÕÎ ÿÿÕÎ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð Ï ÿÿ Ï ÿÿ>Ï ÿÿ@Ï ÿÿnÐ ÿÿpÐ ÿÿ– Ð ÿÿ˜Ð ÿÿÓÐ ÿÿÕÐ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý ÕÐ Ñ ÿÿ Ñ ÿÿ Ñ ÿÿ Ñ ÿÿQÑ ÿÿSÑ ÿÿüÑ ÿÿþÑ ÿÿ4Ò ÿÿ6Ò ÿÿ @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý 6Ò hÒ ÿÿ•Ò ÿÿ¹Ò ÿÿ»Ò ÿÿÌÒ ÿÿÎÒ ÿÿ Ó ÿÿ Ó ÿÿöÓ ÿÿøÓ ÿÿ @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý øÓ æ@ð æ@ð æ æ@ð æ Ô ÿÿ Ô ÿÿÍÔ ÿÿÏÔ ÿÿ Ø ÿÿ Ø ÿÿMØ ÿÿOØ ÿÿ^Ø ÿÿ`Ø ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý `Ø ŠØ ÿÿ±Ø ÿÿ³Ø ÿÿÈØ ÿÿÊØ ÿÿ Ù ÿÿ Ù ÿÿÀÙ ÿÿÂÙ ÿÿøÙ ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý øÙ úÙ ÿÿ-Ü ÿÿ Ü ÿÿ|Ý ÿÿ~Ý ÿÿþÝ ÿÿ Þ ÿÿ6Þ ÿÿ8Þ ÿÿnÞ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý nÞ pÞ ÿÿ'ß ÿÿ)ß ÿÿ_ß ÿÿaß ÿÿ— ß ÿÿ™ß ÿÿÀß ÿÿãß ÿÿ à ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý à à ÿÿ á ÿÿ=ä ÿÿ?ä ÿÿÍå ÿÿÏå ÿÿþæ ÿÿ ç ÿÿ!ç ÿÿ#ç ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý #ç né ÿÿpé ÿÿ•é ÿÿ•é ÿÿ!ê ÿÿ#ê ÿÿJê ÿÿLê ÿÿXê ÿÿZê ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý Zê äê ÿÿæê ÿÿ ë ÿÿ-ë ÿÿTë ÿÿVë ÿÿ†ë ÿÿ³ë ÿÿÙë ÿÿ ì ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý ì ì ÿÿOí ÿÿQí ÿÿ™ð ÿÿ›ð ÿÿ¡ñ ÿÿ£ñ ÿÿ½ñ p ¿ñ ÿÿ æ@ð æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ < Ð 0ý ¿ñ ½ó ÿÿ±õ ÿÿ³õ ÿÿ»õ ÿÿ½õ ÿÿ¨ö ÿÿªö ÿÿàö ÿÿâö ÿÿ ÷ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý ÷ :÷ ÿÿg÷ ÿÿŽ÷ ÿÿ•÷ ÿÿÙ÷ ÿÿÛ÷ ÿÿ ø ÿÿ ø ÿÿJø ÿÿ€ø ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý €ø ºø ÿÿæø ÿÿ ù ÿÿ ù ÿÿGù ÿÿIù ÿÿ•ù ÿÿµù ÿÿëù ÿÿ!ú ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý !ú #ú ÿÿYú ÿÿ~ú ÿÿ°ú ÿÿêú ÿÿ%û ÿÿUû ÿÿWû ÿÿÿü ÿÿ ý ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý ý -ý ÿÿ ý ÿÿVý ÿÿŒý ÿÿŽý ÿÿÄý ÿÿâý ÿÿ þ ÿÿ þ ÿÿûþ ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý ûþ ýþ ÿÿ ÿ ÿÿ ÿ ÿÿR ÿÿT ÿÿq ÿÿs ÿÿ™ ÿÿ› ÿÿM ÿÿ æ@ð @ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý M P ÿÿ• ÿÿ™ ÿÿ› ÿÿ§ ÿÿ© ÿÿ˜ ÿÿš ÿÿB ÿÿD ÿÿ æ@ð æ@ð æ@ð æ@ð æ@ð æ æ æ æ æ æ æ æ æ@ð æ@ð D Z ÿÿ/ ÿÿe ÿÿ} ÿÿ± ÿÿæ ÿÿ æ@ð æ ÿÿ> ÿÿ@ ÿÿÑ ÿÿÓ ÿÿ æ@ð æ@ð 0ý ÿÿ\ ÿÿõ ÿÿ÷ æ@ð æ@ð æ@ð ÿÿ- æ@ð æ@ð æ@ð æ@ð æ@ð æ@ð 0ý ÿÿÄ ÿÿ: ÿÿ< ÿÿr ÿÿ r æ@ð æ@ð æ@ð æ@ð æ@ð 0ý t ÿÿ¤ ÿÿÀ ÿÿ ÿÿ ÿÿ ÿÿä ÿÿæ E | ÿÿ~ ÿÿC ÿÿE 0ý ÿÿ° ÿÿË 1 3 ÿÿ ÿÿ ÿÿO ÿÿQ ÿÿ= ÿÿ? ÿÿP i ÿÿü ÿÿ» ÿÿ » ½ÿÿ•! ÿÿV" ÿÿþ ÿÿ{ ÿÿ} ÿÿ@ ÿÿB ÿÿ ÿÿX" ÿÿc" ÿÿe" ÿÿ # ÿÿ # &# Š% ÿÿÂ% ÿÿø% ÿÿ.& ÿÿ0& ÿÿó& .' Ñ' ÿÿâ' ÿÿä' ÿÿ ( ÿÿD( ÿÿF( ÿÿ ) g ÿÿŒ% ÿÿ ÿÿÍ ÿÿ ÿÿ ÿÿø ÿÿÁ* ÿÿ - ÿÿ - ¾3 À3 ÿÿ‘5 ÿÿ“5 _8 a8 ÿÿ¶8 ¬9 B: Ú; < ÿÿ ÿÿ&# ÿÿ ÿÿ,' 0ý ÿÿ.' ÿÿ+, ÿÿ- ÿÿ»- ÿÿ½- ÿÿ 0ý ÿÿƒ- y …- < ÿÿ— ÿÿ&0 ÿÿ ÿÿ[2 ÿÿ}3 ÿÿ•3 ÿÿž3 ÿÿ 7 ÿÿ 7 ÿÿ°7 ÿÿ²7 ÿÿè7 ÿÿ¸8 ÿÿî8 ÿÿð8 ÿÿ 9 ÿÿE9 ÿÿy9 ÿÿD: ÿÿí: ÿÿï: ÿÿ%; ÿÿ[; ÿÿ‘; ÿÿ“; ÿÿ < ÿÿK< ÿÿM< ÿÿn< p p< p è< Ð 0ý <? >? ÿÿš? ÿÿœ? ÿÿRA ÿÿTA ÿÿÌB ÿÿlG ÿÿnG ÿÿ•G ÿÿƒG ÿÿ ×D ÿÿÙD ÿÿ ÿÿ•I ÿÿ— ÿÿ ÿÿ ÿÿ ) ÿÿ$# 0ý ÿÿõ& ) ™* ÿÿ›* ÿÿ³* ÿÿµ* , ÿÿ -, c, ÿÿe, ÿÿÛ, ÿÿÝ, ÿÿ ½- õ- ÿÿ÷- ÿÿ1/ ÿÿ3/ / ÿÿ™/ ÿÿÅ/ ÿÿü/ ÿÿ$0 < &0 c0 ÿÿe0 ÿÿþ0 ÿÿ 1 ÎD H H I —I J ÿÿ 0ý ÿÿ ) ÿÿ ) ÿÿ 0ý ÿÿÃ* ÿÿÁ+ ÿÿÃ+ < - ÿÿú ÿÿ1 0ý ÿÿR ÿÿg 0ý ÿÿ ÿÿ¾3 ÿÿ ÿÿ_8 ÿÿ ÿÿ¬9 ÿÿ ÿÿÚ; ÿÿ ÿÿê< ÿÿ 3 < ÿÿê7 < ÿÿª9 < ÿÿÂ; < ÿÿ<? ÿÿÎB ÿÿôC ÿÿÌD 0ý ÿÿ ÿÿÎD ÿÿ 0ý J ÿÿâK P < U < < < U P ÿÿ \W ÿÿäK ÿÿ*N ÿÿ,N ÿÿ…P ÿÿPN p TP Ð 0ý öP ÁQ p ÃQ ÿÿÄS e ÆS ÿÿ-U Z ÿÿÄX e ÆX e ÔY ÿÿÖY Ð 0ý ÿÿðY ÿÿòY ÿÿ ] ÿÿ < Ð 0ý < Ð 0ý òY õZ ÿÿ÷Z ÿÿñ\ ] ÿÿ)_ ÿÿ+_ ÿÿa_ ÿÿ— _ ÿÿ — _ Í_ ÿÿÏ_ ÿÿ ` ÿÿ3` ÿÿT` ÿÿºP ÿÿ^O ÿÿ P ÿÿ 0ý ÿÿôP ÿÿöP ÿÿ ÿÿMP Ð 0ý Ð 0ý Ð 0ý p ^W ÿÿ~P ÿÿNN ÿÿó\ 0ý ÿÿ~` ÿÿ¤` ÿÿ½` ú` a ÿÿ a ÿÿõb ÿÿ÷b ÿÿ]d ÿÿ_d ÿÿÐd ÿÿÒd Âe æe ÿÿèe ÿÿJg ÿÿLg ÿÿii ÿÿki ÿÿOk ÿÿQk Ðk l ÿÿ<l ÿÿrl ÿÿ¨l ÿÿÞl ÿÿ m ÿÿJm ÿÿLm ¥m ºm ÿÿçm ÿÿ n ÿÿSn ÿÿƒn ÿÿ¤n ÿÿÈn ÿÿån Po ˆo ÿÿÂo ÿÿöo ÿÿ0p ÿÿJp ÿÿLp ÿÿhq ÿÿjq ‘q °q ÿÿ²q ÿÿ t ÿÿ t ÿÿ|t ÿÿ~t ÿÿÓt < y z y ÿÿ p Õt ÿÿ ÿÿ w ÿÿÖ` ÿÿú` ÿÿ 0ý ÿÿÀe ÿÿÂe ÿÿ 0ý ÿÿÎk ÿÿÐk ÿÿ 0ý ÿÿsm ÿÿ¥m ÿÿ 0ý ÿÿ o ÿÿPo ÿÿ 0ý ÿÿ•q ÿÿ‘q ÿÿ 0ý ÿÿ Ð 0ý w w ÿÿ·w ÿÿ¹w ÿÿ x ÿÿ x ÿÿGx ÿÿ8y ÿÿpy ÿÿ“y ÿÿÉy ÿÿËy ÿÿ ÿÿIx ÿÿÇx ÿÿÉx 0ý ÿÿ y ÿÿ z ÿÿBz 0ý Dz — z ÿÿ™z ÿÿDz ÿÿ ÿÿÏz ÿÿ { ÿÿ;{ ÿÿ={ ÿÿt{ ÿÿv{ »{ Â| ÿÿÄ| ÿÿ<~ ÿÿ>~ ÿÿ]~ ÿÿ_~ ÿÿ • • Å€ ÿÿÇ€ ÿÿ ‚ ÿÿóƒ ÿÿõƒ ÿÿD„ ÿÿF„ ù… l‡ ÿÿn‡ ÿÿŽ‰ ÿÿ‰ ÿÿ™‰ ÿÿ›‰ ÿÿk‹ “Œ ²Œ ÿÿ´Œ ÿÿŽ• ÿÿ•• • ÿÿ!• ÿÿÚ• ÿÿÜ• ÿÿ 0ý Ü• ‚‘ ÿÿ„‘ ÿÿ’ p •’ ÿÿ³Ž ÿÿµŽ ÿÿ- ÿÿ~“ e €“ ÿÿ\” < < < • p Ð 0ý Ð 0ý Ð 0ý \” ^” ÿÿ ÿÿ¹{ ÿÿ»{ ÿÿ 0ý ÿÿ • ÿÿž• ÿÿ • 0ý ÿÿ0… ÿÿ÷… ÿÿù… 0ý ÿÿm‹ ÿÿ‘Œ ÿÿ“Œ 0ý Z ÿÿ ÿÿ ÿÿ • ÿÿ ÿÿ < < < U˜ – < - Ð 0ý Ë• Í• Ð Ð Ð p e – ÿÿ¾– 0ý 0ý 0ý À– W˜ ÿÿ`˜ ᢠ㢠ÿÿ— ¥ ÿÿ™¥ ÿÿz¨ Z À– ÿÿb˜ ÿÿaŸ ÿÿ|¨ ÿÿQ› ÿÿcŸ ÿÿ © ÿÿS› ÿÿñŸ ÿÿ © ÿÿz› ÿÿ|› Ð 0ý ÿÿóŸ ÿÿÕ¬ æ¬ <° ÿÿ>° ÿÿ}° ÿÿ•° ÿÿ½° ÿÿ¿° O± n± ÿÿŸ± ÿÿ×± ÿÿÙ± ÿÿ·² ÿÿ¹² ëµ ¤¶ ÿÿ³¶ ÿÿ¶¶ ÿÿ©¹ ÿÿ«¹ ÿÿ„» Œ¼ Ž¼ ÿÿº¼ ÿÿ¼¼ ÿÿò¼ ÿÿ ½ ½ ÿÿ ½ ÿÿ5½ ÿÿV½ ÿÿƒ½ ÿÿ 0ý ƒ½ …½ ÿÿ,¾ ÿÿ.¾ ÿÿd¾ ÿÿf¾ ÿÿ ÿÿ ÿÿË• ÿÿq¢ ÿÿ㬠ÿÿæ¬ ÿÿ 0ý ÿÿä° ÿÿæ° ÿÿ ± 0ý ÿÿ%´ ÿÿ'´ ÿÿéµ 0ý ÿÿ†» ÿÿš» ÿÿœ» 0ý ÿÿ ÿÿs¢ 0ý ÿÿᢠÿÿO± ÿÿ ÿÿëµ ÿÿ ÿÿŒ¼ ÿÿ ÿÿ ÿÿ ÿÿ“¾ ÿÿǾ ÿÿɾ ÿÿ÷¾ ÿÿù¾ ÿÿ 0ý ù¾ 0¿ ÿÿ2¿ ÿÿh¿ ÿÿw¿ ÿÿz¿ ÿÿ¯¿ ÿÿÑ¿ ÿÿ À ÿÿ/À ÿÿ1À ÿÿ 0ý 1À tÀ ÿÿvÀ ÿÿ•À ÿÿ‘À ÿÿÇÀ ÿÿÉÀ ÿÿýÀ ÿÿ.Á ÿÿ0Á ÿÿ¦Á ÿÿ 0ý ¦Á ¨Á ÿÿ½Á ÿÿ¿Á ÿÿ€Â ÿÿ‚ ÿÿ‹Â ÿÿ•Â ÿÿªÃ ÿÿ¬Ã ÿÿøÅ ÿÿ 0ý øÅ úÅ ÿÿÑÇ ÿÿÒÇ ÿÿÔÇ ÿÿ,È y .È y ±È y ³È y WÉ y YÉ y æ@ð æ@ð O YÉ ÛÉ y ÝÉ y gÊ y hÊ ÿÿ WÉ y YÉ y æ@ð æ@ð O =) TÇ $^ ®Ç ¥¥ 1È ë1 ×È ¼T [É çÉ çÉ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ"Ò ÈAƒ.H ˆ6 s @ Ð ø>Ð Ø=È(@ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ> ; { •% ¸- ¹- ¦5 ™> ‡G TP âY – b !j Èt Öt v| „ )• +” ¿ ô )› Ç£ G¬ -³ O¼ "Æ #Æ šÏ ! ¨) Î1 Ü1 Ä9 gC uC UM •× ‚ß £é 0ó >ó !ü Î ¼ V ƒ_ ëh ær öz £„ ±„ 5Ž ˜— v¡ V¬ d¬ %¶ 4¶ é¾ ø¾ çÉ L A M @ N í S ñ T ) U V œ W Þ X . ] » ^ _ d e ' f g ó h ^ i m Ô n q p ! q s × t U y H O I P 6 Y h ` d Z ’ a c j 6 o r u Ð J Q “ [ À b T k v 0 K ¾ R \ Á c l w ä x ¡ z { Æ € | 1 • } = ~ { • ‚ ƒ „ … ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ RÇ èÉ ÿÿÿÿÿÿÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ " * 02/23/9609/27/94çÉ ÜÜÜÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ