To let the Solver know which cells on the worksheet represent the decision variables, constraints and objective function, we click the Risk Solver Platform tab on the ribbon, which displays the icons shown below. (Click on the worksheet for a full-size image.)  The Model icon on the Risk Solver Platform tab can be clicked to toggle on and off the Risk Solver task pane shown on the right side of the screen. 

Risk Solver Ribbon

To define the decision variables we select B4:E4 and then click Decisions, Normal on the Risk Solver Platform tab. Similarly, to define the objective, we select cell F5 and click Objective, Max, Normal on the Risk Solver Platform tab.  The result of these settings are shown in the following worksheet. (Click the worksheet for a full-size image.) 

Risk Solver Task Pane

Notice that the Optimization icon in the task pane has expanded and is summarizing our selections for the objective and decision variables. Also notice that if we click on the objective cell in the task pane, various properties associated with the objective appear in the lower portion of the task pane. These properties allow us to change the cell to optimize and the direction of optimization (i.e., maximize or minimize).  Similarly, if we click on the variables in the task pane, various properties associated with the variables would appear in the bottom of the task pane.

To add the constraints for the problem, we select cells F8:F11 and click Constraints, Normal Constraint, "<=" on the Risk Solver tab.  This causes the Add Constraint dialog to appear as shown below with cells F8:F11 in the Cell Reference edit box (the left hand side), and we select cells G8:G11 in the Constraint edit box (the right hand side). (Click on the worksheet to see a full-size image.) 

Adding Constraints

We can click the Add button on the Add Constraint dialog above (or click Constraints, Normal Constraints, ">=" on the Risk Solver Platform tab) to define the non-negativity constraints on the decision variables. (Alternatively, we can set the Assume Non-Negative property to True on the Engine tab in the task pane.)

When we've completely entered the problem, the Risk Solver task pane appears as shown below. (Click on the worksheet to see a full-size image.) 

Final Model


Finding and Using the Solution

To find the optimal solution, we simply click  the Optimize icon on the Risk Solver task pane (or the green triangular run/play button in the task pane).  After a moment, the Solver returns the optimal solution in cells B4 through E4. This means that we should build 23 pallets of Tahoe panels, 15 pallets of Pacific panels, 39 pallets of Savannah panels, and 0 pallets of Aspen panels. This results in a total profit of $58,800 (shown in cell F5).

Optimal Solution

The message "Solver found a solution.  All constraints and optimality conditions are satisfied." appears in the task pane, as shown above. (Click on the image to see it full-size).  We now click Reports, Optimization, Answer in the Risk Solver Platform tab to produce an Answer Report.  Risk Solver creates another worksheet containing an Answer Report, like the one below, and inserts it to the left of the problem worksheet in the Excel workbook.  (Click on the Answer Report for a full size image.)

Answer Report

This report shows the original and final values of the objective function and the decision variables, as well as the status of each constraint at the optimal solution. Notice that the constraints on glue, pressing, and pine chips are binding and have a slack value of 0. The optimal solution would use up all of these resources; however, there were 28,000 pounds of oak chips left over. If we could obtain additional glue, pressing capacity, or pine chips we could further increase total profits, but extra oak chips would not help in the short run.

Learning More

If you've gotten to this point, congratulations! You've successfully set up and solved a simple optimization problem using Microsoft Excel.  If you'd like, you can see how to set up and solve the same Product Mix problem using Excel's built-in Solver or using a Visual Basic .NET program that calls Frontline's Solver Platform SDK.  If you haven't yet read the other parts of the tutorial, you may want to return to the Tutorial Start and read the overviews "What are Solvers Good For?", "How Do I Define a Model?", "What Kind of Solution Can I Expect?" and "What Makes a Model Hard to Solve?"

This was an example of a linear programming problem.  Other types of optimization problems may involve quadratic programming, mixed-integer programming, constraint programming, smooth nonlinear optimization, and nonsmooth optimization.  To learn more, click Optimization Problem Types.  For a more advanced explanation of linearity and sparsity in optimization problems, continue with our Advanced Tutorial.