Professional Documents
Culture Documents
Virtual Tabulation White Paper
Virtual Tabulation White Paper
[Abstract]
Henrik Hulgaard
Virtual Tabulation
© Copyright 2019 Configit A/S
Contact information
Configit A/S
Kristianiagade 7
DK-2100 Copenhagen Ø
Denmark
Tel.: +45 7022 6700
Fax: +45 7022 6711
Mail: [email protected]
www.configit.com
Legal notes
This document is © Copyright Configit A/S and may not be distributed without permission from
Configit. The content is strictly confidential and only intended for those receiving this directly
from Configit.
Configit, the Configit logo, Virtual Tabulation, Configit Product Modeler, Configit Runtime,
Configit Quote for SAP and other Configit product names are trademarks or registered trade-
marks of Configit A/S. All other product and service names mentioned and associated logos
displayed are the trademarks of their respective companies.
Contents
1. Introduction......................................................................................................................... 1
2. The Interactive Configuration Problem ............................................................................ 1
3. The Product Model ............................................................................................................. 2
4. Three Generations of Solving the Configuration Problem ............................................. 3
5. A Simple Example .............................................................................................................. 4
6. Compilation Statistics ........................................................................................................ 6
7. Advantages of the Compilation-Based Approach ........................................................... 7
iii
Virtual Tabulation
1. Introduction
Configit’s software products are all based on the patented configuration technology Virtual
Tabulation. Virtual Tabulation solves the difficult part of the configuration problem once, where
traditional approaches solve it over and over again. Because of this key difference, Configit
offers significant improvements in the way configuration solutions are created, maintained,
deployed and used. This white paper describes the virtual tabulation approach to solving the
configuration problem and presents some of the benefits of using this technology.
o Support for analyzing and testing the rules to ensure the correctness of the rule-
set before releasing to downstream systems.
f º xi = v | f Ù g | f Ú g | ¬f
Figure 2: Comparing the traditional approach (Constraint Solvers) with the compiled approach (Virtual Tabulation)
5. A Simple Example
We will illustrate the compilation based approach using an example: configuring a T-shirt. In
this academic example, there are three variables: Color, Size and Print. There are four
colors (black, white, red, and blue), three sizes (small, medium and large) and two
prints (“Men-in-Black” MIB, and “Save-the-Whales” STW). There are only two rules:
• If the print is MIB, the t-shirt must be black (as a MIB t-shirt must be black)
• If the print is STW, the size cannot be small (as the large print otherwise won’t fit)
The product model is shown in Figure 3.
x1 Î { black, white, red, blue } : Color
x2 Î { small, medium, large } : Size
x3 Î { MIB, STW } : Print
Assume the customer selects small for the size. The second rule then states that the print
cannot be STW and since there are only two values for the print, the print must be MIB and
thus, from the first rule, color must be black. So the expected behavior of the configurator is
to select MIB and black once the customer has selected the small size. This scenario
illustrates how the rules work “backwards” – rules are declarative, not procedural as software
code is; that is, they state a relationship which must be satisfied, not how to achieve this.
Consider another example: The customer selects a white t-shirt. From the first rule, the print
cannot be MIB and thus must be STW. The second rule then eliminates the small size. In this
scenario the customer will still have to choose among the remaining sizes (medium or large).
The truth-table for the t-shirt model contains 24 rows (4*3*2). Figure 4 shows the valid t-shirt
configurations, i.e., those of the 24 rows that satisfy the two rules. For example, the first row
(black, small, STW) is invalid as it violates the second rule f2.
Figure 4: Truth-table showing the valid configurations for the product model in Figure 3.
The challenge with this approach is that the size of the truth-table becomes extremely large
for real models which typically contains hundreds of variables. For example, a model with 100
variables, each with just two values, have 2100 = 1,267,650,600,228,229,401,496,703,205,376
rows in the truth table!
A Virtual Table is a compact representation of the truth-table. It is constructed by building a
representation of the solution space of each rule and then combining the rules to form the
combined result. Figure 6 shows a VT representation of the set of valid configurations to the t-
shirt model. Each variable in the model is represented by one or two Boolean variables (2
variables for color and size, 1 for print). Every path from the root to the 1-terminal is a valid
configuration and the paths to the 0-terminal represent invalid configurations, corresponding
to the rows that had been crossed out in Figure 4. The dashed arrows are traversed when the
variable is false, the full arrows are traversed when the variable is true.
Figure 6: Virtual Table representation of the solution space for the T-shirt
6. Compilation Statistics
The compilation step solves the difficult part of the configuration problem by computing the VT-
representation of the set of all valid configurations. This step may use significant computer
resources in terms of CPU-time and memory. However, real-life models have a lot of structure
which the compiler uses to quickly compute the VT-file. Table 1 shows statistics for some
models from our customers, ranging from a few hundred variables to a few thousand (these
are typical sizes of product models). The table shows that the VT-file typically is calculated in
a few seconds and the VT-file size is in the order of a few megabytes.
Table 1: Compilation times and size of VT-files for typical models. The VT-files are compiled on a PC with an Intel
Core 2 Quad CPU ([email protected]) with 8 GB memory and running Windows 7 x64.
2. Quality Assurance of Rules: Since the VT-file represents every valid configuration,
it is possible to perform detailed analyses at modeling time. Similar to what is known
from software development, it is possible to express tests that are checked each time
the product model is modified. Such a test can express that when certain variables
have given values, other variables must be set to or cannot take certain values. Unlike
normal software-test where the input-combinations are non-exhaustive, it is possible to
prove that the test holds for every valid configuration. Such tests can be very useful to
ensure that the BOM is correct, i.e., that for every valid configuration, the BOM is not
missing any parts and there are not too many parts (e.g., two engines selected for a
given configuration)
3. User Experience: Configurators based on VT-files are complete and backtrack-free.
This means that when the user gets to select a value, he is guaranteed that there is a
valid configuration containing this value. And vice-versa, if the configurator disallows a
value, it is because there is no way to complete the configuration to a valid configuration
with the disallowed value in combination with the previously selected values. In other
words, the user is guided towards a valid configuration and will not get into trial-and-
error scenarios.
The user is not bound to select values in a pre-defined sequence. Interacting with the
configurator, the user can start by selecting the values which are of highest relevance
in the current configuration scenario.
The technology supports automatic conflict resolution. Should a user want to choose a
value which is in conflict with a set of previously chosen values, the configurator will
automatically resolve any conflicts. This is done by providing an interactive conflict
resolution, allowing the user to select which values to keep, ensuring that the
configuration is always valid.
4. Multi-Channel: A single VT-file may contain rules ranging from highly internal technical
or engineering rules (e.g., specifying the emission standards, frequencies etc. based
on market) to marketing rules about what values are available in what markets, to rules
that map high-level customer requirements to more technical variables. A VT-file may
have hundreds of variables, some of which are very technical and others very
customer-related, but due to the complete knowledge of the solution space, the
configurator can expose only a subset of the variables. This makes it possible to
develop specialized configuration applications for specific channels (web-sites, order
entry, manufacturing) based on a single VT-file. There may be one configurator
application for mobile devices (e.g., iPad), another configurator with more variables on
the web-site and a third configurator application for the order entry process with even
more choices. But even when the customer uses the mobile configurator and makes
just a few choices, since the VT-file has the full set of valid configurations, it can be
guaranteed that it is always possible to make choices for the remaining variables. This
is a very strong property which ensures that all configuration logic can be combined in
one system (“single source of truth”) instead of being spread around in a production
configurator, a sales configurator and in specialized mobile applications, causing mis-
alignment of data and difficulties keeping the configurators up-to-date.
5. Cross-Platform: The configurator runtime component is quite small and simple. The
Configit runtime component is available in .NET and JavaScript, thus ensuring a
ubiquitous use of configuration knowledge. The JavaScript version makes it possible
to run the configuration logic in a browser, making it possible to make the configurator
run on mobile devices and offline.