Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кол. методы МБА 2012 / 2. Оптимизация / Окно поиска решения.docx
Скачиваний:
44
Добавлен:
08.04.2015
Размер:
205.3 Кб
Скачать

Problems with Poorly Scaled Models

A poorly scaled model is one that computes values of the objective, constraints, or intermediate results that differ by several orders of magnitude. A classic example is a financial model that computes a currency amount in millions or billions and a return or risk measure in fractions of a percent. Because of the finite precision of computer arithmetic, when these values of very different magnitudes (or others derived from them) are added, subtracted, or compared – in the user’s model or in Solver’s own calculations – the result will be accurate to only a few significant digits. After many such steps, Solver may detect or suffer from “numerical instability.”

The effects of poor scaling in a large, complex optimization model can be among the most difficult problems to identify and resolve. It can cause Solver to return messages such as “Solver could not find a feasible solution,” “Solver could not improve the current solution,” or even “The linearity conditions required by this LP Solver are not satisfied,” with results that are suboptimal or otherwise very different from your expectations. The effects may not be apparent to you, given the initial values of the variables, but when Solver explores Trial Solutions with very large or small values for the variables, the effects will be greatly magnified.

Dealing with Poor Scaling

The Solver Options dialog includes a Use Automatic Scaling check box. When this box is selected (it is selected by default), Solver rescales the values of the objective and constraint functions internally in order to minimize the effects of poor scaling. But this can only help with Solver’s own calculations – it cannot help with poorly scaled results that arise in the middle of your Excel formulas. Further, in some poorly scaled models, automatic scaling can make things worse rather than better – so you may wish to try clearing this check box and re-solving.

The best way to avoid scaling problems is to carefully choose the “units” implicitly used in your model so that all computed results are within a few orders of magnitude of each other. For example, instead of expressing currency amounts in single units, you could express them in units of (say) millions, if appropriate for your model, so the actual numbers computed on your worksheet may range from perhaps 1 to 1,000.

 Read the topics on Limitations on Smooth Nonlinear Optimization, affecting the GRG Solving method, andLimitations on Non-Smooth Optimization, affecting the Evolutionary Solving method.

Depending on the message, the solution values in the decision variable cells may be a globally optimal solution, a locally optimal solution, only an approximate solution, or no solution (for example if no feasible solution exists).

Limitations on Smooth Nonlinear Optimization

Nonlinear optimization problems are intrinsically more difficult to solve than linear problems, and there are fewer guarantees about what kind of solution Solver can find. If your smooth nonlinear problem is convex, Solver will normally find the globally optimal solution (subject to issues of poor scaling and the finite precision of computer arithmetic). But if your problem is non-convex, Solver will normally find only a locally optimal solution, close to the starting values of the decision variables, when you click Solve.

When dealing with a non-convex problem, it is a good idea to run Solver starting from several different sets of initial values for the decision variables. Since Solver follows a path from the starting values (guided by the direction and curvature of the objective function and constraints) to the final solution values, it will normally stop at a peak or valley closest to the starting values you supply. By starting from more than one point – ideally chosen based on your own knowledge of the problem – you can increase the chances that you have found the best possible “optimal solution.”

An easy way to do this is to select the Use MultiStart check box on the GRG Nonlinear tab of the Solver Options dialog: See Multistart Methods for Global Optimizationfor more information. However, this method uses randomly chosen starting points, so it doesn’t take advantage of your special knowledge of the problem.

Nonlinear problems with integer constraints are solved by a Branch and Bound method that runs the GRG method on a series of subproblems. If the GRG method stops prematurely due to slow convergence, or fails to find a feasible point on a given run, this may prevent the Branch & Bound method from finding the true integer optimal solution; though in most cases – given enough time – a good integer solution can be found.

Note that, when the GRG Nonlinear Solving method is selected in the dropdown list in the Solver Parameters dialog, the Generalized Reduced Gradient algorithm is used to solve the problem – even if it is actually a linear model that could be solved by the (faster and more reliable) Simplex LP method. The GRG method will usually find the optimal solution to a linear problem, but occasionally you will receive a Solver Result Message indicating some uncertainty about the status of the solution – especially if the model is poorly scaled. So you should always ensure that you have selected the right Solving method for your problem.