34
Department of Innovation IT University of Copenhagen March 2004 Kernel Design I: Design of a configurator product Henrik Reif Andersen

Henrik's slides on a configurator kernel

Embed Size (px)

Citation preview

Department of InnovationIT University of Copenhagen

March 2004

Kernel Design I:Design of a

configurator productHenrik Reif Andersen

Goal: To design a software product for developing configurators to be used in various areas of applications

Plan:1. The configuration problem: examples & basic theory2. Kernel architecture3. Platforms & implementation technologies4. Licensing5. Extensions

Overall goal & plan for lecture

Plan:1. The configuration problem: examples & basic theory2. Kernel architecture3. Platforms & implementation technologies4. Licensing5. Extensions

Examples:

* 8 queens ( http://localhost/configit/Queen/queen.asp )

* bikes (http://localhost/configit/Bike/bike.asp )

* others

Theory

Det interaktive konfigurationsproblem

Alle mulige konfigurationer

Alle gyldige konfigurationer

En (interaktiv) konfigurator skal:1. Sikre man ender med en gyldig konfiguration2. Guide brugeren frem mod målet

Interaktive konfiguratorer baseret på produktmodeller

Produktmodel: x1 , ... , xn parametre / variable

D1 , ... , Dn værdier / domæner r1 , ... , rm regler / formler

Svarer til een stor formelφ( x1 , ... , xn )

som angiver de gyldige konfigurationer

En bruger vælger en parameter og en (gyldig) værdi x = vKonfiguratoren svarer med de gyldige værdier V1 , ... , Vn for

alle parametrene

Eksempel: Mærkelige t-shirts...

color: [ black | white | red | blue ];

size: [ S | M | L | XL ];

print: [ MiB | StW ];

if print = MiB then color = black;

if print = StW then size = L or size = XL;

[] black [] S [] MiB

[] white [] M [] StW

[] red [] L

[] blue [] XL

color: [ black | white | red | blue ];

size: [ S | M | L | XL ];

print: [ MiB | StW ];

if print = MiB then color = black;

if print = StW then size = L or size = XL;

[] black [] S [] MiB

[] white [] M [] StW

[] red [] L

[] blue [] XL

Bruger vælger: color = white

Eksempel: Mærkelige t-shirts...

color: [ black | white | red | blue ];

size: [ S | M | L | XL ];

print: [ MiB | StW ];

if print = MiB then color = black;

if print = StW then size = L or size = XL;

[] black [] S [] MiB

[] white [] M [] StW

[] red [] L

[] blue [] XL

Bruger vælger: color = white, konfiguratoren konkluderer...

Eksempel: Mærkelige t-shirts...

√ √

color: [ black | white | red | blue ];

size: [ S | M | L | XL ];

print: [ MiB | StW ];

if print = MiB then color = black;

if print = StW then size = L or size = XL;

[] black [] S [] MiB

[] white [] M [] StW

[] red [] L

[] blue [] XL

Bruger vælger: size = S, konfiguratoren konkluderer...

Eksempel: Mærkelige t-shirts...

color: [ black | white | red | blue ];

size: [ S | M | L | XL ];

print: [ MiB | StW ];

if print = MiB then color = black;

if print = StW then size = L or size = XL;

[] black [] S [] MiB

[] white [] M [] StW

[] red [] L

[] blue [] XL

Bruger vælger: size = S, konfiguratoren konkluderer...

Eksempel: Mærkelige t-shirts...

√ √√

Hvor svært er det?

Lad os antage værdierne kun er boolske {0,1} og regler kun kan angives ud fra variable, not, og and

(SAT) Spørgsmålet findes x1 , ... , xn så φ( x1 , ... , xn ) er sand er NP-fuldstændigt (Cook 1972).

Essensen er:• Det er nemt at checke en løsning• Det er svært at finde en løsning

Interaktiv konfiguration: Rigtig mange SAT-problemer!

Når en bruger har valgt x1,...,xk skal man beregne de gyldige værdier for xk+1, ... , xn. Det svarer til et SAT-problem for hver mulig værdi xi = v.

Nogle konfiguratorer undgår at løse SAT-problemer, ved1. Kun at tillade valg i fast rækkefølge2. At begrænse regler så de kun taler om værdier der er kendte3. Kun at beregne gyldige værdier for xk+1

Det giver dog problemer med anvendeligheden:1. Dead-ends kan ikke undgås2. Svært at lave og vedligeholde produktmodellen3. Fasttrådet rækkefølge giver dårlig brugergrænseflade

Interaktiv konfiguration: Der skal løses rigtig mange SAT-problemer!

Der findes ingen algoritme som altid løser SAT effektivt!

Alle algoritmerne kan tage eksponentiel tid. Det er ubehageligt! (2n vokser hurtigt, n=10 2n=1024, n=40 2n=1 billion, n=600

2n=antal elementarpartikler i universet)

Man må anvende algoritmer som "oftest" virker godt.

Eksempler:Constraint propagation Virtual Tabulation

rules complexsearch software

rulesVT

generation VT lookup

offline online

configurator

configurator

cons

tr ain

t pr

o pa g

a tio

nvi

rt ua l

tabu

lat io

nInteractive Configuration: Virtual Tabulation

NP-fuld.

NP-fuld. P

Gyldige domænerProduktmodel:

x1 , ... , xn parametre / variable D1 , ... , Dn værdier / domæner r1 , ... , rm regler / formler

Kerne-operation:givet værditildeling

l = [xi1 = vi1, xi2 = vi2, ... , xik = vik]

beregn

(V1, ..., Vn) = valid_domains(l)

Eksemplerne igen

* 8 Queens: produktmodel og valid domains?

* Bikes: produktmodel og valid domains?

Plan:1. The configuration problem: examples & basic theory2. Kernel architecture3. Platforms & implementation technologies4. Licensing5. Extensions

Summary:Build configurator tool based on Virtual Tabulation (VT) with the two key-ingredients:- a VT generator- a VT runtime (with valid_domains(l) )

Questions:1. Overall structure?2. Interfaces?3. Components?

Kernel architecture (I)

Kernel, two parts:

1) VT generator

VTgen: XML (product model) -> XML (VT)

2) VT runtime

load: XML (VT) -> ()valid_domains:

XML (l, choices) -> XML (V1,...,Vn)

Kernel architecture (I)

Plan:1. The configuration problem: examples & basic theory2. Kernel architecture3. Platforms & implementation technologies4. Licensing5. Extensions

Platforms for:

* Development environment?(Notepad, eller anden teksteditor, alt...)

* VT generator?(Windows, command line (.exe))

* VT runtime?(Java, .NET – kerne måske i C)

* Web-server functionality?(ASP.NET, Servlets ok, php: måske?)

Platforms & implementation technologies

Plan:1. The configuration problem: examples & basic theory2. Kernel architecture3. Platforms & implementation technologies4. Licensing5. Extensions

What of the licensing models from the book can be used and how?1: Hosting-model, VT-generator og VT-runtime hostes undtaget evt selve ASP-siden

2: Salgs-model med to elementer VT-generator, VT-runtime

3: Pay-per VT-generation, baseret på størrelse

1. pay-per VT-generation, gratis runtime + engangsfee2. perpetual på VT-runtime3. rental4. transaktionspris pr valid-domains ved hosting5. størrelse af modellerne

Licensing

Plan:1. The configuration problem: examples & basic theory2. Kernel architecture3. Platforms & implementation technologies4. Licensing5. Extensions

Extensions1. Multi-language2. Force-functionality3. Computations (e.g. prices)4. Embedded configurator5. Database Integration

Extensions1. Multi-language (http://localhost/configit/Tshirt/tshirt.asp ) 2. Force-functionality3. Computations (e.g. prices)4. Embedded configurator5. Database Integration

Extensions1. Multi-language2. Force-functionality (revisit 8 queens, bike) 3. Computations (e.g. prices)4. Embedded configurator5. Database Integration

Extensions1. Multi-language2. Force-functionality3. Computations (e.g. prices) (Psion) 4. Embedded configurator5. Database Integration

Sales Configurator Case: Psion Teklogix is a global provider of

customizable solutions for mobile computing and wireless data collection

Use Configit as its configuration-based sales support solution in N. American and EU operations, ensuring sales staff are working with complete, accurate product configurations in a standard web browser

Benefits: offline and online configuration customer needs are addressed faster greater accuracy in orders and quotes increased customer satisfaction substantial improvement in efficiency

and productivity for sales operations Configit provides a unique extraction

tool for Baan ERP systems, and is fully integrated with Psion’s CRM system

Prices:

* How are prices computed for a product?

* How should we support them?

Extensions1. Multi-language2. Force-functionality3. Computations (e.g. prices)4. Embedded configurator5. Database Integration

Extensions1. Multi-language2. Force-functionality3. Computations (e.g. prices)4. Embedded configurator5. Database integration