This post is part of the series of posts explaining performance improvements introduced in

Constraint-Based Product Configuration in Microsoft Dynamics AX 2012 R3 CU8.

The Solver strategy concept was first introduced in Cumulative update 7 for Dynamics AX 2012 R2 and has been extended in Cumulative

update 8 for Dynamics AX 2012 R3. It now includes the following strategies:

- Default
- Minimal domains first
- Top-down

What is a solver strategy?

Imagine you were given the task of solving a 100 piece jigsaw puzzle. How would you start?

A common solving strategy is to start with the edges and move towards the middle, most of us

will either have done this ourselves or if not it should be pretty simple to

convince yourself that this strategy is sound.

Now, what if the puzzle you have to solve does not have straight line edges (often referred to

as impossible puzzles)? Suddenly our edge-first strategy will be dramatically less efficient as the edges are much more difficult to identify.

For the Solver, a configuration model is a bit like a jigsaw puzzle which needs to be solved.

With the Solver strategy concept, we have enabled you to set the strategy which

the solver will use when it solves the model. Configuration models can however

be very different in nature and the strategy for solving one model efficiently

may prove to be inefficient to solve a different model.

What is the impact?

The impact of response times has been shown on real customer models, to go from minutes to

milliseconds. For this reason it is really worth your time to spend a few

seconds to change this one setting, to see if a change in Solver strategy could

have this impact on your configuration model.

You can change the Solver strategy setting in the model properties form.

Which strategy to choose

Currently there is no build in logic which automatically detects which solver strategy will be most efficient, so for now, you will have to try them out.

Default

What can be said about the different solver strategies is that the default Solver strategy has been optimized so solve models which rely on table constraints. On all the customer models we have seen which use table constraints to a large extend this

solver strategy has proved to be the most efficient.

Minimal domain first and Top-down

These two strategies are closely related. The Top-down strategy, which has been introduced with CU 8 has shown to outperform Minimal domain first in all of our studies, but for

backwards compatibility we have decided to keep the minimal domain first strategy

in the product. Both of these strategies have shown to be more efficient for

solving models which contain several arithmetic expressions and where table constraints are not used. However, there are still examples where the default solver strategy will out perform these, so remember to try each.

Nice explanation.