Improve product configuration performance

Completed

You can formulate a product configuration model as a constraint satisfaction problem (CSP). Microsoft Solver Foundation (MSF) provides two types of solver strategies to solve the CSPs that you can use from product configuration models.

These solver strategies rely on heuristics (experimental learning or problem-solving methods), which help determine the order in which to consider the variables of the CSPs when you're solving the problem. Heuristics can significantly affect performance when you're solving a problem or class of problems.

In Supply Chain Management, the solver strategy for product configuration models determines which solver to use with heuristics. The Default, Minimal domains first, and Top-down strategies use the two solvers from MSF, whereas the Z3 strategy uses the Z3 solver.

Product information management > Products > Product configuration models > New

Screenshot of the New product configuration model page with the Solver strategy Default.

Customer implementation studies show that a change in the solver strategy for a product configuration model can reduce the response time from minutes to milliseconds. Therefore, it's worth the effort to try different solver strategies to find the most efficient strategy for your product configuration model.

Change settings for the solver strategy

To change settings for the solver strategy, on the Product configuration models page, on the Action Pane, select Model properties. Then, in the Edit the model details dialog, select a solver strategy.

Currently, no logic exists that automatically detects which solver strategy is the most efficient strategy for constraint-based product configuration. Therefore, you should try each solver strategy individually.

The following table provides recommendations about the solver strategy that you can use in various scenarios.

Solver strategy Use the strategy in this scenario
Default This strategy is optimized to solve models that rely on table constraints. Customer implementation studies show that Default is the most efficient strategy in scenarios where people use table constraints extensively.
Minimal domains first The Minimal domains first and Top-down strategies are closely related. Customer implementation studies show that the Top-down strategy outperforms the Minimal domains first strategy. However, the Minimal domains first strategy is in the product for backward compatibility. Both solver strategies are proven to be more efficient at solving models that contain several arithmetic expressions where no table constraints are used. However, in some cases, the Default strategy outperforms these two strategies. Therefore, remember to try each strategy.
Top-down The Minimal domains first and Top-down strategies are closely related. Customer implementation studies show that the Top-down strategy outperforms the Minimal domains first strategy. However, the Minimal domains first strategy is in the product for backward compatibility. Both solver strategies are proven to be more efficient at solving models that contain several arithmetic expressions where no table constraints are used. However, in some cases, the Default strategy outperforms these two strategies. Therefore, remember to try each strategy.
Z3 We recommend that you use the Z3 strategy as the default solver strategy. If you're concerned about performance and scalability, you can evaluate the other strategies.