anagh lal monday, april 14, 2003 1 chapter 9 – tree decomposition methods anagh lal csce 990-06...

Post on 19-Dec-2015

214 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Anagh Lal Monday, April 14, 2003 1

Chapter 9 – Tree Decomposition Methods

Anagh Lal

CSCE 990-06 Advanced Constraint Processing

Anagh Lal Monday, April 14, 2003 2

Outline

• Acyclic constraint networks– Hypergraph, dual graph, primal graph, join-tree,

hypertree, acyclic constraint network.

• Solving acyclic constraint networks (DB )– Algorithm Acyclic-Solving

• Identifying acyclic constraint networks– Dual-based approach– Primal-based approach

• Join-tree clustering: general CSP acyclic CSP

Anagh Lal Monday, April 14, 2003 3

Introduction

• Chapter 4: tree-shaped binary CSPs can be processed efficiently

• Here, the notion of a constraint tree is extended to non-binary constraints A new class: acyclic constraint networks

• Review: – hypergraph– dual of a graph – primal graph

Anagh Lal Monday, April 14, 2003 4

Examples on the board

• Hypergraph

• Dual graph

• Reduced dual graph (when tree join-tree)

• Primal graph

Anagh Lal Monday, April 14, 2003 5

Connectedness property

• An arc subgraph of a graph contains – all the nodes and – a subset of the edges

• Two nodes that share variables are connected a path along which each arc contains the shared variables

• An arc subgraph of the dual satisfies the connectedness property

all nodes that share a variable are connected

The arc subgraph is a join-graph• Connectedness the running intersection property

Anagh Lal Monday, April 14, 2003 6

Has A

Has A

Has A

Constraint Network: R

Hypergraph: H

Dual of H: Hdual

Arc subgraph of Hdual: G

Does G Satisfy

Connectedness?

YesG is a Join-graph

Is G aTree?

G is a Join-tree

H is a Hyper-tree

R is an Acyclic network

Yes

Anagh Lal Monday, April 14, 2003 7

Solving acyclic problems

• An acyclic constraint network can be solved efficiently since its dual graph is a tree of binary constraints.

• Algorithm Acyclic-Solving– is tree-based (using directional arc-consistency)– solves acyclic problems

• Domains of variables in the dual problem constraint tuples of the original problem• Acyclic-Solving assumes that any tuples are

consistent with domains (Relational arc-consistent)

Anagh Lal Monday, April 14, 2003 8

Algorithm Acyclic-Solving

• Input: – Acyclic constraint network R = (X, D, C)– A join-tree T of R.– Assumes the network is relational arc-consistent

• Output: – (Global) consistency of network [Yes/No] – A consistent solution to R

Anagh Lal Monday, April 14, 2003 9

Acyclic-Solving: 3 steps

• Step 1: Generate an ordering d = (R1…Rt) of the constraints C such that the every constraint/relation appears before its descendants in the join-tree rooted at R1.

• Step 2 (tighten relations):– Pick a relation Rj from the join-tree in reverse order of d– For each edge such that the edge connects Rj and a relation

Rk that comes earlier in the ordering:• Perform a join of the two relations, project the result using the

scope of the relation Rk

• Assign the result of above computation to Rk (i.e., update Rk)• If Rk becomes empty: Return with no solution

Anagh Lal Monday, April 14, 2003 10

Acyclic-Solving (cont.)

• Step 3: If we reach this step, then problem is consistent. So, generate a solution.– Pick up the first relation using the ordering d.– Select a tuple from it. – Using this instantiation instantiate values from

other relations such that they are consistent with previous assignments

– .. And you’re guaranteed to finish!

Anagh Lal Monday, April 14, 2003 11

Acyclic-Solving: Correctness

• Step 2 of the algorithm is essentially applying directional arc-consistency along the join-tree of the dual of a problem.

• As we saw in Chapter 4, this guarantees a solution for a tree network.

Anagh Lal Monday, April 14, 2003 12

Acyclic-Solving: Complexity

• Complexity of tree algorithms is O(nk2)• n: #variables

• k: domain size

• Expected complexity is O(rl2)• r: #constraints

• each with most l tuples

• Using lexicographical sorting

complexity down to O(r.l.log l)

Anagh Lal Monday, April 14, 2003 13

Recognizing acyclic networks

Two methods

1. Dual-Acyclicity: dual-based recognition– Generates ‘maximal’ spanning tree of dual graph

– Tests for connectedness of this spanning tree

2. Primal-Acyclicity: primal-based recognition– Uses the fact that the primal graph for a hypertree

must be chordal

Anagh Lal Monday, April 14, 2003 14

Dual-Acyclicity

• Input: Hypergraph H of constraint network R(X, D, C)• Output: A join-tree T(S, E) if R is acyclic• Algorithm:

– Generate a maximal spanning tree T of the dual of R(weight = number of shared variables)

– For every two nodes u and v in T, do• If the unique path connecting them does not satisfy the

connectedness property, then Exit (R is not acyclic)

– R is acyclic, and T is the join-tree

Anagh Lal Monday, April 14, 2003 15

Dual-Acyclicity: complexity

• O(e3), where e is the number of constraints

Anagh Lal Monday, April 14, 2003 16

Refresher of Chapter 4

• Maximal cardinality ordering

• Chordal graph

• A graph is chordal if, in a maximum cardinality ordering, each node’s parents are connected

• Finding max-cliques in chordal graphs can be done in linear time

Anagh Lal Monday, April 14, 2003 17

Primal-Acyclicity: principle

• Uses 2 tests – the primal graph G of the network is chordal and

– the max-cliques of the chordal primal graph G satisfies the conformatlity property

• Conformality– A chordal primal graph is conformal relative to a

constraint hypergraph there is a 1-to-1 mapping between maximal cliques and scopes of constraints

Anagh Lal Monday, April 14, 2003 18

Primal-Acyclicity

• Input: A network R = (X, D, C) and its primal graph G

• Output: A join-tree iff the problem is acyclic

• Algorithm: 3 steps– Test chordality of the primal graph G– Test conformality of the primal graph G– If acyclicity, then create the join-tree for R

Anagh Lal Monday, April 14, 2003 19

Primal-acyclicity: the steps

1. Test chordality: Using a max-cardinality ordering d of G and starting from the

last node check if the parents of all the nodes are connected. If for any node they are not then, exit: problem is not acyclic

2. Test conformality: Let C1,…,Ct be the cliques indexed by their highest variable in

the ordering. Check if the cliques correspond to scopes of constraints, if so R is acyclic

3. Create a join-tree: From t to 1, connect every clique to an earlier clique with which

it shares a maximal number of variables

Return the tree of cliques

Anagh Lal Monday, April 14, 2003 20

Join-tree clustering

• Since acyclic constraint networks can be solved efficiently, try to convert an arbitrary constraint network into an acyclic one

• This can be achieved by grouping subsets of constraints into clusters, or sub-problems, whose scopes constitute a hypertree, thus transforming a constraint hypergraph into a constraint hypertree

• By replacing each sub-problem with its solution we obtain an acyclic constraint problem, which can be solved using the acyclic solving algorithm.

• This compilation process is called join-tree clustering

Anagh Lal Monday, April 14, 2003 21

Join-tree clustering example

Anagh Lal Monday, April 14, 2003 22

Hypertree embedding

• A hypertree embedding of a hypergraph R = (X,H) is a hypertree T = (X,S) such that, for every h element of H there is a h1 element of S such that h is a subset of h1.

Anagh Lal Monday, April 14, 2003 23

Decomposing a hypergraph into a hypertree

• Consider the primal-acyclicity algorithm to detect acyclic networks. Instead of terminating when we find that the graph is acyclic we could repair the primal graph and proceed to convert the hypergraph to a hypertree.

• Enforce chordality by connecting the parents• Enforce conformality by generating unique

constraint for every maximal clique.• Algorithm Join Tree Clustering (JTC) does this.

Anagh Lal Monday, April 14, 2003 24

Joint Tree Clustering

• Input: Constraint problem R = (X, D, C) and its primal graph G = (X, E)

• Output: An equivalent acyclic problem and its join-tree: T=(X, D, C’)

Anagh Lal Monday, April 14, 2003 25

JTC algorithm (cont.)

• Select a variable ordering d (max-cardinality recommended)

• Triangulation: Connect the parents. Generate an induced graph along d.

• Create a join-tree for the induced graph– Identify all max cliques in the chordal graph. (C1,

…,Ct), from the last variable to the first.

– Connect each Ci to one single Cj (j < i) with whom it shares the largest subset of variables.

Anagh Lal Monday, April 14, 2003 26

JTC algorithm (cont.)

• Place each constraint from R in one clique containing its scope, and let Pi be the constraint subproblem associated with Ci

• Solve each Pi and let R’i be its set of solutions

• Return C’ = {R’1,…, R’t}, and their join-tree, T

Anagh Lal Monday, April 14, 2003 27

Complexity

• Time and space complexity:– O(r.k(w*(d)+1))

Anagh Lal Monday, April 14, 2003 28

Discussion

• Questions?

• Comments?

top related