home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR6 / LP261.ZIP / LP.MAN < prev    next >
Text File  |  1993-07-21  |  64KB  |  2,178 lines

  1. Note: This text may not be 100% suitable for all printers.
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.                                  ScanSoft(tm)
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.                                      LP
  30.  
  31.                          Linear Programming Optimizer
  32.  
  33.                                  Version 2.61
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.                            (C)1988-1993 Cornel Huth
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.           LP OPERATIONS MANUAL --------------------------------------
  74.  
  75.  
  76.           [OVERVIEW]
  77.  
  78.           LP is a linear programming optimizer developed for either
  79.           maximizing or minimizing small to medium sized mathematical
  80.           programming problems in which all the relationships between
  81.           variables are linear.  It finds a BEST feasible solution to
  82.           any continuous, integer, or mixed-integer optimization problem
  83.           of this type and reports on the activities and levels required
  84.           to maximize profit or minimize cost.  LP also reports on
  85.           alternate optima, shadow prices, ranges over which the shadow
  86.           prices   are valid and ranges over which profit/cost inputs and
  87.           right-hand-side (RHS) values can vary without altering the
  88.           solution.
  89.  
  90.           LP can use either LOTUS 1-2-3/Symphony spreadsheet files or
  91.           ASCII files for data input.  Output may be sent to most
  92.           printers, any ASCII disk file, or directly to a LOTUS 1-2-3
  93.           spreadsheet file.  Output may consist of useful model debugging
  94.           information such as objective function and constraint listings,
  95.           a condensed matrix map, and the full tableaux.  LP handles
  96.           problems with thousands of variables and thousands of con-
  97.           straints.
  98.  
  99.  
  100.           [INPUT FILE]
  101.  
  102.           LP reads a user created file for data input.  Any text
  103.           editor or word processor that can output unformatted ASCII
  104.           text may be used.  LOTUS 1-2-3 or Symphony (or any 1-2-3
  105.           compatible spreadsheet such as VP-Planner or Excel) can be
  106.           used for creating the data file, as well.
  107.  
  108.           A batch facility is available in LP.  This allows LP to
  109.           solve up to six LP problems per run without the need of using
  110.           DOS's COMMAND batch facility.  Such a file is to include only
  111.           the LP filenames followed by any command line options and
  112.           should contain no blank lines.  To specify a batch file to
  113.           LP, precede the filename with an @ on the command line.
  114.           E.g., if the batch file is named BATCHRUN.BLP, use C>LP
  115.           @BATCHRUN.BLP.
  116.  
  117.           NOTE: The length of any one line should not exceed 2300
  118.           characters.
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.                                           2
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.           LP OPERATIONS MANUAL --------------------------------------
  140.  
  141.  
  142.           - EXAMPLE
  143.  
  144.           TITLE: An example of an LP data file.
  145.           OUTPUT: EXAMPLE.OUT
  146.           LISTING: YES
  147.           MAP: YES
  148.           TABLEAU: YES
  149.           ANALYSIS: YES    * anything after a '*' on a line is a comment
  150.  
  151.           VAR: 3  LTE: 2  GTE: 0  EQU: 1
  152.  
  153.           FUNCTION: MAX: .185 stock + .090 bond -.150 loan
  154.  
  155.           MxLoan  loan <= 5000  * no coefficient implies 1.00
  156.           MxStk   stock <= 4000
  157.           MxCash  stock + bond - loan = 10000
  158.           END:
  159.  
  160.           NOTE: It is not neccesary to use + operators between variables,
  161.           e.g.,
  162.           ...MAX:  .185 stock  .090 bond   -.150 loan is acceptable, as
  163.           is
  164.           ...MAX: +.185 stock +.090 bond + -.150 loan.
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.                                           3
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.           LP OPERATIONS MANUAL --------------------------------------
  206.  
  207.  
  208.           [STARTING LP]
  209.  
  210.           To give LP a go, have LP.EXE in your PATH and EXAMPLE.LP
  211.           in the current directory, then type:
  212.  
  213.                 C>LP EXAMPLE.LP
  214.  
  215.           In just a few seconds it's finished.  Now do (printer on?):
  216.  
  217.                 C>COPY EXAMPLE.LP PRN
  218.  
  219.           ... then do (you may want to advance the printer to the
  220.           top-of-page):
  221.  
  222.                 C>COPY EXAMPLE.OUT PRN
  223.  
  224.           The file EXAMPLE.LP is the data file that LP used and
  225.           EXAMPLE.OUT is the file that LP created for the output.
  226.           If you do not have a printer, have LPEDIT.COM in your PATH and
  227.           EXAMPLE.OUT in the current directory, then type:
  228.  
  229.                 C>LPEDIT EXAMPLE.OUT      
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.                                           4
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.           LP OPERATIONS MANUAL --------------------------------------
  272.  
  273.  
  274.           [LINE OPTIONS]
  275.  
  276.           /B            use with non-color composite displays connected
  277.                         to color card
  278.           /C:nnn        specify the attribute for color screens
  279.                         (fg+(bg*16)) <=255
  280.  
  281.           - the above switches have no effect within LP batch files
  282.  
  283.           /O:filename   specify the output destination (can include
  284.                         drive/path)
  285.           /I:nn         specify all-integer solution max of nn cutplanes
  286.                         (nn=0-99)
  287.           /M:nn         specify mixed-integer solution max of nn cutplane
  288.                         (nn=0-99)
  289.           /Z:nn         specify tolerance of zero (nn=.000000000001-.9)
  290.           /PL:OFF       suppress printer page length codes (page length
  291.                         from 88 to 66)
  292.           /PW:OFF       suppress printer page width code (for 15"
  293.                         printers)
  294.           /FF:OFF       suppress all form feeds except at end of report
  295.           /L or /NL     turn listing on or off (/Nx turns switch off)
  296.           /MA or /NM    turn map on or off
  297.           /T or /NT     turn tableaux on (first and last only) or off
  298.           /A or /NA     turn analysis on or off
  299.           /VM           use with problems too large for DOS memory
  300.  
  301.                 C>LP EXAMPLE.LP /O:PRN /NL /NM /NT /NA /C:31
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.                                           5
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.           LP OPERATIONS MANUAL --------------------------------------
  338.  
  339.  
  340.           [COMMENTS]
  341.  
  342.           COMMENTS can be used in an LP data file.  They may appear
  343.           anywhere except on the TITLE: line.  To include comments in
  344.           the input file, begin the comment with an asterisk.  All
  345.           characters following the * to the end of that line are skipped.
  346.           E.g.,
  347.  
  348.           * LP data file for BUDGETING 1990 MODEL A1B.
  349.  
  350.           VAR: 233    * the constraints & variables were developed
  351.           LTE: 35     *   jointly by the OR & MIS departments
  352.           GTE: 55     *
  353.           EQU: 22
  354.  
  355.  
  356.           [KEYWORDS]
  357.  
  358.           Keywords are used to declare the problem to LP.  All
  359.           keywords in LP end with a colon.
  360.  
  361.           TITLE: Trial MX01                     * this is optional
  362.  
  363.           VAR: 52  LTE: 22  GTE: 44  EQU:  0    * these are required
  364.  
  365.           FUNCTION: MAX:  59.03 var1 + 35.57 var2  * these are required
  366.  
  367.           Keywords may be either upper or lower case.
  368.  
  369.  
  370.           - TITLE:
  371.  
  372.           TITLE: is an optional keyword.  Its purpose is to allow the
  373.           user to specify the title used for each page heading.  The
  374.           keyword NAME: may be used interchangably with TITLE:, e.g.,
  375.  
  376.           TITLE: Operations Research Planning Model 20A  or,
  377.  
  378.           NAME: Operations Research Planning Model 20A
  379.  
  380.           If TITLE: or NAME: is not used, the input filename is used by
  381.           default.
  382.  
  383.           NOTE: Only the first 48 characters following TITLE: will be
  384.           used. Comments should not appear on the comment line.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.                                           6
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.           LP OPERATIONS MANUAL --------------------------------------
  404.  
  405.  
  406.           - OUTPUT:
  407.  
  408.           OUTPUT: is an optional keyword.  Its purpose is to allow the
  409.           user to specify which device the output is to be sent.  To send
  410.           the output directly to the printer, use PRN after OUTPUT:,
  411.           e.g.,
  412.  
  413.           OUTPUT: PRN  * or any valid DOS device name (\DEV\devicename)
  414.  
  415.           To send the output to disk, indicate the pathname after
  416.           OUTPUT:, e.g.,
  417.  
  418.           OUTPUT: C:\OR\B90\MODEL20A.OUT
  419.  
  420.           To send output in LOTUS 1-2-3 WKS format, specify a filename
  421.           extension   of WKS, e.g.,
  422.  
  423.           OUTPUT: C:\123\MODEL20A.WKS
  424.  
  425.           NOTE: Only the analysis and solution sections are in 1-2-3
  426.           format; the listings, map, and tableaux are in ASCII format and
  427.           will be overwritten if there are no errors in the data file.
  428.           If OUTPUT: is not used, the input filename.OUT is used by
  429.           default.
  430.  
  431.  
  432.           - LISTING:
  433.  
  434.           LISTING: is an optional keyword.  Its purpose is to allow the
  435.           user to specify if listings of the objective function and
  436.           constraints are to be output.
  437.  
  438.           The listing numbers each objective function variable, showing
  439.           its name and coefficient and whether the objective is to
  440.           maximize or minimize the function.
  441.  
  442.           For each constraint, its name, matrix row position, and the
  443.           coefficient and name of the non-zero variables and the value of
  444.           the RHS is given.  The LTE's fill from row 1 down, GTE's fill
  445.           from the last GTE up, EQU's fill from the last GTE+1 down in
  446.           the matrix (to handle negative RHS's).  If the RHS of a
  447.           constraint is negative, an N precedes its name.  It will have
  448.           been multiplied through by -1 and the type changed if an
  449.           inequality.
  450.  
  451.           To activate the listing, use YES.  For no listing use NO.
  452.           E.g.,
  453.  
  454.           LISTING: YES * If LISTING: is not used, NO is used by default. 
  455.  
  456.                                           7
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.           LP OPERATIONS MANUAL --------------------------------------
  470.  
  471.  
  472.           - MAP:
  473.  
  474.           MAP: is an optional keyword.  Its purpose is to allow the user
  475.           to specify if a mapping of the initial matrix is to be output.
  476.  
  477.           The map is shown in condensed form with variable names output
  478.           vertically and the constraint names along the left.
  479.  
  480.           For each matrix position a symbol is used to indicate in which
  481.           range that value is.  For instance, all zero elements show as
  482.           blanks, all one elements as 1, greater than 1 but less than 10
  483.           as W, and so on.
  484.  
  485.           To activate the mapping, use YES.  E.g.,
  486.  
  487.           MAP: YES    * If MAP: is not used, NO is used by default.
  488.  
  489.           NOTE:  The matrix fills from the top down for LTE's and from
  490.           the bottom (actually right before the first EQU) up for GTE's.
  491.  
  492.  
  493.           - TABLEAU:
  494.  
  495.           TABLEAU: is an optional keyword.  Its purpose is to allow the
  496.           user to specify if tableaux are to be output.  The tableau that
  497.           is output is of the last iteration completed.
  498.  
  499.           The objective function variables and values are listed.  The
  500.           variables in the current basis along with their row elements
  501.           and RHS's follow.  A Z follows the objective function evalua-
  502.           tion and an R follows each of the RHS values.
  503.  
  504.           To activate tableau output of the initial and last tableaux
  505.           only, use YES, or I&L.  To output all tableaux, use ALL.  E.g.,
  506.  
  507.           TABLEAU: YES  * or TABLEAU: I&L
  508.                         * or, for all,
  509.           TABLEAU: ALL  * If TABLEAU: is not used, NO is used by default.
  510.  
  511.  
  512.           - ANALYSIS:
  513.  
  514.           ANALYSIS: is an optional keyword.  Its purpose is to allow the
  515.           user to specify if an analysis of the solution is to be output.
  516.           The analysis is divided into two summaries.
  517.  
  518.           In the variable summary, each variable name, alternate optima
  519.           check, activity level, shadow price, input coefficient, and
  520.           range over which the input coefficient may vary without
  521.  
  522.                                           8
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.           LP OPERATIONS MANUAL --------------------------------------
  536.  
  537.  
  538.           altering the solution set is given.  Also shown is the variable
  539.           ENTERING the basis when this range is exceeded.
  540.  
  541.           In the constraint summary, each name, type, unused capacity/-
  542.           excess demand, shadow price, input RHS, and range over which
  543.           the RHS may vary without altering the solution set is given.
  544.           Also shown is the variable EXITING the basis when this range
  545.           is exceeded.
  546.  
  547.           To activate analysis output, use YES.  E.g.,
  548.  
  549.           ANALYSIS: YES    *If ANALYSIS: is not used, YES is the default.
  550.  
  551.  
  552.           - BIG-M:
  553.  
  554.           BIG-M: is an optional keyword.  Its purpose is to allow the
  555.           user to   specify the objective function coefficient given to
  556.           artificial variables.
  557.  
  558.           LP uses the BIG-M improved SIMPLEX algorithm.  Starting the
  559.           SIMPLEX algorithm requires an artificial variable for the GTE:
  560.           with the largest RHS and one for each EQU: constraint.  To
  561.           ensure that the algorithm removes these as quickly as possible
  562.           from the basis, a very large value is given it.  BIG-M: allows
  563.           the user to specify this value.
  564.  
  565.           NOTE: In minimization problems, values in the objective
  566.           function are interpreted as contributions to cost.  Thus,
  567.           absolute values should be used, i.e., 37.6667 MAT123 for the
  568.           contribution to cost of MAT123.
  569.  
  570.           To specify BIG-M: use the absolute value after the keyword.
  571.           E.g.,
  572.  
  573.           BIG-M: 1000000  * If BIG-M: is not used, 1,000,000 is default.
  574.                           * 1D+006 may be used instead of 1000000.
  575.  
  576.  
  577.           - TZERO:
  578.  
  579.           TZERO: is an optional keyword.  Its purpose is to allow the
  580.           user to specify a tolerance value for zero.
  581.  
  582.           LP, like most computer software, deals with numbers in a
  583.           finite precision.  In repeated manipulations of numbers that
  584.           have been truncated to a specific precision, round-off errors
  585.           may occur.  TZERO: allows for this somewhat in critical areas
  586.  
  587.  
  588.                                           9
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.           LP OPERATIONS MANUAL --------------------------------------
  602.  
  603.  
  604.           by forcing the algorithms and output routines to interpret very
  605.           small values near 0.00 as 0.00.
  606.  
  607.           LP uses IEEE double-precision floating-point numbers.  With
  608.           an 80x87 math coprocessor, very fast and precise computations
  609.           are made.  If an 80x87 is not installed, software emulation is
  610.           used.
  611.  
  612.           To specify TZERO: use the absolute value after the keyword.
  613.           E.g.,
  614.  
  615.           TZERO: 1D-012
  616.                 * If TZERO: is not used, 1D-012 is default.
  617.                 * .000000000001 may be used instead of 1D-012.
  618.                 * If INTEGER:/MIXED:, .00001 is used unless /Z: is used.
  619.  
  620.  
  621.           - INTEGER:
  622.  
  623.           INTEGER: is an optional keyword.  Its purpose is to allow the
  624.           user to specify that an all-integer solution is to be sought.
  625.  
  626.           LP uses a cutplane algorithm to solve an all-integer
  627.           problem.  All constraint coefficients/RHS should be integer.
  628.  
  629.           The maximum number of cutplanes that will be used to find a
  630.           solution is to follow the keyword INTEGER:.  The range is from
  631.           0 to 99.  If the maximum number of cutplanes is reached, LP
  632.           exits and uses the current solution.
  633.  
  634.           NOTE: If the cutplane technique is going to find a solution, it
  635.           generally does so quickly.  The range analysis will not be
  636.           valid since it is calculated for continuous ranges.  EQU
  637.           constraints cannot be analyzed.  The memory requirement
  638.           increases by one constraint and variable for each cutplane
  639.           requested.  Because rounding errors are more pronounced, TZERO:
  640.           is set to .00001.  This can be changed only with /Z:.  Solu-
  641.           tions cannot be guaranteed.  This feature should be used only
  642.           for small problems.
  643.  
  644.  
  645.           - MIXED:
  646.  
  647.           MIXED: is an optional keyword.  Its purpose is to allow the
  648.           user to specify that a mixed-integer solution is to be sought.
  649.  
  650.           LP uses a cutplane algorithm to solve a mixed-integer
  651.           problem.  Any integer constraint should have integer coeffi-
  652.           cients and RHS.  The maximum number of cutplanes that will be
  653.  
  654.                                          10
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.           LP OPERATIONS MANUAL --------------------------------------
  668.  
  669.  
  670.           used to find a solution is to follow the keyword MIXED:.  The
  671.           range is from 0 to 99.  If the maximum number of cutplanes is
  672.           reached, LP exits and uses the current solution.
  673.  
  674.           To specify a decision variable or slack (or surplus) variable
  675.           to have an integer value in the solution, begin the decision
  676.           variable or   constraint name with a CAPITAL letter between I
  677.           and N (I,J,K,L,M,N).
  678.  
  679.           The notes for INTEGER: apply to MIXED:.
  680.  
  681.  
  682.           - VAR: LTE: GTE: EQU:
  683.  
  684.           VAR:, LTE:, GTE:, EQU: are all required keywords.  VAR:
  685.           declares the number of decision variables in the model.  LTE:,
  686.           GTE:, and EQU: declare the number of less-than-equal-to,
  687.           greater-than-equal-to, and equal-to constraints, respectively.
  688.           E.g.,
  689.  
  690.           VAR: 22
  691.           LTE: 5      * 3 of these LTE: constraints have negative RHS's
  692.           GTE: 3
  693.           EQU: 2
  694.  
  695.           NOTE: If the RHS of an LTE: or GTE: is negative, the LTE: or
  696.           GTE: number will be adjusted by LP, e.g., there are 5 LTE:'s
  697.           and 3 GTE:'s, yet 3 LTE:'s have negative RHS's.  LP will
  698.           transform those 3 LTE:'s to GTE:'s and adjust the LTE: number
  699.           to 2 and GTE: to 6.
  700.  
  701.  
  702.           - FUNCTION:
  703.  
  704.           FUNCTION: is a required keyword.  FUNCTION: is to mark the
  705.           start of the problem definition portion of the model.
  706.  
  707.  
  708.           - MIN: MAX:
  709.  
  710.           MIN: and MAX: are required keywords, though only one may be
  711.           specified.  MIN: indicates to LP that the objective function
  712.           following is a cost function that is to be minimized; MAX:
  713.           indicates that the function is a profit function that is to be
  714.           maximized. 
  715.  
  716.  
  717.  
  718.  
  719.  
  720.                                          11
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.           LP OPERATIONS MANUAL --------------------------------------
  734.  
  735.  
  736.           - END:
  737.  
  738.           END: is an optional keyword.  Its purpose is to indicate the
  739.           end of the   problem definition portion of the model.  Any data
  740.           following END: is not used.
  741.  
  742.           This keyword is useful if the model is to be extensively
  743.           documented.  All comments that appear before END: will slow the
  744.           parsing process.  Therefore, extensive comments should appear
  745.           after the END: keyword.
  746.  
  747.           NOTE: END: must have nothing else on its line.
  748.  
  749.  
  750.           [OBJECTIVE FUNCTION]
  751.  
  752.           The objective function contains variables and coefficients
  753.           to those variables representing the variable's profit or
  754.           cost.  The coefficients used normally should be positive for
  755.           both profit and cost problems; the values are interpreted
  756.           accordingly by specifing MIN: or MAX:.  If, however, in a
  757.           profit function a cost is associated with a variable, then that
  758.           variable's coefficient should be negative.  Likewise in a cost
  759.           function, if a profit is associated with a variable, its
  760.           coefficient should be negative.
  761.  
  762.           All decision variables (number following VAR:) in the problem
  763.           must be in the objective function, including those with
  764.           coefficients equal to zero (so that LP can later recognize
  765.           them).  E.g.,
  766.  
  767.           FUNCTION:  MAX:  10 VAR01 + 15.59 VAR02 + 0 VAR03 - VAR04+...
  768.  
  769.  
  770.           [VARIABLES]
  771.  
  772.           Variables are used in linear programming problems to represent
  773.           an activity of an operation.  Only decision variables (number
  774.           following VAR:) are to be input to LP.  Slack, surplus, and
  775.           artificial variables of the constraints are created by LP,
  776.           as needed.  These variables take the name of their constraint
  777.           and are preceded by a - for slack, + for surplus, and ! for
  778.           artificial variables.
  779.  
  780.           Each variable may be up to six characters (the first being a
  781.           letter) and must be unique, as must variables within con-
  782.           straints, i.e., don't have two identical variable names in the
  783.           same constraint.  LP has error detection and reporting
  784.           schemes to indicate these type errors.  
  785.  
  786.                                          12
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.           LP OPERATIONS MANUAL --------------------------------------
  800.  
  801.  
  802.  
  803.           Any variable not preceded by a coefficient is given a value of
  804.           1.00.
  805.  
  806.           NOTE: Do not use + or - in a variable name nor use E or D alone
  807.           as a variable name (it would then be interpreted as a number).
  808.  
  809.  
  810.           [CONSTRAINTS]
  811.  
  812.           Constraints are used in linear programming problems to repre-
  813.           sent limitations to the objective function.  For each less--
  814.           than-equal-to (LTE) constraint, LP adds to the objective
  815.           function a slack variable that is named as the constraint,
  816.           preceded by a -, and has a coefficient of 0.  For each GTE
  817.           constraint, a surplus variable is added, preceded by a +,
  818.           with a coefficient of 0.  In addition, one artificial variable
  819.           is added for the GTE with the largest RHS, preceded by a ! and
  820.           a coefficient of BIG-M.  For each EQU an artificial variable,
  821.           preceded by a ! and a coefficient of BIG-M, is added.
  822.  
  823.           The number of each type of constraint is indicated in the
  824.           declaration portion (LTE:, GTE:, EQU:).
  825.  
  826.           Constraints may be entered in any order, but LTE, GTE, EQU is
  827.           recommended.
  828.  
  829.           Each constraint is to be named (as the variables are), should
  830.           include only the non-zero variables, and end with the RHS value
  831.           preceded by the corresponding relational operator (<=, >=, =).
  832.           E.g.,
  833.  
  834.           CON001  5X11 -X22 <= 5000.
  835.  
  836.  
  837.           - SLACK
  838.  
  839.           For each LTE constraint in the linear programming problem,
  840.           LP adds a slack variable.  This slack variable is to
  841.           represent the amount of unused capacity.  If, for instance,
  842.           the total number of hours available for use of a machine is
  843.           280 per month, then if in the optimal solution the total hours
  844.           for that machine is 260, then 20 hours is unused, or slack.
  845.  
  846.           This slack capacity has an associated shadow price which
  847.           indicates the rate of change of the value of the objective
  848.           function when the available resource (capacity) varies.  (If
  849.           there is unused capacity then the value of additional capacity
  850.           is 0.00, of course.)  This shadow price is valid only over
  851.  
  852.                                          13
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.           LP OPERATIONS MANUAL --------------------------------------
  866.  
  867.  
  868.           the range of optimality for that variable.  If one unit more
  869.           were available, profit would increase (cost would decrease) by
  870.           the shadow price; if one less unit were available, then profit
  871.           would decrease (cost increase).
  872.  
  873.           A shadow price of zero is given to a slack variable in the
  874.           final solution and also to any alternate optima.
  875.  
  876.           A slack variable is named for its constraint, is preceded by a
  877.           -, and has an objective function coefficient of 0.
  878.  
  879.  
  880.           - SURPLUS
  881.  
  882.           For each GTE constraint in the linear programming problem,
  883.           LP adds a surplus variable.  This surplus variable is to
  884.           represent the amount in excess of demand.  If, for instance,
  885.           the total number of desks needed by contract is 100 per month,
  886.           then if in the optimal solution, the total desks to be produced
  887.           that month is 105, an excess, or surplus, or 5 desks exists,
  888.           relative to the contract constraint.
  889.  
  890.           This surplus demand has an associated shadow price which
  891.           indicates the rate of change of the value of the objective
  892.           function when the requirement (demand) varies.  This shadow
  893.           price is valid only over the range of optimality for that
  894.           variable.  If one unit more were required, profit would
  895.           increase (cost would decrease) by the shadow price; if one less
  896.           unit were required, then profit would decrease (cost increase).
  897.  
  898.           A shadow price of zero is given to a surplus variable in the
  899.           final solution and also to any alternate optima.
  900.  
  901.           A surplus variable is named for its constraint, is preceded by
  902.           a +, and has an objective function coefficient of 0.
  903.  
  904.  
  905.           - ARTIFICIAL
  906.  
  907.           For each EQU constraint in the linear programming problem,
  908.           LP adds an artificial variable.  For the GTE constraint with
  909.           the largest RHS, LP adds an artificial variable.  The other
  910.           GTE constraints are temporarily transformed into LTE con-
  911.           straints by multipling through by -1.
  912.  
  913.           This is a requirement for starting the SIMPLEX algorithm.  If
  914.           there are no GTE constraints, a dummy artificial variable is
  915.           added, nonetheless.
  916.  
  917.  
  918.                                          14
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.           LP OPERATIONS MANUAL --------------------------------------
  932.  
  933.  
  934.           An artificial variable is named for its constraint, is preceded
  935.           by a !, has an objective function coefficient of BIG-M and, if
  936.           in the final solution, must have an activity level of zero.
  937.  
  938.           NOTE: If an artificial variable of a redundant equality
  939.           constraint occurs in the solution with an activity level of
  940.           zero, the sensitivity analysis and shadow prices may have been
  941.           grossly misstated.  Therefore, it is suggested that those
  942.           equality constraints with artificial variables in the final
  943.           solution (indicated by a !) be removed from the model or
  944.           changed to a GTE and the model run again.
  945.  
  946.  
  947.           [DISPLAY SCREEN]
  948.  
  949.           Date, time, coprocessor status(87 or EmuLATION)/speed index-
  950.           (PC=1.0), virtual memory status, and available memory remaining
  951.           are shown on top line.
  952.  
  953.           The FILES In/Out display the rightmost 20 characters of the
  954.           filenames.  OPTIONS displays the status of the output switches.
  955.  
  956.           If degeneracy is detected, DEGENERATE is displayed below PROFIT
  957.           EVALUATION.
  958.  
  959.           INTEGER, MIXED, BIG-M, and TZERO are displayed.
  960.  
  961.           Constraint and variable counts are displayed.
  962.  
  963.           The SIMPLEX STATUS indicates the time the SIMPLEX algorithm was
  964.           entered and its estimated finish.
  965.  
  966.           Iterations equals SIMPLEX pivots.
  967.  
  968.           Elapsed time is actual time spent in SIMPLEX (which excludes
  969.           tableau output and cutplane formulation).
  970.  
  971.           PROFIT EVALUATION is the function value at the current
  972.           iteration.
  973.  
  974.           FILE DISPOSITION lists files in queue.  The status of the
  975.           current file is continually displayed.
  976.  
  977.  
  978.           [OUTPUT]
  979.  
  980.           The output may be sent either to a disk file or directly to a
  981.           printer.  Output may include the problem definition listings,
  982.  
  983.  
  984.                                          15
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.           LP OPERATIONS MANUAL --------------------------------------
  998.  
  999.  
  1000.           a condensed matrix map, tableaux, and solution analysis in
  1001.           addition to the final solution.
  1002.  
  1003.           ASCII output is formatted to 132 columns and a page break is
  1004.           generated for each page with appropriate section headings.
  1005.           Beginning each output are the necessary printer control codes
  1006.           for the 132 column output and 88 lines/page.  Ending each
  1007.           output are the codes to restore the printer to normal.  These
  1008.           codes are EPSON compatible printer codes and work with the most
  1009.           dot-matrix printers.
  1010.  
  1011.           Disk output may be edited by any ASCII text editor, imported to
  1012.           wordprocessor programs, or sent directly to a WKS spreadsheet
  1013.           file.
  1014.  
  1015.           NOTE: Make sure that sufficient disk space is available if
  1016.           output is directed to disk - especially a 360KB floppy.
  1017.  
  1018.  
  1019.           - LISTING SECTION
  1020.  
  1021.           The listing section is the LP interpretation of the data
  1022.           file.  The data in this section is the actual data used by the
  1023.           program.  If LISTING: has been requested then the objective
  1024.           type (maximization or minimization), the number of variables,
  1025.           and the variables and coefficients are displayed, 4 per line.
  1026.           The constraints follow.
  1027.  
  1028.           For each of the constraints, the name, row position in the
  1029.           initial tableau, coefficient and name for non-zero variables is
  1030.           output followed by the operator (<=, >=, =) and RHS.  If the
  1031.           RHS was negative, an N precedes this.
  1032.  
  1033.           If LP detects an error, such as a duplicate variable name,
  1034.           and listing has been requested, then the error message is
  1035.           output at the point of the error.  If no listing has been
  1036.           requested, the error message alone is output.
  1037.  
  1038.  
  1039.           - MAP SECTION
  1040.  
  1041.           The map section contains a condensed listing of the initial
  1042.           matrix including the decision variables and constraints.  Atop
  1043.           each map section page a legend of the symbols used is shown.
  1044.           The map heading showing the variable names follows.  The
  1045.           objective function and variable symbols are next, and for each
  1046.           constraint, its type, name, initial variable  coefficients,
  1047.           plus RHS value, are shown.
  1048.  
  1049.  
  1050.                                          16
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.           LP OPERATIONS MANUAL --------------------------------------
  1064.  
  1065.  
  1066.           The map is useful for debugging.  It can show most wildly-off
  1067.           data entries, as well as positional type errors.
  1068.  
  1069.           NOTE: If output to a printer, the map should extend no more
  1070.           than the columns available with the printer.  Printers with 132
  1071.           columns can print up to 60 variables/line before the following
  1072.           data wraps to the next line.  Many text editors allow column
  1073.           widths of 512 characters or more.  With such an editor, the map
  1074.           can be displayed without the confusing wrap-around.
  1075.  
  1076.  
  1077.           - TABLEAU SECTION
  1078.  
  1079.           The tableau section contains the objective function, its
  1080.           evaluation, the basic variables, matrix coefficients, and RHS's
  1081.           at that particular tableau.  Either the initial and last
  1082.           tableaux or all tableaux may be output, depending on TABLEAU:.
  1083.  
  1084.           The tableaux can be used for debugging.  It is a detailed
  1085.           version of the matrix map, and is available at every iteration,
  1086.           whereas the map is available for the initial tableau only.  It
  1087.           also can display all the variables without wrap-around problems
  1088.           since it formats the output for 8 variables per line, using as
  1089.           many lines as are necessary.
  1090.  
  1091.           For ease of spotting, a Z follows the objective function
  1092.           evaluation, and an R follows every RHS.
  1093.  
  1094.           The SIMPLEX algorithm as implemented in LP always solves the
  1095.           problem as a maximization type.  Minimization problems have the
  1096.           original objective function multiplied through by -1.  This
  1097.           will in no way affect the outcome.  It is mentioned here since
  1098.           the label MAXIMIZE is at the beginning of each tableau.
  1099.  
  1100.  
  1101.           - ANALYSIS SECTION
  1102.  
  1103.           The analysis section contains a wealth of information that the
  1104.           user will find extremely useful.  This section is divided into
  1105.           two sections, the variable summary, and the constraint summary.
  1106.  
  1107.           Within the variable summary (for each variable) an indication
  1108.           is given if that variable is an alternate optima, the activity
  1109.           level of that variable (blank if not in the solution), its
  1110.           shadow price, and a sensitivity analysis (or range of optimal-
  1111.           ity) of the input coefficient.  This ranging indicates the
  1112.           lower and upper values that the input coefficient may take,
  1113.           everything else remaining the same, and not alter the solution
  1114.           set (activities and levels of the solution).  Where a range is
  1115.  
  1116.                                          17
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.           LP OPERATIONS MANUAL --------------------------------------
  1130.  
  1131.  
  1132.           exceeded, the name of the variable ENTERING the basis is given
  1133.           (though not necessarily the final solution).
  1134.  
  1135.           In the constraint summary for each constraint, its type, amount
  1136.           of slack/surplus, shadow price, and range of optimality for the
  1137.           RHS value is given.  Where a range is exceeded, the name of the
  1138.           variable EXITING the basis is given.
  1139.  
  1140.  
  1141.           - SOLUTION SECTION
  1142.  
  1143.           The solution section is the bottom line of the linear program-
  1144.           ming problem.  It indicates a set of variables and activity
  1145.           levels that optimizes the objective function given the con-
  1146.           straints.
  1147.  
  1148.           The objective function evaluation is the first entry in this
  1149.           section and equals the optimal profit or cost. Each of the
  1150.           solution variables, its associated activity level, input
  1151.           coefficient, and extended amount (of profit or cost) follow.
  1152.  
  1153.           NOTE: The FUNCTION activity level represents the optimal value
  1154.           of the profit function (maximize) or cost function (minimize).
  1155.           It will normally have a positive value - a cost function should
  1156.           be interpreted as having this much cost.  Each of the extended
  1157.           amounts are likewise representing profit or cost.
  1158.  
  1159.           NOTE: There should be no artificial variables (!) in the
  1160.           solution set unless the activity level of that variable is
  1161.           zero.  If positive, the problem is considered infeasible.
  1162.  
  1163.  
  1164.           [ALTERNATE OPTIMA]
  1165.  
  1166.           ALTERNATE OPTIMA, or ALT OPT, indicates that a variable not in
  1167.           the solution set was qualified to be so.  Its shadow price will
  1168.           necessarily be zero.  To force this variable into the solution
  1169.           set, scan over to the range analysis for that variable.
  1170.           Altering that variable's input to exceed that range by a small
  1171.           amount will cause the alternate variable to most likely enter
  1172.           the solution (solve the problem again).  Additionally, re-
  1173.           arranging variable or constraint order may cause the alternate
  1174.           to enter the solution.  Best, though, is to use a GTE inequal-
  1175.           ity at the level required for that variable.
  1176.  
  1177.           If the LP problem is found to be unbounded, the variable that
  1178.           is responsible is indicated by UNB in the ALT OPT column.
  1179.  
  1180.  
  1181.  
  1182.                                          18
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.           LP OPERATIONS MANUAL --------------------------------------
  1196.  
  1197.  
  1198.           NOTE: If after the first run, you wish to FORCE an alternate
  1199.           optimum into the solution, DO NOT use an equality constraint.
  1200.           Instead, use a >= inequality.  E.g., X22 is ALT OPT - use
  1201.           CONADD X22 >= 50 as a new constraint, not CONADD X22 = 50.
  1202.  
  1203.  
  1204.           [ACTIVITY LEVEL]
  1205.  
  1206.           Activity level is the value that a variable is to take in order
  1207.           to achieve the optimal profit (or cost).  Blank activity levels
  1208.           should be interpreted as being zero.  The activity level of
  1209.           FUNCTION in the solution section should be interpreted as the
  1210.           optimal profit or cost evaluation of the objective function.
  1211.           It is normally positive.
  1212.  
  1213.  
  1214.           [SHADOW PRICE]
  1215.  
  1216.           Shadow prices fall into two categories.
  1217.  
  1218.           One category indicates the rate of change in the objective
  1219.           function evaluation if an activity that is not in the solution
  1220.           set is introduced in the solution anyway.  This marginal cost
  1221.           represents the amount by which that activity, or variable, is
  1222.           'too expensive' to be included in the solution set.  This
  1223.           category is attributable to the decision variables in the
  1224.           VARIABLE SUMMARY.
  1225.  
  1226.           The other category indicates the rate of change in the objec-
  1227.           tive function evaluation when the RHS value of a constraint
  1228.           changes.  This marginal cost represents the amount by which the
  1229.           objective function value will vary with changes in the RHS.
  1230.           This category is attributable to the constraints (and the slack
  1231.           and surplus variables in the VARIABLE SUMMARY) in the CON-
  1232.           STRAINT SUMMARY.
  1233.  
  1234.           Shadow prices are valid only over that variable/constraint's
  1235.           range of optimality.
  1236.  
  1237.  
  1238.           [UNUSED CAPACITY]
  1239.  
  1240.           The unused capacity in the constraint summary of the analysis
  1241.           section represents the amount of left-over resource for that
  1242.           LTE constraint.  It is included in the solution set as a
  1243.           slack variable.
  1244.  
  1245.  
  1246.  
  1247.  
  1248.                                          19
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.           LP OPERATIONS MANUAL --------------------------------------
  1262.  
  1263.  
  1264.           [EXCESS DEMAND]
  1265.  
  1266.           The excess demand in the constraint summary of the analysis
  1267.           section represents the amount of over-produced requirement for
  1268.           that GTE constraint.  It is included in the solution set as a
  1269.           surplus variable.
  1270.  
  1271.  
  1272.           [RANGE ANALYSIS]
  1273.  
  1274.           Range analysis, also called sensitivity analysis, gives the
  1275.           user useful information on the sensitivity of the data used
  1276.           in the problem.  Since accurate data may be expensive to
  1277.           obtain, a model using the best available data can be used
  1278.           initially.  The analysis section can then be used to determine
  1279.           which data are the most sensitive.  These can then be further
  1280.           researched.
  1281.  
  1282.           Range analysis is performed on each of the variables and
  1283.           constraints.  For each variable, its input coefficient is
  1284.           analyzed to see over which range of values it may take while
  1285.           not altering the solution set, everything else remaining the
  1286.           same.
  1287.  
  1288.           Likewise for each constraint, except its RHS value is analyzed.
  1289.           Additionally, the variable ENTERING (variable EXITING for
  1290.           constraints) the basis (solution set) when a range is exceeded
  1291.           is shown.
  1292.  
  1293.           This variable may or may not be part of the final solution set,
  1294.           since additional iterations of the simplex algorithm may be
  1295.           needed.
  1296.  
  1297.  
  1298.           [DEGENERATE]
  1299.  
  1300.           If there are redundant constraints in a problem, it is possible
  1301.           that a degenerate solution may develop (if so, DEGENERATE will
  1302.           be displayed on the screen).  Degeneracy in itself does not
  1303.           pose any problems, usually.  It may, however, lead to a problem
  1304.           known as cycling.  Cycling, once developed, causes the computer
  1305.           code to endlessly cycle with no improvement in the objective
  1306.           function.  Fortunately, this seldom occurs with real-world
  1307.           problems.  Altering the order of constraints or variables
  1308.           usually corrects this problem, should it ever occur.
  1309.  
  1310.           Another problem associated with degeneracy is when an ALT OPT
  1311.           variable is forced into a succesive LP solution set by
  1312.           using an equality (=) constraint.  This constraint will
  1313.  
  1314.                                          20
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.           LP OPERATIONS MANUAL --------------------------------------
  1328.  
  1329.  
  1330.           necessarily be redundant.  Use an inequality (>=), instead.
  1331.           Otherwise, the sensitivity analysis and shadow prices may be
  1332.           grossly misstated.  This problem is easily identified by: one,
  1333.           an artificial(!) variable(s) will be in the solution set (at
  1334.           zero) and two, a shadow price(s) will be grossly misstated (by
  1335.           BIG-M).  At this point, the equality constraint(s) with its
  1336.           artificial (!) in the solution should be removed or changed to
  1337.           an inequality (>=), and rerun.  Degeneracy may occur even if
  1338.           there are no redundant constraints.
  1339.  
  1340.           [ABORTING]
  1341.  
  1342.           Pressing Esc will have the following effect on LP.  If LP
  1343.           is:
  1344.  
  1345.           PARSING DECLARATIONS, or
  1346.           PARSING OBJECTIVE FUNCTION, or
  1347.           PARSING CONSTRAINTS, or
  1348.           OUTPUTTING SOLUTION pressing Esc will end the current problem,
  1349.            or if:
  1350.           OUTPUTTING MAP, or
  1351.           OUTPUTTING TABLEAU, or
  1352.           OUTPUTTING ANALYSIS pressing Esc will skip that particular
  1353.           section, or if:
  1354.           FINDING FEASIBLE SOLUTION, or
  1355.           ADDING CUTPLANE, or
  1356.           OPTIMIZING pressing Esc will cause LP to complete the
  1357.           current simplex iteration as if it had found an optimal
  1358.           solution.
  1359.  
  1360.           Also available is an immediate abort key: <Ctrl><F1>.  Upon
  1361.           pressing this key combination, the entire LP session is
  1362.           immediately aborted to DOS.
  1363.  
  1364.  
  1365.           [SPREADSHEET]
  1366.  
  1367.           LP allows the user to use LOTUS 1-2-3 or Symphony as a tool
  1368.           to create LP data files.  1-2-3 versions through 2.01 and
  1369.           Symphony through 1.1 can be directly read by LP.  Future
  1370.           versions of these spreadsheets may or may not produce compat-
  1371.           ible file ID bytes.  If a version later than those above is
  1372.           used and LP reports an unknown LOTUS file format (unlikely),
  1373.           save the 1-2-3 data in WKS, WK1, WRK, WR1 format.  These
  1374.           formats are known to be compatible with LP.
  1375.  
  1376.           If the OUTPUT: specifies that output should be sent to a file
  1377.           with an extension of WKS, then LP will format the analysis
  1378.           and solution sections in LOTUS 1-2-3 version 1A format.  This
  1379.  
  1380.                                          21
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.           LP OPERATIONS MANUAL --------------------------------------
  1394.  
  1395.  
  1396.           file can be read by many spreadsheet programs, not just those
  1397.           of LOTUS.  The listings, matrix map, and tableaux will also be
  1398.           output, but in ASCII format.  If there are no errors, this
  1399.           ASCII output will be overwritten by the analysis and solution
  1400.           sections in WKS format.
  1401.  
  1402.  
  1403.           [LPEDIT.COM]
  1404.  
  1405.           To put a linear program in LP readable form requires an
  1406.           ASCII text editor (or Lotus, et. al).  Many word processors
  1407.           also allow their output to be in ASCII and even some spread-
  1408.           sheets programs can 'print' to an ASCII file.
  1409.  
  1410.           Included with the LP package is a full-screen text editor
  1411.           that allows basic text editing.  To edit a new file, include
  1412.           the new filename on the command line after LPEDIT, or, use an
  1413.           existing one to edit an old file.   E.g.,
  1414.  
  1415.                 C>LPEDIT EXAMPLE.LP
  1416.  
  1417.           Commands are issued via the F keys and are displayed on the
  1418.           last line.  The maximum file size is 64KB.  Maximum editing
  1419.           width of a line is 248 columns.  The keypad keys are used to
  1420.           position the cursor and <Ctrl> left/right-arrow is used to pan
  1421.           left and right.  A minimum of 68K of free RAM is needed by the
  1422.           editor.  If 132K is available, print/mark/cut/paste are
  1423.           functional.
  1424.  
  1425.           NOTE: The F3-PRINT key is used to print marked text only.
  1426.  
  1427.  
  1428.           [VIRTUAL MEMORY]
  1429.  
  1430.           For problems too large for available RAM, use the /VM command
  1431.           line switch.  This will write the matrix to disk and call it
  1432.           in as needed.  The speed penalty will be very dependent on the
  1433.           speed of your virtual storage device.  If you have a RAM disk
  1434.           in extended or expanded RAM,  expect the problem to take 3
  1435.           times longer than if you had that RAM available to DOS.  Not
  1436.           bad when you consider the problem could not be solved at all
  1437.           without this feature.
  1438.  
  1439.           If you use this mode, INTEGER, and MIXED will be turned off.
  1440.           Tableaux can only be printed by using LPDUMP.EXE, and only if
  1441.           TABLEAU was YES.
  1442.  
  1443.           LP will use the DOS variable TMP to locate $LP_261.VMM,
  1444.  
  1445.  
  1446.                                          22
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.           LP OPERATIONS MANUAL --------------------------------------
  1460.  
  1461.  
  1462.           and, if TABLEAU is YES, $LP_261.DIC.  If TMP is not defined,
  1463.           the current directory is used.
  1464.  
  1465.  
  1466.           [LPDUMP.EXE]
  1467.  
  1468.           This program will dump the final tableau of problems solved
  1469.           with the /VM switch to a WKS file.  TABLEAU must have been YES.
  1470.           LPDUMP will use the $LP_261.VMM & $LP_261.DIC files to create
  1471.           a Lotus 1-2-3 1A WKS spreadsheet, readable by most spreadsheet
  1472.           programs.
  1473.  
  1474.           The number of columns that your spreadsheet can handle should
  1475.           be at least the value of RHS + 1 (RHS can be found in the
  1476.           $LP_261.DIC file).
  1477.  
  1478.           LPDUMP.EXE uses the TMP DOS variable to locate the VMM, DIC, &
  1479.           WKS files or will use the current directory if TMP is not
  1480.           defined.    E.g.,
  1481.  
  1482.                 C>LPDUMP
  1483.  
  1484.           will use $LP_261.VMM, $LP_261.DIC, $LP.WKS or,
  1485.  
  1486.                 C>LPDUMP filename
  1487.  
  1488.           will use filename.VMM, filename.DIC, filename.WKS.  You are
  1489.           given the chance to alter any of the pathnames in LPDUMP.
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.                                          23
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.           LP OPERATIONS MANUAL --------------------------------------
  1526.  
  1527.  
  1528.           - $LP_261.VMM
  1529.  
  1530.           $LP_261.VMM is the virtualized matrix.  Its format is:
  1531.  
  1532.                                                     x=don't care
  1533.                                                  OFC=obj func coef
  1534.                                                    m=RHS-1
  1535.           x   OFC1  OFC2  OFC3  ...  OFCm   Z      Z=obj func value
  1536.           B1  MC11  MC12  MC13  ...  MC1m   RHS1   RHS=right-hand side
  1537.           B2  MC21  MC22  MC23  ...  MC2m   RHS2   MC=matrix coefficient
  1538.           B3  MC31  MC32  MC33  ...  MC3m   RHS3   B=basis
  1539.           Bn  MCn1  MCn2  MCn3  ...  MCnm   RHSn   n=# of constraints
  1540.  
  1541.           It's streamed without any delimiters.  Each value is an IEEE
  1542.           8-byte double-precision float.  The matrix is in row-major
  1543.           order.  To determine where each row begins use this formula:
  1544.  
  1545.           FirstByteOfRow(i) = (i-1)*((RHS + 1)*8) where i is 1-based.
  1546.           RHS can be found in $LP_261.DIC.
  1547.  
  1548.  
  1549.           - $LP_261.DIC
  1550.  
  1551.           $LP_261.DIC is only created if TABLEAU is YES.  It is an ASCII
  1552.           text file describing the LP problem.  CON is number of con-
  1553.           straints (rows) not including the objective function RHS is the
  1554.           right-hand side column of the matrix VAR is the number of
  1555.           decision variables LTE is the number of less-than-or-equal to
  1556.           constriants GTE is the number of greater-than-or-equal to
  1557.           constriants EQU is the number of equal to constriants.  The
  1558.           names of the variables in the basis (Bn above) follow BASIS.
  1559.           The column names (OFCm above) follow COLUMN NAMES.
  1560.  
  1561.  
  1562.           [ERRORS]
  1563.  
  1564.  
  1565.           - FILE
  1566.  
  1567.           File errors occur when LP is unable to access either the
  1568.           input data file or create the output file.  These type errors
  1569.           cause LP to abort to the next file in the queue.
  1570.  
  1571.           FILE NOT FOUND indicated file was not found
  1572.           CANNOT OPEN INPUT indicated file cannot be opened (bad name)
  1573.           CANNOT OPEN OUTPUT indicated file cannot be opened (bad name)
  1574.  
  1575.  
  1576.  
  1577.  
  1578.                                          24
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.           LP OPERATIONS MANUAL --------------------------------------
  1592.  
  1593.  
  1594.           - DECLARATION
  1595.  
  1596.           Declaration errors occur when LP is unable to properly
  1597.           format the model as given.  Since an output channel may not
  1598.           have been assigned, error reporting is done on the disposition
  1599.           line of the display screen.  If a single error was detected,
  1600.           the error itself, followed by its code, is listed on this line.
  1601.           If, however, more than one error was detected, the error
  1602.           message *** MULTIPLE DECLARATION ERRORS is listed followed by a
  1603.           code indicating the errors.  LP then aborts to the next file
  1604.           in the queue.   The error codes are:
  1605.  
  1606.           00000001 VAR: NOT FOUND      In the case of multiple errors,
  1607.           00000010 LTE: NOT FOUND      combinations of these codes will
  1608.           00000100 GTE: NOT FOUND      be output, e.g., 00001001 means
  1609.           00001000 EQU: NOT FOUND      that VAR: and EQU: were not found
  1610.           00010000 FUNCTION: NOT FOUND in the LP data file.
  1611.           00100000 MAX: or MIN: NOT FOUND
  1612.           01000000 UNKNOWN CHARACTER IN DECLARATION
  1613.  
  1614.  
  1615.           - OBJ FUNCTION
  1616.  
  1617.           Objective function errors occur when LP is unable to
  1618.           properly read and interpret the objective function.  Since an
  1619.           output channel will have been made by this point, the error
  1620.           report is sent to the output.  The display screen will show the
  1621.           error message *** OBJECTIVE FUNCTION ERROR and the error code
  1622.           and LP aborts to the next file in the queue.  The error
  1623.           codes are:
  1624.  
  1625.           00000001 FORMULATION BAD NEAR VARIABLE  too many operators(+/-)
  1626.           00000010 UNKNOWN VARIABLE # indicated variable not expected
  1627.           00000100 DUPLICATE VARIABLE # indicated variable used > once
  1628.  
  1629.           Multiple errors are not detected.
  1630.  
  1631.  
  1632.           - CONSTRAINT
  1633.  
  1634.           Constraint errors occur when LP is unable to properly read
  1635.           and interpret a constraint.  Since an output channel will have
  1636.           been made by this point, the error report is sent to the
  1637.           output.  The display screen shows the error message ***
  1638.           CONSTRAINT ERROR and the error code and LP aborts to the
  1639.           next file in the queue.  The error codes are:
  1640.  
  1641.  
  1642.  
  1643.  
  1644.                                          25
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.           LP OPERATIONS MANUAL --------------------------------------
  1658.  
  1659.  
  1660.           00000001 FORMULATION BAD too many operators (+/-)
  1661.           00000010 UNKNOWN VARIABLE indicated variable not in FUNCTION:
  1662.           00000100 DUPLICATE NAME indicated name used more than once
  1663.           00001000 ILLEGAL CONSTRAINT NAME indicated name is illegal
  1664.           00010000 LTE: count does not match declaration
  1665.           00100000 GTE: count does not match declaration
  1666.           01000000 EQU: count does not match declaration
  1667.           10000000 MATRIX ALLOCATION OVERRUN LTE:+GTE: does not match
  1668.  
  1669.  
  1670.           - 123 READ
  1671.  
  1672.           When input is taken from a LOTUS file the following errors may
  1673.           occur.  These cause LP to abort to the next file in the
  1674.           queue.
  1675.  
  1676.           FILE NOT FOUND indicated file was not found
  1677.           CANNOT OPEN INPUT indicated file cannot be opened (bad name)
  1678.           UNKNOWN OR CORRUPT LOTUS FILE format unknown
  1679.  
  1680.  
  1681.           - 123 WRITE
  1682.  
  1683.           When ouput is sent to a WKS file the following error may occur.
  1684.           This causes LP to abort to the next file in the queue.
  1685.  
  1686.           CANNOT OPEN OUTPUT indicated file cannot be opened (bad name)
  1687.  
  1688.  
  1689.           - INFEASIBLE MODEL
  1690.  
  1691.           An INFEASIBLE MODEL error occurs if, at the time SIMPLEX
  1692.           algorithm has found an optimal solution, an artificial variable
  1693.           remains in the basis (solution set) at a positive activity
  1694.           level.  The next file is begun.
  1695.  
  1696.  
  1697.           - UNBOUNDED MODEL
  1698.  
  1699.           An UNBOUNDED MODEL error occurs if, at anytime in the SIMPLEX
  1700.           algorithm, a variable can be introduced without bound.  The
  1701.           unbounded variable is identified by UNB in the ALT OPT column.
  1702.           The next file is begun.
  1703.  
  1704.  
  1705.           - ABORT
  1706.  
  1707.           An ABORT error occurs if the user presses <Esc> to abort the
  1708.           current problem that LP is solving or if the user presses
  1709.  
  1710.                                          26
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.           LP OPERATIONS MANUAL --------------------------------------
  1724.  
  1725.  
  1726.           <Ctrl><F1> to immediately abort the LP session to the
  1727.           system.
  1728.  
  1729.           NOTE: If Esc is pressed in certain LP routines, that and
  1730.           only that routine is exited early.  Output will indicate this
  1731.           if it occurs.
  1732.  
  1733.  
  1734.           - RUN-TIME
  1735.  
  1736.           A RUN-TIME error may occur under certain circumstances.  These
  1737.           are rare and in such an event, the LP session is aborted
  1738.           to DOS.
  1739.  
  1740.                   6 NUMBER OVERFLOW      24 DEVICE TIMEOUT
  1741.                   7 OUT OF FAR MEMORY    25 DEVICE FAULT
  1742.                  11 DIVISION BY ZERO     27 OUT OF PAPER
  1743.                  14 OUT OF NEAR MEMORY   61 DISK FULL
  1744.                                          71 DRIVE NOT READY
  1745.  
  1746.           BASIC error numbers 52 to 76 are mostly hardware/disk related.
  1747.           If a run-time error continues to occur see REPORT BUGS TO...
  1748.           In addition to the RUN-TIME error number, the MODULE and LEVEL
  1749.           at which the error occured are indicated on the disposition
  1750.           line.
  1751.  
  1752.           Run-time errors 7 and 14 are handled specially by LP.  The
  1753.           message OUT OF MEMORY will be displayed on the disposition line
  1754.           with no MODULE or LEVEL report available.  This generally means
  1755.           that the problem you have specified is too large for the RAM
  1756.           available.
  1757.  
  1758.  
  1759.           [REPORT BUGS TO...]
  1760.  
  1761.           Though LP has been through significant testing, minor bugs
  1762.           may occur.  If you experience any problems in using LP write
  1763.           a complete description of the problem using BUG REPORT FORM
  1764.           form as a guide.  Also include a listing of the model, and if
  1765.           possible, include the model on a floppy.  Send this to:
  1766.  
  1767.                         Cornel Huth
  1768.                         ATTN: LP v2.61 REPORT
  1769.                         6402 Ingram Rd.
  1770.                         San Antonio, TX  78238
  1771.  
  1772.           If necessary, call the BBS at (210)684-8065 (5pm-9am Central Time).
  1773.           Assistance can be given only in the use of LP, not with the
  1774.           linear programs/models that need to be formulated.
  1775.  
  1776.                                          27
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.           LP OPERATIONS MANUAL --------------------------------------
  1790.  
  1791.  
  1792.           - BUG REPORT FORM
  1793.  
  1794.           Program: LP v2.61  S/N:       -   Have you registered?
  1795.                                     ------- --                      ----
  1796.           Name:
  1797.                 --------------------------------------------------------
  1798.           Addr:
  1799.                 --------------------------------------------------------
  1800.  
  1801.                 --------------------------------------------------------
  1802.  
  1803.                 --------------------------------------------------------
  1804.  
  1805.           Phone: (     )        -           ext.        (only if collect)
  1806.                          ------   ---------      ------
  1807.  
  1808.           Describe the problem, the circumstances of its happening, and
  1809.           any errors reported by LP or the system.  Include a descrip-
  1810.           tion of the hardware and operating system and any other
  1811.           software loaded in memory.
  1812.  
  1813.           Any suggestions for improvement are welcome.    
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.                                          28
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.           LP OPERATIONS MANUAL --------------------------------------
  1856.  
  1857.  
  1858.           [SPECIFICATIONS]
  1859.  
  1860.           MINIMUM REQUIREMENTS:
  1861.  
  1862.           256K IBM-PC or compatible
  1863.           DOS 2.1, one floppy drive
  1864.           216,000 bytes free of system memory as reported by CHKDSK.EXE
  1865.  
  1866.           The maximum problem size depends on available memory.  Use this
  1867.           formula to APPROXIMATE the number of K bytes needed by LP as
  1868.           displayed in the upper-right corner of the display screen at
  1869.           start-up (at 99%).
  1870.  
  1871.           {[(VAR:+LTE:+GTE:+EQU:+2)*(LTE:+GTE:+EQU:+1)*8]+32000}/1024 = K
  1872.           RAM needed
  1873.  
  1874.           This is about 100 constraints and 400 variables, not counting
  1875.           slacks.  In /VM mode you will be able to solve much larger
  1876.           problems, typically 1000 variables and 1000 constraints on 640K
  1877.           machines (with adequate virtual storage and time).
  1878.  
  1879.           The 8087/80287 math coprocessor will be used if available.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.                                          29
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.           LP OPERATIONS MANUAL --------------------------------------
  1922.  
  1923.  
  1924.           [INCLUDED FILES LIST]
  1925.  
  1926.           README          initial instructions & information
  1927.           LP.EXE          linear programming optimizer
  1928.           LPHELP.EXE      help program
  1929.           LPDEMO.EXE      demonstration program
  1930.           LPDUMP.EXE      dumps /VM final tableau to WKS
  1931.           LPEDIT.COM      full-screen ASCII text editor
  1932.           LP.HLP          data file used by the help program
  1933.           LP.MAN          LP Operations Manual
  1934.           EXAMPLE.LP      ASCII LP data file (simple example)
  1935.           INTEGER.ILP     ASCII LP data file (all-integer example)
  1936.           MIXED.MLP       ASCII LP data file (mixed-integer example)
  1937.           EXAMPLE.WKS     WKS LP data file (similar to EXAMPLE.LP)
  1938.           PROJECT.ILP     ASCII LP data file (project assignment example)
  1939.           NRC85.WKS       WKS LP data file (diet example)
  1940.  
  1941.           NOTE: Be sure to make a working copy of this disk. 
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.                                          30
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.           LP OPERATIONS MANUAL --------------------------------------
  1988.  
  1989.  
  1990.           [SHAREWARE]
  1991.  
  1992.           Shareware is a means that software authors have of releasing
  1993.           their product without the overhead costs of marketing and
  1994.           packaging.  This gives users the option of obtaining a quality
  1995.           product at a truly reasonable price.  It also may be the only
  1996.           means of obtaining software that is not available elsewhere, at
  1997.           any price.
  1998.  
  1999.           What this means is that users can use the product on a trial
  2000.           basis without any obligation to purchase the software.
  2001.           Generally, users may freely distribute the product to others
  2002.           provided that any licensing agreement or stipulations that the
  2003.           author has specified be followed.
  2004.  
  2005.           The shareware concept does not allow a user to continue using
  2006.           the product   after the trial period unless the license
  2007.           agreement has been fulfilled or otherwise been given permission
  2008.           by the author.
  2009.  
  2010.           ************************* NOTICE ******************************
  2011.           All LP *.EXE programs in the INCLUDED FILES LIST are the
  2012.           sole property of Cornel Huth and are Copyright 1988-1993 by
  2013.           Cornel Huth.
  2014.  
  2015.           - LICENSE AGREEMENT
  2016.  
  2017.           USAGE:  LP may be used on a trial basis for 30 days.
  2018.           After this, the user promises to fulfill this license agreement
  2019.           or discontinue using LP.  By using LP you agree to abide
  2020.           by this LICENSE AGREEMENT.
  2021.  
  2022.           FULFILLMENT:  A limited license for using LP on a single
  2023.           computer may be purchased for $50.00.  Site licenses are
  2024.           available.  After receiving payment, a current, registered
  2025.           version and receipt of payment is sent.
  2026.  
  2027.           DISTRIBUTION:  LP may be distributed without the author's
  2028.           permission only if the following three stipulations are
  2029.           followed:
  2030.  
  2031.           1.  The LP package must be distributed complete, including
  2032.           ALL files listed in INCLUDED FILES LIST.
  2033.  
  2034.           2.  The LP package CANNOT be sold for profit.  Recovery of
  2035.           costs associated with distribution is allowed (NO PROFIT).
  2036.  
  2037.           3.  ONLY the SHAREWARE version of the LP package may be
  2038.           distributed. 
  2039.  
  2040.                                          31
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.           LP OPERATIONS MANUAL --------------------------------------
  2054.  
  2055.  
  2056.           - REGISTRATION FORM  (Use !ORDER.FRM on the distribution disk)
  2057.  
  2058.           Name of licensee:
  2059.                             -----------------------------------------
  2060.           Amount paid: $           ($50.00 ea.  Site licenses available)
  2061.                          --------- (CHECK/MONEY ORDER, US DOLLARS/US BANK)
  2062.  
  2063.           Comments:
  2064.                    -----------------------------------------------------
  2065.  
  2066.                    -----------------------------------------------------
  2067.  
  2068.           Contact:                        Phone:(    )     -
  2069.                    ----------------------             ----   -----------
  2070.  
  2071.           Would you like to be added to our mailing list?
  2072.                                                           --------------
  2073.           Mail to:
  2074.                    -----------------------------------------------------
  2075.  
  2076.                    -----------------------------------------------------
  2077.  
  2078.                    -----------------------------------------------------
  2079.  
  2080.                    -----------------------------------------------------
  2081.  
  2082.  
  2083.           Send payment to:
  2084.  
  2085.                         Cornel Huth
  2086.                         ATTN: LP v2.61 REGISTRATION
  2087.                         6402 Ingram Rd.
  2088.                         San Antonio, TX  78238 
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.                                          32
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.           LP OPERATIONS MANUAL --------------------------------------
  2120.  
  2121.  
  2122.           [TRADEMARKS]
  2123.  
  2124.           * Microsoft, QuickBASIC, and Excel are registered trademarks of
  2125.           Microsoft Corp.
  2126.  
  2127.           * Lotus, 1-2-3, Symphony are registered trademarks of Lotus
  2128.           Development Corp.
  2129.  
  2130.           * VP-PLANNER is a registered trademark of Paperback Software
  2131.           International
  2132.  
  2133.           * IBM is a registered trademark of International Business
  2134.           Machines Corp.
  2135.  
  2136.  
  2137.  
  2138.  
  2139.           [DISCLAIMER]
  2140.  
  2141.           By using this software you, the user, agree that any and all
  2142.           problems or errors made by or caused by this software is the
  2143.           sole responsibilty of you, the user.
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.                                          33
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.