BDD Based Configuration Henrik Hulgaard, CTO
Configit: Interactive Configuration Tools Configit is an ITU spin-off company Currently employs 18 people, cand.it., computer scientists, PhDs Close relation to SAP Web:
Customer Examples Arla PlastLindab B&G FencingLogica BrunataNetstal CCI EuropeNovenco Danfoss CoolingPsion Teklogix Danfoss District HeatingScalepoint Technologies Danfoss DrivesScam Trucks Dantherm FiltrationScancoin DeifSchneider Electric Power Drives DHI Water & EnvironmentSEAS-NVE Di ZioSkako Comessa DooriaTageksperten EnalyzerUGS (Siemens PLM) EnersysUkrSibbank ErhvervsministerietUponor Europæiske RejseforsikringVestas Gemini FashionsVolvo Trucks GrundfosWinnie Paper LEGO Sales configurator Other configurator SAP integrated Consultancy
What’s Interactive Configuration?
A configuration problem C is a triple (X,D,F) –X is a set of variables x 1, x 2, …,x n –D is the Cartesian product of their finite domains D = D 1 D 2 … D n –F = {f 1,f 2,…,f m } is a set of propositional formulas over atomic propositions x i = v, where v D i, specifying the conditions that the variable assignments must satisfy. Each formula is inductively defined by f x i = v | f g | f g | f Configuration Problem
An interactive configurator must: 1.Ensure that the user ends with a valid configuration 2.Guide the user towards the goal Interactive Configuration
for all i < j: c[i] <> c[j] // row i+c[i] <> j+c[j] // NW-SE i+c[j] <> j+c[i] // SW-NE The 8 Queens Problem c: array 8 of [0..7]; c[i] = "position of the queen in column i" c[0] c[1] c[2] c[3] c[4] c[5] c[6] c[7]
x 1 {black, white, red, blue} : Color x 2 {small, medium, large} : Size x 3 {“Men in black” – MIB, “Save the whales” -STW} : Print f 1 (x 3 = MIB) (x 1 = black) f 2 (x 3 = STW) (x 2 small) x 1 x 2 x 3 blacksmallMIB whitemediumSTW redlarge blue T-Shirt Example 1 1 : Due to Erik van der Meer
x 1 {black, white, red, blue} : Color x 2 {small, medium, large} : Size x 3 {“Men in black” – MIB, “Save the whales” -STW} : Print f 1 (x 3 = MIB) (x 1 = black) f 2 (x 3 = STW) (x 2 small) x 1 x 2 x 3 blacksmallMIB whitemediumSTW redlarge blue T-Shirt Example 1 1 : Due to Erik van der Meer
x 1 {black, white, red, blue} : Color x 2 {small, medium, large} : Size x 3 {“Men in black” – MIB, “Save the whales” -STW} : Print f 1 (x 3 = MIB) (x 1 = black) f 2 (x 3 = STW) (x 2 small) x 1 x 2 x 3 blacksmallMIB whitemediumSTW redlarge blue T-Shirt Example 1 1 : Due to Erik van der Meer
x 1 {black, white, red, blue} : Color x 2 {small, medium, large} : Size x 3 {“Men in black” – MIB, “Save the whales” -STW} : Print f 1 (x 3 = MIB) (x 1 = black) f 2 (x 3 = STW) (x 2 small) x 1 x 2 x 3 blacksmallMIB whitemediumSTW redlarge blue T-Shirt Example 1 1 : Due to Erik van der Meer
x 1 {black, white, red, blue} : Color x 2 {small, medium, large} : Size x 3 {“Men in black” – MIB, “Save the whales” -STW} : Print f 1 (x 3 = MIB) (x 1 = black) f 2 (x 3 = STW) (x 2 small) x 1 x 2 x 3 blacksmallMIB whitemediumSTW redlarge blue T-Shirt Example 1 1 : Due to Erik van der Meer
Truth Table for T-shirt black S StW black S MiB black M StW black M MiB black L StW black L MiB white S StW white S MiB white M StW white M MiB white L StW white L MiB red S StW red S MiB red M StW red M MiB red L StW red L MiB blue S StW blue S MiB blue M StW blue M MiB blue L StW blue L MiB 13
Truth Table for T-shirt black S StW black S MiB black M StW black M MiB black L StW black L MiB white S StW white S MiB white M StW white M MiB white L StW white L MiB red S StW red S MiB red M StW red M MiB red L StW red L MiB blue S StW blue S MiB blue M StW blue M MiB blue L StW blue L MiB 14
Truth Table for T-shirt black S StW black S MiB black M StW black M MiB black L StW black L MiB white S StW white S MiB white M StW white M MiB white L StW white L MiB red S StW red S MiB red M StW red M MiB red L StW red L MiB blue S StW blue S MiB blue M StW blue M MiB blue L StW blue L MiB 15
Truth Table for T-shirt black S StW black S MiB black M StW black M MiB black L StW black L MiB white S StW white S MiB white M StW white M MiB white L StW white L MiB red S StW red S MiB red M StW red M MiB red L StW red L MiB blue S StW blue S MiB blue M StW blue M MiB blue L StW blue L MiB 16
T-shirt in Product Modeler DEMO
T-shirts in Quote DEMO
IPC(C) 1.R C OMPILE (C) 2. while |R| > 1 do 3. choose (x i = v) V ALID A SSIGNMENTS (R) 4. R R (x i = v) ←Offline ←Online } BDD
Build product models Think of it like this… Distribute office documents Run through Distiller PDF-filesRead with Reader Distribute interactive product knowledge VT-files Interact at Runtime
Stand-alone Tools VT-files are versatile VT Files Configurator Web Application Configuration Configurator Portable Devices Configuration Configurator Stand Alone Configuration PDA based Tools Office Tools Configurator CD Distribution Configuration Tools on a CD
Idea 1.Use a BDD to represent R 2.Use a polynomial-time BDD algorithm to compute V ALID A SSIGNMENTS (R) BDD-based configuration
1. Define domains in binary: 00 : black, 01 : white, 10 : red, 11 : blue 00 : small, 01 : medium, 10 : large 0 : MIB, 1 : STW 2. Build a BDD of the rules: Represent R by a BDD
Trace paths for each variable layer in the BDD Compute V ALID A SSIGNMENTS (R)
More info Take a look at Free trial SW download and numerous technical papers Student projects Ask
Legal notes. This presentation is © Copyright Configit A/S and may not be distributed without permission from Configit. This presentation 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 trademarks of Configit A/S. All other product and service names mentioned and associated logos displayed are the trademarks of their respective companies.