... la siguiente dirección: http://www.lcc.uma.es/~afdez/Papers/phdspa3nish.pdf ...... and lub can be obtained simply by interchanging glb and lubâ. Note that the ...
A Generic, Collaborative Framework for Interval Constraint Solving
PhD Thesis Departamento de Lenguajes y Ciencias de la Computaci´on University of M´alaga, Spain By Antonio J. Fern´ andez Leiva
Director: Dr. Patricia M. Hill School of Computing University of Leeds, England
Tutor: Dr. Jos´e M. Troya Departamento de Lenguajes y Ciencias de la Computaci´on University of M´alaga, Spain January, 25th 2002
ii
Acronyms Acronym AI ATOAM CCL CCP CHR CLP CLP(B) CLP(FD) CLP(L ] in Ls , (>L ≺Ls [>L ≺Ls . . . ≺Ls (1 ≺Ls [1 ≺Ls (0 ≺Ls [0.
4.3. The Computation and Interval Domains
87
Moreover, if L = Set Integer , then {1, 3}) denotes ({1, 3}, ‘)’), ({1, 3} denotes \ ({1, 3}, ‘)’) and {1, 3}] = [{1, 3}. Also glb Ls ({4}], {4, 6}]) = {4}] and lub Ls ({3}], {4, 6}]) = {3, 4, 6}], glb Ls ([{4}, [{4, 6}) = lub Ls ({4}], {4, 6}]) = {4, 6}] = [{4, 6}, lub Ls ([{4}, [{4, 6}) = glb Ls ({4}], {4, 6}]) = {4}] = [{4}, {1}] ≺Ls {1, 3}) ≺Ls {1, 3}] ≺Ls {1, 3, 5}], [{1, 3, 5} ≺Ls ({1, 3} ≺Ls [{1, 3} ≺Ls [{1}. PROPOSITION 4.8 Let L0 ∈ {Ls , Ls } and t ∈ L0 . Then, (1) L0 = L0 ,
(2) L0 ∈ {Ls , Ls },
(3) t ∈ L0
and
(4) t = t.
PROOF 4.9 We prove the cases separately. (1) Observe that ˆˆ Ls =1 (L, B) =2 (L, B) =3 (L, B) =4 Ls
(4.1)
where equalities, =1 and =4 follow from Definition 4.3 on the facing page, =2 from Definition 4.4 on the preceding page (applied twice), and =3 from the duality definition for lattices. Thus, if L0 = Ls , then the result follows. Moreover, if L0 = Ls , then L0 = Ls = Ls = L0 . (2) By hypothesis, L0 ∈ {Ls , Ls }. Hence, by (4.1), L0 ∈ {Ls , Ls }. ˆ we have (3) Observe that, as t ∈ L0 , t = (a, ‘}’), for some a ∈ L ∪ L, t =1 (a, ‘}’) =2 (ˆ a, ‘}’) ∈ L0 where the equality =1 follows from Definition 4.3, and equality =2 and relation ∈ from Definition 4.4. ˆ we have (4) Observe that, for some a ∈ L ∪ L, ˆˆ, ‘}’) =3 (a, ‘}’) =4 t. t =1 (a, ‘}’) =2 (a where equality =1 follows from Definition 4.3, =2 from Definition 4.4 (applied twice) and =3 from the duality definition for lattices. 2
88
CHAPTER 4. Interval Constraint Propagation on Lattice (Interval) Domains
4.3.2
Constraint Operators
The bounded computation domains are extended to allow for operators over the computation domains. DEFINITION 4.10 (Constraint operators) Suppose L, L1 , . . . , Ln ∈ L ∪ Lˆ and that ◦L and ◦B are monotonic n-ary functions ◦L :: L1 × . . . × Ln → L, ◦B :: B . . × B} → B. | × .{z n times
Suppose also that, if ◦L is not a strict monotonic function then ◦B is a constant function. Let ◦ be the operator ◦ :: Ls1 × . . . × Lsn → Ls ◦((a1 , }1 ), . . . , (an , }n )) = ( ◦L (a1 , . . . , an ), ◦B (}1 , . . . , }n ) ).
(4.2)
Then ◦ is called a constraint operator for Ls . The mirror ◦ of ◦ is ◦ :: Ls1 × . . . × Lsn → Ls ◦(t1 , . . . , ti , . . . , tn ) = ◦(t1 , . . . , ti , . . . , tn ).
(4.3)
As is usual, if ◦ is a binary operator we allow for infix notation. Then the expression ◦(t1 , t2 ) will be denoted just as t1 ◦ t2 . EXAMPLE 4.11 Suppose +L and −L are declared as +L :: L × L → L
ˆ → L. −L :: L × L
This means that, when L ∈ {Integer , 0. Let t = ◦(t1 , . . . , tn ) ∈ Lb ∪ Lb . Then n(t1 ), . . . , n(tn ) < n(t) so that the inductive hypothesis can be assumed for t1 , . . . , tn . Therefore, t = ◦(t1 , . . . , tn ) = ◦(t1 , . . . , tn ),
by Definition 4.15, applied twice;
= ◦ (t1 , . . . , tn ), = ◦ (t1 , . . . , tn ) = t.
by Proposition 4.12(c); by the inductive hypothesis.
(2) If t ∈ Lb then t ∈ Lb by Definition 4.15. If t ∈ Lb then, there are three cases: (a) t ∈ Ls ⇒ t ∈ Ls ⇒1 t ∈ Ls ⇒2 t ∈ Lb ; (b) t ∈ {min(x ), val (x )} ⇒2 t ∈ Lb ; (c) t = ◦(t1 , . . . , tn ) ∈ Lb ⇒2,3 t ∈ Lb , where ⇒1 follows from Proposition 4.8(1), ⇒2 follows from Definition 4.15 and ⇒3 follows Proposition 4.16(1). 2 EXAMPLE 4.18 Let + (for L = Integer ), − (for L = L , ⊥L ). L
L
EXAMPLE 4.20 s is written as [1, 8), h1], 8)i ∈ RInteger s b [2.3, 8.9) ∈ R< and [1.4,max (x )+4.9] ∈ R< ,
glb Rb ([3.2, 6.7], (1.8, 4.5]) = [3.2, 4.5],