salesPLUS a Product Configuration Tool

salesPLUSa Product Configuration Tool
Hans Jorgen Skovgaard
Research Manager
Beologic A/S
Horkaer 12 A, DK-2730Herlev, Denmark
Tel. +45 44538888
Fax. +4544536622
Email: sko@beologic.dk
From: AAAI Technical Report FS-96-03. Compilation copyright © 1996, AAAI (www.aaai.org). All rights reserved.
Abstract.
This paperdescribesa newtool for product configuration baseduponconstraint
techniques. Themethodis implementedin the Beologic ProductConfigurator salesPLU$.
.It hasvery strongfeaturesfor the enduser; free order of choices,guaranteed
fast
responsetimes and optimization functions. The methodsupports an easy maintenance
processwith a uniqueconsistencycheckof configuration data. Wecompare
the tool with
previously proposedmethodslike expert systemsto showthe advantagesof this
approach.Ansimple exampleof car configuration is presented,howeverthe tool is
currently being usedfor complexproductslike PABX,vendingmachines,financial
services, pumps.
61
1 Introduction.
Productsgenerally become
morecomplexwith morevariants andshorter life cycles.
Wronglyconfigured products meansincreased expenses,unsatisfied customersand
stressedsales peopletherefore the needfor goodsales tools to assist the configuration
processis evident.
salesPLUS
[2] exploits the recent development
in constraint satisfaction algorithmsto
evolve a newmethodology
for interactive configuration.
2 Methodology.
2.1 Objects & Resources.
Themostfundamental
part of the configurationdata is the object. All the itemsor parts
that can go into a product mustbe representedas objects. Productfeatures mayalso be
representedas objects e.g., the screenresolution on a PCalthoughit derivesfrom the
combinationof Monitor and Videocard.
Theobjects havea numberof attributes.
Object"" {Type,Id, Resources,
Menu
position, Description,Default-value,...}
A resourceis a property or measureof someobjects. Examples
of a resourceare
"Price", "Memory","Weight", etc. Objectscanhavepositive or negativeresourcevalues.
Henceit is possibleto havea provider/consumer
principle, e.g., devicesusecertain
amountsof powerwhereaspower-supply’sprovide morepower.
2.2 Constraints.
Therepresentationof a configuration problemis naturally donewith constraints
governingthe objects. Theseconstraints maystemfrom physical limits (as spacelimits)
andfrom technical restrictions (as "supportsonly") andfrom marketingdemands
(only sell
somecombinations).This is the contentsof the configuration problem.This product
informationcan typically be foundin a printed configuration guideandtransformedon a
oneto onebasis into constraints.
Twotypes of constraints are supported:booleanalgebraandfinite domainarithmetic.
Examplesfrom a UNIXworkstation.
Storage >= 300
"Thesystemshouldentail at least 300Mbof storage(resource)."
RAM_SMb
+ RAM_32Mb+ RAM_64Mb<= 2
"The modelcan only accommodate
two optional memoryoptions."
impossible( Model_A, CDROM
"Model A does not support CDROM."
Therepresentationof UNIXworkstationsconsists of only 30-40constraints.
62
3 Consistencycheck.
Theconstraintsonly state facts andthere is no metareasoningdealingwith whichrules
to use. Sinceeachrule representsa real worldconstraint they canmentallybe checked
individually.
salesPLUS
hasa consistencycheckerthat candetect inconsistenciesin individual
constraints, boundobjects andmostimportantinconsistencyin the overall configuration
data.
Explanationandtraces of conclusionscanalso be made
for testing purposes.
4 Deductionmethodsof inference engine.
4.1 Constraints.
Withtraditional programming
as with productionrules systemsthe programmer
hasto
masterthe generalinformationflow. Asa result, thesesystems
are very intricate andthey
are hard to develop,test andmaintainwheneither incompleteinformationor unordered
informationflow hasto be dealt with. In contrast to constraint programming
whereyou
deal with problemcontentsonly.
Thebasicstep in the configurationprocessis the following: Giventhe partial
configurationselectedso far, the existenceof a corresponding
valid configurationhasto
be verified (consistency),andthe elements
that canstill be selectedhaveto be known
(domainreduction). Thereis both unorderedinformationflow andincompleteinformation
availablein a typical configurationproblem.
Theinferenceenginein salesPLUS
is a Stateof the Art constraintsolver[1]. It handles
both booleanalgebraandfinite domain
arithmetic constraintsbaseduponinterval calculus
andthe patentedBeologicarray inferencetechnology.
Havinga pureconstraintrepresentationallowsthe userto addadditionalconstraintsat
runtime like "The computershouldhavemorethan 32 Megabytes
of memory",and
salesPLUS
usesthis informationto reducethe set of possiblemachines.
Havingassertedthe additionalconstraintsit is nowpossibleto minimizethe price
resourcewith an optimizationalgorithm. Theresulting computer
will be the cheapestone
that havemorethan 32 Mbyteof memory.
This strong feature is impossiblein traditional
configurationsystems.
4.2 TimeComplexity.
Theinferenceengineexhibits a nice andpolite policy towardsthe user. It has
guaranteed
responsetime that canbe user selectedindependent
of the platform.
Theinferenceengine’sjob is to checkthat no inconsistencyoccursbetween
the
constraintsandthe assignments.
Determining
solvability to a set of objectsthat must
satisfy a set of constraintsis NP-complete
i.e. the executiontime growsexponentiallywith
the size of the problem.
Theinferenceenginemaythereforeuselongertime than desiredto establishall
consequences.
Theenginewill then give control to the user whenthe specified time (1-2
seconds)is usedor sooner.
Whatthe inference enginecandeduce,increaseswith the numberof assignments
of
objects. This is so becausethe searchspaceonly dependson the numberof unbound
objects.
For "large" productsthis means
that an option mayseemto be free, but whenyouselect
it the inferenceengine
will find that it is not possibleandassertthis. In practisethis is not
a problemwith the productsthat havebeenmodelled.
63
Theconceptof the inferenceengineallowsit to take advantage
of future hardware
improvements,
andit will not be slowon weakcomputers.
5 Comparison
with traditional configurationSystems.
¯ 5.1 Representation.
Configurationproblemsare by nature NP-complete.
Traditional configurationsystems
deal with this problemin severalways.
* For expertsystemrules that dealswith the executionof the applicationare addedto
reducethe problemto a simplelinear/polynomialproblem.Addingtheserules is very bad
for maintainabilitybecause
they are not foundedin the problemcontentsbut only in the
context.
%
salesPLUS
doesnot haverules that deal with executionissues.
* For decisiontrees the useris forcedto makehis choicesin a predefinedorder. This
reducesthe problemby avoidingunordered
informationflow. This yields an application
that is very constrainingfor the user. Imaginethat a customer
wantsa red car. The
systemwill promptfor model,engine,.,
etc. Andwhenit comes
to the colour it mightnot be
possibleto selectredat all.
% salesPLUS
gives full freedomin the order of choices.
* Batchmode
validation doesnot allow for interactive configurationthereforethe problem
is reducedby avoidingincompleteinformation. Batchmode
means
that a user picks all the
parts that he assumes
appropriate.Thenthe validation algorithmproduces
a list of
missingandconflicting parts. Herethe userhasto put up with an iterative process.
Imaginethat the customer
specifically said that he wanteda part andthe configuratorthen
saysthat it is not possible.Thenhe hasto start all overagain.
% salesPLUS
has an interactive modewherethe status of resourcesare displayed
dynamicallysuchas price, storageandweightto give the user better overview.
5.2 Maintenance.
Maintenance
of the productmodelis an extremelyimportantfeature of a configuration
systemwhereproduct changesmayoccur on a monthlybasis or evenmorefrequent.
Traditionalconfigurationtools havedifficulties with rapid changing
productmodels.For
expertsystems
it is known
that rule baseswith up to 10000rules exists [5] which
unfortunatelymakes
it hardfor evenexperienced
engineersto changethe rules.
Easymaintenance
in salesPLUS
is achievedby keepingthe numberof constraints
small. A single constraint often replacesmanyproductionrules anda company’s
products
shouldbe split into severalknowledge
bases.It is thereforepossiblefor evenquite
complicated
productsto be representedby less than 100constraints.
Beforereleaseof anyconfigurationsystema test mustbe made
to seeif errors occurin
the configurationdata. Withthe productrangedecomposed
it is only necessary
to test the
changedproducts. Whereas
if you haveonebig knowledge
base, you might have
introducedside effects andthe wholeproductrangemustbe tested again.
Concurrentproductconfiguration data maintenance
is possiblewith salesPLUS.
64
6 Discussion.
Thereasonfor the progressmade
in salesPLUS
is the recent development
in constraint
satisfactionalgorithms[3][4] that allowsthemto successfullysolvereal worldproblems.
Therepresentationin salesPLUS
is restricted to constraintson booleanandfinite
domain.It doesnot allow expressionslike "exp( cos(x))". However
mostconfiguration
tasksthat sales peopleare able to performwith the printed documentation
andsufficient
time is suitable for salesPLUS.
WithsalesPLUS
it has beenestablishedthat youcanmake
configurationsfor cars, trucks, PABX’s,computers,
doors, coffee automates,custom
installation guides,waterpumps,
hydraulicproportionalvalves,airplanesetc.
7 Example:Car Configuration.
Theconfiguration problemis from SAAB
Automobiles
1992with the modelsfrom the 900
series. Wewill showhowproductscan be modelledwithin the salesPLUS
representation.
In the example
only the objectsandconstraintswill be considered
in depthexceptfor the
Object"Models".Thereforeissuesrelated to menupositioning, ID, Buttonnames,
Descriptions,object ID’s andLanguages
are omitted. A graphicstool, salesPLUS
Definer
exists that helpsthe user to declareobjects, resource,menus
etc in an easywayand
enablesusersto make
rules by pick andplace. This tool will not be describedhere.
7.1 Declarations.
First the objectsare declared.
The3 modelsare SAAB
900, Cabriolet andTurboCabriolet. Theyare declaredas
an object "Models"of the type ONEOF.
The4 enginesare 2.0i, 2.1i, 2.0SandTurbo.Theyare declaredas oneobject
"Engine" of the type ONEOF
Availableaccessoriesare Automaticgearbox,ABS-brakes,
Air Bag,Air-condition,
Audiosystem,Automaticair-conditioning, Eec. mirrors/windows
andCruise
control. Theseare declaredas eight objectsof the type SINGLE.
AvailableSunshine
roofs are Manual
steel, Electric steel andElectric glass. The
sunroofsare declaredas oneobject "Sunroof"of the type ATMOSTONE.
AvailableTrimsare VelourJet-Tuff Horizon,VelourpiqueParallel, Leather
ContourandLeatherSuedeContour.Thetrims are declaredas oneobject "Trim"
of the type ONEOF.
Availabletrim Colorsare Labrador,Marine,Puma,Angora,Buffalo andPamir.
Theseare declaredas oneobject "TrimColor"of the type ONEOF.
Availablestandardpaints are Cirrus white, Black, Embassy
blue, Cherryred and
Talladegared. Thepaints are declaredas oneobject "Stdpaint"of the type
ATMOSTONE.
Availablemetallic paints are Citrin beige, Platanagrey, Le Mans
blue, Scarabe
greenandMonteCarlo yellow. Declaredas oneobject "Metalpaint"of the type
ATMOSTONE.
Objectthat do not relate to physicalitemsis Leatheranddeliverytime. Leatheris
declaredas an objects of the type SINGLE.
Delivery time is declaredas one
65
object of the type ENUM
[0-35].
Declared resources are Price, Weight and Horse power. Declared menusare
Accessories,Trims, Paints, Accessoriesat Dealer.
7.2 Constraints.
SAAB
configuration guidelines:
*A
*B
*C
*D
*E
*F
*G
*H
*i
It is impossibleto haveboth Air conditioning andautomaticAir conditioning.
Theturbo cabriolet comeswith Turboengine, metallic paint, leather trim and
cruise control.
Ordinarycabriolets comeswith 2.1 litre engine.
Ordinary cabriolets cannot havethe paint Marine.
Modelswith red, grey or greenpaints cannot be ordered with Marinetrim.
Modelswith beige or green paints cannot be ordered with Pumatrim.
Cars with Turbo engine should be ordered with ABSbrakes.
Therecannotbe ordered sunroof for cabriolets.
Delivery times are 14 days for the SAAB
900, 21 days for the Cabriolet and 35
daysfor the TurboCabriolet.
Theseconfiguration guide lines yields the following knowledgebase. Note the almost one
to one correspondence
betweenthe written guidelines and the constraints. In the
constraints the objects identifiers are used.
Knowledgebase:
NEW: Leather <> Trim[ Leather_Contour]or Trim[ Leather_Suede];
"Sub groupingof leather trim types"
NEW: Leather <> TrimColor[ Pamir] or TrimColor[ Buffalo];
"Subgroupingof leather trim color"
A:
Impossible( AirCondition, Automatic_AirCondition);
Model[ Turbo_Cabriolet] -> Engine[ Turbo] and
B:
Metalpaint and Leather and cruise_control;
C&D: Model[Cabriolet] -> Engine[s21] and not TrimColor[ Marine];
Stdpaint[ Cherry_red]or Stdpaint[ Talladega_red]or
E:
Metalpaint[ Citrin_beige] or Metalpaint[ Scarabe_green]
-> not TrimColor[ Marine];
Metalpaint[ Citrin_beige] or Metalpaint[ Platana_grey]-> not TrimColor[ Puma];
F;
G:
WARNING
(Engine[ Turbo] and not ABS);
H:
Model[ Cabriolet] or Model[ Turbo_Cabriolet]-> not Sunroof;
NEW: Metalpaintor Stdpaint;
"You mustpick one type of paint"
66
I: Delivery_time == 14 * Model[ SAAB_900]
+ 21 * Model[ Cabriolet]
+ 35 * Model[ Turbo_Cabriolet];
A warningconstraint is a constraint that can be overruledbut for mostcasesthis is not
desirably. For cars the booleanconstraints are usedmostlybut for other productslike
PABX’sthe configuration modelconsists mainly of arithmetic constraints becausemost
options can comein different numbers.
7.3 RuntimeSales Tool.
With these declarationsand constraints the enduser sales tool is shownin fig. 1.
Theleftmost columnof buttons is standardfunctions that salesPLUS
offers the user. The
resourcesare dynamically displayed at the bottom of the window.Theobjects are shown
abovethe resources. Twoselections have already beenmadein the windownamely
Models= "SAAB900" and Engine = "2.0s" .The box menu"Paints" is used to group
logically related objects. Thesub menu"Accessoriesat dealer" is shownwhenactivated.
With the objects youcanconfigure in the naive wayby picking as desired. In the
opened
list for "Metallic Paints" you will notice that the option "MonteCarloYellow"is
surroundedby # which meansthat this option is not available any moredue to the
constraints. However
if you insist on this paint; select it andthe systemwill resolvewhich
earlier selections that haveto be overruled.
Theruntime systemof salesPLUSholds a numberfeatures that is not described in
any length here like Trace, Total list, Discounts,Finish, Default, Response
times,
Load/saveresource, Load/Saveconfiguration etc.
_File U_tilitics
System: SAAB
Options
IModelsIS~B800 I
l Engine
LII IP~ic~ .......
I ........
.......
I
12.0* I ~utomatic gea,box I x j
4BSBrakes
I x
~i, Bag
Paints
]
Trims
Accessories
![Metal Paint typeI x
I *I
Itrim Color
SystemI x
[_+.m++.imiz+
++j
0~n
’’ °,
l eIIo..p
.....
JDelivery
Time
I
IHorse
Power:105
hp IWeigth:1322kg
67
I
114I
I Accessories
at DealerI
l
o .................................................................................................
Fig. 1 Saab Sales tool Example
Ix
Isunr°°fl :<
Status
IPrice:206483dkr
I*
!~ir Condition
I*
IStandard
PaintsI x
~udio
[I...M~m!.m!.z.~.....I
![Metallic PaintsCitrin Beiqe
Aircon I x
PlatanaGrey
lEe Mans
Blue
Irrl~.m.s
[ "mS"
i
f_ "°++d
LeatherT,im
x rims I
It
Wa.anty
I
8 Implementation.
In salesPLUS
a Definer environmentexists that runs on MS-Windows,
anda
executable runtime Customizerenvironmentthat runs on MS-DOS,
MS-Windows
and
MOTIF.
Theruntimeinterface is build uponan ANSI-C
API set, that can easily be ported
to any platform. SalesPLUS
doesnot demand
any proprietary application such as
databaseetc. Theinferenceengineusesa compiledversionof the constraintsfor efficient
execution.
References.
[1] CLP(B).Logic Programming
with BooleanConstraints. Final report.
Henri Beringer, CentreScientifique IBMFrance.Dec.1991.
[2] Conceptof the BEOLOGIC
ProductConfigurator. BeologicA/S, 1994.
[3] Constraint satisfaction in Logic Programming.
PascalVanHentenryck.TheMITPress.
1989.
[4] Algorithmsfor Constraint-SatisfactionProblems:A Survey.Vipin Kumar.AI Magazine.
Spring 1992.
[5] Expert Systemfor Configuration at DIGITAL:XCON
and beyond.Communication
ACM
(vol. 31-32)Dec.1988.
68