Stick Graphs with Length Constraints
Steven Chaplick, Philipp Kindermann, Andre L¨
- ffler,
Stick Graphs with Length Constraints Steven Chaplick, Philipp - - PowerPoint PPT Presentation
Stick Graphs with Length Constraints Steven Chaplick, Philipp Kindermann, Andre L offler, Florian Thiele, Alexander Wolff, Alexander Zaft, and Johannes Zink Introduction 2 Given a collection S of geometric objects Introduction 2
2
– S as its vertex set – an edge for each two elements of S that intersect or touch each other.
2
⇒ G: segment graph
– S as its vertex set – an edge for each two elements of S that intersect or touch each other.
2
⇒ G: segment graph
– S as its vertex set – an edge for each two elements of S that intersect or touch each other.
segment graphs
2
⇒ G: segment graph
– S as its vertex set – an edge for each two elements of S that intersect or touch each other.
⇒ G: grid intersection graph
segment graphs
2
⇒ G: segment graph
– S as its vertex set – an edge for each two elements of S that intersect or touch each other.
⇒ G: grid intersection graph
segment graphs grid intersec. graphs
2
⇒ G: segment graph
– S as its vertex set – an edge for each two elements of S that intersect or touch each other.
⇒ G: grid intersection graph
⇒ G: stick graph
segment graphs grid intersec. graphs
2
⇒ G: segment graph
– S as its vertex set – an edge for each two elements of S that intersect or touch each other.
⇒ G: grid intersection graph
⇒ G: stick graph
segment graphs stick graphs grid intersec. graphs
2
⇒ G: segment graph
two parallel lines ⇒ G: bipartite permutation graph
– S as its vertex set – an edge for each two elements of S that intersect or touch each other.
⇒ G: grid intersection graph
⇒ G: stick graph
segment graphs stick graphs grid intersec. graphs
2
⇒ G: segment graph
two parallel lines ⇒ G: bipartite permutation graph
– S as its vertex set – an edge for each two elements of S that intersect or touch each other.
⇒ G: grid intersection graph
⇒ G: stick graph
segment graphs bip. permu. graphs stick graphs grid intersec. graphs
2
Recognition problem: Decide whether a given graph is an intersection graph.
3
segment graphs bip. permu. graphs stick graphs grid intersec. graphs Recognition problem: Decide whether a given graph is an intersection graph. How hard for each class?
3
segment graphs bip. permu. graphs stick graphs grid intersec. graphs Recognition problem: Decide whether a given graph is an intersection graph. How hard for each class? segment graphs: ∃R-complete [Kratochv´ ıl, Matouˇ sek ’94; Matouˇ sek ’14]
3
segment graphs bip. permu. graphs stick graphs grid intersec. graphs Recognition problem: Decide whether a given graph is an intersection graph. How hard for each class? segment graphs: ∃R-complete [Kratochv´ ıl, Matouˇ sek ’94; Matouˇ sek ’14] grid intersection graphs: NP-complete [Kratochv´ ıl ’94]
3
segment graphs bip. permu. graphs stick graphs grid intersec. graphs Recognition problem: Decide whether a given graph is an intersection graph. How hard for each class? segment graphs: ∃R-complete [Kratochv´ ıl, Matouˇ sek ’94; Matouˇ sek ’14] grid intersection graphs: NP-complete [Kratochv´ ıl ’94] (bipart.) permutation graphs: linear time [Spinrad et al. ’87; Kratsch et al. ’06]
3
segment graphs bip. permu. graphs stick graphs grid intersec. graphs Recognition problem: Decide whether a given graph is an intersection graph. How hard for each class? segment graphs: ∃R-complete [Kratochv´ ıl, Matouˇ sek ’94; Matouˇ sek ’14] grid intersection graphs: NP-complete [Kratochv´ ıl ’94] (bipart.) permutation graphs: linear time [Spinrad et al. ’87; Kratsch et al. ’06] stick graphs: ???
3
segment graphs bip. permu. graphs stick graphs grid intersec. graphs Recognition problem: Decide whether a given graph is an intersection graph. How hard for each class? segment graphs: ∃R-complete [Kratochv´ ıl, Matouˇ sek ’94; Matouˇ sek ’14] grid intersection graphs: NP-complete [Kratochv´ ıl ’94] (bipart.) permutation graphs: linear time [Spinrad et al. ’87; Kratsch et al. ’06] stick graphs: ???
3
4
Given a bipartite Graph G = (A ˙ ∪B, E), does G admit a stick representation . . .
4
Given a bipartite Graph G = (A ˙ ∪B, E), does G admit a stick representation . . .
4
Given a bipartite Graph G = (A ˙ ∪B, E), does G admit a stick representation . . .
4
Given a bipartite Graph G = (A ˙ ∪B, E), does G admit a stick representation . . .
. . . if a permutation of the vertices in A is given?
4
Given a bipartite Graph G = (A ˙ ∪B, E), does G admit a stick representation . . .
. . . if a permutation of the vertices in A is given?
4
Given a bipartite Graph G = (A ˙ ∪B, E), does G admit a stick representation . . .
. . . if a permutation of the vertices in A is given?
. . . if a permutation of the vertices in A and a permutation of the vertices in B is given?
4
Given a bipartite Graph G = (A ˙ ∪B, E), does G admit a stick representation . . .
. . . if a permutation of the vertices in A is given?
. . . if a permutation of the vertices in A and a permutation of the vertices in B is given?
4
Given a bipartite Graph G = (A ˙ ∪B, E), does G admit a stick representation . . .
. . . if a permutation of the vertices in A is given?
. . . if a permutation of the vertices in A and a permutation of the vertices in B is given?
⋆ :
. . . if a stick length for each vertex (and possibly permutations of A, or A and B) is given?
4
Given a bipartite Graph G = (A ˙ ∪B, E), does G admit a stick representation . . .
. . . if a permutation of the vertices in A is given?
. . . if a permutation of the vertices in A and a permutation of the vertices in B is given?
⋆ :
. . . if a stick length for each vertex (and possibly permutations of A, or A and B) is given?
4
Given a bipartite Graph G = (A ˙ ∪B, E), does G admit a stick representation . . .
. . . if a permutation of the vertices in A is given?
. . . if a permutation of the vertices in A and a permutation of the vertices in B is given?
⋆ :
. . . if a stick length for each vertex (and possibly permutations of A, or A and B) is given? First investigated by De Luca et al. [GD’18]
4
Given a bipartite Graph G = (A ˙ ∪B, E), does G admit a stick representation . . .
. . . if a permutation of the vertices in A is given?
. . . if a permutation of the vertices in A and a permutation of the vertices in B is given?
⋆ :
. . . if a stick length for each vertex (and possibly permutations of A, or A and B) is given? First investigated by De Luca et al. [GD’18]
4
⋆
for a bipartite graph G = (A ∪ B, E)
5
⋆
1an O(|A|3|B|3) time algorithm proposed by De Luca et al. turned out to be wrong
[De Luca et al. GD’18] for a bipartite graph G = (A ∪ B, E)
5
⋆
1an O(|A|3|B|3) time algorithm proposed by De Luca et al. turned out to be wrong
[De Luca et al. GD’18]
for a bipartite graph G = (A ∪ B, E)
5
⋆
1an O(|A|3|B|3) time algorithm proposed by De Luca et al. turned out to be wrong
[De Luca et al. GD’18]
for a bipartite graph G = (A ∪ B, E)
5
⋆
1an O(|A|3|B|3) time algorithm proposed by De Luca et al. turned out to be wrong
[De Luca et al. GD’18]
for a bipartite graph G = (A ∪ B, E)
5
⋆
1an O(|A|3|B|3) time algorithm proposed by De Luca et al. turned out to be wrong
[De Luca et al. GD’18]
for a bipartite graph G = (A ∪ B, E)
5
⋆
1an O(|A|3|B|3) time algorithm proposed by De Luca et al. turned out to be wrong
[De Luca et al. GD’18]
for a bipartite graph G = (A ∪ B, E)
5
⋆
1an O(|A|3|B|3) time algorithm proposed by De Luca et al. turned out to be wrong
[De Luca et al. GD’18]
in general:
for a bipartite graph G = (A ∪ B, E)
5
⋆
1an O(|A|3|B|3) time algorithm proposed by De Luca et al. turned out to be wrong
[De Luca et al. GD’18]
in general: w/o isolated vtc.:
for a bipartite graph G = (A ∪ B, E)
5
⋆
1an O(|A|3|B|3) time algorithm proposed by De Luca et al. turned out to be wrong
[De Luca et al. GD’18]
in general: w/o isolated vtc.:
for a bipartite graph G = (A ∪ B, E)
5
⋆
1an O(|A|3|B|3) time algorithm proposed by De Luca et al. turned out to be wrong
[De Luca et al. GD’18]
in general: w/o isolated vtc.:
for a bipartite graph G = (A ∪ B, E)
5
in general: w/o isolated vtc.:
⋆
6
enter event (i) and exit event (i ) for each ai ∈ A
7
enter event (i) and exit event (i ) for each ai ∈ A
}, G i := subgraph induced by a1, . . . , ai and their neighbors, Bp := vertices in B that intersect the sweep-line at event p
7
enter event (i) and exit event (i ) for each ai ∈ A
}, G i := subgraph induced by a1, . . . , ai and their neighbors, Bp := vertices in B that intersect the sweep-line at event p
7
enter event (i) and exit event (i ) for each ai ∈ A
}, G i := subgraph induced by a1, . . . , ai and their neighbors, Bp := vertices in B that intersect the sweep-line at event p
– contains two types of nodes: leaves and non-leaves
7
enter event (i) and exit event (i ) for each ai ∈ A
}, G i := subgraph induced by a1, . . . , ai and their neighbors, Bp := vertices in B that intersect the sweep-line at event p
– contains two types of nodes: leaves and non-leaves – each leaf corresponds to a vertex in Bp
7
enter event (i) and exit event (i ) for each ai ∈ A
}, G i := subgraph induced by a1, . . . , ai and their neighbors, Bp := vertices in B that intersect the sweep-line at event p
– contains two types of nodes: leaves and non-leaves – each leaf corresponds to a vertex in Bp – the order of leaves is free; the order of non-leaves is fixed
7
enter event (i) and exit event (i ) for each ai ∈ A
}, G i := subgraph induced by a1, . . . , ai and their neighbors, Bp := vertices in B that intersect the sweep-line at event p
– contains two types of nodes: leaves and non-leaves – each leaf corresponds to a vertex in Bp – the order of leaves is free; the order of non-leaves is fixed – encodes all realizable permutations of Bp
7
enter event (i) and exit event (i ) for each ai ∈ A
}, G i := subgraph induced by a1, . . . , ai and their neighbors, Bp := vertices in B that intersect the sweep-line at event p
– contains two types of nodes: leaves and non-leaves – each leaf corresponds to a vertex in Bp – the order of leaves is free; the order of non-leaves is fixed – encodes all realizable permutations of Bp
7
enter event (i) and exit event (i ) for each ai ∈ A
}, G i := subgraph induced by a1, . . . , ai and their neighbors, Bp := vertices in B that intersect the sweep-line at event p
– contains two types of nodes: leaves and non-leaves – each leaf corresponds to a vertex in Bp – the order of leaves is free; the order of non-leaves is fixed – encodes all realizable permutations of Bp
7
G:
a1 a2 a3
G 0 : i = 0 B0 = ∅ Event: Start T 0 :
b1 b3 b5 b2 b4 b6 fixed order free order
8
G:
a1 a2 a3
G 1 : i = 1 B1 = {b1, b2, b4} Event: 1 T 1 :
b1 b3 b5 b2 b4 b6 a1 b1 b2 b4 b1 b2 b4 b1 b2 b4 fixed order free order a1
8
G:
a1 a2 a3 b1 b3 b5 b2 b4 b6
G 1 : i = 1 B1 = {b1, b2, b4} Event: 1 T 1 :
a1 b1 b2 b4 b1 b2 b4 a1 b1 b2 b4 fixed order free order
8
a2 b5 b3
G:
a1 a2 a3 b1 b3 b5 b2 b4 b6
G 2 : i = 2 B2 = {b1, b2, b3,b4, b5} Event: 2 T 2 :
a1 b1 b2 b4 b1 b2 b3 b5 b4 b4 b1 b2 b3 b5 a1 fixed order free order a2
8
G:
a1 a2 a3 b1 b3 b5 b2 b4 b6
G 2 :
a1 b1 b2 b4 a2 b5 b3 b4 b2 b5 a1 a2
i = 2 B2 = {b1,b2, b3,b4, b5} Event: 2 T 2 :
b1 b2 b3 b5 b4 fixed order free order b1 b3
8
a3 b6
G:
a1 a2 a3 b1 b3 b5 b2 b4 b6
G 3 :
b4 b2 b5 a1 a2 b1 b3
i = 3 B3 = {b2, b4, b5, b6} Event: 3 T 3 :
a1 a2 b1 b3 b5 b2 b4 b2 b5 b4 b6 b6 fixed order free order a3
8
G:
a1 a2 a3 b1 b3 b5 b2 b4 b6
G 3 :
a1 a2 b1 b3 a1 a2 a3 b1 b3 b5 b2 b4 b6 b2 b5 b4 b6 a3
i = 3 B3 = {b2, b4, b5, b6} Event: 3 T 3 :
fixed order free order b4 b2 b5 b6
8
G:
a1 a2 a3 b1 b3 b5 b2 b4 b6 a1 a2 b1 b3 a3
i = 3 Event: End
fixed order free order b4 b2 b5 b6
8
G:
a1 a2 a3 b1 b3 b5 b2 b4 b6 a1 a2 b1 b3 a3
i = 3 Event: End
fixed order free order b4 b2 b5 b6
Runtime in O(|A| · |B|)
8
AB with isolated vertices
in general: w/o isolated vtc.:
⋆
9
AB
10
AB
false
10
AB
true
10
AB
. . . true a l l c l a u s e g a d g e t s
10
AB
. . . true a l l c l a u s e g a d g e t s
10
AB
false a l l c l a u s e g a d g e t s . . .
10
AB
false a l l c l a u s e g a d g e t s . . .
10
AB
false a l l c l a u s e g a d g e t s . . .
10
AB
false a l l c l a u s e g a d g e t s . . .
≈ 4 ≈ 1
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = false
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = true
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = true x2 = true
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = true x2 = true x3 = true
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = true x2 = true x3 = true empty
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = true x2 = true x3 = true empty
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = true x2 = true x3 = true empty
≈ 2
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = true x2 = true empty x3 = false
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = true x3 = true empty x2 = false
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = true empty x2 = false x3 = false
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = false x2 = true x3 = true empty
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = false x2 = true empty x3 = false
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = false x3 = true empty x2 = false
10
AB
false a l l c l a u s e g a d g e t s . . .
x1 = false empty x2 = false x3 = false
10
MONOTONE-3-SAT formula: (x1 ∨ x2 ∨ x3)∧ (x2 ∨ x3 ∨ x4)∧ (¬x1 ∨ ¬x2 ∨ ¬x4)
11
MONOTONE-3-SAT formula: (x1 ∨ x2 ∨ x3)∧ (x2 ∨ x3 ∨ x4)∧ (¬x1 ∨ ¬x2 ∨ ¬x4)
v a r i a b l e g a d g e t s
11
MONOTONE-3-SAT formula: (x1 ∨ x2 ∨ x3)∧ (x2 ∨ x3 ∨ x4)∧ (¬x1 ∨ ¬x2 ∨ ¬x4)
v a r i a b l e g a d g e t s
x4 x1 ¬x2 x3
11
MONOTONE-3-SAT formula: (x1 ∨ x2 ∨ x3)∧ (x2 ∨ x3 ∨ x4)∧ (¬x1 ∨ ¬x2 ∨ ¬x4)
c l a u s e g a d g e t s
v a r i a b l e g a d g e t s
x4 x1 ¬x2 x3
11
MONOTONE-3-SAT formula: (x1 ∨ x2 ∨ x3)∧ (x2 ∨ x3 ∨ x4)∧ (¬x1 ∨ ¬x2 ∨ ¬x4)
c l a u s e g a d g e t s
x
1 ∨
x
2 ∨
x
3
v a r i a b l e g a d g e t s
x4 x1 ¬x2 x3
11
MONOTONE-3-SAT formula: (x1 ∨ x2 ∨ x3)∧ (x2 ∨ x3 ∨ x4)∧ (¬x1 ∨ ¬x2 ∨ ¬x4)
x
2 ∨
x
3 ∨
x
4
c l a u s e g a d g e t s
x
1 ∨
x
2 ∨
x
3
v a r i a b l e g a d g e t s
x4 x1 ¬x2 x3
11
MONOTONE-3-SAT formula: (x1 ∨ x2 ∨ x3)∧ (x2 ∨ x3 ∨ x4)∧ (¬x1 ∨ ¬x2 ∨ ¬x4)
¬x1 ∨ ¬x2 ∨ ¬x4 x
2 ∨
x
3 ∨
x
4
c l a u s e g a d g e t s
x
1 ∨
x
2 ∨
x
3
v a r i a b l e g a d g e t s
x4 x1 ¬x2 x3
11
MONOTONE-3-SAT formula: (x1 ∨ x2 ∨ x3)∧ (x2 ∨ x3 ∨ x4)∧ (¬x1 ∨ ¬x2 ∨ ¬x4)
¬x1 ∨ ¬x2 ∨ ¬x4 x
2 ∨
x
3 ∨
x
4
c l a u s e g a d g e t s
x
1 ∨
x
2 ∨
x
3
v a r i a b l e g a d g e t s
x4 x1 ¬x2 ¬x3
11
MONOTONE-3-SAT formula: (x1 ∨ x2 ∨ x3)∧ (x2 ∨ x3 ∨ x4)∧ (¬x1 ∨ ¬x2 ∨ ¬x4)
¬x1 ∨ ¬x2 ∨ ¬x4 x
2 ∨
x
3 ∨
x
4
c l a u s e g a d g e t s
x
1 ∨
x
2 ∨
x
3
v a r i a b l e g a d g e t s
x1 ¬x2 ¬x3 ¬x4
11
AB without isolated vertices
in general: w/o isolated vtc.:
⋆
12
Lemma:
13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|).
13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|). Proof (Sketch):
13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|). Proof (Sketch):
13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|). Proof (Sketch):
Γ1 Γ2
13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|). Proof (Sketch):
⇒ ab / ∈ E Γ1 Γ2
13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|). Proof (Sketch):
⇒ ab / ∈ E Γ1 Γ2
13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|). Proof (Sketch):
⇒ ab / ∈ E
a b b a
Γ1 Γ2
13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|). Proof (Sketch):
⇒ ab / ∈ E
a b b a
Γ1 Γ2
13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|). Proof (Sketch):
⇒ ab / ∈ E
a b b a
Γ1 Γ2
b′ 13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|). Proof (Sketch):
⇒ ab / ∈ E
a b b a
Γ1 Γ2
b′ b′ 13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|). Proof (Sketch):
⇒ ab / ∈ E
a b b a
Γ1 Γ2
b′ b′
13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|). Proof (Sketch):
⇒ ab / ∈ E
a b b a
Γ1 Γ2
b′ b′
a′ 13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|). Proof (Sketch):
⇒ ab / ∈ E
a b b a
Γ1 Γ2
b′ b′
a′ a′ 13
Lemma: In all stick representations of an instance of STICKAB, the order of vertices on the ground line is the same after removing all isolated vertices. This order can be found in time O(|E|). Proof (Sketch):
⇒ ab / ∈ E
a b b a
Γ1 Γ2
b′ b′
a′ a′ 13
AB
14
AB
14
AB
14
AB
predefined stick-lengths: – for intersecting its last neighbor – for not intersecting its first non-neighbor
14
AB
predefined stick-lengths: – for intersecting its last neighbor – for not intersecting its first non-neighbor
a shortest-path problem in a directed weighted graph
14
AB
predefined stick-lengths: – for intersecting its last neighbor – for not intersecting its first non-neighbor ⇒ Solvable in O((|A| + |B|)2) time with Bellman–Ford
a shortest-path problem in a directed weighted graph
14
AB
predefined stick-lengths: – for intersecting its last neighbor – for not intersecting its first non-neighbor ⇒ Solvable in O((|A| + |B|)2) time with Bellman–Ford ⇒ Isolated vertices make STICKfix
AB NP-hard
a shortest-path problem in a directed weighted graph
14
[De Luca et al. GD’18]
in general: w/o isolated vtc.:
⋆
15
[De Luca et al. GD’18]
in general: w/o isolated vtc.:
(by reduction from 3-PARTITION)
⋆
15
[De Luca et al. GD’18]
in general: w/o isolated vtc.:
(by reduction from 3-PARTITION) (by reduction from MONO-3-SAT)
⋆
15