Decomposition Strategies for Automatically Solving Configuration Problems

Similar documents
DYNAMIC CONFIGURATION OF A PERSONALIZED TOURIST AGENDA

Unified Configuration Knowledge Representation Using Weight Constraint Rules

Intelligent support for interactive configuration of mass-customized products

Constraint Solving by Composition

On the Space-Time Trade-off in Solving Constraint Satisfaction Problems*

Dipartimento di Informatica Università del Piemonte Orientale A. Avogadro Via Teresa Michel 11, Alessandria

A Fast Arc Consistency Algorithm for n-ary Constraints

Detecting and Resolving Inconsistency and Redundancy in Conditional Constraint Satisfaction Problems

Propagate the Right Thing: How Preferences Can Speed-Up Constraint Solving

Web-based Commerce of Complex Products and Services with Multiple Suppliers

Crossword Puzzles as a Constraint Problem

Qualitative constraint enforcement in advanced policy specification

Towards Implementing Finite Model Reasoning in Description Logics

XI International PhD Workshop OWD 2009, October Fuzzy Sets as Metasets

On the Computation of Local Interchangeability in Soft Constraint Satisfaction Problems

A CSP Search Algorithm with Reduced Branching Factor

Representing Product Designs Using a Description Graph Extension to OWL 2

Constraint Satisfaction Problems

Utilizing Device Behavior in Structure-Based Diagnosis

Conflict based Backjumping for Constraints Optimization Problems

The Automatic Design of Batch Processing Systems

3 No-Wait Job Shops with Variable Processing Times

Decomposable Constraints

Framework for Design of Dynamic Programming Algorithms

On the Space-Time Trade-off in Solving Constraint Satisfaction Problems*

Arc Consistency for Dynamic CSPs

Unifying and extending hybrid tractable classes of CSPs

From: AAAI Technical Report SS Compilation copyright 2000, AAAI ( All rights reserved.

Scheduling with Bus Access Optimization for Distributed Embedded Systems

Functional extension of structural logic optimization techniques

Model checking for nonmonotonic logics: algorithms and complexity

The Systematic Generation of Channelling Constraints

Investigating F# as a development tool for distributed multi-agent systems

IEEE Transactions on computers

Scan Scheduling Specification and Analysis

VALCSP solver : a combination of Multi-Level Dynamic Variable Ordering with Constraint Weighting

A New Algorithm for Singleton Arc Consistency

CIS 1.5 Course Objectives. a. Understand the concept of a program (i.e., a computer following a series of instructions)

An Evolution of Mathematical Tools

A COMPARISON OF ATMS AND CSP TECHNIQUES

AUTOMATED REASONING. Agostino Dovier. Udine, October 1, Università di Udine CLPLAB

Conservative re-use ensuring matches for service selection

A classification and constraint-based framework for configuration

Inconsistency and Redundancy Do Not Imply Irrelevance

A strong local consistency for constraint satisfaction

Bound Consistency for Binary Length-Lex Set Constraints

Estimating the Quality of Databases

The Encoding Complexity of Network Coding

CS 188: Artificial Intelligence Fall 2011

Partial Redundant Modeling

Introducing fuzzy quantification in OWL 2 ontologies

Semi-Independent Partitioning: A Method for Bounding the Solution to COP s

Core Membership Computation for Succinct Representations of Coalitional Games

An efficient consistency algorithm for the Temporal Constraint Satisfaction Problem

Framework and Conceptual Model for Reconfiguration*

RELATIVELY OPTIMAL CONTROL: THE STATIC SOLUTION

(Re)configuration using Answer Set Programming

CS 4100 // artificial intelligence

Path Consistency on Triangulated Constraint Graphs*

Grounding OWL-S in SAWSDL

On the Hardness of Counting the Solutions of SPARQL Queries

Discrete planning (an introduction)

PARALLEL CONSISTENCY CHECKING OF AUTOMOTIVE PRODUCT DATA

Metaheuristic Optimization with Evolver, Genocop and OptQuest

28.1 Decomposition Methods

A Top-Down Visual Approach to GUI development

Foundations of Artificial Intelligence

On Constraint Problems with Incomplete or Erroneous Data

What is Search For? CS 188: Artificial Intelligence. Constraint Satisfaction Problems

A Two-stage approach for an optimum solution of the car assembly scheduling problem. Part 2. CLP solution and real-world example

Graph Coloring via Constraint Programming-based Column Generation

Foundations of Artificial Intelligence

Dynamic heuristics for branch and bound search on tree-decomposition of Weighted CSPs

Efficient Computation of Minimal Point Algebra Constraints by Metagraph Closure

2-C3OP: An Improved Version of 2-Consistency

A generic framework for solving CSPs integrating decomposition methods

CSC Discrete Math I, Spring Sets

Kalev Kask and Rina Dechter

PART 1 GRAPHICAL STRUCTURE

Some Applications of Graph Bandwidth to Constraint Satisfaction Problems

Minion: Fast, Scalable Constraint Solving. Ian Gent, Chris Jefferson, Ian Miguel

Applying March Tests to K-Way Set-Associative Cache Memories

CS 343: Artificial Intelligence

A Framework for Reliability Assessment of Software Components

Constraint Satisfaction Problems

A Reduction of Conway s Thrackle Conjecture

Disjoint, Partition and Intersection Constraints for Set and Multiset Variables

Constraint Propagation: The Heart of Constraint Programming

Learning Directed Probabilistic Logical Models using Ordering-search

Matching Theory. Figure 1: Is this graph bipartite?

Disjoint Support Decompositions

Automatic synthesis of switching controllers for linear hybrid systems: Reachability control

Specification of Behavioural Requirements within Compositional Multi-Agent System Design

Exact Max-SAT solvers for over-constrained problems

A Greedy Approach to Establish Singleton Arc Consistency

Announcements. Reminder: CSPs. Today. Example: N-Queens. Example: Map-Coloring. Introduction to Artificial Intelligence

Composition in Hierarchical CLP

Rina Dechter. Irvine, California, USA A constraint satisfaction problem (csp) dened over a constraint network

Outline of the talk. Local search meta-heuristics for combinatorial problems. Constraint Satisfaction Problems. The n-queens problem

Matching Algorithms. Proof. If a bipartite graph has a perfect matching, then it is easy to see that the right hand side is a necessary condition.

Transcription:

Decomposition Strategies for Automatically Solving Configuration Problems Luca Anselma Dipartimento di Informatica, Università di Torino Corso Svizzera 185; 10149 Torino; Italy anselma@di.unito.it Abstract Configuration was one of the first tasks successfully approached via AI techniques. However, solving configuration problems can be computationally expensive. In this work, we show that the decomposition of a configuration problem into a set of simpler and mutually independent subproblems can decrease the computational cost of solving it. In particular, we describe a decomposition technique exploiting the compositional structure of complex objects (i.e. objects composed by other objects) and we show experimentally that such a decomposition can improve the efficiency of configurators. The master s thesis [Anselma 02] this work is based on has been awarded with a Honourable Mention for the AI*IA Prize for recent university graduates. 1. Introduction Recent development in Web technologies has opened important opportunities for developing new interactive services. Among others, the possibility for a customer to access a wide variety of information about products or services has paved the way for systems which embed an intelligent component for supporting the customer in such activity. In most of these systems there is the implicit assumption that the product or the service cannot be modified to match the user requirements: it is plain that while this approach is adequate for some relevant domains in complex domains it may not be adequate, and it may be important to exploit the experience gained in the last two decades in developing knowledge-based systems. Each time we are given a set of components and we need to put (a subset of) them together in order to build an artefact meeting a set of requirements, we actually have to solve a configuration problem. Configuration problems can concern different domains. For instance, we might want to configure a PC, given different kinds of CPUs, memory modules, and so on; or a car, given different kinds of engines, gears, etc. Or we might also want to configure abstract entities in nontechnical domains, such as students' curricula, given a set of courses. In early eighties, configuration was one of the first tasks successfully approached via AI techniques, in particular because of the success of R1/XCON [McDermott 82]. Since then, various approaches have been proposed for automatically solving configuration problems. In the last decade, instead of heuristic methods, research efforts were devoted to single out formalisms able to capture the system models and to develop reasoning mechanisms for configuration. In particular, configuration paradigms based on Constraint Satisfaction Problems (CSP) and its extensions [Mittal and Falkenhainer 90, Sabin and Freuder 96, Fleischanderl et al. 98, Veron and Aldanondo 00] or on logics [McGuinness and Wright 98, Friedrich and Stumptner 99, Soininen et al. 01] have emerged. In the rich representation formalisms able to capture the complex constraints needed in modelling technical domains, not only the configuration problem is theoretically intractable (at least NP-hard, in the worst case [Mackworth 77, Soininen et al. 99, Soininen et al. 01]), but in some cases the intractability does appear also in practice, and solving some configuration problems can require a huge amount of CPU time. These ones are rather problematic situations in those tasks in which low response time is required, such as interactive configuration and on-line configuration on the Web. There are several ways that can be explored to control computational complexity in practice: among them, making use of off-line knowledge compilation techniques [Sinz 02]; providing the configurator with a set of domain-specific heuristics, with general focusing mechanisms [Magro and Torasso 01] or with the capability of re-using past solutions [Geneste and Ruet 02]; defining techniques for automatically decomposing a problem into a set of simpler subproblems [Magro et al. 02, Magro and Torasso 03]. These approaches are not in alternative and configurators can make use of different combinations of them. However it makes sense to investigate to what extent each one of them can contribute to the improvement of the efficiency of configurators. In the present work, we focus on automatic problem decomposition. In [Magro and Torasso 01a] a structured logical approach to configuration is presented. Here we commit to the same framework as that described there and we present a problem decomposition mechanism that exploits the knowledge on the compositional structure (i.e. the knowledge relevant to parts and subparts) of the complex entities that are configured. We also report some experimental results showing its effectiveness.

Section 2 contains an overview of the conceptual language, while Section 3 defines configuration problems and their solutions. In Section 4 a formal definition of the bound relation, which problem decomposition is based on, is given; moreover, in that same section, a configuration algorithm making use of decomposition is reported and illustrated by means of an example. Section 5 reports the experimental results, while Section 6 contains some conclusions and a brief discussion. 2. Conceptual Language In the present paper the FPC (Frames, Parts and Constraints) [Magro and Torasso 03] language is adopted to describe the conceptual model, which models the configuration domains. Basically, FPC is a frame-based KL-One like formalism augmented with a constraint language. We illustrate FPC by means of an example; for a formal description, refer to [Magro and Torasso 03]. In fig. 1 a portion of a simplified conceptual model relevant to PC configuration is represented. In FPC, there is a basic distinction between atomic and complex components. Atomic components (e.g. MPCB, CPU,...) are the basic building blocks of configurations and they are described by means of properties, while complex components (e.g. PC, MB,...) are structured entities whose characterization is given in terms of subparts which can be complex components in their turn or atomic ones. FPC offers the possibility of organizing classes of (both atomic and complex) components in taxonomies (e.g. a hard disk can be either the EIDE or the SCSI type) as well as the facility of building partonomies that (recursively) express the whole-part relations between each complex component and its (sub)components. For instance, the PC class has the partonomic role has_mb, with minimum and maximum cardinalities 1, meaning that each PC has exactly one motherboard; partonomic role has_app, whose minimum and maximum cardinalities are 0 and 8, respectively, expresses the fact that each PC can optionally have up to 8 application software, and so on. It is worth noting that the motherboard MB is a complex component in its turn and it has 1 to 2 CPUs (see the has_cpu partonomic role) that can be either Intel or AMD, one main printed circuit board (via the has_mpcb role), etc. The value and number restrictions present in the taxopartonomy are not sufficient to capture the complex intercomponent constraints needed in order to model the real world domains. For this reason, FPC provides a constraint language. A set of constraints restricts the set of valid combinations of components and subcomponents in configurations. These constraints can be either specific to the modelled domain or derived from the user's requirements. PC has_mb (1;1) has_os (1;4) has_hd (1;7) MB has_app (0;8) Operating system has_sc (0;1) has_mpcb (1;1) has_cpu (1;2) Application software Hard Disk SCSI controller MPCB CPU Unix Windows Unix Windows EIDE SCSI Intel AMD

Figure 1. A fragment of a simplified PC conceptual model (CM PC ) Each constraint is associated with a class of complex components and is composed by FPC predicates combined by means of the boolean connectives,,,. A predicate can refer to cardinalities, types or property values of (sub)components. The reference to (sub)components is either direct through partonomic roles or indirect through chains of partonomic roles. For example, in fig. 1 the constraint [cpu1] is associated with the MB class and it states that, if the motherboard has two CPUs and at least one AMD CPU, then has_cpu role must take values in AMD (i.e. all CPUs must be AMD). An example of a chain of partonomic roles can be found in [scsi]: its consequent (associated with the PC class) states that the role chain <has_mb, has_sc> has cardinality 1, i.e. the PC component has one Motherboard with one SCSI Controller. 3. Configuration Problems A configuration problem is a tuple CP = <CM, T, c, C, V>, where CM is a conceptual model, T is a partial description of the complex object to be configured (the target object), c is a complex component occurring in T (either the target CONSTRAINTS: Associated with PC: If a PC has an application software running under a certain operating system, it must have that operating system [app1] <has_app> in Windows (1;8) <has_os> in Windows (1;4) [app2] <has_app> in Unix (1;8) <has_os> in Unix (1;4) If a PC has a SCSI hard disk, it must have a SCSI controller [scsi] <has_hd> in SCSI (1;7) <has_mb, has_sc) (1;1) Associated with MB: If the motherboard has more than one CPU, all CPUs must be equal [cpu1] <has_cpu> (2;2) <has_cpu> in AMD (1;2) <has_cpu> in AMD [cpu2] <has cpu> (2;2) <has cpu> in Intel (1;2) <has cpu> in Intel object itself or one of its complex (sub)components) whose type is C (which is a class of complex objects in CM) and V is a set of constraints involving component c. In particular, V can contain the user's requirements that component c must fulfil. Given a configuration problem CP, the task of the configurator is to refine the description T by providing a complete description of the component c satisfying both the conceptual description of C in CM and the constraints V, or to detect that the problem does not admit any solution. We assume that the configurator is given a main configuration problem CP 0 =<CM, (c), c, C, REQS>, where c represents the target object, whose initial partial description T (c) contains only the component c; REQS is the set of requirements for c (expressed in the same language as the constraints in CM 1 ). Therefore, the goal of the configurator is to provide a complete description of the target object (i.e. of an individual of the class C) satisfying the model CM and fulfilling the requirements REQS (such a description is a solution of the configuration problem) or to detect that the problem does not admit any solution (i.e. that such an individual does not exist). Since CM is assumed to be consistent, this last case happens only when the requirements REQS are inconsistent w.r.t. CM. A sample description of an individual PC satisfying the conceptual model CM PC in fig. 1 and fulfilling the requirements listed in fig. 2 is reported in fig. 4.e. The configuration is accomplished by means of a search process that progressively refines the description of c. At each step the configuration process selects a complex component in T (starting from the target object), it refines the description T by inserting a set of direct components of the selected component (by choosing both the number of these components and their type) and then it configures all the direct complex components possibly introduced in the previous step. If, after a choice, any constraint (either in CM or in REQS) is violated, the process backtracks. The process stops as soon as a solution has been found or when the backtracking mechanism can t find any open choice. In the last case, CP does not admit any solution. The user desires a Unix operating system, a SCSI hard disk and an Intel CPU [req_os] <has_os> in Unix (1;1) [req_hd] <has_hd> in SCSI (1;1) [req_cpu] <has_mb, has_cpu> in Intel (1;1) Fig. 2. User's requirements for a PC (REQS PC ) It is worth pointing out that, if a conceptual model has no constraint, the configuration can be easily computed making a set of local choices (in the example in fig. 1, the process can fix the number of application software and the type of each 1 It is worth pointing out that the user actually specifies her requirements in a higher level language (through a graphic interface) and the system performs an automatic translation into the representation language.

one, then it can fix independently the number and the type of the operating systems, and so on). It is because of the constraints that link together different components and subcomponents that the configuration task in most cases is performed by a search process: when a choice made for a component prevents another component to be configured, the process (if possible) backtracks, revises a past choice, and explores a different path in the search space. For example, in fig. 1 the constraints [app1] and [app2] link together the Operating system and the Application software components, stating that, if the configuration has a Unix or a Windows software, then it must also have the related operating system: thus the choice of the operating system cannot be a local choice. In many cases, the search space is huge and many paths in it do not lead to any solution, thus it appears important to understand how the components interact with each other in order to restrict the search space. 4. Decomposing Configuration Problems The decomposition capability is based on a bound relation among constraints. We assume that, in any configuration, each individual component cannot be a direct part of two different (complex) components, neither a direct part of a same component through two different whole-part relations (exclusiveness assumption on parts). Let CP = <CM, T, c, C, V> and CONSTRS(C) be a configuration problem and the set of constraints associated with C in CM, respectively and let u,v,w V CONSTRS(C). The bound relation B c is defined as follows: if P u and P v are two predicates occurring in u and in v, respectively, that mention both a same partonomic role p of C then u B c v (i.e. if u and v refer, through their predicates, to a same part of c, then they are directly bound in c); if u B c v and v B c w then u B c w (i.e. u and w are bound in c by transitivity). Property 1. The bound relation B c is an equivalence relation. To solve CP=<CM, T, c, C, V>, the configurator must refine the description of c by specifying the set COMPS(c) of its components and subcomponents. In particular, it specifies the type of each element in COMPS(c) and, for each partonomic role occurring in the conceptual description of type C (the type of component c) in CM, it specifies which elements in COMPS(c) play that partonomic role. Property 2. The equivalence classes of constraints induced by the bound relation B c represent mutually independent configuration problems. Proof (sketch). Let S 1 and S 2 be two different equivalence classes of constraints induced by the relation B c and COMPS S1 (c) and COMPS S2 (c) be the sets of components in COMPS(c) referred to by constraints in S 1 and in S 2, respectively. We want to show that COMPS S1 (c) and COMPS S2 (c) are disjoint sets: in fact in this case we can configure separately the parts of the component c relevant to an equivalence class of constraints knowing that it can t interact with the other classes. If the sets were not disjoint, then there must exist some constraints that mention (whether directly or indirectly) a same component through distinct partonomic roles, but, for the exclusiveness assumption on parts, this is not possible. Exploiting this result, whenever we apply the bound relation to a set of constraints associated with a component and we find that there exist more than one equivalence class, we know how we can decompose the problem: it suffices to (i) identify the mutually independent subproblems using the bound relation; (ii) solve independently the (sub)problems related to each class of constraints, and, then, (iii) assemble the (sub)solutions to form the solution of the original problem. Thanks to Property 2, we know that the first and the last step are rather easy to perform, since the equivalence classes of constraints identify distinct sets of subcomponents. In fig. 3 a configuration algorithm making use of decomposition is sketched (please note that, for the sake of simplicity, the backtracking mechanism is not shown here). (1) configure(cm,t,c,c,v) { (2) SUBPROBLEMS = decompose(cm, T, c, C, V); (3) while (SUBPROBLEMS <>) { (4) currentsp = extract(subproblems); (5) T = insertdirectcomponents(cm, T, c, C, currentsp) ; (6) for each inserted complex direct component (let d be the component and D its type) (7) - let V currentsp be the constraints in currentsp mentioning some components of d (8) T = configure(cm, T, d, D, V ) ; (9) }//while (10) complete T by inserting all the components and subcomponents of c not involved in the constraints in V CONSTRS(C) (11) return T; (12) }//configure

Fig. 3. A configuration algorithm making use of decomposition mechanisms. In step 2 the configurator attempts to decompose V CONSTRS(C) (i.e. the constraints associated with c, the component to be configured) applying the relation B c to V CONSTRS(C). The equivalence classes in the quotient set (V CONSTRS(C))/B c are used to single out mutually independent subproblems that (in steps 3-9) are solved individually. For each subproblem, the direct components of c relevant to the constraints in currentsp are inserted (step 5) by choosing both their number and their type. The configure procedure is then called recursively on each inserted complex component (steps 6-8). In step 10 the configuration of c is completed by inserting all the components and subcomponents that could not be inserted since they were not involved in any constraint. It is worth noting that it is necessary to check whether the constraints associated with a component c are violated by a choice made during the configuration of c: every time we modify the tentative configuration T in the insertdirectcomponents procedure in step 5, we evaluate the constraints associated with the component; if any constraint is violated, we have to backtrack to a past choice. Thanks to the decomposition step, we can safely ignore the open choices belonging to subproblems independent from the current one. a) T 1 = (pc1) SUBPROBLEMS = <S 1 = [req_os, app1, app2], S 2 = [scsi, req_hd, req_cpu]> b) T 2 = (pc1 <has_os (unix_os1)> <has_app (unix_app1)>) SUBPROBLEMS = <S 2 = [scsi, req_hd, req_cpu]> c) T 3 = (pc1 <has_os (unix_os1)> <has_app (unix_app1)> <has_hd (scsi_hd1)> <has_mb (mb1)>) SUBPROBLEMS = < > d) Fig. 4. A configuration example. T 4 = (pc1 <has_os (unix_os1)> <has_app (unix_app1)> <has_hd (scsi_hd1)> <has_mb (mb1)>) SUBPROBLEMS = <S 21 = [cpu1, cpu2, req_cpu], S 22 = [scsi]> e) T 5 = (pc1 <has_os (unix_os1)> <has_app (unix_app1)> <has_hd (scsi_hd1)> <has_mb (mb1 <has_cpu (intel_cpu1)> <has_sc (scsi_controller1)> <has_mpcb (mpcb1)>)>) SUBPROBLEMS = <> In the following we briefly describe the behaviour of the algorithm by means of an example in which, for the sake of brevity, we highlight only the decomposition steps. Let us suppose that we want to configure a PC (as described in the PC conceptual model CM PC in fig. 1) meeting the requirements REQS PC in fig. 2. The configure procedure in step 2 decomposes the constraints associated to PC plus the constraints in REQS PC (fig. 4.a) by applying the bound relation B pc1 to the set of constraints REQS PC CONSTRS(PC): it is easy to see that the constraints req_os, app1 and app2 are bound because they mention the same roles (namely has_os and has_app), but they are not bound to the constraints scsi, req_hd and req_cpu since they do not mention any common role. Each equivalence class of constraints entails a configuration subproblem, the first one solved in fig. 4.b. In order to entirely solve the second one the procedure calls itself recursively to configure the complex component mb1. The constraints associated with mb1 are decomposed in their turn in two subproblems (fig. 4.d). The solution of the configuration problem is shown in fig. 4.e. 5. Experimental Results The algorithm described in the previous section has been implemented in a configuration system written in Java (JDK 1.3). In this section we report some results from tests conducted with a configuration domain of a computer system. The experiments are aimed at testing the performance of the configuration algorithm described in this paper and at comparing it (w.r.t. the computational effort) with a configuration strategy without decomposition. All experiments were performed on a 700 MHz AMD Duron PC with 128 MB RAM and Windows 2000. Using the computer system model, we generated a test set of 153 configuration problems; for each of them we specified the type of the target object (e.g. a PC for graphical applications) and some requirements that must be satisfied (e.g. it must have a CD writer of a certain kind, it must be fast enough and so on). In 61 problems we intentionally imposed a set of requirements inconsistent with the conceptual model (in average, these problems are quite hard). A problem is considered solved iff the configurator, within the time threshold of 360 seconds, provides a solution or it detects that the problem does not admit any solution. For each problem, the required CPU times have been measured and also the number of constraints that were evaluated (see the step 5 in fig. 3). The number of evaluated constraints allows to have a measure of the computational effort not so heavily influenced by a particular implementation as the CPU time.

No decomposition With decomposition CPU time (in seconds) 7.7 ± 5.2 2.3 ± 0.7 # of evaluated constraints 31861 ± 17516 9611 ± 3551 Tab. 1. Summary of experimental results. 95% confidence intervals for CPU time and number of evaluated constraints are reported. The strategy without decomposition solves only 150 problems, whereas the strategy with decomposition solves all the problems. For the 150 problems solved by both strategies, the decomposition proves to be effective in reducing both the CPU times and the number of evaluated constraints. Tab. 5 reports a summary of the results: the mean CPU time reduces of the 70% and also the standard deviation is lower (from 32.8 s to 4.6 s, -86%). It is worth noting that in an interactive feature a low standard deviation is important since it is closely related to predictable response times. As regards the number of evaluated constraints, they follow a similar trend: -70% for the mean and 80% for the standard deviation. 6. Discussion and Conclusion The present paper addresses the problem of partitioning a configuration problem into simpler and mutually independent subproblems by exploiting as much as possible the implicit decomposition provided by the partonomic relations of complex components. The adoption of a structured approach based on a logical formalism plays a major role since the criterion for singling out unbound constraints is based on an analysis of the partonomic slots mentioned in the constraints. Moreover, the constraints are associated with each complex component. The configuration algorithm tries to recursively decompose the configuration problem each time it is invoked to configure a component or a subcomponent. Some experimental results conducted in a configuration domain modelling computer systems are reported which show the effectiveness of the decomposition technique presented in this paper, even if several problems in the test set still require a huge amount of CPU time. It is worth noting that the technique presented here had been subject to further improvements; in particular we have investigated the possibility of further decomposing the configuration problem by considering the constraints as dynamic entities instead as static ones. Since it may happen that the configuration process instantiates all the roles nominated in a constraint (or in a predicate in a constraint), it would be possible to simplify the constraint (predicate) replacing it with its truth value: in this way, it could happen that constraints directly or indirectly bound by the replaced constraint (predicate) are not bound anymore, allowing to further decompose the problem. Results in such a direction can be found in [Anselma et al. 03]. Acknowledgements The author wish to thank prof. Pietro Pietro Torasso and dr. Diego Magro, supervisors of his master s thesis, for their precious help and valuable guidance. References [Anselma 02] L. Anselma. Strategie di decomposizione per la risoluzione automatica di problemi di configurazione. Master s thesis, Università di Torino, 2002. [Anselma et al. 03] L. Anselma, D. Magro, and P. Torasso. Automatically decomposing configuration problems. In LNAI, 2829, 2003. [Fleischanderl et al. 98] G. Fleischanderl, G. E. Friedrich, A. Haselböck, H. Schreiner, and M. Stumptner. Configuring large systems using generative constraint satisfaction. IEEE Intelligent Systems, (July/August 1998):59-68, 1998. [Friedrich and Stumptner 99] G. Friedrich and M. Stumptner. Consistency-based configuration. In AAAI-99, Workshop on Configuration, 1999. [Geneste and Ruet 02] L. Geneste and M. Ruet. Fuzzy case based configuration. In Proc. ECAI 2002 Configuration WS, pages 71-76, 2002. [Mackworth 77] A.K. Mackworth. Consistency in networks of relations. Artificial Intelligence, 8:99-118, 1977. [Magro and Torasso 01] D. Magro and P. Torasso. Interactive configuration capability in a sale support system: laziness and focusing mechanisms. In Proc. IJCAI-01 Configuration WS, pages 57-63, 2001.

[Magro and Torasso 01a] D. Magro and P. Torasso. Supporting product configuration in a virtual store. LNAI, 2175:176-188, 2001. [Magro et al. 02] D. Magro, P. Torasso, and L. Anselma. Problem decomposition in configuration. In Proc. ECAI 2002 Configuration WS, pages 50-55, 2002. [Magro and Torasso 03] D. Magro and P. Torasso. Decomposition strategies for configuration problems. AIEDAM, Special Issue on Configuration, 17(1):51-73, 2003. [McDermott 82] J. McDermott. R1: A rule-based configurer of computer systems. Artificial Intelligence, (19):39-88, 1982. [McGuinness and Wright 98] D. L. McGuinness and J. R. Wright. An industrial-strength description logic-based configurator platform. IEEE Intelligent Systems, (July/August 1998):69-77, 1998. [Mittal and Falkenhainer 90] S. Mittal and B. Falkenhainer. Dynamic constraint satisfaction problems. In Proc. of the AAAI 90, pages 25-32, 1990. [Sabin and Freuder 96] D. Sabin and E.C. Freuder. Configuration as composite constraint satisfaction. In Proc. Artificial Intelligence and Manufacturing. Research Planning Workshop, pages 153-161, 1996. [Sinz 02] C. Sinz. Knowledge compilation for product configuration. In Proc. ECAI 2002 Configuration WS, pages 23-26, 2002. [Soininen et al. 99] T. Soininen, E. Gelle, and I. Niemelä. A fixpoint definition of dynamic constraint satisfaction. In LNCS 1713, pages 419-433, 1999. [Soininen et al. 01] T. Soininen, I. Niemelä, J. Tiihonen, and R. Sulonen. Representing configuration knowledge with weight constraint rules. In Proc. of the AAAI Spring 2001 Symposium on Answer Set Programming, 2001. [Veron and Aldanondo 00] M. Veron and M. Aldanondo. Yet another approach to ccsp for configuration problem. In Proc. ECAI 2000 Configuration WS, pages 59-62, 2000.