.TITLE#####^^LIBRARY#PROGRAM#_#2.2.3\\ .LEFT MARGIN 5 .RIGHT MARGIN 70 .CENTER ^^WESTERN MICHIGAN UNIVERSITY\\ .CENTER ^^COMPUTER CENTER\\ .SKIP 2 ^^LIBRARY#PROGRAM#_#2.2.3\\ .SKIP 2 ^CALLING#^NAME\\:##^^TRANSP\\ .BREAK ^PREPARED#BY\\:##^BERENICE#^HOUCHARD .BREAK ^ADAPTED#BY\\:##^BERENICE#^HOUCHARD .BREAK ^APPROVED#BY\\:##^JACK#^R.#^MEAGHER .BREAK ^DATE:##^MARCH#8,#1976#(VERSION 2) .SKIP 2 .CENTER ^^LARGE SCALE TRANSPORTATION PROBLEM*\\ .FOOTNOTE 2 --------------- .BREAK *^THIS PROGRAM IS ADAPTED FROM ^I^B^M PROGRAM 360^D-15.2.009. ! .SKIP 2 1.0##^GENERAL#^DESCRIPTION .SKIP 1 ^THIS ^^TRANSPORTATION PROBLEM\\ ^PROGRAM SOLVES THE WAREHOUSE-DISTRIBUTOR TYPE OF TRANSPORTATION PROBLEM BY THE METHOD AS DESCRIBED IN ^G. ^HADLEY'S ^LINEAR ^PROGRAMMING, PP. 273-312 (^ADDISON-^WESLEY ^PUBLISHING ^COMPANY), USING ROW MINIMA TO GENERATE AN INITIAL FEASIBLE SOLUTION. ^COLUMN OR ROW SLACK NECESSITATED BY INEQUALITY OF AVAILABILITY AND REQUIREMENTS IS AUTOMATICALLY GENERATED. .SKIP 1 1.1##^^INPUT\\#^LIMITATIONS .BREAK 1. 1#_<=#NUMBER OF ORIGINS#_<=#19 .BREAK 2. 1#_<=#NUMBER OF DESTINATIONS#_<=#199 .BREAK 3. ^MAXIMUM OF 3 FORMAT LINES IF OBJECT TIME FORMAT IS USED. .BREAK 4. ^ONLY ^I-TYPE FORMAT IS ALLOWED. .SKIP 1 1.2##^THREE#^AREAS#OF#^OUTPUT .BREAK 1. ^SHADOW COST FOR ORIGINS .BREAK 2. ^SHADOW COST FOR DESTINATIONS .BREAK 3. ^SOLUTION IN ORIGIN SEQUENCES .SKIP 2 2.0##^ERROR#^MESSAGES .SKIP 1 ^ASIDE FROM THE USUAL CHECK ON USER'S RESPONSES, THERE ARE FOUR MAIN ERRORS DETECTED BY THE PROGRAM. ^NONE SHOULD OCCUR ON ANY PROBLEM. ^IF ONE OF THEM SHOULD OCCUR THE SHADOW COST OUTPUT IS MEANINGLESS, BUT THE SOLUTION IS THE CURRENT BEST SOLUTION. .SKIP 1 .LEFT MARGIN 20 .INDENT-10 ^^ERROR\\ 1: ^NO BASIS ELEMENT IN ROW WHICH CONTAINS ENTERING ELEMENT IN AN ITERATION .BREAK .INDENT-10 ^^ERROR\\ 2: ^THERE IS NO BASIS LOOP .BREAK .INDENT-10 ^^ERROR\\ 3: ^THE BASIS LOOP HAS MORE ELEMENTS THAN THERE ARE IN THE BASIS .BREAK .INDENT-10 ^^ERROR\\ 4: ^THERE IS NO ELEMENT IN THE BASIS LOOP LESS THAN ^K2=10^K1 WHERE ^K1 IS THE LARGEST ORIGIN AVAILABILITY OR DESTINATION REQUIREMENT. .SKIP 2 .LEFT MARGIN 5 .TEST PAGE 4 .SKIP 2 .LEFT MARGIN 5 3.0##^PROGRAM#^CAPABILITIES#AND#^OPTIONS .SKIP 1 ^THE ^^TRANSPORTATION\\ ^PROGRAM CAN BE PROCESSED BY BATCH OR BY ^TERMINAL. ^THE PROGRAM IS IN CONVERSATIONAL MODE TO ALLOW INTERACTION WITH THE USER ON ^TERMINAL JOBS. .SKIP 1 3.1##^PROGRAM#^OUTLINE .BREAK ^THE QUESTIONS OR STATEMENTS LISTED BELOW WILL BE TYPED OUT BY THE PROGRAM. ^THE STATEMENTS ARE IN SEQUENTIAL ORDER IN WHICH A RESPONSE IS IMPERATIVE TO EACH LINE. ^ON A BATCH JOB, MAKE UP ONE CARD FOR EACH APPROPRIATE QUESTION OR STATEMENT. .SKIP 1 ^^LINE#1##OUTPUT?\\ .SKIP 1 ^^LINE#2##INPUT?\\ .SKIP 1 ^LINES 1 AND 2 DEFINE WHERE THE USER INTENDS TO WRITE HIS OUTPUT FILE (^LINE 1) AND FROM WHERE THE USER EXPECTS TO READ HIS INPUT DATA (^LINE 2). ^SEE ^NOTE (1) BELOW FOR OTHER INPUT OPTIONS. .SKIP 1 ^THE PROPER RESPONSE TO EACH OF THESE QUESTIONS CONSISTS OF THREE BASIC PARTS: A DEVICE, A FILENAME, AND A PROJECT-PROGRAMMER NUMBER. .SKIP 1 ^THE GENERAL FORMAT FOR THESE THREE PARTS IS AS FOLLOWS: .SKIP 1 .CENTER ^^DEV:FILE.EXT[PROJ,PROG]\\ .SKIP 1 1)#^D^E^V: ^ANY OF THE FOLLOWING DEVICES ARE APPROPRIATE WHERE INDICATED: .SKIP 1 .NOFIL ^^DEVICE#LIST DEFINITION STATEMENT#USE\\ ## ^^TTY:\\ ^TERMINAL ^INPUT OR ^OUTPUT ^^DSK:\\ ^DISK ^INPUT OR ^OUTPUT ^^CDR:\\ ^CARD ^READER ^INPUT ^ONLY ^^LPT:\\ ^LINE ^PRINTER ^OUTPUT ^ONLY ^^DTA0:\\ ^DECTAPE 0 ^INPUT OR ^OUTPUT ^^DTA1:\\ ^DECTAPE 1 ^INPUT OR ^OUTPUT ^^DTA2:\\ ^DECTAPE 2 ^INPUT OR ^OUTPUT ^^DTA3:\\ ^DECTAPE 3 ^INPUT OR ^OUTPUT ^^DTA4:\\ ^DECTAPE 4 ^INPUT OR ^OUTPUT ^^DTA5:\\ ^DECTAPE 5 ^INPUT OR ^OUTPUT ^^DTA6:\\ ^DECTAPE 6 ^INPUT OR ^OUTPUT ^^DTA7:\\ ^DECTAPE 7 ^INPUT OR ^OUTPUT ^^MTA0:\\ ^MAGNETIC ^TAPE 0 ^INPUT OR ^OUTPUT ^^MTA1:\\ ^MAGNETIC ^TAPE 1 ^INPUT OR ^OUTPUT .FILL .SKIP 1 ^DEVICES MAY BE SPECIFIED BY LOGICAL OR PHYSICAL NAMES. ^THE ^^DEVICE LIST\\ COLUMN HAS PHYSICAL NAMES. .SKIP 1 ^^INPUT MAY NOT BE DONE FROM THE LINE PRINTER NOR MAY OUTPUT GO TO THE CARD READER.\\ .SKIP 1 2)#^^FILE.EXT\\ IS THE NAME AND EXTENSION OF THE FILE TO BE USED. ^THIS PART OF THE SPECIFICATION IS USED ONLY IF DISK OR DECTAPE IS USED. .SKIP 1 3)##^^[PROJ,PROG]\\ ^IF A DISK IS USED AND THE USER WISHES TO READ A FILE IN ANOTHER PERSON'S DIRECTORY, HE MAY DO SO BY SPECIFYING THE PROJECT-PROGRAMMER NUMBER OF THE DIRECTORY FROM WHICH HE WISHES TO READ. ^THE PROJECT NUMBER AND THE PROGRAMMER NUMBER MUST BE SEPARATED BY A COMMA AND ENCLOSED IN BRACKETS. ^OUTPUT MUST GO TO YOUR OWN AREA. .SKIP 1 ^^EXAMPLE:\\ .BREAK .NOFILL ^OUTPUT? ^^LPT:/COPIES:2\\ .BREAK ^INPUT? ^^DSK:DATA.DAT[71171,71026]\\ .FILL .SKIP 1 ^IN THE EXAMPLE, TWO COPIES OF THE OUTPUT ARE TO BE PRINTED BY THE LINE PRINTER. ^THE INPUT DATA IS A DISK FILE OF NAME ^^DATA.DAT\\ IN USER DIRECTORY [71171,71026]. .SKIP 1 ^^DEFAULTS:\\ .BREAK 1)#^IF NO DEVICE IS SPECIFIED BUT A FILENAME IS SPECIFIED, THE DEFAULT DEVICE WILL BE ^D^S^K. .SKIP 1 2)#^IF NO FILENAME IS SPECIFIED AND A DISK OR DECTAPE IS USED THE DEFAULT ON INPUT WILL BE FROM ^^INPUT.DAT\\; ON OUTPUT IT WILL BE ^^OUTPUT.DAT\\. .SKIP 1 3)#^IF THE PROGRAM IS RUN FROM THE ^TERMINAL AND NO SPECIFICATION IS GIVEN (JUST A CARRIAGE RETURN) BOTH INPUT AND OUTPUT DEVICES WILL BE THE ^TERMINAL. .SKIP 1 4)#^IF THE PROGRAM IS RUN THROUGH BATCH AND NO SPECIFICATION IS GIVEN, (A BLANK CARD) THE INPUT DEVICE WILL BE ^C^D^R: AND THE OUTPUT DEVICE WILL BE ^L^P^T: .SKIP 1 5)#^IF NO PROJECT-PROGRAMMER NUMBER IS GIVEN, THE USER'S OWN NUMBER WILL BE ASSUMED. .SKIP 1 .LEFT MARGIN 15 .INDENT-10 ^^NOTE\\: (1)#^THE FOLLOWING RESPONSES TO ^^OUTPUT?\\ AND ^^INPUT?\\ ARE VALID AFTER THEIR FIRST OCCURRENCE. .SKIP 1 .INDENT-4 (A)#^^SAME#OPTION\\ .SKIP 1 ^UPON RETURNING FROM ^LINE 8 IN SECTION 3.1, IF THE SAME DATA FILE IS TO BE USED AGAIN, SIMPLY ENTER "SAME<^C^R>"; OTHERWISE, EITHER USE THE ^^FINISH\\ OPTION OR ENTER ANOTHER FILE NAME, ETC. .SKIP 1 .INDENT-4 (B)#^^CONTINUE#OPTION\\ .SKIP 1 ^FOR MAGTAPES THIS MEANS DO NOT REREAD THE SAME PART OF TAPE AS BEFORE; RATHER, READ THE NEXT PART OF TAPE. ^FOR DISK OR DECTAPE THE RESULT OF USING ^^CONTINUE\\ IS THE SAME AS USING THE ^^SAME\\ OPTION. .SKIP 1 .INDENT-4 (C)#^^FINISH#OPTION\\ .SKIP 1 ^THE USER MUST ENTER EITHER ^^FINISH\\, ^^FINI\\, OR _^^Z TO BRANCH OUT OF THIS PROGRAM. ^FAILURE TO DO SO MIGHT RESULT IN LOSING THE ENTIRE OUTPUT FILE. .SKIP 1 .INDENT-4 (D)#^^OUTPUT#OPTION\\ .SKIP 1 ^IF ONE ENTERS THIS, THE NEXT PROMPTING WILL BE ^^OUTPUT?\\. ^NOW ONE MAY SPECIFY AN OUTPUT DEVICE AND/OR FILE NAME DIFFERENT FROM THE ONE USED IN RESPONSE TO THE PREVIOUS ^^OUTPUT?\\. ^UNLESS A "^^CONTINUE\\" IS SPECIFIED FOR THE "^^OUTPUT?\\" THE PREVIOUS OUTPUT FILE WILL BE CLOSED (AND PRINTED IF ^L^P^T). .SKIP 1 .LEFT MARGIN 12 .INDENT-4 (2)#^^(FOR HELP TYPE HELP)\\-- WILL ALSO BE PRINTED THE FIRST TIME ^^OUTPUT?\\ AND ^^INPUT?\\ ARE PRINTED. ^AFTER THAT THIS MESSAGE WILL NOT BE PRINTED. .LEFT MARGIN 5 .SKIP 1 ^^LINE#3#FORMAT:##(I-TYPE#ONLY)\\ .SKIP 1 ^THERE ARE 3 OPTIONS AVAILABLE FOR THE FORMAT, NAMELY: .LEFT MARGIN 15 .SKIP 1 .INDENT-4 (A)##^^STANDARD#FORMAT#OPTION\\ .SKIP 1 ^UNLESS OTHERWISE SPECIFIED, THE PROGRAM ASSUMES THE STANDARD OPTION. IN THIS OPTION, THE DATA ARE ARRANGED IN GROUPS OF 10 PER LINE, TWO VALUES BEING SEPARATED BY A COMMA. .SKIP 1 ^TO USE THIS OPTION, SIMPLY TYPE IN "<^C^R>" ON ^TERMINAL JOBS OR USE A BLANK CARD FOR BATCH JOBS. .SKIP 1 .INDENT-4 (B)##^^OBJECT#TIME#FORMAT#OPTION\\ .SKIP 1 ^IF THE DATA IS SUCH THAT A USER'S OWN FORMAT IS REQUIRED, SIMPLY ENTER A LEFT PARENTHESIS FOLLOWED BY THE FIRST FORMAT SPECIFICATION, A COMMA AND THE SECOND SPECIFICATION, ETC. ^WHEN YOU FINISH ENTER A RIGHT PARENTHESIS, AND THEN A CARRIAGE RETURN. ^THERE CAN BE A MAXIMUM OF 3 LINES FOR THE FORMAT, EACH LINE BEING 80 COLUMNS LONG. .SKIP 2 ^NOTE THAT THE FORMAT SPECIFICATION LIST MUST USE THE FIXED POINT (^I-^TYPE) NOTATION AND MUST CONTAIN SPECIFICATION FOR EACH OF THE VARIABLES. ^THE SPECIFICATIONS FOR THE FORMAT ITSELF ARE THE SAME AS FOR THE ^^FORTRAN IV FORMAT\\ STATEMENT. .SKIP 1 .INDENT-4 ^^(C)##SAME OPTION\\ .SKIP 1 ^THE ^^SAME\\ OPTION IS APPLICABLE ONLY TO JOBS THAT USE MORE THAN ONE DATA FILE. ^IF AN OBJECT TIME FORMAT WAS USED ON A DATA SET AND THE SUCCEEDING DATA SET UTILIZES THE SAME FORMAT, SIMPLY ENTER ^^"SAME".\\ .LEFT MARGIN 5 .SKIP 1 ^^LINE#4##ENTER#HEADER\\ .SKIP 1 ^ENTER A LINE OF UP TO 80 CHARACTERS TO BE PRINTED ABOVE YOUR OUTPUT. ^IF YOU WANT NO HEADING ENTER A "<^C^R>" ON ^TERMINAL JOBS OR A BLANK CARD ON BATCH JOBS. .SKIP 1 ^^LINE#5##\\ .NOFIL ######^^ENTER#NUMBER#OF#ORIGINS#AND#NUMBER#OF\\ ^^DESTINATIONS#SEPARATE#THEM#BY#COMMA--\\ .FILL .SKIP 1 ^ENTER THE NUMBER OF ORIGINS AND THE NUMBER OF DESTINATIONS TO BE CONSIDERED. ^REFER TO LIMITATIONS IN ^SECTION 1.1 (1) AND (2). .SKIP 1 ^^LINE#6##ENTER#THE#AVAILABILITIES#FOR#THE#ORGIN#POINTS .SKIP 1 ^ENTER THE "^N" AVAILABILITIES FOR THE ORIGIN POINTS ARE SPECIFIED IN ^LINE 5. ^ENTER THE NUMBERS 10 TO A LINE SEPARATED BY COMMAS. .SKIP 1 ^^LINE#7##ENTER#REQUIREMENTS#FOR#THE#DESTINATION#POINTS .SKIP 1 ^ENTER THE "^M" REQUIREMENTS FOR THE DESTINATION POINTS AS SPECIFIED IN ^LINE 5. ^AGAIN, ENTER THE NUMBERS 10 TO A LINE SEPARATED BY COMMAS. .SKIP 1 ^^LINE#8\\ .BREAK ^^(A)COST:ENTER#TRANSPORTATION#COST#PER#UNIT#SORTED#INTO#DESTINATION\\ .SKIP 1 ^^(B)##PLEASE#WAIT,#YOUR#DATA#IS#BEING#PROCESSED\\ .SKIP 1 ^THE COSTS MUST BE SORTED INTO DESTINATION WITHIN ORIGIN SEQUENCE. ^THAT IS, THE MAJOR BREAKDOWN IS ON ORIGIN POINTS FOLLOWED BY A BREAKDOWN ON DESTINATION POINTS. ^THE PROGRAM WILL TYPE OUT MESSAGE ^A IF IT IS A ^TERMINAL JOB AND THE INPUT DATA IS TO BE ENTERED DURING EXECUTION TIME (I.E., WHILE RUNNING THE PROGRAM). ^OTHERWISE, MESSAGE ^B WILL BE TYPED OUT. .SKIP 1 ^^IMPORTANT:\\ ^YOU MUST ENTER THE DATA ACCORDING TO THE FORMAT YOU CHOSE. ^IF YOU HAVE SELECTED STANDARD DATA FORMAT, THE PROGRAM WILL TYPE OUT THE ORIGIN NUMBER, E.G., ^^FOR ORIGIN 1,\\ SIMPLY ENTER COSTS FOR DESTINATION 1, 2, ETC. SEPARATED BY COMMAS. ^IF YOU HAVE 10 OR LESS DESTINATION POINTS, YOU SHOULD BE ABLE TO ENTER ALL THE COSTS FOR AN ORIGIN POINT ON ONE LINE. ^IN THIS CASE, ENTER A "<^C^R>" AT THE END OF THE LINE AND PROCEED TO THE NEXT ORIGIN POINT. ^IF YOU HAVE OVER 10 DESTINATION POINTS PER ORIGIN, YOU MUST ENTER COSTS FOR THE FIRST 10 DESTINATION POINTS AND A "<^C^R>" ON THE FIRST LINE AND COSTS FOR 10 DESTINATION POINTS AND "<^C^R>" ON EACH SUCCEEDING LINE UNTIL YOU HAVE ENTERED ALL THE COSTS FOR THAT ORIGIN POINT. .SKIP 1 ^AFTER ANALYZING THE DATA, THE PROGRAM WILL BRANCH TO ^LINE 2, THE USER CAN EITHER PROCESS ANOTHER DATA SET, IN THIS CASE REPEAT ^LINES 2 TO 8; OR EXIT FROM THE PROGRAM, IN THIS CASE, ENTER ^^"FINISH".\\ .SKIP 2 4.0##^METHOD#OF#^USE .BREAK ^PROCEDURE AND SET UP FOR ^TERMINAL AND BATCH JOBS DIFFER SLIGHTLY. .SKIP 1 4.1##^TERNIMAL#^J^O^B .BREAK ^FOLLOWING A SUCCESSFUL ^^LOGIN,\\ THE USER TYPES "^^R TRANSP".\\ ^INTERACTION BETWEEN USER AND PROGRAM BEGINS AT THIS POINT. ^THE PROGRAM WILL TYPE OUT THE APPROPRIATE QUESTION OR STATEMENT AS OUTLINED IN ^SECTION 3.1. .SKIP 1 ^^EXAMPLE:\\ .BREAK ^THE FOLLOWING EXAMPLE IS TAKEN FROM "^OPERATIONS ^RESEARCH: ^AN ^INTRODUCION" BY ^HANDY ^A. ^TAHA (^THE ^MAC^MILLAN ^COMPANY, 1971) PAGES 113-122. "_<" AND INFORMATION ON THE SAME LINE WITH _< ARE ENTERED BY USER EXCEPT FOR OUTPUT?TTY: INPUT?TTY: FORMAT: (I-TYPE ONLY) ENTER HEADER SAMPLE TERMINAL RUN ENTER NUMBER OF ORIGINS AND NUMBER OF DESTINATIONS SEPARATE THEM BY COMMA--3,4 ENTER THE AVAILABILITIES FOR THE ORIGIN POINTS 10 NUMBERS PER LINE, SEPARATED BY COMMAS 15,25,5 ENTER REQUIREMENTS FOR THE DESTINATION POINTS 10 NUMBERS PER LINE, SEPARATED BY COMMAS 5,15,15,10 COST: ENTER TRANSPORTATION COST PER UNIT SORTED INTO DESTINATION 10 NUMBERS PER LINE, SEPARATED BY COMMAS\\ .SKIP 1 ^^FOR ORIGIN 1 10,0,20,11 .SKIP 1 FOR ORIGIN 2 12,7,9,20 .SKIP 1 FOR ORIGIN 3 0,14,16,18 .SKIP 1 SAMPLE TERMINAL RUN\\ .SKIP 1 ^^ORIGIN SHADOW PRICE\\ 1 0 2 7 3 -5 .SKIP 1 ^^DESTIN SHADOW PRICE\\ 1 5 2 0 3 2 4 11 .TEST PAGE 25 ^^FINAL ALLOCATION SORTED BY SUPPLY POINTS\\ .SKIP 1 ORIGIN DESTIN QUANTITY UNIT COST COST 1 2 5 0 0 1 4 10 11 110 ------------------------------------------------- ^^TOTAL 15 110 .SKIP 1 2 1 0 12 0 2 2 10 7 70 2 3 15 9 135 ------------------------------------------------- ^^TOTAL 25 205 .SKIP 1 3 1 5 0 0 ------------------------------------------------- ^^TOTAL 5 0\\ .SKIP 1 ------------------------------------------------- ------------------------------------------------- .SKIP 1 ^^TOTAL COST = 315\\ .SKIP 1 ^^INPUT? FINISH_\\ .SKIP 1 ^^CPU TIME: 1.22 ELAPSED TIME: 3:41.37\\ ^^NO EXECUTION ERRORS DETECTED\\ .SKIP 1 ^^EXIT\\ .FILL .SKIP 1 5.2##^BATCH#^JOB .BREAK ^THE FOLLOWING IS A BATCH JOB SET UP: (EACH LINE REPRESENTS ONE CARD, EACH CARD STARTING IN COLUMN 1; DO NOT INCLUDE THE COMMENTS AT THE RIGHT). ^IF INPUT DATA ARE NOT IN CARDS, IGNORE $^D^A^T^A TO $^E^O^D INCLUSIVE. .SKIP 1 .TAB STOP 30 .LEFT MARGIN 30 ^^COMMENTS\\ .INDENT-25 $^J^O^B[_#,_#] ^J^O^B CARD; INSERT USER'S ^PROJ-^PROG NUMBER WITHIN THE BRACKET .INDENT-25 ^^$PASSWORD\\#_#_#_#_#_#_# ^IN PLACE OF THE 6_#'S PUT IN THE PASSWORD .INDENT-25 ^^$DATA\\ ^SIGNIFY BEGINNING OF DATA DECK .INDENT-20 (DATA CARDS) INSERT THE DATA CARD DECK TO BE ANALYZED .INDENT-25 ^^$EOD\\ ^SIGNIFY THE END OF DATA CARD DECK .INDENT-25 ^^.R TRANSP\\ ^START THE EXECUTION .INDENT-20 (^RESPONSES TO ^LINES 1-8 .INDENT-15 IN ^SECTION 3.1 REPEATED OR NOT) .INDENT-25 (^E^O^F) ^AN END-OF-FILE-CARD .LEFT MARGIN 5 .SKIP 1 .PAGE ^^EXAMPLE\\ .SKIP 1 ^IN THE EXAMPLE BELOW, THE COSTS ARE IN CARDS, OUTPUT DEVICES IS ^L^P^T: AND OBJECT TIME FORMAT IS USED. .SKIP 1 .TAB STOP 30 .NOFIL ^^COMMENTS\\ ^^$JOB [420,420] ^J^O^B CARD ^^$PASSWORD \\ ^PASSWORD ^^$DATA\\ ^BEGINNING OF DATA DECK 10002011 12070920 COST DECK 00141618 ^^$EOD\\ ^END OF DATA DECK ^^.R TRANSP\\ ^START EXECUTION ^^LPT:\\ ^OUTPUT DEVICE ^C^D^R: ^INPUT DEVICE (4^I2) ^OBJECT TIME FORMAT ^SAMPLE ^BATCH ^RUN ^HEADER 3,4 ^NUMBER OF ORIGINS AND DESTINATION POINTS 15,25,5 ^AVAILABILITIES FOR ORIGIN POINTS 5,15,15,10 ^REQUIREMENTS FOR DESTINATION POINTS ^^FINISH\\ ^BRANCH OUT OF PROGRAM (^E^O^F) ^AN END-OF-FILE CARD