Upload
kelley-hodges
View
213
Download
0
Tags:
Embed Size (px)
Citation preview
Configuration and E-commerce
Invited talk, IFORS 20028-12 July 2002, Edinburgh, Scotland
Jesper Møller [[email protected]]
IT University, Denmark [www.it.edu]ConfigIt [www.configit-software.com]
Agenda
• Background: Online sales of complex products
• Product Configuration: Constraint Propagation and Virtual Tabulation
• Tool Description: ConfigIt
• An Example: The Virtual Bike Shop
Background: Manufacturers of complex products
• More and more companies want to sell their products and services online: B2C: Computers, furniture, bikes, cars, cell phones,
insurances, … B2B: A/C systems, refrigeration units, medical
equipment, wells, …• Companies must constantly innovate, shape their core
competences, and improve their ability to operate as suppliers of many product variants built from the same core set of products
• The knowledge describing these products is the core competency of a company, giving raise to focus on how to capture this knowledge
• Companies want to reduce cost of operation and focus on both their products and their customers
Background: Manufacturers of complex products
• Electronic products are increasingly being controlled by embedded software to meet the need for greater flexibility and more customizable features
• Examples are tele-communication equipment programmable controllers for industrial equipment cars, medical equipment, A/C systems, etc.
• This embedded software encapsulates complex interdependencies between the parameters defining the correct operation of the product
• Companies want to deliver flexible electronic products that are easy to set up and use
Background: The customers
• Customers want to buy customized products with more and more features that fulfill their individual needs
• Products should be flexible and customizable even after purchase
• Customers want personalized websites with adaptive GUIs
• Their patience is dropping [Giga Research]: 2001: 10 seconds 2002: 7 seconds 2003: 4 seconds (expected)
Background: The Challenges
• How to deliver the right product for the right customer at the right time using the right presentation?
• How to capture detailed knowledge about the products?• How to maintain product information and manuals? • How to handle many different product variants built
from a core set of products?• How to handle the inter-dependencies between
parameters defining the product and the GUI presentation of the product?
• How to handle many, almost identical versions of the setup software for electronic products?
• How to provide more features and greater flexibility without increasing the complexity of the correct operation of the product?
Agenda
• Background: Online sales of complex products
• Product Configuration: Constraint Propagation and Virtual Tabulation
• Tool Description: ConfigIt
• An Example: The Virtual Bike Shop
Product Configuration
• Product model: Parameters: x1,…,xn
Domains: D1,…,Dn
Rules (business logic): R1,…,Rm
• Solution: Assignment of the parameters such that each rule is satisfied
• Complexity: Deciding consistency of a product model (does it have a solution) is NP-complete
• Product configuration: Is an assignment a solution? Is a partial assignment a solution? What values can be assigned to each variable, given
a partial assignment?
• Place 8 queens on a chessboard so that no queen can capture another:
constant
N: 8;
variable
col: array N of [0..N-1];
rule
forall i in [0..N-2]:
(forall j in [i+1..N-1] :
(col[i] <> col[j] and
i+col[i] <> j+col[j] and
i+col[j] <> j+col[i]);
Product Configuration: An Example
Product Configuration: Constraint Propagation
• Whenever a user selects a value for a variable, derive the consequences by propagating this information through the rules
• Disadvantages: Response times may be too large, or only
approximate solutions can be found All work is done at runtime Syntactic formulation of rules may influence
response times Difficult to reuse computations
Product Configuration: Virtual Tabulation
• Compute all solution to the configuration problem and store them in a virtual table
• Virtual table: Compact data structure for representing all solutions implicitly. Decision DAG where nodes are variables, edges are values, and a path = a solution
• Size depends on the structure of the product model, not the number of solutions
• Efficient algorithms for building/querying a VT: Deciding consistency is O(1) Determinig the legal values for xi is O(|Di| + |VT|)
Product Configuration: Virtual Tabulation (II)
• Advantages: Always correct answers Compact, makes it possible to embed a configurator
on small devices such as SmartCards, iButtons, iPaqs, etc.
Predictable, bounded response times All work is done at compile time The number of solutions is known Rules and other data need only be available at
compile time Syntactic formulation of rules does not influence the
size of the virtual table
Product Configuration: Virtual Tabulation (III)
• Disadvantages: Only finite domains, no real-valued variables Relatively simple rules: plus, minus, comparison,
and, or, not, if-then-else Virtual table must be recompiled whenever the
product model changes Most product models have compact virtual tables,
but some don’t
Agenda
• Background: Online sales of complex products
• Product Configuration: Constraint Propagation and Virtual Tabulation
• Tool Description: ConfigIt
• An Example: The Virtual Bike Shop
Tool Description: ConfigIt
GUI for buildingproduct model
Java/C++/COM API forruntime lookup in VT file
ERP
GUI for test andvalidation of PM
Agenda
• Background: Online sales of complex products
• Product Configuration: Constraint Propagation and Virtual Tabulation
• Tool Description: ConfigIt
• An Example: The Virtual Bike Shop
An Example: The Virtual Bike Shop
User preferences: height, type of bike
The presentation
Components: frame, tires, gear, pedals, etc.
Properties: frame-size, frame-color, etc.
An Example: The Virtual Bike Shop (II)
Data extracted from a bike stores’ SQL-DB
PM has 42 variables, took 2 days to develop
127 million solutions (different bikes)
1500 entries in Virtual Table (32Kb)
An Example: The Virtual Bike Shop (III)
Took 1–2 hours to develop
Approximately 200 lines of ASP code
To create a drop-down menu: <% webControls.Dropdown "Shoes", "Not Selected" %>
Use library of COM functions to query the Virtual Table