Optimize - Improve Math Programming
 We improve combinatorial solutions by changing one or more variable values in the solution and observe whether the change results in an improvement. With an organized search over some neighborhood of adjacent solutions an initial solution may often be improved. The improvement methods are heuristics in that they do not necessarily find the optimum, but they require many fewer observations than exhaustive enumeration. While exhaustive enumeration methods require exponentially increasing effort to solve problems of increasing size, improvement methods for specified parameters usually require polynomially increasing effort. We use the integer-nonlinear math programming model shown below. The model shows the solution found with the Excel Solver. Since the continuous version of the objective function is concave, this should be the optimum solution. To solve the problem with combinatorial search we choose the Math Program option from the Optimize menu. Select All in the dialog presented. The only apparent change is the combinatorial form starting in cell U1. Not so obviously, the variables are renamed so the combinatorial search procedures will manipulate the variables in the search for the optimum. The search procedures use the Lower and Upper bounds to limit the range of the search. Although the form shows the Exhaustive search method, that may be changed with the Search command. Greedy Solution To illustrate the improvement options, we first set all the variables to zero and use the greedy method to find a feasible solution. The best solution, found after 78 runs, has the objective value of 122.45. Other feasible solutions are shown in the list below and the greedy solution is shown at the top. To improve the solution we choose the Search item from the menu. The various improvement options are illustrated on the dialog below. The Improve checkbox is available for the Random, Current Solution and Greedy Solution methods. Clicking the Improve checkbox initiates the improve option. The two boxes at the lower right set parameters for the improvement. The process will change variables in the solution in a search for a better solution. The box labeled n_change sets the maximum number of variables that will be simultaneously changed. To reduce the number of runs, this number should be set to a small value. The smallest value of 2 is often appropriate. The example uses 3. The second box is the Change. When searching for an improved solution this is the maximum change from the current incumbent solution. The smallest value of 1 is usually sufficient. Larger values will increase the number of runs required. For the example we choose to apply the improvement to the Current Solution because that is the greedy solution. For the general or range model the improvement process is as follows. First the greedy enumeration method is applied to the current solution. Then we perform the 2-change method on the current solution. This means that every pair of variables is selected in turn and the values of the variables are caused to vary between (+,-) the maximum change from the current incumbent solution. Whenever a solution is encountered that has a better objective value than the incumbent, the solution becomes the incumbent solution. The 2-change procedure is repeated until there is no improvement. For a particular pair of variables, only solutions that are different for both variables are considered. If the n-change value is greater than 2, the program next performs the 3-change procedure. Here all combinations of three variables are considered in turn and all variables are allowed to assume values between (+,-) the maximum change from the current incumbent solution. For a particular set of three variables, only solutions that are different for all variables are considered. The 3-change procedure is repeated if any variable values are changed. The process repeats for 4-change, 5-change, etc if called for by the dialog. The results for the example are shown below. During improvement, only improving solutions are shown in the list because the process may evaluate the same solution many times. The improvement process finds a solution with value 146.42. This is not the optimum but it is much improved from the greedy solution. In the summary of runs "Imp." indicates the number of objective evaluations required to perform the improvement process. Improving Random Solutions Perhaps one of the most powerful applications of the improvement method is with the Random option. Here a specified number of random solutions are generated and each one is subjected to the improvement process. It is important that only few random solutions be generated because the improvement process may require a large number of objective evaluations. The dialog for the example is shown below where 5 random solutions are to be created and each independently improved. The results obtained with the 5 random initial solutions are shown below. The process did not find the optimum, but an improved solution has been found. The improvement algorithms could have been more efficient and effective if we assumed a specific model format such as a math programming model. We have however tried to keep the algorithms as general as possible. They should be applicable to any Excel model that produces numerical objective function values where the variables of interest are restricted to ranges.

Operations Research Models and Methods
Internet
by Paul A. Jensen