on the decomposition of posets

45
On the Decomposition of Posets Prof. Dr. Yangjun Chen Dept. Applied Computer Science, University of Winnipeg 515 Portage Ave. Winnipeg, Manitoba, Canada R3B 2E9

Upload: karina-webster

Post on 31-Dec-2015

45 views

Category:

Documents


0 download

DESCRIPTION

On the Decomposition of Posets. Prof. Dr. Yangjun Chen Dept. Applied Computer Science, University of Winnipeg 515 Portage Ave. Winnipeg, Manitoba, Canada R3B 2E9. Outline. Poset and poset decomposition Applications of poset decomposition - Evaluation of reachability queries - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: On the Decomposition of Posets

On the Decomposition of Posets

Prof. Dr. Yangjun Chen

Dept. Applied Computer Science,

University of Winnipeg

515 Portage Ave.

Winnipeg, Manitoba, Canada R3B 2E9

Page 2: On the Decomposition of Posets

Outline

• Poset and poset decomposition• Applications of poset decomposition

- Evaluation of reachability queries

• Algorithm for poset decomposition- Graph stratification and bipartite graphs- Virtual nodes and virtual edges- Resolution of virtual nodes

• Conclusion

Page 3: On the Decomposition of Posets

Poset and poset decomposition

A partially ordered set (poset for short) S isa pair (S, ) of a set S and a binary relation such that for each a, b, and c in S:

1.a a is true ( is reflexive),

2.a b and b c imply a c ( is transitive),

3.a b and b a imply a = b ( is antisymmetric).

Page 4: On the Decomposition of Posets

Example

Poset and poset decomposition

S = (S, )

S = {a, b, c, d, e, f, g, h, i, j, k, l }

d c, d e

g e

l h, l k

b c, b f, b i,

e c, e f, e j,

h a, h k

Any identity such asa = a and transitiverelationship are not shown.

Page 5: On the Decomposition of Posets

d c, d eg e

l h, l k

b c, b f, b i,

e c, e f, e j,

h a, h k

If we have a poset S = (S, ), a chain in S is a non-empty subset C = {a1, a2, ..., ak} S such that a1 a2 ... ak.

Poset and poset decomposition

Example

b e h

d

g

l

c f i j a k

Page 6: On the Decomposition of Posets

Example

• Two elements of S are called comparable if they can be put together in some chain in S.

• Elements which are not comparable are called incomparable.

• A non-empty set, in which every pair of elements is not comparable, is called an anti chain.

Poset and poset decomposition

A anti-chain:

{a, c, f, i, j, k}

b e h

d

g

l

c f i j a k

Page 7: On the Decomposition of Posets

Theorem (Dilworth, 1950) The minimal number of decomposed chains of a poset equals the size of its maximum anti chain.

Poset and poset decomposition

Example

R.P. Dilworth, A decomposition theorem for partially ordered sets, Ann. Math.51 (1950), pp. 161-170.

b e h

d

g

l

c f i j a k

Page 8: On the Decomposition of Posets

Poset and poset decomposition

“Less clear is how to decompose S into asfew chains as possible.”

A.S. Asratian, T. Denley, and R. Haggkvist,Bipartite Graphs and their Applications,Cambridge University, 1998. (Page 190)

How to decompose S into as few chains as possible?

Page 9: On the Decomposition of Posets

Applications of poset decompo-tion

Efficient method to evaluate graph reachability queries

- Given a directed acyclic graph (DAG) G, check whether a node v is reachable from another node u through a path in G.- If we can decompose a DAG into a minimum

set of chains, the reachability queries can be efficiently evaluated.

- A DAG can be considered as a poset.

Page 10: On the Decomposition of Posets

A simple method- store a transitive closure as a matrix

cb

a

d e

G:

cb

a

d e

G*:

M =

abcde

a b c d e00000

10000

10100

00100

10000

M* =

abcde

a b c d e00000

10000

10100

10100

10000

O(n2) spacequery time: O(1)

Applications of poset decompo-tion

Page 11: On the Decomposition of Posets

Reachability based on poset decomposition

Applications of poset decompo-tion

cb

a

d e

G:

eb

a (1, 1)

(1, 2)

(1, 1)(2, 1)(3, 1)

(1, 2) d

c (2, 1)

(2, 2)

(2, 1)(3, 1)

(2, 2) (3, 1) (3, 1)

• Decompose G into a minimum set of chains.• Each node in G will be assigned an index (i, j) to show that it is

the jth node on the ith chain.• In addition, each node v on the ith chain will be associated with

an index sequence of length : (1, j1) … (i, ji) … (, j) suchthat any node with index (x, y) is a descendant of v if x = iand y j or x i but y jx, where is the minimal number ofthe node-disjoint chains, referred to the as width of G.

Page 12: On the Decomposition of Posets

Applications of poset decompo-tion

• We can also store all the index sequences as a matrix M, inwhich each entry M(v, j) is the jth element in the indexsequence associated with node v.

• So, a node u with index(u) = (i, j) is a descendant of anothernode v iff M(v, i) j. Thus, using M, a reachability checkingcan be done in O(1) time.

abcde

1 2 3

12___

1_12_

1_1_1

The size of the matrix is O(n).The query time is O(1).

Page 13: On the Decomposition of Posets

Algorithm for poset decomposition

Graph stratification

Virtual nodes

Resolution of virtual nodes

Page 14: On the Decomposition of Posets

Graph stratification

Algorithm for poset decomposition

• Let G(V, E) be a DAG. We decompose V into subsets V0, V1

..., Vh such that V = V0 V1 ... Vh and each node in Vi has

its children appearing only in Vi-1, ..., V0 (i = 1, ..., h), where

h is the height of G, i.e., the length of the longest path in G.

• For each node v in Vi, we say, its level is i, denoted l(v) = i.

We also use Cj(v) (j < i) to represent a set of links with each

pointing to one of v’s children, which appears in Vj.

• For each v in Vi, there exist i1, ..., ik (il < i, l = 1, ..., k) such

that the set of its children equals Ci1 ... Cik . Let Vi = {v1,

v2, ..., vl}. We use (j < i) Cji to represent Cj(v1) ... Cj(vl).

Page 15: On the Decomposition of Posets

C0(b) = {c, f, i} C0(e) = {c, f, j} C0(h) = {a, k}

C1(d) = {e}

C0(d) = {c}

C1(l) = {h}

C0(l) = {k}

C1(g) = {e}

c f i a kj

b e h

d g l

V0:

V1:

V2:

Algorithm for poset decomposition

Graph stratification

b e h

d g l

c f i j a k

Page 16: On the Decomposition of Posets

Algorithm for poset decomposition

Graph stratification

Algorithm graph-stratification(G)begin1. V0 := all the nodes with no outgoing arcs;2. for i = 0 to h - 1 do3. { W := all the nodes that have at least one child in Vi;4. for each node v in W do5. { let v1, ..., vk be v’s children appearing in Vi;6. Ci(v) := {v1, ..., vk};7. if dout(v) > k then remove v from W;8. G := G\{v v1, ..., v vk};9. dout(v) := dout(v) - k; }10. Vi+1 := W;11. }end

Page 17: On the Decomposition of Posets

Algorithm for poset decomposition

Bipartite graphs

Definition 1 (bipartite graph) An undirected graphG(V, E) is bipartite if the node set V can bepartitioned into two sets T and S in such a waythat no two nodes from the same set are adjacent.We also denote such a graph as G(T, S; E).

b e h

c f i j a k

b e h

d g l

c f i j a k

Page 18: On the Decomposition of Posets

Algorithm for poset decomposition

Definition 2 (matching [2]) Let G(V, E) be abipartite graph. A subset of edges E’ E is called amatching if no two edges have a common end node.A matching with the largest possible number ofedges is called a maximal matching, denoted as MG.

M1

:e h

c f i j a k

bb e h

c f i j a k

covered node free node

Page 19: On the Decomposition of Posets

• A graph stratification can be considered as series ofbipartite graphs.

• We can find a maximum matching for each bipartitegraph, and combine all the maximum matchings toform a set of chains.

Algorithm for poset decomposition

Page 20: On the Decomposition of Posets

Algorithm for poset decomposition

b e h

c f i j a kV0:

V1:

b e h

d g l

V1:

V2:

b e h

d g lM2:

b e h

d g l

c f i j a k

Combine M1 and M2 to form a set of7 chains:

M1: e h

c f i j a k

b

It is not minimum.

Page 21: On the Decomposition of Posets

Virtual nodes

Algorithm for poset decomposition

V0’ = V0.Vi’ = Vi {virtual nodes added to Vi} for 1 i h - 1.}Ci = {all the new arcs from the nodes in Vi to the virtualnodes added to Vi-1’} for 1 i h - 1.}G(Vi, Vi-1’; Ci) - the bipartite graph containing Vi and Vi-1’.

Definition 3 (virtual nodes) Let G(V, E) be a DAG, dividedinto V0, ..., Vh (i.e., V = V0 ... Vh). Let Mi be a maximummatching of the bipartite graph G(Vi, Vi-1’; Ci). For each freenode v in Vi-1’ with respect to Mi, a virtual node v’ created forv is a new node added to Vi (1 i h - 1).

Page 22: On the Decomposition of Posets

Virtual nodes

Algorithm for poset decomposition

M1

:e h

c f i j a k

bb e h

c f i j a k

i’ j’ k’

Page 23: On the Decomposition of Posets

Virtual arcs

Algorithm for poset decomposition

• The goal of virtual nodes is to establish theconnection between the free nodes (with respectto a certain maximum matching) and the nodesthat may be several levels apart.

• For this purpose, virtual arcs will be used.

Page 24: On the Decomposition of Posets

inherited arcs - If there is u Vj (j > i) such thatu v E, add u v’, which is not labeled. However,if u v itself is a virtual arc, u v’ will inherit thelabel of u v. In both cases, u v’ is referred to asan inherited arc.

Algorithm for poset decomposition

b e i’ j’ k’h

d g l

V1’:

V2:

l k’ is an inherited arc since in the original graph we have anarc l k.

b e h

d g l

c f i j a k

Page 25: On the Decomposition of Posets

Algorithm for poset decomposition

transitive arcs - If there exist u w E and w v Ci with u Vj (j > i) and w Vi, add u v’ if it has not yet beencreated as an inherited arc. Such an arc is labeled with andreferred to as a transitive arc (-arc for short).

d j’ and g j’ are two -arcs since j is reachable respectively from d and g through e, a node in V1.

b e i’ j’ k’h

d g l

V1’:

V2:

b e h

d g l

c f i j a k

Page 26: On the Decomposition of Posets

alternating arcs - If there exist w Vi-1’ such that v is connectedto w through an alternating path, and u Vj (j > i) such thatone of the two conditions holds:- u w E, or- there is a node w’ Vi such that u w’ E and w’ w Ci,

add u v’ if it has not yet been created as an inherited or atransitive arc. We label such an arc with and call it analternating arc (-arc for short).

Algorithm for poset decomposition

an alternating path: f - e - c - b - i and f is reachable from d through a node e in V1.

b e i’ j’ k’h

d g l

V1’:

V2: d i’ and g i’ are two-arcs. We join d and i’since there is a node f thatis connected to i through

Page 27: On the Decomposition of Posets

an alternating path: f - e - c - b - i and f is reachable from d through a node e in V1.

b e i’ j’ k’h

d g l

V1’:

V2: d i’ and g i’ are two-arcs. We join d and i’since there is a node f thatis connected to i through

Algorithm for poset decomposition

b e h

d g l

c f i j a k

b e h

d g l

c f i j a k

Page 28: On the Decomposition of Posets

Combine M1 and M2 to form a set of 6 chains:

Algorithm for poset decomposition

b e h

d l g

c f a i j k

i’ j’ k’

b e i’ j’h

d g l

V1’:

V2:

b e i’ j’ k’k’

d l gM2:

b e h

c f i j a kV0:

V1: M1: e h

c f i j a k

b

h

Page 29: On the Decomposition of Posets

By solving the virtual nodes, we get a set of 6 chains, which do not contain virtual nodes.

Algorithm for poset decomposition

b e h

d

g

l

c f i j a k

b e h

d l g

c f a i j k

i’ j’ k’

Page 30: On the Decomposition of Posets

Resolution of virtual nodes

Algorithm for poset decomposition

• For resolving virtual nodes, we associate each -arcand -arc with a data structure to facilitate thevirtual node resolution.• The data structure for a -arc e = u v’, denoted

by (e), is a pair of the form <i, {w1, ..., wk}>,where- i is the level number, to which v’ is added,- each wj is connected to v (= s(v’)) through an

alternating path, and- for each wj we have u wj E, or there is a node

w’ Vi such that u w’ E and w’ w Ci.

Page 31: On the Decomposition of Posets

Algorithm for poset decomposition

Structure of (e):The data structure for the -arc d i’ should be

(d i’) = <1, {c, f}>for the following reason:- i’ is a virtual node added to V1;- c is connected to i through an alternating path c - b - i, and f

is also connected to i through an alternating path:f - e - c - b - i; and

- d c E, and d e E, e f E.

b e i’ j’ k’h

d g l

V1’:

V2:

b e h

d g l

c f i j a k(g i’) is also <1, {c, f}> for the same reason.

Page 32: On the Decomposition of Posets

Algorithm for poset decomposition

Structure of α(e)

Let v’ be a virtual node created for v, added to Vi.Let e = u v’ be an -arc. Then, there must existw1, ..., wk (k 1) in Vi such that for each wj

(1 j k) u wj E and wj v Ci with u Vl

(for some l > i).

v’w2

u

Vi:

Vl:

w1

wk

v

Page 33: On the Decomposition of Posets

Algorithm for poset decomposition

For α(e), we distinguish among three cases:

i) There exists wj1, ..., wjp (1 j1 jp k) such that for each wjq (1 q p) wjq v is an arc in the original graph or anunlabeled virtual arc.

ii) Each wj v is neither an arc in the original graph nor anunlabeled virtual arc. However, There exists wj1, ..., wja

(1 j1 ja k) such that for each (1 b a), wjb v isan -arc.

iii) Each wj v is a -arc.

In case (i), the data structure is set to be (e) = <I, >.In case (ii) and (iii), the data structure is set to be (e) = <II,{wj1, ..., wja}> and (e) = <III, {w1, ..., wk}>, respectively.

Page 34: On the Decomposition of Posets

Example

Algorithm for poset decomposition

b e i’ j’ k’h

d g l

V1’:

V2:

b e h

d g l

c f i j a k

(d j’) = <I, >(g j’) = <I, >

Note that e j is an edgein the original graph.

If e j were an -edge, then (d j’)and (g j’) would be <II, e>.If e j were an -edge, then (d j’)and (g j’) would be <III, e>.

Page 35: On the Decomposition of Posets

Consider G(Vh, Vh-1’; Ch). Relative to the found maximummatching Mh of it, all the virtual nodes in Vh-1’ can be classifiedinto four groups:

• uncovered (free nodes),• unlabeled-covered,• transitive-covered, and• alternating-covered.

Algorithm for poset decomposition

A virtual node is unlabeled-covered, transitive-covered, oralternating-covered if it is covered by an edge in Mh, whichcorresponds to an unlabeled, transitive, or alternating arc,respectively.

Page 36: On the Decomposition of Posets

Algorithm for poset decomposition

• Each uncovered virtual node can be simplyremoved.

• But for an unlabeled-covered virtual node v, we willconnect its parent u and its child s(v) (along thecorresponding chain) and then remove v. The newarc u s(v) is handled as unlabeled.

u

v

s(u)

virtual node

unlabeled u

s(u)

unlabeled

Page 37: On the Decomposition of Posets

Algorithm for poset decomposition

• Resolution of transitive-covered virtual nodes

For u s(v), we need to do two tasks:-Determine whether it is an -arc, a -arc, or

unlabeled.- If it is labeled, figure out the data structure for it.To this end, we will do the following operations:

u

v

s(u)

virtual node

u

s(u)

or ?

Page 38: On the Decomposition of Posets

1. Let a(u v) be <, W>, where {I, II, III} and W isa subset of Vh-1.

2. Remove v.3. If = I, create an unlabeled arc u s(v). 4. If = II, create an -arc u s(v). Let W = {w1, ..., wk}.

Let (wj s(v)) = <j, Wj> (j = 1, ..., k). If there exists anj such that j = I, set (u s(v)) = <I, >.Otherwise, X := j =IIWj, Y := j =IIIWj.i) If X , set (u s(v)) to be <II, X>.ii) If X = , set (u s(v)) to be <III, Y>.

5. If = III, find W’ W such that for each x W’ (x s(v))is of the form <h - 2, Wx>, where Wx is a subset of nodesin Vh-3’.i) If W’ , create a -arc u s(v) and set

(u s(v)) = <h - 2, >.ii) If W’ = , create an -arc u s(v) and set

(u s(v)) = (u v).

Algorithm for poset decomposition

Page 39: On the Decomposition of Posets

Algorithm for poset decomposition

• Resolution of alternating-covered virtual nodes

Definition 4 (alternating graph) Let Mi be a maximum matchingof G(Vi, Vi-1’; Ci). The alternating graph with respect to Mi is adirected graph with the following sets of nodes and arcs:

V(Gi) =Vi Vi-1’, and

E(Gi) ={u v | u Vi-1’, v Vi, and (u, v) Mi}

{v u | u Vi-1’, v Vi, and (u, v) Ci\Mi}.

b e h

c f i j a kV0:

V1:

f e c b i

j a h k

Page 40: On the Decomposition of Posets

In order to resolve all the alternating-covered virtual nodes in Vi’, we combine Gi and Gi+1 by connecting each of these nodes in Vi’ in Gi+1 to some nodes in Vi-1’ in Gi as follows:

Let v1, ..., vk be all those alternating-covered virtual nodes in Vi’ in with b(uj vj) = <i, Wj>, where uj is the parent of vj along the corresponding chain and Wj is a set of nodes in Vi-1’ in Gi.

For each vj, connect vj to every node in Wj (j = 1, ..., k).

We denote such a combined graph by Gi+1 Gi.

Algorithm for poset decomposition

Page 41: On the Decomposition of Posets

Algorithm for poset decomposition

b e i’ j’ k’h

d g l

V1’:

V2:i’

j’k’

ge

h

d

l

f e c b i

j a h k

b

f e c b i

i’

f ej

i’

c b i

i’

b e h

c f i j a kV0:

V1:

Page 42: On the Decomposition of Posets

• Let v1 v2 ... vk be a found path.Transfer the arcs on the path.

• If vk is a node in Gi+1, we simply remove thethe corresponding virtual node v1.

• If vk is a node in Gi, connect the parent ofv1 along the corresponding chain to v2.Remove v1.

Algorithm for poset decomposition

Page 43: On the Decomposition of Posets

Algorithm for poset decomposition

Example

b e h

d

g

l

c f i j a k

b e h

d l g

c f a i j k

i’ j’ k’

f e c b i

i’

b e h

d g l

c f i j a k

b e h

d g l

c f i j a k

Page 44: On the Decomposition of Posets

Conclusion

• Effiecent Algorithm for the poset decomposition

- Time complexity: O(n2), where is the size of a maximum anti-chain.

- Space complexity: O(n2).

- Graph stratification and Virtual nodes.

- Hopcropt-Karp’s algorithm for finding a maximum matching in a bipartite graph.

• The algorithm can be easily modified to a 0-1 network flow algorithm by defining a chain to be a path.

It will requires O(n2) time and O(n2) space, better than the state-of-the-art 0-1 flow algorithms.

Page 45: On the Decomposition of Posets

Thank you.