930 likes | 1.2k Views
A Simple Linear Time Algorithm for the Domatic Partition Problem on Strongly Chordal Graphs. Shen-Lung Peng and Maw-Shang Chang. Speaker: Chuang-Chieh Lin ( 林莊傑 ) Computation Theory Laboratory Advisor: Professor Maw-Shang Chang. Information Processing Letters , 43 (1992), pp. 297-300.
E N D
A Simple Linear Time Algorithm for the Domatic Partition Problem on Strongly Chordal Graphs Shen-Lung Peng and Maw-Shang Chang Speaker: Chuang-Chieh Lin (林莊傑) Computation Theory Laboratory Advisor: Professor Maw-Shang Chang Information Processing Letters, 43 (1992), pp. 297-300.
Outline • Introduction • Strongly Chordal Graphs • Algorithm • Correctness • Complexity • Conclusions • References
Outline • Introduction • Strongly Chordal Graphs • Algorithm • Correctness • Complexity • Conclusions • References
v7 v7 v1 v1 v5 v5 v4 v4 v8 v8 Dominating set • A graph of vertices D is a dominating set of a graph G = (V, E) if every vertex in V \ D is adjacent to a vertex in D. D = {v1, v4, v5, v7, v8} v2 v6 v3
v7 v7 v2 v6 v1 v1 v5 v5 v3 v4 v4 v8 v8 Dominating set • Another dominating set D = {v2, v3, v6} D = {v3, v6} v2 v2 v6 v3 Q: Is there another smaller dominating set?
v7 v7 v1 v1 v2 v2 v6 v6 v5 v5 v3 v3 v4 v4 v8 v8 Dominating set • What is the dominating set of the following graph?
v7 v1 v2 v6 v3 v4 v5 v8 Domatic number • The domatic number of G, denoted by d(G), is the maximum number of pairwise disjoint dominating sets in G. v7 v1 v2 v6 v3 v4 v5 v8 {v1, v4, v5, v7, v8},{v2, v3, v6}
v7 v1 v2 v6 v7 v1 v2 v6 v3 v4 v5 v8 v3 v4 v5 v8 Domatic number • Another family of pairwise disjoint dominating sets in G: {v1, v4, v5, v7, v8},{v3, v6}
v7 v1 v2 v6 v3 v4 v5 v8 Domatic number • Another family of pairwise disjoint dominating sets in G: v7 v1 v2 v6 v3 v4 v5 v8 {v3, v5, v7, v8},{v1, v4 , v6} The domatic number of the graph is “2”. (Why?)
v7 v1 v2 v6 v7 v1 v2 v6 v3 v4 v5 v8 v3 v4 v5 v8 The domatic partition problem • The domatic partition problem is to partition V into d(G) disjoint dominating sets. {{v1, v4, v5, v7, v8}, {v2, v3, v6}}is called a domatic partition.
5 7 2 1 8 3 6 4 • Another example: { {1, 5}, {2, 6}, {3, 8}, {4, 7}} is a domatic partition.
Question: • Does any graph has a domatic partition?
The domatic number was defined and studied by E. J. Cockayne and S. T. Hedetniemi [CH77]. • They showed that d(G) ≤ + 1, where is the minimum degree of vertices in G. • G is domatically full if d(G) = + 1.
Some special graph classes are domatically full, such as : • Trees, [CH77] • Cliques, [CH77] • Maximum outerplanar graphs, [CH77] • Strongly chordal graphs, [F84] • ……
1 3 2 4 5 Chord • An edge is called a chord of a cycle if it connects two vertices of the cycle but is not itself an edge within the cycle. G
1 3 4 5 Chord • The subgraph of G induced by {1,2,3} has a cycle. 2 Any chord exists?
1 3 4 5 Chord • The subgraph of G induced by {1,2,3,4} has cycles. 2 Any chord exists? [2, 4], [1, 3]
1 3 2 4 5 Chord • The subgraph of G induced by {1,2,4,5} has cycles. Any chord exists? [1, 4]
1 3 2 4 5 Hole • A chordless cycle is sometimes also called a graph hole.
Chordal graphs • A chordal graph is a simple graph possessing no holes (chordless cycles). • That is, A graph is chordal if and only if every cycle of length greater than three has a chord.
1 1 2 2 3 6 7 7 6 3 1 4 4 2 5 5 4 5 A chordal graph: A non-chordal graph: A hole !
Outline • Introduction • Strongly Chordal Graphs • Algorithm • Correctness • Complexity • Conclusions • References
Relax! • 某天上李家同教授的科技英文課,他問:「我問你們,你們知道米開朗基羅是誰嗎?」 • 某同學回答:「忍者龜!」 • 李教授正在感嘆學生人文素養不夠,正要開罵時,我補了一句: • 「另外還有三隻忍者龜,叫多納太羅、拉斐爾和達文西。」 • 從此我變成大學生人文素養不夠的範例。
2 3 4 5 6 1 Odd chords • Let (v1, v2, …, vk) be an even length cycle. Then an edge e = [vi, vj] is an odd chord of the even length cycle if e is a chord and i – j is odd. Any chord else? (1, 2, 3, 4, 5, 6) is an even length cycle.
2 3 4 5 6 1 Can you find an odd chord in the following graph? • Is it a chordal graph?
Strongly chordal graphs • A graph is strongly chordal if it is chordal and every even length cycle of length six or more has an odd chord. • Other useful properties that characterize chordal and strongly chordal graphs are introduced in the following. Why six?
v w x y v w x y Simplicial vertex • N[v] = Adj(v){v} is called the closed neighborhood of v. • A vertex v is called simplicial if the subgraph induced by N[v] is a clique. N[v] = {v, w, x, y} v is simplicial
1 2 3 6 7 4 5 Where are the simplicial vertices in the graph? {7, 6} Is vertex “1” a simplicial vertex?
Perfect elimination ordering • Rose [R70] showed that a graph G is chordal if and only if it is possible to order the vertices (v1, v2,…, vn) in such a way that, for each i{1, 2,…, n}, vi is a simplicial vertex of Gi = G({vi, vi+1,…, vn}), where Gi is a subgraph induced by the vertex set {vi, vi+1,…, vn}. • Such an ordering is called a perfect elimination ordering.
1 2 6 7 3 4 5 4 → 5 3 → 2 → 1 → 6 → 7 → (6, 7, 2, 1, 3, 4, 5) is called a perfect elimination ordering of the given graph.
Strong elimination ordering • Let Ni[v] denote the closed neighborhood of v in Gi. • The ordering of vertices (v1, v2,…, vn) is called a strong elimination ordering if it is a perfect elimination ordering and, for each i < j < k, if vj and vk belong to Ni[vi] in Gi then Ni[vj] Ni[vk]. • For example,
7 3 7 5 5 1 3 2 8 8 6 2 6 9 9 4 4 4 7 3 3 2 6 5 6 5
Strong elimination ordering (contd.) • In other words, for each vertex vi we not only require that vi be simplicial in Gi but in addition insist that the ordering of the vertices in Ni[vi] be consistent with the ordering of this nested family (smallest to largest).
Why are we concerned for the strong elimination ordering? • Farber [F83] showed that a graph is strongly chordal if and only if it admits a strong elimination ordering. • To date (1992), the best-known time to recognize strongly chordal graphs is O(mlogn). This algorithm additionally determines a strong elimination ordering. [PT87]
Outline • Introduction • Strongly Chordal Graphs • Algorithm • Correctness • Complexity • Conclusions • References
Relax! 如果你只剩下3天壽命...... 某日,一位教授問學生:「如果你只剩下三天的壽命,你要怎麼利用?」 學生競相回答: AA:「我要趁這幾天好好陪陪家人。」 BB:「我要和我女朋友大玩特玩。」 CC:「我要寫好遺囑。」 這時教授看見一個同學沈默不語,便問他:「DD你呢?你要怎麼利用這三天?」 DD:「教授,我想聽你的課。」 全班同學開始罵他狗腿,為了分數不擇手段等等,而教授聽了大喜,心想現在居然還有如此尊師重道的同學,不禁再問他:「為什麼呢?」 他突然正氣凜然的站起來:「因為聽你的課讓我有度日如年的感覺...」 一學期後,那同學被當了。
Preliminary of the algorithm • A greedy approach is used to design this algorithm. • First, we assume that a strong elimination ordering has been constructed for the strongly chordal graph G = (V, E). • It has the property that the closed neighborhoods of the members of Ni[vi] form a nested family of sets.
Preliminary of the algorithm (contd.) • The algorithm maintains +1 disjoint sets. • Initially, these sets are empty. • The algorithm visits vertices in the reverse ordering of the strong elimination ordering. A vertex is included in a set when it is visited.
Preliminary of the algorithm (contd.) • We say that a vertex v is dominated by set S if there exists a vertex uS such that uN[v]. • A vertex v is completely dominated if v is dominated by +1 dominating sets. • Now let us see the algorithm.
Algorithm DP • 1. Initially, Si = for 1≤ i ≤ +1. • 2. FORi = n down to 1 DO • 3. Find the largest k such that vk N[vi] and vk is not completely dominated; • 4. Let Sj be a set that does not dominate vk; • 5. Include vi in Sj, i.e., Sj = {vi} Sj; • 6. If no such set exists, then include vi to an arbitrary set. • 7. ENDFOR
1 1 7 3 5 5 3 7 9 6 2 8 8 9 6 2 4 4 N1[2] = {2, 3, 4, 5, 6, 7} N1[5] = {2, 3, 5, 6} N1[6] = {2, 3, 5, 6, 7} A strong elimination ordering: (preprocessing) 1 → 5 → 6 → 2 → 7 → 4 → 3 → 9 → 8
1 5 3 7 2 9 6 4 8 Algorithm DP: = 2 1 ← 5 ← 6 ← 2 ← 7 ← 4 ← 3 ← 9 ← 8 S1 = S2 = S3 =
1 5 3 7 2 9 6 4 8 Algorithm DP: 1 ← 5 ← 6 ← 2 ← 7 ← 4 ← 3 ← 9 ← 8 S1 = {8} S2 = S3 =
1 5 3 7 2 9 6 4 8 Algorithm DP: 1 ← 5 ← 6 ← 2 ← 7 ← 4 ← 3 ← 9 ← 8 S1 = {8} S2 = {9} S3 =
1 5 3 7 2 9 6 4 8 Algorithm DP: 1 ← 5 ← 6 ← 2 ← 7 ← 4 ← 3 ← 9 ← 8 S1 = {8} S2 = {9} S3 = {3}
1 5 3 7 2 9 6 4 8 Algorithm DP: 1 ← 5 ← 6 ← 2 ← 7 ← 4 ← 3 ← 9 ← 8 S1 = {8} {4, 8} S2 = {9} S3 = {3}
1 5 3 7 2 9 6 4 8 Algorithm DP: 1 ← 5 ← 6 ← 2 ← 7 ← 4 ← 3 ← 9 ← 8 S1 = {4, 8} S2 = {9} {7, 9} S3 = {3}
1 5 3 7 2 9 6 4 8 Algorithm DP: 1 ← 5 ← 6 ← 2 ← 7 ← 4 ← 3 ← 9 ← 8 {2, 4, 8} S1 = {4, 8} S2 = {7, 9} S3 = {3}
1 5 3 7 2 9 6 4 8 Algorithm DP: 1 ← 5 ← 6 ← 2 ← 7 ← 4 ← 3 ← 9 ← 8 S1 = {2, 4, 8} S2 = {7, 9} {6, 7, 9} S3 = {3}
1 5 3 7 2 9 6 4 8 Algorithm DP: 1 ←5← 6 ← 2 ← 7 ← 4 ← 3 ← 9 ← 8 S1 = {2, 4, 8} S2 = {6, 7, 9} S3 = {3} {3, 5}