throbber
Proc, of the 19¥1 LabE
`Int. Conf. on Tools for AI
`San Jose, CA-Nov. 1991
`
`Knowledge-based Configuration of Computer Systems Using
`Hierarchical Partial Choice
`
`Bryan M. Kramer"
`Department of Computer Science
`University of Toronto
`Toronto, Ontario, M5S 1A4
`kramer@ai.toronto.edu
`
`Abstract
`
`As the complexity of computer systems grows, configu-
`ration expert systems become increasingly imporiant as
`tools to ensure that delivered systems are workable. This
`paper introduces a novel inference scheme called hierar-
`chical partial choice that efficiently generates configura-
`tions from a knowledge base of structured descriptions of
`computer components. This approach combines the acqui-
`silion and maintenance advantages (over rule-based sys-
`tems) of a declarative system with an inference scheme that
`efficiently generates solutions, often with little backtrack-
`ing.
`The inference scheme is presented in the context of
`XKEWB, a shell for building computer configuration
`expert system. The system contains several improvements
`over its predecessor Cossack. For example, the system ts
`designed to allow configurators to configure multiple com-
`puters in a network setting, the end user interface ts partic-
`ularly suited to the task of specifying computer systems.
`
`1.0 Introduction
`
`As computer systems grow in complexity, automated
`configuration systems become increasingly important.
`Questions one might have to ask while configuring a sys-
`tem include: is the accounting software compatible with
`the word processing software, and, doesthe file server have
`enough disk space for the application? Clearly a great deal
`of knowledge is required to correctly configure a system,
`and, given the large variety of hardware and software, the
`potential search space is very large. Although several
`approaches to the problem have been described, the prob-
`lems of knowledge acquisition and maintenanceof config-
`uration knowledge and efficiently generating complex
`configuration do not appear
`to have been adequately
`addressed. This paper describes XKEWB, a shell for build-
`*
`
`: This work was done while the author was with Xerox CanadaInc.
`
`ing computer configuration systems. XKEWB provides an
`effective representation of configuration knowledge and
`efficient generation of correct configurations. XKEWB
`also provides a unique end user interface that is well suited
`to configuration systems.
`The configuration problem solved by XKEWB is a gen-
`eralization of the problem described in [7]. Given a set of
`descriptions of components and constraints on the ways
`instances of these descriptions can be connected, a valid
`configuration is a set of instances of the descriptions and a
`description of their connections that satisfies the pre-
`defined constraints and someset of input constraints. Two
`restrictions on the general problem are described: thefunc-
`tional architecture restriction which states that descrip-
`tions of components are decomposed along functional
`lines, and the key componentrestriction which states that
`there is some key component implementing each function.
`Undertheserestrictions, one describes a computer system
`as a component having a display function, a computing
`function etc. and that the key component for the display
`function is a screen. The advantages of this approach are
`that there is a top down organization on how components
`are selected: to build a workstation configuration one pro-
`vides the display function, the computing function etc. and
`that the key components identify subproblems that can be
`solved somewhat
`independently. These restrictions are
`implicit in the knowledge representation described in this
`paper.
`Interest in configuration systems dates back to the R1/
`XCON project [5]. Configuration systems are typically
`rule-based or hybrid rule and frame-based systems. The
`problems with rules have been well documented (for
`example, [2]). Maintenance and verification of knowledge
`expressed as rules can be very difficult because related
`knowledge is usually spread over several
`rules and
`changesto rules have to be checked for interactions with
`most other rules. On the other hand, rule-based systems
`have the property that heuristic knowledge for finding
`solutions efficiently is encoded in the rules. XKEWB uses
`a frame-based representation to handle the maintenance
`problem, and has an inference engine that generates solu-
`
`0-8186-2300-4/91 $01.00 © 1991 IEEE
`
`368
`
`CONFIGIT 1028
`
`CONFIGIT 1028
`
`1
`
`

`

`tions efficiently enough that procedural guidance is not
`necessary.
`The results described here are the result of a reimple-
`mentation and extension of
`the Cossack configurator
`described in [4]. The reimplementation contains novel
`solutions to several weaknesses in the Cossack inference
`scheme, knowledge representation, and user interface. In
`the course of this reimplementation, several new capabili-
`ties were introduced, particularly the ability to configure
`multiple computers in a network situation.
`The paper is organized as follows: first, a brief review of
`Cossack is presented. Next,
`there is an overview of
`XKEWBfollowed by several sections describing details of
`the system. Finally,
`the concluding section contrasts
`XKEWBwith other configuration systems and summarizes
`the contributions.
`
`2.0 The Cossack System
`
`In Cossack, components are represented as LOOPS
`objects and classes of components as LOOPS classes.
`Interrclationships between components or component
`classes are represented by slots with associated constraints.
`A constraint specifies which objects mightfill the slot by
`either enumerating the possibilities or specifying a class
`whoseinstances mightfill the slot. In addition, a constraint
`might have an associated LISP expression that would eval-
`uate to true or false given a particular candidate value for
`the slot. Thus, a class describing a high end computer
`might havea slot called printer with a constraintspecifying
`that the value must belong to the class Printer and a lisp
`expression that evaluates to rue when the value of the pag-
`esperminute slot of a chosen printer is greater than 10.
`The inference takes as input some constraints specified
`by the user. The state of the inference is represented by a
`set of goals describing components to be selected and the
`set of posted constraints which are constraints that have
`not yet been processed. For each posted constraint, the sys-
`tem first attempts to attach the constraint to an existing
`goat. Thus,if there is already a goal to find a printer and a
`second constraint requiring a printer is encountered, the
`system will try to satisfy both constraints with the same
`goal. If there is no component matching the constraint, a
`new goal is created. When there are no unprocessed con-
`straints, some goal is executed. Executing a goal involves
`selecting a componentthatsatisfies the constraints. When
`the choice is made, new constraints are posted, and the
`cycle continues.
`If no componentsatisfies the constraints attached to a
`goal, a contradiction is implied. Cossack then backtracks
`by undoing the choice at some goal that has posted a con-
`
`straint that is attached to the failed goal. Undoing the
`choice at the posting goal hasthe effect of removing a con-
`straint from the failed goal potentially allowing a choice to
`be made there.
`Cossack makes use of a version of partial choice [6}.
`Whenthere are several components that might satisfy a
`goal, Cossack attempts to find a constraint that these com-
`ponents have in common. If there is such a constraint, the
`constraint is posted and the goal is suspended. When a
`component is selected for that constraint, the system can
`make a choice for the suspended goal using the knowledge
`derived by making a choice for the constraint. This is a
`variant of least commitmentin that a choice is made at ran-
`dom only when necessary.
`
`3.0 XKEWB
`
`Cossack had several weaknesses. The most importantis
`that the backtracking mechanism frequently pruned the
`part of the search space containing the correct solution.
`Second, the partial choice mechanism was rarely invoked
`because ofdifficulty of determining that a constraint was
`common to a set of components. Third, it was difficult to
`express extra conditions on constraints using the associ-
`ated lisp expression, and more importantly, the informa-
`tion contained therein was not available to the inference
`engine. Finally, the representation lacked the ability to
`describe componentsthatpartially used other components
`(such as disk space) and to distinguish components
`belonging to different computers in a multi-computerset-
`ting.
`The XKEWB system was developed in order to address
`these weaknesses. At a high level, the system bears a
`strong resemblance to Cossack. Components are described
`in a frame-based language, and inference consists of a
`loop in which constraints are attached to goals and then a
`goal
`is executed, possibly generating new constraints.
`Whena goal cannot be successfully executed, backtrack-
`ing is necessary. For example, the input constraints might
`specify a computer and a word processing package, hence
`goals to find a computer and to find a word processing
`package would be created. Executing the word processing
`goal mightresult in a choice, Microsoft_Word! which has
`a constraint that the computer have a VGA monitor. This
`constraint would then be attached to the computer goal.
`Executing the computer goal would result in a choice
`which would post constraints requiring disk drives, moni-
`tors, etc.
`XKEWB’srepresentation language is more declarative
`and expressive than that used in Cossack. Componentsare
`
`1. Microsoft Word is a trademark of Microsoft Corporation
`
`369
`
`2
`
`

`

`represented using a frame representation! with multiple
`andstrict inheritance. Frames representing components are
`called classes and are organized in an [S-A (specialization)
`hierarchy. The slots of a frame have several facets, and the
`combination of slot and facets is called a constraint and
`corresponds to a Cossack constraint.
`Below are two partial descriptions which illustrate the
`componentrepresentation
`Workstation (abstract) IS-A Computer
`subcomponents
`display: WorkstationDisplay
`number:[1, 2]
`keyboard: WorkstationKeyboard
`disk: WorkStationDisk
`memory: Memory
`requires
`networkconnection:
`NetworkConnection
`
`Ventura_Publisher? (individual) IS-A
`PublishingPackage
`
`requires
`printer: LaserPrintingResource
`constraint:
`printer.postscript-capability
`= true
`disk: ExtStorResource
`level: 657
`consumes: bytesConsumed
`memory: MemoryResource
`constraint:
`memory.supplied-by =
`workstation
`workstation: WorkStation
`properties
`price: 2000
`Here, the class Workstation has a constraint described
`by the display slots that specifies that a workstation is con-
`nected to one or two instances of the class WorkstationDis-
`play. The following sections describe the major steps of the
`inference algorithm. The discussion will make use of the
`above examples, and the meaning of the various parts of
`component description will be clarified.
`
`4.0 Attaching Constraints
`
`The first step of the inference algorithm is 1o attach
`newly posted constraints to goals either by finding anexist-
`ing goal that is compatible or by creating a new goal. The
`attaching step is important becauseit allows componentsto
`
`1. for example, FRL [8] which introduced the terms frame,slot, and facet
`2. Ventura Publisher is a trademark of Ventura Software Inc., prices and
`storage levels are fictitions
`
`be described independently of other components that
`might require the same resources, and yetresults in config-
`urations where one componentis chosen to satisfy multi-
`ple requirements. For example, the descriptions for several
`software packages might specify that a printer is required,
`and the attaching step will attempt to find one printer to
`satisfy all of the packages. Notice that each request for a
`printer could add additional conditions to a goal. Thus a
`word processing package could request a letter quality
`printer and a legal package would add the condition that
`the printer must be able to handle jegal size paper.
`While it is frequently desirable to satisfy several con-
`straints with a single component, it is often impossible to
`do so. The following paragraphs describe properties of a
`constraint that are used to refine the description of what
`components can satisfy the constraint, and how these
`properties are used in matching constraints and goals.
`First, constraints fall into one of three categories: sub-
`component constraints, requires constraints, and proper-
`ties. Subcomponent constraints describe componentsthat
`are in some sense supplied by the containing component
`and would not be supplied by a second component. For
`example, a Workstation supplies a display therefore choos-
`ing a second workstation would result in a second display.
`Thus the inference engine will attach only one subcompo-
`nentconstraint to a goal. Requires constraints, on the other
`hand, describe components that are needed but might be
`shared. Thirdly, properties are descriptions for which no
`inference is required to find the intended instance. For
`example, no further inference is required to find the price
`of VenturaPublisher. Properties generally describe
`objects such as numbers, booleans,or strings that are not
`components.
`is the constraint
`Another important facet of a slot
`expression. The constraint expression of a constraint C
`constrains the slot values of objects that can satisfy C.
`Thus,the printer constraint in Ventura_Publisher can only
`be satisfied by printers that have the value true for the
`property postscript-capability. The constraint expression
`may involveotherslot values as in the case of the memory
`slot in Ventura_Publisher. Here the value of the supplied-
`by slot of the memory must equal the value of the worksta-
`tion slot of
`the publishing package. This constraint
`expresses the fact that the memory requirement is on the
`computer on which the publishing package is to run; not
`on some other computer in the configuration. Before
`attaching a constraint, the inference engine makes a simple
`analysis of the constraint expression in whichit checks for
`equalities that might contradict slot values already bound
`in the goal.
`A constraint expression is a boolean expression using
`the logical connectives not, and and or, comparison opera-
`
`370
`
`3
`
`

`

`
`
`tors such as > and =, predicates such as instance-of, and
`expressions using an assortment of arithmetic and other
`operators.
`For the display slot, an interval is specified for the num-
`ber facet that specifies that a workstation has from one to
`two displays. This is in effect two constraints. XKEWB
`assumes that
`the values in a multiple-valued slot are
`intended to be different will never attach the corresponding
`constraints to the samegoal.
`The disk constraint is an example of a resource con-
`sumption constraint, The value of the consumes facet iden-
`tifies a slot in the type, ExtStorResource, and the facetlevel
`specifies a value. The meaning of this constraintis that the
`value of the slot bytesConsumedin an instance of ExtStor-
`Resource is equal to the sum ofthe levels consumed byall
`resource constraints that have that instance as a value. The
`followingis a possible definition of the resource:
`
`ExtStorResource (abstract) IS-A Resource
`levels
`bytesConsumed: Number
`
`ExtStorResource1 (individual) IS-A
`ExtStorResource
`
`requires
`diskDrive: DiskDrive
`constraint: diskDrive.capacity >
`bytesConsumed
`
`ExtStorResource2 (individual) IS-A ExtStorRe-
`source
`
`requires
`diskDrive1: DiskDrive
`diskDrive2: DiskDrive
`constraint: diskDrive2.capacity >
`(bytesConsumed-
`diskDrive1 .capacity)
`
`The specializations of ExtStorResource describe two
`different
`implementations of the resource, each con-
`strained to supply at least as much disk space as is con-
`sumed. This allows XKEWB to configure the external
`storage as either one or two disk drives. In addition, the
`level slot of a resource can have a maximum facet which
`restricts the sum ofthe levels used by the constraints shar-
`ing that resource.
`The use facet of a slot is also used to control when a
`constraint is attached to a goal. If the use of a constraint
`attached to a goal has the value exclusive, no other
`requires constraint may be attached to that goal. An exam-
`ple is a printer cable that makes exclusive use of the ports
`to which it will be attached.
`The final attachment mechanism is a context mecha-
`nism which restricts sharing of components. Every con-
`Straint is in a context that is generally inherited from the
`object containing that constraint. However, by specifying
`a containerfacet for a constraint, one can indicate a larger
`context
`for a constraint. For example,
`the software
`selected for a particular workstation would have con-
`straints that could share components in the context estab-
`lished by that workstation. One might, however, want to
`specify the network as the context for the printing require-
`mentso that the printer is not constrained to be a subcom-
`ponent of the workstation. The complement
`to the
`container facet is the setContainer facet which indicates
`that the selected componentis to establish a context of a
`certain type.
`
`5.0 Executing a Goal
`
`The properties of a goal are its attached constraints,its
`current choice, and its posted constraints. The current
`choice is a class in the knowledge base thatsatisfies all of
`
`WorkstationClass2 <q——.Workstation1
`Workstation
`
`aan WorkstationClass1
`
`ee PCClass4 Figure 1: Multiple Inheritance in the IS-A Hierarchy
`
`3DGraphics-Capability
`
`Workstation Class3
`
`WorkstationClass4
`
`371
`
`4
`
`

`

`
`
`the attached and posted constraints. Classes in the knowl-
`edge base are iabelled either abstract or individual. When
`the choice for a goal is an individual, that goal is satisfied.
`For example, a choice of WorkStation is abstract and
`requires further refinement, while a choice such as COM-
`PAQDESKPRO_386N1 if it is an individual, would mean
`that the goal is satisfied.
`In order to deal with multiple inheritance, executing a
`goal involves choosing a description from the most general
`common specializations of the current choice and the types
`of all attached constraints. The most general common spe-
`cializations of a set of classes C to be a set S of classes
`such that each element of S is a specialization (IS-A
`descendant) of every class in C, and no elementof S is a
`specialization of any other element of S. For an example of
`the use of multiple IS-A parents, consider a class Worksta-
`tion that is specialized into WorkstationClass1, Worksta-
`tionClass2,
`etc. Suppose also that
`some of
`these
`workstations have a 3-D graphics capability which is
`described by several constraints. Rather than duplicate the
`definition of these constraints in each workstation which
`has it, one can define a class 3DGraphcs-Capability and
`make those workstations that have the capability IS-A
`descendants of this class. This is illustrated in figure 1
`where WorkstationClass2 and WorkstationClass4 are the
`most general common specializations of Workstation and
`3DGraphes-Capability, while Workstation]
`is not since
`another commonspecialization subsumesit.
`From the most general common specializations, a class
`is a valid choice if it satisfies the constraint expressions of
`all attached and posted constraints. For example, the goal
`for printer would be satisfied by LaserPrinter if an
`attached constraint specified print-quality = letter. Posted
`constraints are often relevant as well. For example, for the
`choice Printer, the goal might have posted a constraint for
`an attached computer which has been specialized to an
`individual computer, say ModelX. This constraint might
`have the expression port-type = computer.port-type which
`specifies that the computer’s port type must be compatible
`with the printer’s. Clearly, a the printer class with port type
`centronics cannot be chosen if the computer’s type is
`serial. Note,
`that when the choices are not individuals,
`there will be slots that are not bound, so evaluation of the
`constraint expression will result in unknown. In this case,
`the class is allowed as a choice.
`Making a choice from the most general common spe-
`cializations of the current choice and attached constraints
`has the effect that constraints commonto a group of com-
`ponents are tested before each of those componentsis tried.
`That is, the algorithm uses the structure of the component
`
`1. COMPAQ and DESKPROare registered trademarks of Compag Com-
`puter Corporation
`
`hierarchy to determine commonconstraints. Whereas Cos-
`sack searched for common constraints from among all
`individual candidates for the goal, XKEWB isable to sim-
`ply pick them from the current choice. For example, the
`class GraphicsSoftware might have subclasses HighEnd-
`Graphics and LowEndGraphics where HighEndGraphics
`might have a constraint that requires a high resolution dis-
`play. Rather than trying each high end graphic package
`only to fail on the display requirement, XKEWB first spe-
`cializes GraphicsSoftware to HighEndGraphics and posts
`the requirement.If the constraint cannotbe satisfied, back-
`tracking will result in trying LowEndGraphics. This tech-
`nique, which will be called hierarchical partial choice can
`result in a great deal of pruning of the search space.
`As well as the early detection of contradictions,hierar-
`chical partial choice can limit the search space by provid-
`ing information that restricts the choices at a goal. For
`example,
`the goal to select a workstation might post a
`requirement for a cpu chip. The goal selection heuristics
`(discussed below) would favour specializing the cpu chip
`goal before the workstation goal, hence when it becomes
`time to select a workstation, the cpu chip will be more
`tightly constrained, say to 803867. Thus only specializa-
`tions of Workstation that are compatible with this choice
`need be considered. This is very important since the
`choice of cpu chip might have been constrained by the
`user either directly through an input constraint, or indi-
`rectly through a constraint on some other aspect of the sys-
`tem such as a software package.
`Once a choice has been made, any new constraints are
`posted. The new constraints are all constraints defined in
`the choice and ail of its IS-A ancestors that are not already
`posted constraints of the goal. The new constraints are put
`into the list NewConstraints, and the algorithm retumsto
`the constraint processing step.
`
`6.0 Backtracking, Goal Selection, and
`Preferences
`
`Should there be no valid choice,it is necessary to back-
`track. For the purposes of backtracking, the configuration
`process is a sequence made up ofthe operations“attach a
`constraint to a goal” and “makea choice for a goal”. If the
`previous step was “attach a constraint to a goal”, back-
`tracking involves attempting to make a new attachment.
`Note that creating a goal counts as an attachment and can
`only be tried once for a constraint. If a new attachmentis
`not possible, backtracking is again necessary. Similarly, if
`the previous operation was “make a choice for a goal”, a
`
`2. 8086, 80286, 80386 are trademarks of Intel Corporation
`
`372
`
`5
`
`

`

`
`
`new choiceis attempted. Again, if this fails, further back-
`tracking is necessary.
`Several heuristics are used to minimize backtracking.
`First, a choice is made for any new goals. Secondly, goals
`farthest (measured by the number of constraints in the
`shortest path) from the primary system goals are preferred.
`This has the result that choices for the innermost goals are
`tightly constrained (as described above.) Thirdly, the goals
`with the fewest posted constraints are specializedfirst. This
`is important because in general making an incorrect choice
`for a complicated component such as a workstation would
`result in much more retracting of constraints than would
`specializing the goal for a mouse.
`The nature of the configuration problem is such that no
`two users will agree on an objective function which the
`system should optimize. For examplc, one user will want to
`minimize cost while another will want to minimize the
`component count. Instead of a global objective function,
`therefore, in XKEWBthere is preference facct that con-
`straints may have that specifies an ordering of the possible
`choices for the attached goal. For example, a constraint
`might specify that the choice with the smallest price should
`be tried first. This is a heuristic only, especially in the con-
`text of hierarchical partial choice where the value of the
`property may not be available until near the end of the
`inference. For example, when specializing Printer and
`choosing between LaserPrinter and InkJetPrinter
`the
`prices would not be available. As well as encoding prefer-
`ences in individual constraints, a global default preference
`can be specified.
`While not providing “optimal” solutions, the local pref-
`erence technique provides good solutions. Dhar and Ran-
`ganathan [3] have observed that
`this technique is less
`brittle than a global optimization approach and also pro-
`vides more satisfying solutions. Also, another design goal
`behind XKEWB was to make generating configurations
`
`fast enough that the user could quickly generate several
`and choose the most appropriate.
`The preference heuristics are used only for ordering
`choices. No pruning is done by the algorithm, which there-
`fore will run in exponential time in the number of compo-
`nents in the worst case.
`
`7.0 User Interface
`
`The user interface to XKEWB makesit particularly
`easy to enter the constraints on the system to be config-
`ured, The interface makes use of a bitmapped display and
`a mouse, and under most conditions no typing is necessary
`to generate configurations. An approximation to the actual
`screen is displayed in figure 2. The boxes are mouse
`selectable and change colour when selected. Where the
`options are mutually exclusive, selecting an option will
`tum off the one already selected. Clicking on a selected
`word deselects it. Since screen real estate is limited, the
`options are spread over several logical pages; one for hard-
`ware and several for software options. Furthermore, there
`is a set of pages for each workstation being configured.
`Flipping between this pages can be donerapidly by click-
`ing on buttons in a control panel.
`As mentioned above,input to the algorithm is a set of
`constraints exactly the sameas those used within a compo-
`nent description. Thus the input to a configuration problem
`might be
`computer1: Workstation
`constraint: cpu = 80286 &
`softwarePackage[1] = dBASE IV'&
`softwarePackage[2] = Microsoft Excel?
`
`1. dBASEIVis a trademark of Ashton Tate
`2. Microsoft Excel is a trademark of Microsoft Corporation
`
`Next Configuration
`
`Select Workstation: 2&
`
`| SelectPage
`
`cpu:
`
`disk:
`
`Hisplay:
`network:
`
`
`
`
`
`Software:|Microsoft Excel} {Ventura Publisher| [dBASE IV
`
`
`
`Figure 2: The XKEWBUserInterface
`
`6
`
`

`

`
`
`igh MP
`
`MedMIPS
`
`LowMIPS
`
`32BitBus
`
`16BitBus
`
`CPU
`
`properties
`mips
`company
`constraints
`bus:Bus
`
`HighMotorola
`
`80386sx
`
`
`
`SoftwarePackagel
`constraints
`cpu: HighMIPS
`
`SoftwarePackage2
`constraints
`cpu: Intel
`
`properties
`width: 16
`
`Figure 3: A Partial XKEWB Hierarchy
`
`which asks for two work stations, specifying the cpu
`type and the desired softwarc. The idea behind the inter-
`face is that each conjunct in the above constraints can be
`selected by pressing buttonsin the interface. The first con-
`figuration is generated by pressing the Configure button
`and subsequent solutions can be generated using the Next
`Configuration button.
`
`8.0 Example
`
`Suppose the system is simply configuring a CPU chip
`and two software packages using the partial hierarchy
`describing CPU chips, software and a bus showninfigure
`3.
`
`For simplicity, assume that the system is attempting to
`configure two software packages, a cpu chip, and a bus
`from the input constraints c: CPU,sl: Software-
`Packagel, s2: SoftwarePackage2, and b:AT-
`Bus. Initial processing of these constraints results in four
`goals, respectively Gcpu, Gsl1, Gs2, and GBus. Execut-
`ing Gcpu results in an initial choice of the object CPU.
`Next the constraint bus is posted, then, in the attach step,
`it is attached to GBus. In the next execute step, one of the
`unexecuted goals is preferred over Gcepu. The system
`might pick Gs1, specializing it to SoftwarePackagel
`and posting the cpu constraint. This constraint is then
`attached to Gcpu. Similarly Gs2 would be executed
`choosing SoftwarePackage2 and posting a cpu con-
`straint which is subsequently attached to Gcpu. Next
`
`GBus specializes to ATBus. Now, Gepu,the only open
`goal, has types HighMIPS and Intel. The most general
`common specialization of these two classes is HighIn-
`tel and becomesthe choice for the goal. On the nextiter-
`ation, 80386sx_ is chosen because it is the only choice
`consistent with the fact that the bus constraint is bound to
`a 16bit bus.
`Althoughit is very simple, this example illustrates how
`XKEWB is able to focus on the correct CPU chip with no
`search through the space of configurations. Even in this
`example, the space could be quite large if the bottom of
`the CPU hierarchy wereto be filled in with descriptions of
`more chips.
`
`9.0 Conclusions
`
`XKEWB contains several areas of improvement over
`its predecessor, the Cossack system. These include 1) the
`introduction of resource constraints, 2) the context mecha-
`nism which allows the configuration of multiple comput-
`ers sharing resources, 3) an improved inference algorithm
`introducing hierarchical partial choice, and 4) an improved
`userinterface. Points 1 and 2 result in the ability to cover a
`much broader and moreinteresting range of configuration
`problems.Point3 results in a system thatis more complete
`since exhaustive search is used, and in a system that is
`muchfaster. This is due, in part, to the introduction of
`hierarchical partial choice. Tracing the execution of
`XKEWB showsthat the backtracking that occurs is local-
`
`374
`
`7
`
`

`

`
`
`References
`
`ized, that is, that for the examples that were chosen, no
`major jumps occurred. Point 4 results in a system that is
`particularly convenient to use.
`[1] Bowen, James, “Automated Configuration Using a
`Unlike rule-based systems such as XCONor hybrid sys-
`Functional Reasoning,”in Artificial Intelligence and its
`tems as described in [10] and [9] XKEWBis purely declar-
`Applications, ed, Cohn, A. G. & Thomas, J.R., pp. 79-
`ative: there is no need for rules describing how to put a
`106, John Wiley & Sons, New York, 1986.
`system together. The declarative representation is impor-
`[2] Davis, Randall, “Meta-Rules: Reasoning About Con-
`trol,” Artificial Intelligence, vol. 15, no. 3, pp. 179-222,
`tant for making the knowledge acquisition and mainte-
`1980.
`nance tasks manageable. Unlike the system described in
`[3] Dhar, Vasant and Ranganathan, Nicky, “Integer Pro-
`[1], XKEWB has a hierarchical representation which
`gramming vs. Expert Systems: An Experimental Com-
`enables the use of the hierarchical partial choice inference
`parison,” Communications of the ACM,vol. 33, no. 3,
`schemeforefficiently generating solutions. The hiearchical
`pp. 323-336, March 1990.
`representation is importantalso for efficiency in acquiring
`[4] Frayman, Felix and Mittal, Sanjay, “Cossack: A Con-
`knowledge.
`straints-based Expert System for Configuration Tasks,”
`An potential weakness of the technique is that in the
`in Knowledge-based Expert Systems in Engineering:
`worst case a great deal of backtracking could occur. One
`Planning and Design, ed. Sriram, D. & Adey, R. A.,
`approach to this problem would be to introduce somesort
`Sept. 1987.
`of dependency directed backtracking. A second approach
`[5] Goldstein, Ira P. and Roberts, R. B., “Nudge: a know!-
`might be to break a configuration problem into a set of
`edge-Based Scheduling Program,” in Proceedings of
`loosely connected subproblems. In practice, however, the
`the Fifth International Joint Conference on Artificial
`hierarchical partial choice technique in itself has been suf-
`Intelligence, pp. 257-263, Cambridge, MA,1977.
`ficient for generating solutions without major backtrack-
`ing.
`[6] McDermott, J., “Rl: A Rule-Based Configurer of
`Computer Systems,” Artificial Intelligence, vol. 19, no.
`A working version of XKEWB was implemented on a
`1, 1982.
`Xerox 1186 workstation in the Interlisp-D environment.
`(7] Mittal, Sanjay and Frayman, Felix, “Making Partial
`Knowledge bases for the Xerox PC and for the Xerox Doc-
`umenter! workstation were demonstrated. The PC knowl-
`Choices in Constraint Reasoning Problems,” in Pro-
`ceedingsof the Sixth National Conference on Artificial
`edge base contained about 150 abstract classes and 75
`Intelligence, pp. 631-636, Seattle, 1987.
`individual classes, while the Documenter knowledge base
`consisted of about 120 abstract and 100 individualclasses.
`[8] Mittal, Sanjay and Frayman, Felix, “Towards A
`Generic Model of Configuration Tasks,” in Proc

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket