IOR Tutorial User Manual
3709 Starr King Circle, Palo
Alto, California 94306
IOR Courseware User Manual dated 30 October
2000 ("Manual") written by Accelet
Corporation, (the "Author"), with offices at 3709 Starr King Circle,
Palo Alto, California 9306, for the final product delivery of the Hillier &
Lieberman 7th Edition Java programming project, (the "Work")
according to the contract (Originally dated on 11 July 2000, and later modified
on 11 October 2000) between McGraw-Hill Companies, Inc. (the "Publisher"),
with offices at 1221 Avenue of the Americas, New York, New York 10020, and the author
Accelet Corporation concerning a contribution for a work titled by Hillier
& Lieberman 7th Edition Java programming project.
The Manual provides details computer instructions and some OR Algorithm basics to the users.
Introduction to Interactive
Operations Research Tutorial
IORTutorial has some distinctive features. The most important one is that, for your homework, you will have the opportunity to execute the algorithms interactively - you make the decisions and the computer does the calculating. On the first iteration of most algorithms, you will be told if you have made a mistake. When you finish the problem, you will be able to print out your work on all the iterations into a file to turn in for homework. This tutorial software uses visual interaction to teach the how of algorithms.
Because of its emphasis on teaching algorithms efficiently through interactively executing them for homework, this software is purposely confined to small problems like those in the problems sections of the textbook. If you simply want to solve larger problems (or even small problems) automatically, you should turn to other software packages included in your OR Courseware.
Another distinctive feature of IOR Tutorial is that it is coordinated with the OR Tutor package in your OR Courseware. For many of the algorithms for which an interactive procedure is provided here, a corresponding demonstration example is included in OR Tutor. These demonstration examples have evolving algebraic and geometric displays to clarify what is really going on with the various algorithms and techniques. Whenever a demonstration example is available for the current algorithm, we recommend that you go through it first in OR Tutor before using the corresponding interactive procedure here for the first time.
At the top of the screen, up to five different menu options are available to you. (To activate a menu option, select the appropriate function with the mouse or press Alt + F for the File menu). Once you have done this, you will be given a list of menu items. For example, if you choose the File menu, then the following will appear under the File menu title:
1 New
2 Open
3 Save
4 Print to File
5 Quit
To perform one of these commands, select the appropriate menu item or press the hot key underlined for each item. If you decide not to perform any of these commands, press the ESC key. For some menu options, one choice will have a check mark by it. This choice is either the default response or the most recently selected choice. If this is the one you currently want, you need do nothing and this choice will continue to be the active one. There may be times when a command or menu are unavailable, in which case that command or menu title will appear dimmed. An unavailable command generally will become available as soon as predecessor procedures have been executed.
A description of each of the menus follows:
File: The File menu provides you with a choice of basic filing operations. These include New (to clear the program's memory and start fresh), Open (to load a previously saved file), Save (to save your work), Print to File (to print out your work into a text file), and Quit.
Area: The Area menu provides you with a choice of ten areas of Operations Research, namely, General Linear Programming, The Transportation Problem, Network Analysis, Integer Programming, Nonlinear Programming, Markov Chains, Queueing Theory, Inventory Theory, Markov Decision Processes, and Simulation.
Procedure: Having chosen your general area, the Procedure menu provides you with a choice of procedures, such as enter a model, solve the model with a particular algorithm, etc. Once a procedure is chosen, you may choose "General Introduction to Current Procedure" from the Help menu at any time. You should do this immediately the first time you use a procedure.
A description of the menus continues below:
Option: Having chosen your general area and procedure, this menu provides you with a choice of specific options for how to display or carry out that procedure. (Only a few of the procedures have relevant options in this menu.)
Help: If at ANY time, you don't know how to execute the next computer step, choose "Specific Help on Current Step" from the Help menu. This menu choice displays specific instructions on the screen. Since only brief instructions (if any) are displayed on procedure screens, you probably will need to make frequent use of this menu option the first time you go through a procedure. To receive general information about the current procedure (including problem size limitations), choose "General Introduction to Current Procedure."
When you execute a procedure from the Procedure menu, if any input is required, there will be an editable text field displayed on the screen. The currently selected text field can be selected with the mouse, or moved around the screen with the TAB key. The use of this text field is to signify that input is required. For example, if a number is being asked for (such as the number of variables in a linear programming model), then a number will appear inside the text field. This number is the default response. If you want to change this value, just type the number you want. Nothing more needs to be done to accept the last value appearing there. Pressing the TAB key will automatically move the selected text field to the next spot where input is required.
If you find that you made a mistake at a previous step, you can backtrack to make a correction as far back as you want simply by pressing the BACK button when it is enabled (repeatedly if necessary).
This tutorial software has been written by Accelet Corporation. The project involved JAVA re-engineering of the software package developed by Mark S. Hillier to accompany the preceding two editions (the 5th and 6th editions) of the textbook. The software development team for this project is led by William Y. Sun (wsun@accelet.com), Daniel D. Wang (dwang@accelet.com), and Stanley Y. Wang (swang@accelet.com). Accelet Corporation is a client oriented software solution service provider. For more information about Accelet, please visit its website www.accelet.com.
Although this software package has been carefully tested, no such package can be error free. Therefore, to enable us to further improve the package for future users, we strongly encourage you to report any bugs you think you have found to Accelet Corporation (support@accelet.com) and the co-author, Prof. Fred S. Hillier (fhillier@leland.stanford.edu), via e-mail. Please be as specific as possible. Although we are unable to provide technical support, we will make every effort to correct significant bugs reported to us for the next printing of the book.
This ends the general introduction. You may reread it any time by choosing New under the File menu (be sure to save your work first, as this clears the computer's memory of anything you have done).
Chapter 1 General Linear Programming
1.1 Enter or Revise a General
Linear Programming Model
1.2 Solve Automatically by the Interior-Point
Algorithm
1.3 Set up for the Simplex Method - Interactive
Only
1.4 Solve Interactively by the Simplex Method
1.6 The Modified Simplex Method
Chapter 2 Transportation Problems
2.1 Enter or Revise a Transportation Problem
2.2 Finding an Initial Basic Feasible Solution
2.3 Solve Interactively by the Transportation
Simplex Method
3.1 Interactive Network Simplex Method
4.1 Enter or Revise an Integer Programming Model
4.2 The Binary Integer Programming Model
4.3 The Mixed Integer Programming Model
Chapter 5 Nonlinear Programming
5.1 Interactive One-Dimensional Search
5.3 Interactive Gradient Search
5.4 Interactive Modified Simplex Method
5.5 Interactive Frank-Wolfe Algorithm
5.6 Sequential Unconstrained
Minimization Technique-SUMT
6.1 Entering the Transition Matrix
6.2 Chapman-Kolmogorov Equations
6.3 Steady State Probabilities
8.1 Single Period Model, No Setup
8.2 Single Period Model, With Setup
8.3 Two Period Model, No Setup
8.4 Infinite Period Model, No Setup
Chapter 9 Markov Decision Processes
9.1 Enter Markov Decision Model
9.2 Interactive Policy
Improvement Algorithm-Average Cost
9.3 Interactive Policy
Improvement Algorithm-Discounted
Cost
9.4 Interactive Method of Successive Approximations
10.2 Interactively Simulate a Queueing Problem
This procedure enables you to quickly enter a linear programming model, or to revise a previously entered model.
The model is entered in its original form as described in Section 3.2, without slack variables, etc. The maximum size allowed (counting just decision variables and functional constraints) is 6 variables and 6 constraints.
Detailed computer instructions are
available (Help menu).
Press the ENTER key to complete the entering of the number of variables and the number of constraints.
(It's not necessary to press the ENTER key when editing the other fields.)
If you simply wish to revise the model you entered last (or one you saved and just recalled with the Save and Open commands under the File menu), you do not need to reenter the entire model. Instead, locate the entry by the mouse where you want to revise and then do so.
When you finish entering the model, press the FINISH button, and then return to the Procedure menu. If you wish to solve the model interactively by the Simplex Method, first choose the "Set Up for the Simplex Method - Interactive Only" procedure (to introduce slack variables, etc.).
Enter the linear programming model in its original form (i.e., without slack variables, artificial variables, etc.). Any of the legitimate forms described in Sec 3.2 can be used. When you finish entering or revising the model, there are two techniques available for solving the model under the Procedure menu, Automatic Interior Point and Interactive Simplex Method (for the Interactive Simplex Method procedure, you must first choose "Set up for the Simplex Method - Interactive Only").
Enter the number of
decision variables
Enter the number of decision variables in the original model (not including slack variables, artificial variables, etc.), and then press the ENTER key. Note that the maximum size allowed for the number of decision variables is 6. In subsequent procedures under the Procedure menu, you will be further limited to 10 variables after adding slack variables, surplus variables, etc. (If you will be using the Sensitivity Analysis procedure and will consider the case where a new variable is introduced into the model, you should include the new variable now with all its coefficients set equal to zero.)
Enter the number of
functional constraints
Enter the number of functional constraints in the original model, and then press the ENTER key. Note that the maximum size allowed for the number of functional constraints is 6. (If you will be using the Sensitivity Analysis procedure and will consider the case where a new constraint is introduced into the model, you should include an extra constraint now with all its coefficients and right-hand side set equal to zero.)
Enter the objective
function
Select either Max or Min depending on whether the objective is to maximize or minimize Z.
Enter the coefficients of the variables in the objective function. Enter either integers or decimal numbers.
Enter functional
constraints
For each functional constraint:
1. Enter the coefficients of the variables in the functional constraint. Enter either integers or decimal numbers.
2. Select £, =, or ³ to specify the form of the constraint.
3. Enter the value of the right-hand side in the functional constraint. Enter either an integer or a decimal number.
Enter the lower bounds
of the decision variables
The procedure for entering the model assumes that all of the variables have nonnegativity constraints and no other lower-bound constraints.
If this assumption is correct, you need to do nothing more and can go on with other entries of the current procedure. However, if a variable has a lower bound other than zero, then enter the lower bound. In this case, the entry should be either an integer or a decimal number. If the variable is unbounded below, then select the operator, "n/a" (bound not available.)
Once you have entered (or revised) a linear programming model with "Enter or Revise a Linear Programming Model" routine under the Procedure menu, this routine automatically sets up and solves (approximately) the model by the interior-point algorithm presented in Sec.7.4. You will need to enter an initial (feasible) trial solution, and then the procedure will perform as many iterations as desired (up to a maximum of 15). You will see the sequence of trial solutions displayed on the screen, which can then be printed under the File menu. These trial solutions eventually converge to an optimal solution. However, be aware that with a small number of iterations the final trial solution may not be very close to optimal.
This routine can handle up to six functional constraints and ten variables (including slack, surplus, and artificial variables).
Note that the Option menu provides you with a choice of two values (0.5 or 0.9) for alpha, with 0.5 as the default value.
This procedure is used to apply the interior-point algorithm described in Sec.7.4 to the linear programming model that you have entered. You enter the initial trial solution, and then the computer will automatically perform up to 15 iterations. Note that the Option menu provides you with a choice of two values (0.5 or 0.9) for alpha. You may print your results by choosing Print to File under the File menu.
Entering the initial
trial solution
In order to start the interior-point algorithm, an initial trial solution is needed. This solution needs to be both feasible and in the INTERIOR of the feasible region, i.e., EVERY variable (including slack, surplus, and artificial variables) must be strictly greater than zero. Enter either an integer or a decimal number for the value of each variable and then press the OK button.
To backtrack, press the BACK button.
Performing another
iteration.
Press the NEXT button to have the computer perform one more iteration of the interior-point algorithm. A maximum of 15 iterations can be performed.
Once you have entered (or revised) a linear programming model, this procedure enables you to quickly set up the model in preparation for solving it interactively by the Simplex Method. In particular, you will be introducing slack variables as described in Sec.4.2 and, if needed, adapting to nonstandard forms as described in Sec.4.6. When you finish adding slack variables, etc., you will have a choice. If you introduced no artificial variables, then you should next choose the 'Solve Interactively by the Simplex Method' procedure. If one or more artificial variables have been introduced, then you will be asked whether you would like to use the Big M or Two-Phase method to handle them. In the latter case, you will be asked to enter a new objective function for Phase 1. In either case, you will then enter a routine used to eliminate basic variables from equation 0. Finally, when you have finished this process, you may choose the 'Solve Interactively by the Simplex Method' procedure under the Procedure menu. After completing that procedure, you next may choose the "Sensitivity Analysis" procedure under the Procedure menu. If you wish to use the "Sensitivity Analysis" procedure for a problem with artificial variables, you should add the artificial variables and any slack variables LAST in this current procedure AFTER selecting the other necessary actions, and then choose the Big M method.
This procedure
is used to implement the initialization step of the Simplex Method as described
in Secs. 4.2 and 4.6. The linear programming model is augmented as needed to be
able to apply the Simplex Method as it is presented in Chapter 4. The converted
model must have the following properties:
If you introduce artificial variables, you
will have the choice of dealing with them with either the Big M method or the
Two-Phase method. To correct a
mistake, press the BACK button to backtrack.
Augmenting the model
Use the mouse to select an equation or inequality which that to be modified. Then choose one or more of the four commands in turn to perform the stated modification:
Add Slack Variable
Subtract Surplus Variable
Add Artificial Variable (represented by a Capital Letter)
Multiply Equation by (-1)
The following commands are used to begin dealing with the variables allowed to be negative:
1. Convert One Variable to Difference of Two Variables
2. Convert One Variable to Variable Plus Constant
Select the first command for a variable with no bound on the negative values allowed. Select the second command for a variable with a nonzero lower bound. Select Revert to Original Model to restart to correct a mistake prior to the preceding step. Once you are finished converting the model to augmented form, press the FINISH button.
Selecting either the
Two-Phase or the Big M method
In the process of converting the linear programming model to augmented form, you introduced artificial variables.
To deal with these variables, you have a choice of the Big M method or the Two-Phase method. Both methods are described in Sec. 4.6.
Selecting the objective
and entering coefficients of the new objective function
In order to perform Phase 1 of the Two-Phase method, a new objective function for just this phase (as described in Sec. 4.6) needs to be entered. Select either Max or Min depending on whether you think the objective is to maximize or minimize this new objective function. A coefficient can be an integer or a decimal number.
Converted to Proper Form
from Gaussian Elimination
The simplex tableau needs to be converted
to proper form from Gaussian elimination before it can be operated on by using
the Simplex Method (i.e., the coefficients of the basic variables in Eq. 0 need
to be equal to 0). If the tableau is in this form, you can go directly to
applying the Simplex Method by choosing "Solve Interactively by the
Simplex Method" under the Procedure menu. Otherwise, a multiple of some
equation needs to be subtracted from Equation 0. The number you enter can be an
integer or a decimal number. If you would like to enter a Big M number, simply
type M or m (e.g., 2M+3 or 2m+3).
This procedure enables you to interactively execute the Simplex Method as presented in Sec.4.3. Your role is to apply the logic of the algorithm, and the computer will do the number crunching. The computer also will inform you if you make a mistake on the first iteration.
This procedure can handle up to 6 functional constraints and 10 variables (including slack, surplus, and artificial variables), which encompasses all relevant problems at the end of Chap. 4. When you finish a problem, you can print out all your work by choosing Print to File under the File menu. If you are interrupted before you finish, you can save your work (choose Save under the File menu) and return later (choose Open).
This procedure allows you to apply the Simplex Method interactively to solve a linear programming problem. At each iteration, the computer does the calculations while you make the following sequence of decisions:
1. Decide whether or not the current solution is optimal
2. Choose the entering basic variable
3. Choose the pivot equation containing the leaving basic variable
4. Choose the factor by which to divide the pivot equation
5. Choose the multiple of the pivot equation to subtract from each of the other equations in turn
Is the current solution
optimal?
Enter y or Y and then press the FINISH button if the current solution is optimal. Otherwise, enter either n or N and then press the NEXT button. If there are multiple optima, you can investigate the other optimal solutions. Just enter n or N, and then press the NEXT button.
Selecting the entering
and the leaving basic variable
Select the entering and the leaving basic variable by clicking on the corresponding column and row (pivot equation) above. Then enter the factor by which to divide the pivot equation so that it will be in proper form from Gaussian elimination (i.e., so that the coefficient of the entering basic variable is 1). Then press the NEXT button.
Choosing the multiple of
the pivot equation to subtract from another equation
Enter the multiple of the pivot equation which needs to be subtracted from the equation in question to obtain proper form from Gaussian elimination (i.e., so that the coefficients of the basic variable are 0 in the latter equations), and then press the NEXT button. The numbers you enter may be integers or decimal numbers.
What to do once an
optimal solution has been reached
Once you have obtained an optimal solution, you can print out all of your work (using the Print to File command under the File menu). Alternatively, you can apply sensitivity analysis to the model (using the Sensitivity Analysis command under the Procedure menu).
Determine which case
holds
The artificial variables are represented by capital letters. Check the variables in the Basic Variable column (or, in Algebraic Form, the variables whose column is in proper form from Gaussian elimination) for the current final solution for Phase1. If none are artificial (the usual case), select: All artificial variables are nonbasic. If one or more are artificial, check their values in the Right Side column. If all these values are zero (degenerate basic variables), select:
Some artificial variables are basic, but all of them have value zero.
(Note that round off errors may cause a zero value to appear as a negligible nonzero value.)
If one or more of these values are > 0 (which occurs only if the model has no feasible solutions), select:
Some artificial variables are basic and have positive value.
Pressing the NEXT button
to remove the artificial variables from the tableau
See the discussion (including the footnote) of the transition from Phase 1 to Phase 2 of the Two-Phase method in Sec. 4.6. Press the NEXT button to remove the artificial variables from the tableau for Phase 2.
Pressing the NEXT button
to replace Eq.0 by the original objective function
As discussed in Sec. 4.6, Phase 2 of the Two-Phase method uses the original objective function rather than the special objective function used by Phase 1. Press the NEXT button to replace Eq. 0 from Phase 1 by the original objective function (converted to Eq. 0 form).
Pressing the NEXT button
to convert the tableau to proper form from Gaussian elimination
After replacing Eq. 0 by the original objective function, the tableau may no longer be in proper form from Gaussian elimination. This occurs if any of the variables with nonzero coefficients in this objective function are basic variables in the current basic feasible solution. If so, press the NEXT button to have the computer automatically use Gaussian elimination to convert the tableau to this form. If not, simply press the NEXT button to continue.
This procedure interactively executes the "Procedure for Sensitivity Analysis" summarized in Sec. 6.6. The linear programming problem considered is the last one solved by the Simplex Method with the interactive procedure. All the sensitivity analysis cases presented in Sec. 6.7 (and combinations thereof) can be performed. However, in order to perform operations on the final tableau when a new variable (Case 2b) or a new constraint (Case 4) has just been introduced, an extra variable or constraint with zero coefficients needs to be included in the original model to create the needed row or column in the final tableau. When revising the final tableau, you specify how to perform the calculations for applying the functional insight of Sec. 5.3. All actual calculations (including any conversions to proper form from Gaussian elimination and any reoptimization) are performed by the computer.
You can restart the procedure to independently investigate different changes in the model as often as desired. You also can print out the results each time by choosing Print to File under the File menu.
This procedure allows you to determine the effect that one or more changes in the original model may have on the final tableau by implementing the general procedure for sensitivity analysis presented in Sec. 6.6. You first make the changes in the initial tableau. Then you determine which parts of the final tableau will be affected, and determine their new values. Finally, you convert the final tableau to proper form from Gaussian elimination (if necessary), and then see whether the solution is optimal. If not, you can apply the Simplex Method or Dual Simplex Method to the final tableau to obtain the new optimal solution, if you wish. To correct a previous mistake at any time, press the BACK button to backtrack.
Locating where there is
a change in the initial tableau
Select a number in the initial tableau that changes because of the change or changes made in the original model. If you decide instead that all needed changes already have been made, then choose any entry in the tableau and enter the same value that was there.
Making a change in the
initial tableau
Enter the new value of the selected entry in the initial tableau, and then press the Next button. This value may be an integer or a decimal number.
When you are finished with the current procedure, click the FINISH button.
Are there any more
changes in the initial tableau?
Enter y or Y and then press the Next button if there are more changes to be made in the initial tableau. Enter n or N and then press the Next button if there are no more changes.
Where is there a
possible change in the final tableau?
Move the mouse to either a number in row 0 or a column below row 0 where there is a possible change in the final tableau (before converting to proper form from Gaussian elimination) due to the change(s) in the initial tableau (as discussed in Sec. 6.7). Then press the Next button. You will then be asked how the new values should be calculated, and then whether there are any other locations in the final tableau that might change.
Choosing the matrix or
row vector to determine the new column values
In order to calculate the new values in the selected column, the fundamental insight presented in Sec. 5.3 is applied. To calculate these values, Secs.5.3, 6.6, and 6.7 indicate how a matrix or row vector in the final tableau will be multiplied by a column vector in the initial tableau.
Choosing the column
vector to determine the new column values
In order to calculate the new values in the selected column, the fundamental insight presented in Sec. 5.3 is applied. To calculate these values, Secs. 5.3, 6.6, and 6.7 indicate how a matrix or row vector in the final tableau will be multiplied by a column vector in the initial tableau.
Are there any more
possible changes in the final tableau?
Enter y or Y and then press the Next button if there are other areas of the final tableau that might have been affected (before converting to proper form from Gaussian elimination) by the changes in the initial tableau. Otherwise enter n or N and then press the Next button.
Choosing the constant to
determine the new row 0 value
In order to calculate the new value of the selected coefficient in row 0, the fundamental insight presented in Sec. 5.3 is applied. To calculate this value, Secs. 5.3, 6.6, and 6.7 indicate how a row vector in the final tableau will be multiplied by a column vector in the initial tableau, and then a constant will be added.
Choosing the next
command
Press one of the five commands you would like to perform.
Revert to original tableau
Convert final tableau to proper form
Apply Simplex Method
Apply Dual Simplex Method
Current solution is optimal
See Secs. 6.6 and 6.7 for further information about making the selection.
See Section 5.4.
This procedure enables you to quickly enter (or revise) a transportation problem model by entering the elements of a parameter table (see Sec. 8.1). The maximum size is 7 sources and 7 destinations. The sum of the supplies from the sources must equal the sum of the demands at the destinations. The individual supplies and demands must be integers.
If you simply wish to revise the model you entered last (or one you saved and just recalled with the Save and Open commands under the File menu), you do not need to reenter the entire model. Instead, just reenter the new numbers.
When you finish entering the model, choose the "Find Initial Basic Feasible Solution for Interactive Method" procedure under the Procedure menu before using the "Solve Interactively by the Transportation Simplex Method" procedure.
At any step, detailed computer instructions are available (Help menu).
Enter the transportation problem model by filling out the parameter table (including specifying its size) displayed on the screen. The sum of the supplies at the sources must equal the sum of the demands at the destinations. After entering the model, you can prepare to solve it interactively (with the "Find Initial Basic Feasible Solution" command under the Procedure menu).
Entering the number of
sources
Enter the number of sources (a positive
integer) in the transportation problem, and then press the ENTER Key. Note: The
number of sources cannot exceed 7.
Entering the number of
destinations
Enter the number of destinations (a
positive integer) in the transportation problem. Note: The number of
destinations cannot exceed 7.
Entering a unit cost
Enter the cost per unit distributed from Source i to Destination j. The entry should be an integer, a decimal number, or M (Big M).
Entering the demand at a
destination
Enter the demand (an integer) at this destination, and then press the ENTER key.
Entering the number of
supplies
Enter the number of supplies (a positive integer) in the transportation problem, and then press the ENTER Key.
This procedure enables you to interactively implement the "General Procedure for Constructing an Initial Basic Feasible Solution" (for a transportation problem) presented in the "Initialization" subsection of Sec. 8.2. The specific transportation problem considered is the last one you entered with the Entering procedure under the Procedure menu.
For step 1 of the General Procedure, you may use any criterion (including arbitrary selection) for selecting the next basic variable. However, if you wish to use either Vogel's approximation method or Russell's approximation method as your criterion, choose that one under the Option menu and the computer will compute the quantities needed to implement that criterion. For any other criterion (including the Northwest corner rule), choose the Northwest Corner Rule under the Option menu. You may restart this procedure as often as desired in order to implement different criteria on the same problem. Each time you finish constructing an initial basic feasible solution, you can print out your work by choosing Print to File under the File menu. To use this initial basic feasible solution to start the transportation simplex method, next choose "Solve Interactively by the Transportation Simplex Method" under the Procedure menu.
Note: The abbreviation R.D. is used for Remaining Demand.
This procedure interactively implements the
4-step "General Procedure for Constructing an Initial Basic Feasible
Solution" (for a transportation problem) presented in Sec. 8.2. For step 1, any criterion can be used
for selecting the next basic variable. To use either Vogel's or Russell's
approximation method, choose that criterion under the Option menu. To use ANY
other criterion, choose Northwest Corner Rule under the Option menu.
When done, the solution should have (m+n-1) basic variables that exactly use up the supply from each source and the demand at each destination. Choose Print to File under the File menu to print out your work. To start solving the transportation problem with this initial basic feasible solution, choose the "Solve Interactively by the Transportation Simplex Method" command under the Procedure menu.
Selecting the next basic
variable
Move the pointer by the mouse so that it lies on the Source row and Destination column that corresponds to your choice of the next basic variable, and then double click the cell. You cannot use a row or column that has already been eliminated from consideration.
Choosing the value of
the new basic variable (allocation)
Make the allocation large enough to exactly use up the remaining supply in its row or the remaining demand in its column (whichever is smaller), and then press OK. The entry should be an integer.
Determining whether the
row or the column should be eliminated
If the row should be eliminated from further consideration (i.e., all the supply at that source has been used up), then press DELETE ROW. If the column should be eliminated from further consideration (i.e., all the demand at that destination has been used up), then press DELETE COLUMN. If there is a tie, either the row or the column may be selected for elimination, but the textbook suggests arbitrarily selecting the row.
This procedure enables you to execute the Transportation Simplex Method as presented in Sec. 8.2. Your role is to apply the logic of the algorithm, and the computer will do the number crunching. The computer also will inform you if you make a mistake on the first iteration.
This procedure can handle up to 7 sources and 7 destinations, which encompasses all relevant problems at the end of Chap. 8.
When you finish a problem, you can print out all your work by choosing Print to File under the File menu. If you are interrupted before you finish, you can save your work (choose Save under the File menu) and return later (choose Open).
At any step, detailed computer instructions are available (Help menu).
To undo a mistake, backtrack by clicking the BACK button.
This procedure enables you to solve a transportation problem model interactively by using the transportation simplex method presented in Sec. 8.2. At each iteration, the computer does the calculations while you make the following sequence of decisions:
1. Select the entering basic variable.
2. Determine the chain reaction caused by increasing the entering basic variable.
3. Determine the leaving basic variable.
4. Identify the new value of the entering basic variable.
Deriving and entering
u(i) and v(j)
Move the mouse until the pointer lies on a u(i) or v(j) cell that you have just derived, and then enter the value that you have derived. Keep doing this until all the u(i)'s and v(j)'s are entered. As soon as they are all entered AND correct, the computer will move on to the next step (determining the entering basic variable for the first iteration).
If you enter a complete set of values and the computer does NOT move on to the next step, you have made a mistake and should recheck the values. For subsequent iterations, the computer will derive the u(i) and v(j) for you.
Selecting the entering
basic variable
Enter your choice of the entering basic variable by double clicking the cell. However, if the optimality test indicates that the current solution already is optimal, then you should stop instead by pressing the FINISH button and, if desired, print out your work by choosing Print to File under the File menu.
Determining the chain
reaction caused by increasing the entering basic variable
Beginning with the pointer on the cell corresponding to the entering basic variable, move the pointer to each cell in turn along the path of the chain reaction and double click it. This process ends when the path returns to the cell for the entering basic variable and you double click with the pointer on that cell.
If your path reaches a dead end and you need to backtrack, press BACK repeatedly until you have backtracked as far as you want.
Determining the leaving
basic variable
Move the pointer to the cell corresponding to the leaving basic variable, and then double click it.
Identifying the new
value of the entering basic variable
Enter the new value of the entering basic variable (i.e., the old value of the leaving basic variable), and then press OK. Your entry should be an integer. The computer then will add this value to each recipient cell and subtract this value from each donor cell in the old basic feasible solution to determine the new basic feasible solution.
This procedure enables you to execute the Network Simplex Method as presented in Sec. 9.7. Your role is to apply the logic of the algorithm, and the computer will do the number crunching. The computer also will inform you if you make a mistake on the first iteration.
This procedure can only be used to solve Problems 9.7-2 through 9.7-8 at the end of Chapter 9.
When you finish a problem, you can print out all your work by choosing Print to File under the File menu. If you are interrupted before you finish, you can save your work (choose Save under the File menu) and return later (choose Open).
At any step, detailed computer instructions are available (Help menu). To undo a mistake, backtrack by pressing the BACK button.
This procedure allows you to apply the Network Simplex Method to interactively solve Problems 9.7-2 to 9.7-8. First you will need to enter an initial basic feasible solution. Then, at each iteration you will make the following sequence of decisions:
1. Is the current basic feasible solution optimal? If not,
2. Choose the entering basic arc (from all potential nonbasic arcs)
3. Choose the leaving basic arc
4. Choose the amount of flow to add through the entering basic arc.
Choosing which problem
you would like to solve
This procedure can only be used to solve Problems 9.7-2 through 9.7-8. To solve one of these problems, enter the last digit of its problem number (an integer between 2 and 8) and press OK.
Press the NEXT button to
begin the Network Simplex Method
This screen presents the network for the problem you have chosen to solve. If this is the correct problem, then press the NEXT button to begin applying the Network Simplex Method to solve it. If this is not the correct problem, then select the correct problem number.
Specifying the basic
arcs
In order to obtain the initial basic feasible solution, you must first specify which of the arcs are basic. Do this by selecting the arc (the first letter of an arc stands for the node where the arc begins, and the second letter of the arc stands for the node where the arc ends, e.g., select AC for the arc from node A to node C) and then pressing ADD TO BASIC ARCS. If you mistakenly made an arc basic, then select it and press DELETE FROM BASIC ARCS. When you have finished specifying the basic arcs, press the NEXT button. (You may need to scroll down to reach the NEXT button.)
Specifying which (if
any) nonbasic arcs should be reversed
If one of the nonbasic arcs needs to be reversed, then specify it by selecting the arc (the first letter of an arc stands for the node where the arc begins, and the second letter of the arc stands for the node where the arc ends, e.g., select AC for the arc from node A to node C) and then pressing ADD TO REVERSE ARCS. If you mistakenly reversed an arc, select it and then press DELETE FROM REVERSE ARCS. If no more arcs need to be reversed, then press the NEXT button to move on to the next step.
Specifying the flow in
the basic arcs
In order to determine the initial basic feasible solution, the flow through each basic arc needs to be specified. Enter the flow as an integer or decimal number, and then press the NEXT button.
Identifying the cycle
created when a nonbasic arc is added to the spanning tree
When a nonbasic arc is added to the spanning tree, a unique undirected cycle is created. Identify that cycle, starting and ending with the current node, by typing the letter of each node in the cycle (e.g., if the cycle is AB-BC-CD-DA, then type ABCDA) and then pressing the NEXT button.
Observing the
incremental cost of adding flow through the cycle
When a flow is added to the nonbasic arc in the cycle, then that flow also is added to certain arcs in the cycle and subtracted from other arcs in the cycle. The incremental cost of adding one unit of flow is calculated here. Press the NEXT button to move on to the next step of the Network Simplex Method.
Specifying whether the
current solution is optimal
If the current solution is optimal, then enter either y or Y and press the NEXT button. If the current solution is not optimal, then enter either n or N and press the NEXT button.
Selecting the entering
basic arc
Select the entering basic arc from the choices presented in the table by typing the letter of the node where the arc begins and then the letter of the node where the arc ends (e.g., type AC for the arc from node A to node C) and then pressing the NEXT button.
Selecting the leaving
basic arc
Select the leaving basic arc by typing the letter of the node where the arc begins and then the letter of the node where the arc ends (e.g., type AC for the arc from node A to node C). Enter the amount of flow that should be added to the entering basic arc (either an integer or a decimal number), and then press the NEXT button. The flow in each of the other nodes in the cycle will then be automatically calculated by the computer.
Does the leaving basic
arc need to be replaced by a reverse arc?
If the leaving basic arc needs to be replaced by a reverse arc, then enter either y or Y and press the NEXT button. Otherwise, enter either n or N and press the NEXT button.
Press the NEXT button to
continue the Network Simplex Method
For this and all future iterations of the Network Simplex Method, the computer will calculate the cycles created by adding each individual nonbasic arc to the spanning tree, as well as the incremental cost of adding flow through any of the nonbasic arcs, Press the NEXT button to have the computer make these calculations, and to move on to the optimality test.
Specifying the flow
through the original arc
During the process of the Network Simplex Method, this arc was replaced by a reverse arc. It is the flow through the original arc that we now are interested in. Enter the flow through the original arc (either an integer or a decimal number) and then press the NEXT button.
An optimal solution
An optimal solution for the minimum cost flow problem, with the flows through all of the original arcs, has been determined. You may print out your work by choosing Print to File under the File menu.
Press the NEXT button to
begin the Network Simplex Method
This screen presents the network for the problem you have chosen to solve. If this is the correct problem, then press the NEXT button to begin applying the Network Simplex Method to solve it. If this is not the correct problem, then go back to the previous procedure and change the problem number.
This procedure enables you to quickly enter (or revise) an integer programming model (either pure or mixed, with either binary or general integer variables) in preparation for solving it by the branch-and-bound algorithm for pure binary programming (BIP) or general mixed integer programming (MIP) presented in Sections 12.6 and 12.7, respectively.
The maximum sizes allowed depend on how you later wish to solve the model. These limits on the number of variables and functional constraints are outlined below:
Interactive BIP Branch-and-Bound: 5 binary variables, 5 constraints
Interactive MIP Branch-and-Bound: 5 total variables, 5 constraints
If you simply wish to revise the model you entered last (or one you saved and just recalled with the Save and Open commands under the File menu), you do not need to reenter the entire model. Instead, just reenter the new numbers.
When you finish entering the model, return to the Procedure menu to choose the appropriate procedure from the two listed above.
Enter the integer programming model in its original form (i.e., without slack variables, artificial variables, etc.). When you are finished entering or revising the model, there are two interactive solution techniques which are potentially available to you under the Procedure menu. If the model has only binary variables, then the BIP Branch-and-Bound algorithm will be available. Otherwise, the MIP Branch-and-Bound algorithm will be available. If an option is not available, it will be dimmed under the Procedure menu.
Entering the number of
binary variables
Enter the total number of variables which are restricted to be binary (0-1) in the original model (not including slack variables, artificial variables, etc.). Note that the maximum sizes allowed for the two solution techniques are as follows:
1. Interactive BIP: A maximum of 5 binary variables are allowed,
2. Interactive MIP: A maximum of 5 total variables are allowed.
Entering the number of
general integer variables
Enter the total number of variables which are restricted to be integer (0,1,...) but not just binary in the original model (not including slack variables, artificial variables, etc.). Note that the maximum sizes allowed for the two solution techniques are as follows:
1. Interactive BIP: 0 general integer variables are allowed,
2. Interactive MIP: A maximum of 5 total variables are allowed.
Entering the number of
functional constraints
Enter the number of functional constraints in the original model (not including nonnegativity constraints). Note that the maximum size allowed for both solution techniques is 5.
Press the ENTER key to make the new numbers above take effect.
Selecting the objective
Select either Max or Min, depending on whether the objective is to maximize or minimize Z.
Entering the objective
function
Enter the coefficient of each variable in the objective function. Each number entered may be an integer or a decimal number. If a cost of Big M is desired, instead enter a large number (M is not allowed).
Selecting the type of
functional constraint
Select £, =, or ³, depending on the form of the constraint.
This procedure enables you to execute the branch-and-bound algorithm for pure binary integer programming (BIP) presented in Sec. 12.6. Your role is to apply the logic of the algorithm, and the computer will do the number crunching. The computer also will inform you if you make a mistake on the first iteration.
This procedure can handle up to 5 variables (all binary) and 5 functional constraints, which encompasses all relevant problems at the end of Chap. 12.
When you finish a problem, you can print out all your work by choosing Print to File under the File menu. If you are interrupted before you finish, you can save your work (choose Save under the File menu) and return later (choose Open).
At any step, detailed computer instructions are available (Help menu). To undo a mistake, backtrack by pressing the BACK button.
You now will be interactively executing the MIP algorithm presented in Sec. 12.7.
Selecting the subproblem
from which to branch
Use the mouse to select the node you would like to investigate. To branch on the current node, double click it or press the ENTER key.
Click on the corresponding checkbox to fathom the current node or to declare its solution as the new incumbent.
This procedure enables you to execute the branch-and-bound algorithm for mixed integer programming (MIP) as presented in Sec. 12.7. Your role is to apply the logic of the algorithm, and the computer will do the number crunching. The computer also will inform you if you make a mistake on the first iteration.
This routine can handle up to 5 variables total, 5 functional constraints, and 4 levels of branching, which encompasses all relevant problems at the end of Chap. 12.
When you finish a problem, you can print out all your work by choosing Print to File under the File menu. If you are interrupted before you finish, you can save your work (choose Save under the File menu) and return later (choose Open).
At any step, detailed computer instructions are available (Help menu). To undo a mistake, backtrack by pressing the BACK button.
You now will be interactively executing the MIP algorithm presented in Sec. 12.7.
Selecting the subproblem
from which to branch
Use the mouse to select the node you would like to investigate. To branch on the current node, double click it or press the ENTER key.
Click on the corresponding checkbox to fathom the current node or to declare its solution as the new incumbent.
This procedure enables you to execute the One-Dimensional Search Procedure as presented in Sec. 13.4. Your role is to apply the logic of the algorithm, and the computer will do the number crunching. The computer also will inform you if you make a mistake on the first iteration.
This procedure can handle up to 10 terms in a polynomial objective function, and only nonnegative integer exponents less than 10 (i.e., a single digit), which encompasses all relevant problems at the end of the Chap. 13.
When you finish a problem, you can print out all your work by choosing Print to File under the File menu. If you are interrupted before you finish, you can save your work (choose Save under the File menu) and return later (choose Open).
At any step, detailed computer instructions are available (Help menu). To undo a mistake, backtrack by pressing the BACK button.
This procedure (approximately) maximizes a concave polynomial function of one variable (or minimizes such a convex function) by using the one-dimensional search procedure presented in Sec. 13.4. You enter the function, its derivative, and the initial upper and lower bounds. At each iteration, the computer calculates the midpoint of the two current bounds as the new trial solution, and then calculates the derivative there. Using this information, you will decide whether the new trial solution should be the new upper bound or the new lower bound. This process is repeated until you conclude that you are sufficiently close to an optimal solution.
Entering the number of
terms in f(x)
Enter the number of terms (a positive integer £ 10) in f(x), and then press the ENTER key to make the new number take effect.
Selecting the objective
Select either Max or Min, depending on whether the objective is to maximize or minimize the function.
Entering the objective
function
The objective function must be a polynomial where the exponent for each term is a nonnegative integer less than ten. For each term, you need to enter the coefficient (an integer or a decimal number), and then the exponent (a nonnegative integer) for the variable.
Entering the derivative
of the objective function
For each term of the derivative of the objective function, you need to enter the coefficient (an integer or a decimal number), and then the exponent (a nonnegative integer) for the variable. If there are no more terms, then enter 0 for the coefficient.
Entering the initial
lower/upper bound
Enter the initial lower/upper bound (an integer or a decimal number) for the optimal solution, and then press the NEXT button to continue.
Should the trial
solution be the new lower bound or the new upper bound?
Select "upper" if the trial solution should become the new upper bound. Select "lower" if the trial solution should become the new lower bound. If you find you made a mistake at a preceding step, press the BACK button to backtrack. If you are done, you can print your results with the Print to File command (under the File menu).
This procedure automatically applies the gradient search procedure presented in Sec. 13.5 for solving (approximately) a multivariable unconstrained optimization problem with exactly two variables. The function to be maximized is assumed to be concave. It also must be a polynomial where the exponent for each variable in each term is a nonnegative integer less than ten and where the number of terms is a positive integer £ 10.
You will begin by entering the function, an initial trial solution, and an error tolerance of at least 0.001 (as defined in Sec. 13.5). After solving, you can print out both the problem and solution by choosing Print to File under the File menu.
This procedure (approximately) maximizes a concave polynomial function of two variables by using the gradient search procedure (presented in Sec. 13.5). You will enter the initial trial solution, the function to maximize, and an error tolerance (as defined in Sec. 13.5). The computer will then execute the procedure.
Entering the number of
terms in f(X)
Enter the number of terms (a positive integer £ 10) in f(X), and then press the ENTER key to make the new number take effect.
Entering the objective
function
The objective function must be a polynomial, where the exponent for each variable in each term is a nonnegative integer less than ten. For each term, you need to enter the coefficient (an integer or decimal number), and then the exponent (a nonnegative integer) for each variable. If a variable does not appear in the term, enter 0 for its exponent.
Entering the initial
trial solution
Enter an integer or decimal number for the initial value of x1 and x2.
Entering the error
tolerance
Enter the error tolerance (a positive integer or decimal number) as defined in Sec. 13.5 (where it is denoted by epsilon). Then press the OK button.
This procedure (approximately) maximizes a concave polynomial function of two variables by using the gradient search procedure presented in Sec. 13.5. You will enter the polynomial to maximize and its derivative. You and the computer will interactively perform as many iterations as desired by identifying the entries in a table like Table 13.2.
When you finish a problem, you can print out all your work by choosing Print to File under the File menu. If you are interrupted before you finish, you can save your work (choose Save under the File menu) and return later (choose Open).
At any step, detailed computer instructions are available (Help menu). To undo a mistake, backtrack by pressing the BACK button.
This procedure (approximately) maximizes a concave polynomial function of two variables by using the gradient search procedure presented in Sec. 13.5. You will enter the polynomial to maximize and its derivative. You and the computer will interactively perform as many iterations as desired by identifying the entries in a table like Table 13.2.
Entering the number of
terms in f(X)
Enter the number of terms (a positive integer £ 10) in f(X), and then press the ENTER key to make the new number take effect.
Entering the objective
function
The objective function must be a polynomial, where the exponent for each variable in each term is a nonnegative integer less than ten. For each term, you need to enter the coefficient (an integer or a decimal number), and then the exponent (a nonnegative integer < 10) for each variable. If a variable does not appear in the term, enter 0 for its exponent.
Entering the derivative
of the objective function
For each term of the derivative of the objective function, you need to enter the coefficient (an integer or a decimal number), and then the exponent (a nonnegative integer < 10) for each variable. If a variable does not appear in the term, enter 0 for its exponent. If there are no more terms, then enter 0 for the coefficient.
Entering the initial
trial solution
Enter the initial values (integers or decimal numbers) for x1 and x2.
Entering the a's and the
b's
To move from the current trial solution in the direction of the gradient, the objective function needs to be converted to a function of one variable (t). To do so, each variable in the objective function needs to be replaced by an expression of the form: a + bt. You should enter the values of a and b (an integer or a decimal number). When you are finished, press the NEXT button, and then the new function will be calculated.
To continue
Press the NEXT button to solve for t using the one-dimensional search procedure.
To continue
Press the NEXT button to determine the new trial solution.
Entering the new trial
solution
Using the results displayed on the screen, enter the new trial solution that now has been obtained to complete the current iteration. Press the NEXT button after typing the new value of each variable as an integer or a decimal number.
This procedure enables you to interactively execute the Modified Simplex Method as presented in Sec.13.7. Your role is to apply the logic of the algorithm, and the computer will do the number crunching. Beware that this particular procedure does not inform you if you make a mistake on the first iteration.
This procedure can handle up to 6 functional constraints and 10 variables, which encompasses all relevant problems at the end of Chap. 13.
When you finish a problem, you can print out all your work by choosing Print to File under the File menu. If you are interrupted before you finish, you can save your work (choose Save under the File menu) and return later (choose Open).
(Be sure to use the Restricted-Entry Rule on Page 687 when you select the entering basic variable.)
This procedure allows you to apply the Simplex Method interactively to solve a linear programming problem. At each iteration, the computer does the calculations while you make the following sequence of decisions:
1. Decide whether or not the current solution is optimal
2. Choose the entering basic variable
3. Choose the pivot equation containing the leaving basic variable
4. Choose the factor by which to divide the pivot equation
5. Choose the multiple of the pivot equation to subtract from each of the other equations in turn.
Is the current solution
optimal?
Enter y or Y and then press the FINISH button if the current solution is optimal. Otherwise, enter either n or N and then press the NEXT button. If there are multiple optima, you can investigate the other optimal solutions. Just enter n or N, and then press the NEXT button.
Selecting the entering
and the leaving basic variable
Select the entering and the leaving basic variable by clicking on the corresponding column and row (pivot equation) above. Then enter the factor by which to divide the pivot equation so that it will be in proper form from Gaussian elimination (i.e., so that the coefficient of the entering basic variable is 1). Then press the NEXT button.
Choosing the multiple of
the pivot equation to subtract from another equation
Enter the multiples of the pivot equations which need to be subtracted from the equation in question to obtain proper form from Gaussian elimination (i.e., so that the coefficients of the basic variable are 0 in the latter equations), and then press the NEXT button. The numbers you enter may be integers or decimal numbers.
What to do once an
optimal solution has been reached
Once you have obtained an optimal solution, you can print out all of your work (using the Print to file command under the File menu).
This procedure enables you to quickly enter a linearly constrained convex programming problem (see Secs. 13.3 and 13.9) and then interactively execute the Frank-Wolfe Algorithm presented in Sec. 13.9. Your role is to apply the logic of the algorithm, and the computer will do the number crunching. The computer also will inform you if you make a mistake on the first iteration.
This procedure can handle up to 3 variables (all with nonnegativity constraints) and 6 functional constraints, which encompasses all relevant problems at the end of Chap. 13.
When you finish a problem, you can print out all your work by choosing Print to File under the File menu. If you are interrupted before you finish, you can save your work (choose Save under the File menu) and return later (choose Open).
At any step, detailed computer instructions are available (Help menu). To undo a mistake, backtrack by pressing the BACK button.
After entering a linearly constrained convex programming model (see Secs. 13.3 and 13.9), with a maximum of three variables (all with nonnegativity constraints) and six functional constraints, this procedure (approximately) solves the linearly constrained convex programming problem by using the Frank-Wolfe algorithm as presented in Sec. 13.9. You need to specify a feasible initial trial solution and the partial derivatives of the objective function. For Part 1 of each iteration, you identify the linear approximation of the objective function by using the gradient calculated by the computer at the current trial solution. The computer then performs Part 2 by using the Simplex Method to solve the resulting linear programming problem. You and the computer next perform Part 3 interactively to find the new trial solution.
Entering the number of
variables
Enter the number of variables in the model as a positive integer (maximum of three).
Entering the number of
functional constraints
Enter the number of functional constraints (excluding nonnegativity constraints) in the model as a positive integer (maximum of six).
Selecting the objective
Select either Max or Min, depending on whether the objective is to maximize or minimize Z.
Entering the functional
constraints
For each functional constraint:
Enter the coefficients of variables in the functional constraint as integers or decimal numbers.
Specify the type of functional constraint by selecting
between £, =, and ³.
Enter the right hand side of the functional constraint as an integer or a decimal number.
Entering the derivative
of the objective function
For each term of the derivative of the objective function, you need to enter the coefficient (an integer or a decimal number), and then the exponent (a nonnegative integer < 10) for each variable. If a variable does not appear in the term, enter 0 for its exponent. If there are no more terms, then enter 0 for the coefficient.
Entering the new trial
solution
Using the results displayed on the screen, enter the new trial solution that now has been obtained to complete the current iteration. Press the NEXT button after typing the new value of each variable as an integer or a decimal number.
Entering the linear
objective function
The objective function must be a polynomial, where the exponent for each variable in each term is a nonnegative integer less than ten. For each term, you need to enter the coefficient (an integer or a decimal number).
To continue
Press the NEXT button to continue.
Entering the new trial
solution
Using the results displayed on the screen, enter the new trial solution that now has been obtained.
Entering the a's and the
b's
To move from the current trial solution in the direction of the gradient, the objective function needs to be converted to a function of one variable (t). To do so, each variable in the objective function needs to be replaced by an expression of the form: a + bt. You should enter the values of a and b (an integer or a decimal number). When you are finished, press the NEXT button, and then the new function will be calculated.
To continue
Press the NEXT button to apply the Simplex Method in order to determine an optimal solution for the current linear programming approximation.
This procedure automatically applies the Sequential Unconstrained Optimization Technique (SUMT) presented in Sec. 13.10. The upper limits on problem size are three variables and three functional constraints. Every function must be a polynomial where the exponent for each variable in each term is a nonnegative integer less than ten.
You will begin by entering once the unconstrained function P(X; r) to be maximized at every iteration, and an initial trial solution. For each iteration, you also will specify the value of r to be used. When as many iterations as desired have been executed, you can print out both P(X; r) and the sequence of trial solutions (one for each r) by choosing Print to File under the File menu.
This procedure applies the Sequential Unconstrained Minimization Technique (SUMT) as presented in Sec. 13.10. The nonlinear programming problem is assumed to be in maximization form, with functional constraints, and perhaps with lower-bound constraints of the form xj ³ Kj for some or all of the individual variables xj, where Kj can be 0 or any other value. The objective function and each constraint function must be a polynomial where the exponent for each variable in each term is a nonnegative integer less than ten. You need to enter the size of the problem, an initial trial solution, and P(X; r) = f(X)-r B(X), where f(X) is the objective function and B(X) is the barrier function. Each term of B(X) is the boundary repulsion term for one of the constraints. For each iteration, you specify the value of r and the computer does the rest.
Number of variables with
lower bounds
Enter the number of variable xj that have a lower-bound constraint, xj ³ Kj (as described above), as a nonnegative integer. The total number of variables (with or without lower bounds) cannot exceed three.
Number of variable
without lower bounds
Enter the number of variables that do not have a lower-bound constraint, xj ³ Kj (as described above), as a nonnegative integer. The total number of variables (with or without lower bounds) cannot exceed three.
Number of inequality
constraints
Enter the number of functional constraints (excluding lower-bound constraints, xj ³ Kj) that are in inequality form. This number must be a nonnegative integer. The total number of functional constraints of either type (inequality or equality) must be 1, 2, or 3.
Number of equality
constraints
Enter the number of functional constraints (a nonnegative integer) that are in equality form. This number must be a nonnegative integer. The total number of functional constraints of either type (inequality or equality) must be 1, 2, or 3.
Maximum of the number of
terms in any function
Enter the maximum of the number of terms in any function. This number must be an integer no greater than 10.
Entering the objective
function
For each term of the polynomial objective function, you need to enter the coefficient (an integer or a decimal number), and then the exponent (a nonnegative integer < 10) for each variable. If a variable does not appear in the term, enter 0 for its exponent. If there are no more terms, enter 0 for the coefficient.
Entering the barrier
function
For each inequality functional constraint or lower bound constraint, the corresponding boundary repulsion term (see above) must be the reciprocal of a polynomial. For each equality functional constraint, the boundary repulsion term must be the square of a polynomial. These polynomials are denoted here by Bi(X) for functional constraints or Li(X) for lower bound constraints. Enter each of these polynomials as follows. For each term of the polynomial, enter the coefficient (an integer or decimal number), and then the exponent (a nonnegative integer < 10) for each variable. If a variable does not appear in the term, enter 0 for its exponent. If there are no more terms in the current polynomial, enter 0 for the coefficient.
Entering the initial
trial solution
Enter the initial values (integers or decimal numbers) of x1 and x2. This initial trial solution must be feasible, but not on the boundary of the feasible region (except for equality constraints).
Entering the value of r
Enter the value of r for the current iteration as a strictly positive integer or decimal number. This value must decrease for successive iterations.
To continue
Press the NEXT button.
Entering the value of r
Enter the value of r for the current iteration as a strictly positive integer or decimal number. This value must decrease for successive iterations.
This procedure enables you to quickly enter the elements of a one-step transition matrix P for a discrete time Markov chain, as described in Section 2 of the "Markov Chains" chapter. You are allowed a maximum of 10 states.
At any step, detailed computer instructions are available (Help menu). To undo a mistake, backtrack by pressing the BACK button.
Entering the (one step) transition matrix requires entering the number of rows or columns (i.e., the number of states) and then entering each of the (one step) transition probabilities, p(ij).
Entering the number of
states
Enter the number of states in the Markov chain, (1 <= number of states <= 10, an integer), and then press the ENTER key. In the notation of the book, this number is M+1.
Entering the transition
probabilities
Enter the transition probabilities, p(ij), where i is the current row in the matrix and j is the current column (0 <= p(ij) <= 1).
Given that you have entered the one-step transition matrix P for a discrete time Markov Chain (Procedure 1), this procedure uses the Chapman-Kolmogorov equations to computer the n-step transition probabilities, as described in Section 3 of the "Markov Chains" chapter. In particular, the procedure obtains the n-step transition matrix P(n) by calculating P(n) = P^n. You are allowed a maximum of 10 states and n <= 99. The results can be printed by choosing Print to File under the File menu.
The Chapman-Kolmogorov Equations are used to calculate the n-step transition probabilities. To print the results, choose Print to File from the File menu.
Entering the power by
which to multiply the transition matrix
Enter the power by which to multiply the transition matrix (1 <= n <=99, an integer), and then press the ENTER key.
Given that you have entered the one-step transition matrix (Procedure 1), this procedure calculates the steady state probabilities for the state of a discrete time Markov chain, as described at the beginning of Section 5 of the "Markov Chains" chapter. You can consider a maximum of 10 states. The results can be printed.
Shown are the original transition matrix, the equations used to calculate the steady state probabilities, and the steady state probabilities themselves. To print the results, choose Print to File from the File menu.
This procedure solves a system of linear equations to find the overall arrival rate at each of the m facilities in a Jackson network, as described in Section 9 of the "Queueing Theory" chapter. The maximum number of facilities is m = 6. The results can be printed.
This procedure is used to solve for the overall arrival rate at each of the facilities in a Jackson network.
Entering the number of
facilities
Enter the number of facilities in the Jackson network, m (1 <= m <= 6, m an integer), and then press the ENTER key to make the number take effect.
Entering the external
arrival rates
Enter the external arrival rate, a(j), for each facility, j (a(j) >= 0). To enter a number, enter an integer or a decimal number.
Entering the transition
probabilities
Enter each of the probabilities, p(ij), that a customer completing service at facility i goes next to facility j (0 <= p(ij) <= 1). To enter a number, enter an integer or a decimal number.
This
procedure calculates the critical number y0 for the single-period inventory
model with no setup cost and with linear shortage and holding costs presented
at the beginning of Section 6 of the "Inventory Theory" chapter.
The demand
distribution can be either uniform or exponential. Use the Option menu to make
(or change) this choice. The results can be printed.
The limits
are: expected demand for the exponential distribution,lambda >=0.001,
range of the demand for the uniform
distribution, x1 > x0 ³ 0. Other limits are p+h > 0, c+h >0, and p >= c.
This
procedure is used to calculate the optimal quantity to order, y0, for the
single-period model with no setup cost. To solve the model, you must enter the
probability distribution of the demand (use the Option menu to choose between
an exponential or uniform distribution), as well as the unit production or
purchasing cost, unit holding cost, and
unit shortage cost.
Entering
the exponential distribution parameter
Enter the
mean (denoted by lambda) of the exponential distribution (mean > 0). To
change the distribution to a uniform distribution, use the Option menu. To
enter a number, enter an integer or a decimal number.
Entering
the unit production or purchasing cost
Enter the
unit production or purchasing cost, c (c >= 0). To enter a number, enter an
integer or a decimal number.
Entering
the unit inventory holding cost
Enter the
unit inventory holding cost, h (h >= 0). To enter a number, enter an integer
or a decimal number.
Entering the unit shortage cost
Enter the
unit shortage cost, p (p >= 0). To enter a number, enter an integer or a
decimal number.
To
continue
After
pressing the ENTER key to return to the procedure, simply press the FINISH
button to have the computer automatically execute the calculation.
The
solution
To print the
results: select Print to File from the File menu. To change any of the
parameters: reenter the new value and then press the ENTER key.
This
procedure calculates the critical numbers, s and S, for the single-period
inventory model with setup cost and with linear shortage and holding costs
presented in Section 6 of the "Inventory Theory" chapter.
The demand
distribution can be either uniform or exponential. Use the Option menu to make
(or change) this choice. The results can be printed.
The limits
are: expected demand for the exponential
distribution, λ>=0.001, range of the demand for uniform
distribution, x1 > x0 ³ 0. Other limits are p+h > 0, c+h
>0, and p >= c.
This
procedure is used to calculate the critical numbers, s (inventory level below
which to place an order) and S (the amount to order up to), for the
single-period model with setup cost.
To solve the model, you must enter the probability distribution of the demand,
as well as the unit production or
purchasing cost, unit holding cost, unit shortage cost, and setup cost.
Entering
the exponential distribution parameter
Enter the
mean (denoted by lambda) of the exponential distribution (mean > 0). To
change the distribution to a uniform distribution, use the Option menu. To
enter a number, enter an integer or a decimal number.
Entering
the unit production or purchasing cost
Enter the
unit production or purchasing cost, c (c >= 0). To enter a number, enter an
integer or a decimal number, and then press the ENTER key.
Entering
the unit inventory holding cost
Enter the
unit inventory holding cost, h (h >= 0). To enter a number, enter an integer
or a decimal number, and then press the ENTER key.
Entering
the unit shortage cost
Enter the
unit shortage cost, p (p >= 0). To enter a number, enter an integer or a
decimal number, and then press the ENTER key.
Entering
the setup cost
Enter the
setup cost, K (K >= 0). To enter a number, enter an integer or a decimal
number, and then press the ENTER key.
To
continue
Simply press
the FINISH button to have the computer automatically execute the calculation.
The
solution
To print the
results: select Print to File from the File menu. To change any of the
parameters: renter the new value and then press the ENTER key.
This
procedure calculates the critical numbers, y1(0) and y2(0), for the two-period
inventory model with no setup cost and with linear shortage and holding costs
presented in Section 7 of the "Inventory Theory" chapter.
The demand
distribution can be either uniform or exponential. Use the Option menu to make
(or change) this choice. The results can be printed.
The limits
are: expected demand for the exponential
distribution, λ>=0.001, the range of the demand for the
uniform distribution is from 0 to t > 0. Other limits are p+h > 0, c+h
>0, and p >= c.
This
procedure is used to calculate the optimal quantities to order up to, y1(0) and
y2(0), for the two-period model with no setup cost. To solve the model, you
must enter the probability distribution of the demand (use the Option menu to
choose between an exponential or uniform distribution), as well as the unit
production or purchasing, unit holding cost,
and unit shortage cost.
Entering
the exponential distribution parameter
Enter the
mean (denoted by lambda) of the exponential distribution (mean >0). To
change the distribution to a uniform distribution, use the Option menu. To
enter a number, enter an integer or a decimal number.
Entering
the unit production or purchasing cost
Enter the
unit production or purchasing cost, c (c >= 0.001). To enter a number, enter
an integer or a decimal number.
Entering
the unit inventory holding cost
Enter the
unit inventory holding cost, h (h >= 0). To enter a number, enter an integer
or a decimal number.
Entering
the unit shortage cost
Enter the
unit shortage cost, p (p >= 0). To enter a number, enter an integer or a
decimal number.
To
continue
Simply press
the FINISH button to have the computer automatically execute the calculation.
The
solution
To print the
results: select Print to File from the File menu. To change any of the
parameters: just reenter the new value and then press the ENTER key.
This
procedure calculates the critical number y0 for the infinite-period inventory
with no setup cost and with linear shortage and holding costs presented in
Section 7 (beginning of subsection on "Stochastic Multiperiod Models - An
Overview") of the "Inventory Theory" chapter. This procedure can
also be used for the variation of
the multiperiod inventory model that has the same formula for y0.
The demand
distribution can be either uniform or exponential. Use the Option menu to make
(or change) this choice. The results can be printed.
The limits
are: expected demand for the exponential distribution, λ>=0.001,
the range for the uniform
distribution is from 0 to t > 0. Other
limits are p+h > 0, c+h >0,
p>= c(1-alpha), and p-c(1-alpha) < p+h.
This
procedure is used to calculate the optimal quantity to order up to at the
beginning of each period, y(0), for the infinite-period model with no setup
cost. To solve the model, you must enter the probability distribution of the
demand, as well as the unit production or purchasing cost, unit holding cost, and unit shortage cost.
Entering
the exponential distribution parameter
Enter the
mean (denoted by lambda) of the exponential distribution (mean >0). To
change the distribution to a uniform distribution, use the Option menu. To
enter a number, enter an integer or a decimal number.
Entering
the unit production or purchasing cost
Enter the
unit production or purchasing cost, c (c >= 0). To enter a number, enter an
integer or a decimal number.
Entering
the unit inventory holding cost
Enter the
unit inventory holding cost, h (h >= 0). To enter a number, enter an integer
or a decimal number.
Entering
the unit shortage cost
Enter the
unit shortage cost, p (p >= 0). To enter a number, enter an integer or a
decimal number.
Entering
the discount factor
Enter the
discount factor denoted by alpha, which gives the relative value of money one
period in the future (0 < discount factor <1).
To
continue
Simply press
the FINISH button to have the computer automatically execute the calculation.
The
solution
To print the
results: select Print to File from the File menu. To change any of the
parameters: just reenter the new value. To enter a number, enter an integer or
a decimal number.
This
procedure enables you to quickly enter a Markov decision model, or to revise a
previously entered model. The model is entered in the form and notation
presented in Section 2 of the chapter, "Markov Decision Processes ".
You are allowed up to 4 states (M=3) and 5 decisions (K=5). You also will be
asked for a value of the discount factor introduced in Section 5. For the criterion of Sections 1-4
(minimizing expected average cost per unit time), set the discount factor equal
to one.
This
procedure is used to enter a Markov decision model to be solved by one of the
policy improvement algorithms or the method of successive approximations. To
enter a model, the number of states and decisions need to be entered, as well
as the cost matrix, transition matrices, and, optionally, the discount factor.
Entering a Markov Decision Model
This
procedure is used to enter a Markov decision model to be solved by one of the
policy improvement algorithms or the method of successive approximations. To
enter a model, the number of states and decisions need to be entered, as well
as the cost matrix, transition matrices, and, optionally, the discount factor.
Entering the number of states
Enter
the number of states in the model (1 <= number of states <= 4, an
integer). In the notation of the book, this number is M+1.
Entering the number of decisions
Enter
the number of possible decisions, K (1 <= K <= 5, K an integer).
Entering the cost matrix
Enter
the cost of making decision k in state i for the respective k and i. If the
decision is infeasible, enter an infinite cost. To enter infinity: enter
"1m".
Entering the transition matrix
Enter
the probability of going from state i to state j, given decision k (0 <=
p(ij(k)) <= 1). To enter a number, enter an integer or a decimal number. To
enter infinity: enter "1m".
Entering the initial trial policy
For
the initial trial policy, enter the number label for the decision to be made in
each state i. To enter a number,
enter an integer or a decimal number.
Entering the discount factor
Enter
the discount factor denoted by alpha, which gives the relative value of money
one period in the future (0 < discount factor <= 1). If only the
average cost criterion (Section 4) is to be used, simply leave the discount
factor at the default value of 1. This step completes the entering of the
model, so next choose a procedure under the Procedure menu.
This procedure enables you to interactively
execute the average cost policy improvement algorithm, presented in Section 4
of the "Markov Decision Processes" chapter.
Your role is to apply the logic of the
algorithm, and the computer will do the number crunching. The computer also
will inform you if you make a mistake on the first iteration.
When you finish a problem, you can print
out all your work by choosing Print to File under the File menu. If you are
interrupted before you finish, you can save your work (choose Save in the File
menu) and return later (choose Open).
This algorithm is used to determine an
optimal policy for a Markov decision process under the criterion of minimizing
expected average cost per unit time. There are two major steps:
1.
value determination and
2.
policy improvement,
performed in each iteration until an
optimal solution is found.
Choosing the coefficients in the
value determination phase
In the value determination phase, a set of
equations is solved to determine the v(i). Your job is to enter the
coefficients of the v(i) in these equations.
To continue
After pressing the ENTER key to return to
the procedure, simply press the ENTER key to have the computer automatically
execute the next substep.
Choosing the coefficients in the
policy improvement phase
In the policy improvement phase, an
expression needs to be evaluated for each possible decision for a given state
(in this case, state 0), to determine the best decision. One coefficient is
highlighted in the expressions at the top of the screen. The value of that
coefficient is chosen from the cost or transition matrices at the bottom of the
screen. Simply use the arrow keys to choose the appropriate number, and then
press the ENTER key. If you would like to display and choose an entry in the
transition matrix for a different decision (k), press the "+" or
"-" button. If you would like to backtrack to correct a coefficient
which you incorrectly entered previously, press the BACK button.
Entering the new decision for a
given state
Using the value of the expression for each
possible decision for the given state, choose the new decision for that state
by entering the corresponding value of k, and then pressing the NEXT button.
Selecting whether or not the
current policy is optimal
Select "Yes" if the current
policy definitely is optimal, or else select "No" if the current
policy is not known to be optimal.
The solution
To print the results: select Print to File
from the File menu.
This procedure enables you to interactively
execute the discounted cost policy improvement algorithm, presented in Section
5 of the "Markov Decision Processes " chapter.
Your role is to apply the logic of the
algorithm, and the computer will do the number crunching. The computer also
will inform you if you make a mistake on the first iteration.
When you finish a problem, you can print
out all your work by choosing Print to File under the File menu. If you are
interrupted before you finish, you can save your work (choose Save in the File
menu) and return later (choose Open).
This algorithm is used to determine an
optimal policy for a Markov decision process under the criterion of minimizing
expected total discounted cost per unit time. There are two major steps: (1)
value determination and (2) policy improvement, performed in each iteration
until an optimal solution is found.
Choosing the coefficients in the
value determination phase
In the value determination phase, a set of
equations is solved to determine the V(i). Your job is to enter the
coefficients of the V(i) in these equations.
To continue
After pressing the ENTER key to return to
the procedure, simply press the NEXT button to have the computer automatically
execute the next substep.
To continue
After pressing the ENTER key to return to
the procedure, simply press the NEXT button to have the computer automatically
execute the next substep.
Choosing the coefficients in the
policy improvement phase
In the policy improvement phase, an
expression needs to be evaluated for each possible decision for a given state
(in this case, state 0), to determine the best decision. One coefficient is
highlighted in the expressions at the top of screen. The value of that
coefficient is chosen from the cost or transition matrices at the bottom of the
screen (simply use the mouse to choose the appropriate number, and then press
the ENTER key). If you would like to display and choose an entry in the
transition matrix for a different decision (k), press the "+" or
"-" button. If you would like to backtrack to correct a coefficient
which you incorrectly entered previously, press the BACK button.
Entering the new decision for a
given state
Using the value of the expression for each
possible decision for the given state, choose the new decision for that state
by entering the corresponding value of k, and then press the NEXT button.
Selecting whether or not the
current policy is optimal
Select "Yes" if the current
policy definitely is optimal, or else select "No" if the current
policy is not known to be optimal, and then press the NEXT button.
The solution
To print the results: select Print to File
from the File menu.
This procedure
enables you to interactively execute the method of successive approximations,
presented in Section 5 of the "Markov Decision Processes” chapter.
Your
role is to apply the logic of the algorithm, and the computer will do the
number crunching. The computer also will inform you if you make a mistake on
the first iteration.
When
you finish a problem, you can print out all your work by choosing Print to File
under the File menu. If you are interrupted before you finish, you can save
your work (choose Save in the File menu) and return later (choose Open).
This
algorithm is used to determine an optimal policy (or at least an approximation)
for a Markov decision process under the criterion of minimizing expected total
discounted cost. In each iteration, an improved approximation is made of the V
for the respective states i.
Entering the value of V for state i at iteration 1
Use
the cost matrix to determine the value of V (subscript i, superscript 1), and
then enter this number. The entry can be an integer or a decimal number.
Entering the decision k for a given state at iteration 1
For
the current state i, use the cost matrix to determine the corresponding
decision for iteration 1. Enter this value of k (an integer), and then press
the NEXT button.
Choosing the entries in the equation giving the new value for V for
state 0
Considering
state 0, to determine the new value of V (with a subscript of 0), one
expression for each possible decision needs to be evaluated. Your job is to
enter the constant and the
coefficients of V in each of these expressions. One constant or coefficient is highlighted in the
equations at the top of the screen. The value of that constant or coefficient is chosen from the cost or
transition matrices at the bottom of the screen (simply use the mouse to choose
the appropriate number, and then press the NEXT button). If you would like to
display and choose an entry in the transition matrix for a different decision
(k), press the "+" or "-" button. If you would like to
backtrack to correct a coefficient which you incorrectly entered previously,
press Back.
To continue
After
pressing the ENTER key to return to the procedure, simply press the NEXT button
to have the computer automatically execute the next substep. To enter a number,
enter an integer or a decimal number.
Entering the new decision for a given state
Using
the value of the expression for each possible decision for the given state,
choose the new decision for that state by entering the corresponding value of
k, and then press the NEXT button.
Selecting whether or not you would like to perform another
iteration
Select
"Yes" if you would like to perform another iteration, or else select
"No" if you don't, and then press the NEXT button. To enter a number,
enter an integer or a decimal number.
The solution
To
print the results: select Print to File from the File menu.
This procedure enables you to quickly enter a queueing problem, or to revise a previously entered problem, for the purposes of performing a simulation run. You will need to enter the number of servers, the number of nonpreemptive priority classes, and the distributions of the interarrival times and service times for each class of customer. The maximum number of servers is 2, and the maximum number of nonpreemptive priority classes is 2 (where 1 means there are no priorities).
At any step, detailed computer instructions are available (Help menu). To undo a mistake, backtrack by pressing the BACK button.
When you finish entering the model, press the FINISH button, and then choose the other procedure under the Procedure menu to continue.
When you press the FINISH button, make sure that none of your numbers for the distributions changed. If any did, it is because you had entered an invalid number (for example, a negative mean). In each such case, you should go back and re-enter a valid number after referring to Specific Help on Current Step in the Help menu for instructions on the requirements to be a valid number.
Entering a simulation model for a queueing problem, including one with nonpreemptive priority classes, requires entering the number of servers, the number of priority classes, and the distributions of the interarrival times and service times for each class of customer. The maximum number of servers and priority classes are as follows:
Maximum number of servers: 2.
Maximum number of priority classes: 2.
(Choosing 1 means no priorities.)
Entering the number of
servers
Enter the number of servers (a positive integer) in the queueing system, and then press the ENTER key. The maximum number of servers allowed is 2.
Entering the number of
priority classes
Enter the number of nonpreemptive priority classes (a positive integer) for customers in the queueing system. The maximum number of nonpreemptive priority classes allowed is 2. If your queueing problem does not involve priorities, enter 1 for the number of priority classes. See Sec. 17.8 for a discussion of priority classes.
Selecting the
distribution for the interarrival time
The five distributions which are allowed for the interarrival time are:
1.
Constant (discussed in Secs. 17.2 and 17.7)
2. Erlang (described in Sec. 17.7)
3. Exponential (described in Sec. 17.4)
4.
Translated Exponential (an exponential distribution plus a positive
minimum value)
5.
Uniform (described in Sec 22.3)
Entering the value of
the distribution
Note that the requirements for the five distributions are as follows:
1. Constant: constant > 0
2. Erlang: mean > 0, k (the shape parameter) is a strictly positive integer (see Sec. 17.7)
3. Exponential: mean > 0
4.
Translated Exponential: min > 0, mean > 0, mean > min
5. Uniform: min > 0, max > min
Selecting the
distribution for the service time
The five distributions which are allowed for the service time are:
1.
Constant (discussed in Secs. 17.2 and 17.7)
2. Erlang (described in Sec. 17.7)
3. Exponential (described in Sec. 17.4)
4.
Translated Exponential (an exponential distribution plus a positive
minimum value)
5.
Uniform (described in Sec. 22.3)
Entering the value for
the service time
1. Constant: constant > 0
2. Erlang: mean > 0, k (the shape parameter) is a strictly positive integer (see Sec. 17.7)
3. Exponential: mean > 0
4.
Translated Exponential: min > 0, mean > 0, mean > min
5.
Uniform: min > 0, max > min
The interactive routine repeats three steps over and over, for as long as you would like to run the simulation. At each step, you are asked to make the key decision. The three decisions that will need to be made are:
1. Which times now need to be randomly generated?
2. Which event occurs next?
3. What is the result of the event?
The interactive routine repeats three steps over and over, for as long as you would like to run the simulation. At each step, you are asked to make the key decision. The three decisions that will need to be made are:
1. Which times now need to be randomly generated?
2. Which event occurs next?
3. What is the result of the event?
Which times now need to
be randomly generated?
For each time (interarrival time and/or service completion time) which now needs to be randomly generated, select the appropriate item, and then press the OK button. When you have generated all of the random times which need to be generated, press the NEXT button.
Which event occurs next?
To advance the current time to the next event, you must decide which event occurs next. Select the appropriate item corresponding to the event which occurs next.
What is the result of
the arrival?
An arrival has just occurred. The customer which has just arrived either enters the queue or immediately enters service. Decide what happens to this customer by selecting the appropriate item.
What is the result of
the service completion?
A service completion has just occurred. The server which has just completed service either remains idle or starts serving a customer. Decide what the server does by selecting the appropriate item.
Where can I go from
here?
You have completed the simulation run. The results are displayed on the screen, and can be printed by choosing Print to File under the File menu. To continue the simulation run, press the "Continue Simulation" button.
The current procedure is for the case of one class of customers and one server.
The notations are:
1. C.T.: Current Time
2. N.C.Q.: Number of Customers in Queue
3. C.B.S.: Customer Being Served
4. N.A.: Next Arrival of a customer
5. N.S.C.: Next Service Completion
The current procedure is for the case of two classes of customers and one server.
The notations are:
1. C.T.: Current Time
2. N.C.Q.C1: Number of Customers in Queue from Class 1
3. N.C.Q.C2: Number of Customers in Queue from Class 2
4. C.C.B.S.: Class of Customer Being Served
5. N.A.C1.: Next Arrival of a customer from Class 1
6. N.A.C2.: Next Arrival of a customer from Class 2
7. N.S.C.: Next Service Completion
The current procedure is for the case of one class of customers and two servers.
The notations are:
1. C.T.: Current Time
2. N.C.Q.: Number of Customers in Queue
3. C.B.S.S1: Customer Being Served by Server 1
4. C.B.S.S2: Customer Being Served by Server 2
5. N.A.: Next Arrival of a customer
6. N.S.C.S1: Next Service Completion by Server 1
7. N.S.C.S2: Next Service Completion by Server 2
The current procedure is for the case of two classes of customers and two servers.
The notations are:
1. C.T.: Current Time
2. N.C.Q.C1: Number of Customers in Queue from Class 1
3. N.C.Q.C2: Number of Customers in Queue from Class 2
4. C.C.B.S.S1: Class of Customer Being Served by Server 1
5. C.C.B.S.S2: Class of Customer Being Served by Server 2
6. N.A.C1.: Next Arrival of a customer from Class 1
7. N.A.C2.: Next Arrival of a customer from Class 2
8. N.S.C.S1: Next Service Completion by Server 1
9. N.S.C.S2: Next Service Completion by Server 2