Research in Configuration Problems
The handling of complex configurable products is not only a business challenge, but also a technical and computational challenge. Typically, configurable products have so many options that they can be built in an incredible number of different combinations. For example, a modern car like the Range Rover Sport has more than 1021 buildable combinations. That is more than 1,000,000,000,000,000,000,000 different variants. If a company were to list each of these variants as an item number (or SKU) it would require more than a zettabyte of data – a size which no storage system in the world has achieved until 2012. An exhaustive listing of possible combinations is clearly not feasible.
Instead, allowable combinations or legal combinations are defined by a product model through a joint effort of engineering, manufacturing, sales and marketing personnel. From a technical perspective, the product model is defined as a set of variables that can assume different values where only certain combinations of value assignments to these variables correspond to valid configurations of the product. This validity is expressed through a set of rules that must capture engineering and manufacturing constraints on what could be built, as well as commercial constraints on what should be offered. Adding to this complexity is the challenge of selling products across global markets with different regulations and customer preferences.
In computer science terms, a product model represents a constraint satisfaction problem. In order to support the authoring and execution of the model you need a constraint solver, which is often called a configuration engine. The configuration engine must be capable of handling constraint satisfaction problems with thousands of variables. Constraint satisfaction problems are known to belong to a famous class of NP-hard computational problems that grow exponentially harder to solve as you add options to your product model and quickly become completely intractable for even the most powerful supercomputers. Constraint engines use advanced algorithms to try to tackle this constraint satisfaction problem.
Configit’s core technology is based on a fundamental breakthrough in computer science that allows the complete constraint satisfaction problem to be solved in a single compilation step. After this step, all constraint satisfaction questions for a product model can be answered by a simple lookup in a special data structure generated by the compiler. This data structure, although compact in size, can be thought of as a concept of Configit’s Virtual Table describing all legal combinations. This is why the technology is known as Virtual Tabulation.
Configit pioneered the use of Binary Decision Diagrams (BDDs) as a new technology for configuration engines. Configit released the first Virtual Tabulation compiler in 2000 and has since then been a dedicated industry leader committed to continuous research and advancements in technology using advanced logic and mathematics to create applications that are great for the users and profitable for the business. As new needs and platforms arise at an increasing speed, and with businesses striving for efficiency and a competitive edge, Configit prides itself on the dedication it maintains to the importance of research and development processes and a strong technology platform.