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