The included program disk contains 4 GWBASIC programs named and for LEARNING CURVES supplemented by and for the calculation of LEAST SQUARES best-fit lines from existing actual data. Note : SC indicates SCreen output and PR a PRinter output. Together these programs should enable you to work any Learning Curve problem in the output format you need. If you want to delve mre deeply into the theory and application of Learning Curves, you should consult your library for books on Industrial Engineering and Estimating. I have assumed that you are at least familiar with their use. Very briefly, a LEARNING CURVE is a STRAIGHT line drawn on LOG paper which depicts a continuing reduction in unit costs for some product or process. It usually shows costs in terms of HOURS rather than DOLLARS per unit since this tends to eliminate the impact of inflation or labor contracts. It is useful to look at costs in DOLLARS also to see if reductions in maufacturing hours are enough to maitain a viable market position in terms of TOTAL COST. A fact that is vital. CURVES are usually given designations like 76% or 80% etc. indicative of the rate of reduction in costs that occurs as the number of units manufactured doubles. For examples see FIG. 1. Let us assume that the 15th Super Bomber has taken 1,000,000 manhours to complete and historical an 80% CURVE has been the experience on similar work. We can project that unit 30 will take 800,000 hrs. Likewise unit 60 should come in at 640,000 and so on. We now have a way to make Long Range forecasts. It is the only way we can go to the CONGRESS for a shot at our slice of the DOD budget with a rational presentation. The major attractions of LEARNING CURVES as a working tool are the appeal of a "scientific" base and simplicity of use. Any can extrapolate along a straight line. Even Engineers and Accountants can agree at that level. FIG. 2 shows how the same type of "curves" would look on regular graph paper. Obviously much more difficult to use and interpert. The compression of scale with each cycle on the LOG paper also makes it easier to track a greater range of units and costs. At least by a factor of 10 on the average 8 1/2 X 11 page format. In terms of method of Construction and Use, I have chosen the STRAIGHT LINE UNIT system. It is possible to use calculations that treat the reduction on the basis of a STRAIGHT LINE CUM AVERAGE, as was done in the early work. But I do not see this in my applications, thus the basis for my choice. Some working conventions in terminology are used in the MENU and INSTRUCTIONS as you go along. They can be undestood by reference to the definitions given in the section that follows. ****************** FORMULAE AND VARIABLE DEFINITIONS ********************** < B > An Exponent used in many of the formulas. It corresponds to the SLOPE of the LEARNING CURVE involved. If it has a MINUS value costs are going down if it is PLUS you are headed out of business. < T1 > The VALUE of UNIT 1 on the CURVE. < TU > The VALUE of some UNIT that you want to calculate on a specified CURVE. < U > Any specified UNIT NUMBER. < C,CM,CT > A CUM TOTAL VALUE for a GROUP of UNITS somewhere on the CURVE. < TF > The NUMBER of the FIRST UNIT in the GROUP. < TL > The NUMBER of the LAST UNIT in the GROUP. < SERIES > A set of specified UNIT NUMBERS along the CURVE. < SF > The NUMBER of the FIRST UNIT in the SERIES of INDIVIDUAL UNITS whose VALUES you want the program to calculate. < SL > The NUMBER of the LAST UNIT in the SERIES of INDIVIDUAL UNITS whose VALUES you want the program to calculate. < SO > The SLOPE of the CURVE expressed as a percent ( 76%, 85% etc. ). The program takes care of turning it into the proper decimal format. < DOGLEG > A LEARNING CURVE composed of two segments with different SLOPES that meet at a common BEND POINT. Operations with a lot of fixed machine time can produce such situations. See FIG. 4. < BP > The UNIT NUMBER of the BEND POINT on a DOGLEG CURVE. See FIG. 4. < TA, TB > Used to keep track of the T1 VALUES of the FIRST and SECOND parts of a DOGLEG CURVE respectively. < BU, BS > The BASE UNIT NUMBER and BASE STANDARD VALUE used as the Starting Points of an Estimating System. I use T500 as the BASE UNIT for MENU OPTIONS <6> <7> <8> and T1000 for <9> with fixed slopes in each case. Only a VALUE for the BASE STANDARD has to be entered when I used these standard setups. You can substitute your own setups to meet your requirements. Options <1> to <5> are the all-purpose variety. < RUN TIME, SETUP > With OPTION <5> you can have the RUN TIME on a CURVE and keep the SETUP time constant and allocated as many times as you whish for the situation involved. UNIT and SERIES calculations deal ONLY with RUN TIME. < FACTORS > RUN TIME and SETUP VALUES often are STANDARDS which do not include actual performance. To get a true cost projection you may have to apply some FACTOR . 75% perf. = a FACTOR of 1.33. Only OPTION <5> allows FACTORS. B = (LOG(SO/100)/LOG(2) Z = 1 + B TU = EXP(LOG(T1)+(LOG(U)*B)) T1 = EXP(LOG(TU)-(LOG(U)*B)) C = (T1/Z)*(((TL+.5)^Z)-((TF-.5)^Z)) T1 = (CT*Z)/(((TL+.5)^Z)-((TF-.5)^Z)) < LEAST SQUARES > OPTION <10> allows you to run a Least Squares Regression Analysis on historical data to determine what BEST FIT LEARNING CURVE could be applied to your actual situation. It coverts eveything to LOGS so that you get the proper results. Your actuals are input as sets into DATA LINES in the body of the program and must be DELETED before using on another project. If you want to save your DATA and be able to use it again it is better to use the or programs and them with an appropriate filename so that they can be used again. You may have DATA that should be evaluated in two or more sections to see if a DOGLEG condition exists. ******************** PROGRAM OPERATION ********************** Operation is very straight forward. and as you would any BASIC program. Make sure you decide first if you want SCREEN or PRINTER output if you are going to do a lot of LEAST SQUARES work it is best to use the LSQRPR first , your information and then one of the LEARNING CURVE programs and make use of analysis as input and in making your choice of OPTION. The MENU and INSTRUCTIONS included in the programs should be sufficient. NOTE: Once you have become familiar with the programs and want to avoid the opening credits and instructions, you can do a quick start by typing for LEARNING CURVES or for LEAST SQUARES. ******************* PROGRAM STRUCTURE *********************** There are ( 3 ) major segments to the LEARMING CURVE programs. 1. LINES 0 - 1600 LEARNING CURVE section 2. LINES 1700 - 2999 LEAST SQUARES section 3. LINES 3000 - end Titles and Introductions The Main MENU choices <1> to <9> tie in with the program sections beginning at LINES 100, 200, ....... 900 which handle the setup functions for each option and then hand off control to sections at 1000 or 1200 to do the actual math. OPT <10> sends the program to 1700 for LEAST SQUARES work. LINES 2500 - 2999 are reserved for the LINES used to hold the numbers to be analysed. The separate programs LSQRSC and LSQRPR are just extracts of the LINES 1700 - 3165 with a little editing of the instructions ****************** SOME EXAMPLES TO REVIEW ********************** EXAMPLE 1 : T1 and SLOPE. GIVEN : T1 = 1234 Hrs, SLOPE = 76% FIND : T65, T100, T500 CUM for 1 to 212 Each UNIT VALUE for the SERIES 1 to 10 ANSWERS: Use OPTION <1> UNIT 65=236, UNIT 100=199, UNIT 500=105 CUM 1 to 212 = 50670 SERIES 1 to 10 : 1234,938,799,713,652,607,571,542,517,496 EXAMPLE 2 : A UNIT other than T1 and a SLOPE. GIVEN : T500 = 575, on a 80% CURVE FIND : T1, T420 CUM for 25 to 195 Each UNIT VALUE for the SERIES 35 to 41 ANSWERS: Use OPTION <2> UNIT 1=4251, UNIT 420=608 CUM 25 to 195 = 169444 SERIES 35 to 41 : 1354,1341,1330,1318,1307,1297,1286 EXAMPLE 3 : DOGLEG CURVE GIVEN : Slope of 80% flattening out to 85% at UNIT 100. BASE UNIT NO. = T500 BASE STD HRS at T500 = 850 hrs. Note: this is like FIG.4 FIND : T1, T100 CUM for 75 to 200 Each UNIT VALUE for the SERIES 96 to 105 ANSWERS: Use OPTION <3> UNIT 1=5460, 100=1240 CUM 75 to 200 = 146961 SERIES 96 to 105 : 1256,1252,1248,1244,1240,1237,1234,1231,1228,1226 >>>>> NOTE: Check this one by using OPTION <6> by just entering the t500 VALUE EXAMPLE 4 : RUN TIME and SETUP GIVEN : RUN TIME = 200 hrs at UNIT 1000 SETUP = 500 hrs for each batch of 20 units. CURVE = 90% RUN TIME FACTOR = 1.25. SETUP FACTOR = 1.90 FIND : TOTAL HRS needed to make 200 UNITS. ANSWER: Use OPTION <5> Total NO. of SETUPS = 200/20 = 10 TOTAL SETUP TIME (10) = 9500 TOTAL RUN TIME for 1 to 200= 74996 -------- TOTAL MFG. HRS 84496 EXAMPLE 5 : LEAST SQUARES ANALYSIS GIVEN : Actual Historical Data shown in FIG.3 UNIT HRS UNIT HRS 1 48500 100 8000 2 40000 125 6800 4 33000 150 6600 6 26500 175 6000 8 20000 200 6300 10 18000 220 5900 12 17000 250 5200 15 19000 270 5000 20 12000 300 4800 25 10500 330 4800 30 12000 350 5200 35 12500 380 4700 40 11500 400 5100 45 10250 420 4650 50 10400 450 4500 60 9200 480 4450 70 8800 500 4350 80 8000 520 4400 90 7800 550 4380 You would start out your DATA LINES like this: 2500 DATA 1,48500,2,40000,4,33000,6,26500,8,20000, 10,18000 2501 DATA 12,17000,15,19000,20,12000,25,10500,30,12000,35,12500 . . . Using 5 or 10 DATA SETS per line until the last line. 2510 DATA 450,4500,480,4450,500,4350,525,4400,550,4380,0,0 >>>> NOTE the final 0,0 entry. For a REAL analysis you would use EVERY possible set of values available. The EXAMPLE picked a few samples to make it easier for me to type in. I'll let you work this answer by yourself. Plot the answer and see if it makes sense. It is a way of makeing sure you got the correct data input. Don"t forget to use submenu item <3> to review the input on the screen. >>>>> CUSTOMIZING MAIN MENU OPTIONS <6> thru <9> <<<<< As the programs now stand they contain options <6> <7> <8> and <9> which are custom fitted to some common curve combinations that I have found useful in my own work. OPTIONS <1> thru <5> can do the same tasks but take extra input steps for values already built into the STANDARD choices. The next two examples will show you how to set up your own STANDARD versions. EXAMPLE I You want to make your own OPT <8> that uses an 80% CURVE instead of 85% and also sets your BASE STD. HRS at UNIT 250 iplace of 500. Because you will be making changes in OPT <8>, you will be revising program lines starting at 800. PROCEDURE: > Use OPT <2> with input of 80% for the SLOPE and 10000 HRS at UNIT 250. > Solve for UNIT 1 (T1) > T1 = 59151 > Move decimal point 4 places to left = 5.9151 > Now EDIT the following lines as shown below. KEEP SAME SPACING AS ORIGINAL in order to keep screen format the same. LINE 801 PRINT GIVEN: CURVE = 80%, BASE VALUE SET AT T250.":PRINT LINE 802 INPUT" ENTER T250 BASE VALUE ";BS:PRINT LINE 806 T1 = BS*5.9151 LINE 807 B=(LOG(.80))/.693148: Z = 1+B > Now EDIT LINE 28 to give your own TITLE to OPT <8>. > To make sure everything is correct run a test using your new <8> and <2> to see if you get the same answer. > Did you notice that the factor used in LINE 806 was derived above ? EXAMPLE II You want to make your own OPT <6> that uses a DOGLEG combination of 75/80 instead of 80/85, and a BEND POINT of 200 inplace of 100. You also want to set your BASE STD at UNIT 1000 rather than 500. Your choice of <6> means you make changes starting at line 600 in the program. PROCEDURE: >Use OPt <2> with an 80% CURVE and a BASE VALUE of 10000 set at UNIT NO. 1000. > Solve for T1 and T200 > T1 = 92424. Move decimal left 4 places = 9.2424. > T200 = 16789. Move decimal left 4 places = 1.67889 > Use OPT <2> again. This time input 75% CURVE and a BASE VALUE of 16789 at UNIT NO, 200. > Solve for T1 > T1 = 151369. Move decimal left 4 places = 15.1369 > Now EDIT the Program lines as shown below. Maintain original spacing format. LINE 601 PRINT" GIVEN : DOGLEG 75/80 CURVE, BEND POINT AT UNIT 200, BASE VALUE AT T1000. LINE 602 INPUT" ENTER T1000 VALUE "; BS:PRINT LINE 607 TA=BS*15.1369 : TB=BS*9.2424 LINE 610 TP=BS*1.6789 LINE 612 B1=(LOG(.75))/.693148 : Z1=1+B1 LINE 614 B2=(LOG(.80))/.693148 : Z2=1+B2 LINE 615 BP=200 > Now EDIT LINE 24 to give it your title for <6>. > to make sure eveything is correct run a test using your new <6> and <3> on the same input to see if you get the same answer. ##################### END OF DOCUMENTATION #####################