• No results found

Structure-based Configuration Problems

solutions exist. One is{(2,B),(1,A)}and the other one is{(1,D),(1,B)}. In both cases the costs are 8. We now give the formal specifications ofΠM1

related to this problem:

1. O={A, B, C, D} 2. F ={height, restrict}

3. vheight={1,2, ...,10}, vrestrict={a,d}, V ={vheight, vrestrict}

4. pA={(height, 1),(restrict,a)}, pB={(height,2)},

pC={(height,3)}, pD={(height,3), (restrict,d)}

P ={pA, pB, pC, pD} 5. aheight(x, y) = x+y, ifx+y≤10; ⊥, otherwise. arestrict(x, y) =    a, ifx=y=a; d, ifx=y=d; ⊥, otherwise.

A={aheight, arestrict}. This definition is a formalization of the restric-

tion rule. 6. theight(x, y) = True, ifx≤y; False, otherwise. trestrict(x, y)≡True T ={theight, trestrict} 7. D={(height,5)}

A formal solution of ΠM1 is given by C = I, Q with I = {(2,B),

(1,A)} andQ = {(height,5),(restrict,a)}. One can check easily that all demands are fulfilled for the given quality setQ.

3.2

Structure-based Configuration Problems

Model M2, which will be introduced now, is suitable to model structure- based configuration problems. Among others, the configuration systems PLAKON[13], [73] and WIST[38] realize such a model.

Model M2 is similar to model M1 but extended by rules. These rules may be interpreted as assembling restrictions. For example, one would like to formulate the rule“If harddisk A is used, then either controller B or controller C must be used.”By such restriction rules the skeleton of a technical system can be realized.

Definition 3.5 (Configuration ProblemΠM2). A configuration problem

under model M2 (ΠM2) is a tupleO, F, V, P, A, T , D, N, Rwhose elements

are defined as follows.

LetO, F, V, P, A, T , Dbe defined as in model M1: 1. Ois set a of objects.

2. Fis a set of functionalities.

3. V comprises all functionalities’ value sets. 4. Pcontains each object’s property description. 5. Ais the set of all functionalities’ addition operators. 6. Tcontains a test predicate for each functionality.

7. D comprises all desired properties of the system to be config- ured.

WithN ={1, . . . , n}letΓ(N, O) ={[k, o]|k∈N, o∈O}denote the set of Boolean variables overNandO.

Aconfiguration restriction rule r is an implication [k, o] ψ where [k, o]Γ(N, O)andψis a logical formula overΓ(N, O)using paren- theses, ‘¬’, ‘’, and ‘’ in the standard way. Arule setRis a finite set of configuration restriction rules overΓ(N, O).

LetC =I, Qbe a configuration as defined in model M1 where I N×O. Furthermore, we agree on the following notions:

Definition 3.6 (Configuration Assignment). A configuration assignment

αI is a functionαI : Γ(N, O) → {True,False}such that for every[k, o]

Γ(N, O):

αI([k, o]) =

True, if(k, o)∈I;

False, otherwise.

Definition 3.7 (Satisfying Configuration). A configurationC =I, Qis called satisfying for a rule setRif and only if every ruler∈Ris true under the assignmentαIusing the known semantics of propositional logic.

3.2. STRUCTURE-BASED CONFIGURATION PROBLEMS 55 Remarks. The semantics of a restriction rule is illustrated by the following example: Letr= [1, A]([2, B]∧ ¬[1, C])[3, D]. The meaning ofris:“If a configuration contains exactly one object A, then the configuration must contain either two B’s and not one C or three D’s.”

With the above definitions we are now able to specify a solution for an extended configuration problemΠM2including restriction rules.

Definition 3.8 (Solution ofΠM2). A configurationC =I, Qis a solution

of a configuration problemΠM2=O, F, V, P, A, T , D, N, Rif and only if

for each demandd= (f, x)∈Dthere exists a qualityq = (g, y)∈Qsuch thatf =gandtf(x, y) =TrueandCis satisfying for the rule setR.

The problems CONF, FINDCONF, etc. stated in subsection 3.1 exist in a similar way for model M2.

The solution space of structure-based configuration problems can be described by a hierarchical graph with two kinds of nodes: and-nodes and or-nodes. An and-node indicates that each direct successor of this node must be selected during the configuration process—more general: to solve the whole problem each subproblem has to be solved. An or- node describes mutually exclusive alternatives. In typical applications such a configuration problem is solved byskeletal configuration in a top- down strategy. Skeletal configuration will be appropriate, if we want to configure a system that always has the same basic structure (cf. section 2.4, page 43).

IfΠM2is a problem under model M2, then the skeleton of the configured

system can be derived from the rules specified inΠM2. The skeleton is the

digraphG = (V, E)with V = O and (oi, oj) E, if there is a rule that

containsoiin its left-hand side andojin its right-hand side.

Example

In the following example a tower has to be configured that consists of three planes: An A-plane, a B-plane and a C-plane. For each plane there is a particular kind of building block (A-block, B-block and C-block respec- tively). The goal is to build a tower of a given height at a minimum cost (= FINDOPTCONF). Figure 3.2 describes the task.

In this example, we claim that the height of the tower must be at least 8. Additionally, the building blocks of the tower have to fulfill the following

block height cost A1 A2 B1 B2 C1 C2 C3 1 2 1 3 1 2 4 2 4 3 5 2 3 6 A B C

Figure 3.2:Tower with the planes A, B, and C

restrictions: For both plane A and plane B exactly one block of the appro- priate kind should be selected. Plane C has to be constructed with one or two C-blocks where C3 cannot be combined with any of the other C-blocks. If block C2 is used once, block B1 will not be allowed to occur only once in a configuration.

By completely enumerating one can check easily that the following two cost optimum solutions exist:{(1,A1),(1,B2),(2,C2)}and{(1,A1),

(1,B2),(1,C3)}. The cost is 13 in either case.

To describe this problem as a hierarchical configuration problem we introduce particular “dummy blocks” S, A, B, C, which have no proper- ties. With the new building blocks we are now able to give the formal specifications ofΠM2regarding our example:

1. O={S, A, B, C, D, A1, A2, B1, B2, C1, C2, C3} 2. F ={height} 3. vheight={1,2, ...,10}, V ={vheight} 4. pS=pA=pB =pC=pD={}, pA1={(height, 1)}, pA2={(height,2)}, pB1 ={(height,1)}, pB2={(height,3)},

pC1 ={(height,1)}, pC2={(height, 2)}, pC3={(height,4)}

P ={pS, pA, pB, pC, pD, pA1, pA2, pB1, pB2, pC1, pC2, pC3} 5. aheight(x, y) = x+y, ifx+y≤10; ⊥, otherwise. A={aheight} 6. theight(x, y) = True, ifx≤y; False, otherwise.