Solver strategy for product configuration

Completed

A product configuration model can be formulated as a Constraint satisfaction problem (CSP). Microsoft Solver Foundation (MSF) provides two types of solver strategies to solve the CSPs that can be used from product configuration models.

These solver strategies rely on heuristics (rules of thumb), which are used to determine the order in which the variables of the CSPs are considered when the problem is being solved. Heuristics can significantly affect performance when a problem or class of problems is being solved.

In Supply Chain Management, the solver strategy for product configuration models determines which solver is used with heuristics. The DefaultMinimal 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 have shown 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 box, select a solver strategy.

Currently, there is no logic that automatically detects which solver strategy will be the most efficient strategy for constraint-based product configuration. Therefore, you must 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 has been optimized to solve models that rely on table constraints. Customer implementation studies have shown that Default is the most efficient strategy in scenarios where table constraints are used extensively.
Minimal domains first The Minimal domains first and Top-down strategies are closely related. Customer implementation studies have shown that the Top-down strategy outperforms the Minimal domains first strategy. However, the Minimal domains first strategy is kept in the product for backward compatibility. Both solver strategies have been shown 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 have shown that the Top-down strategy outperforms the Minimal domains first strategy. However, the Minimal domains first strategy is kept in the product for backward compatibility. Both solver strategies have been shown 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.