Enumeration on Trees with Tractable Combined Complexity and - - PowerPoint PPT Presentation

enumeration on trees with tractable combined complexity
SMART_READER_LITE
LIVE PREVIEW

Enumeration on Trees with Tractable Combined Complexity and - - PowerPoint PPT Presentation

Enumeration on Trees with Tractable Combined Complexity and Efficient Updates Antoine Amarilli 1 , Pierre Bourhis 2 , Stefan Mengel 3 , Matthias Niewerth 4 May 20th, 2019 1 Tlcom ParisTech 2 CNRS, CRIStAL, Lille 3 CNRS, CRIL, Lens 4 University


slide-1
SLIDE 1

Enumeration on Trees with Tractable Combined Complexity and Efficient Updates

Antoine Amarilli1, Pierre Bourhis2, Stefan Mengel3, Matthias Niewerth4 May 20th, 2019

1Télécom ParisTech 2CNRS, CRIStAL, Lille 3CNRS, CRIL, Lens 4University of Bayreuth 1/16

slide-2
SLIDE 2

Dramatis Personae

Antoine Amarilli Pierre Bourhis Stefan Mengel Matthias Niewerth

2/16

slide-3
SLIDE 3

Problem statement

slide-4
SLIDE 4

MSO query evaluation on trees

Data: a tree T where nodes have a color from an alphabet

3/16

slide-5
SLIDE 5

MSO query evaluation on trees

Data: a tree T where nodes have a color from an alphabet

?

Query Q: a formula in monadic second-order logic (MSO)

  • P (x) means “x is blue”
  • x → y means “x is the parent of y”

“Return all blue nodes that have a pink child” ∃y P (x) ∧ P (y) ∧ x → y

3/16

slide-6
SLIDE 6

MSO query evaluation on trees

Data: a tree T where nodes have a color from an alphabet

?

Query Q: a formula in monadic second-order logic (MSO)

  • P (x) means “x is blue”
  • x → y means “x is the parent of y”

“Return all blue nodes that have a pink child” ∃y P (x) ∧ P (y) ∧ x → y

i

Result: { (x1, . . . , xk) | (x1, . . . , xk) | = Q }

3/16

slide-7
SLIDE 7

MSO query evaluation on trees

Data: a tree T where nodes have a color from an alphabet

?

Query Q: a formula in monadic second-order logic (MSO)

  • P (x) means “x is blue”
  • x → y means “x is the parent of y”

“Return all blue nodes that have a pink child” ∃y P (x) ∧ P (y) ∧ x → y

i

Result: { (x1, . . . , xk) | (x1, . . . , xk) | = Q } Up to |T|k many answers

3/16

slide-8
SLIDE 8

Enumeration algorithm

Input

slide-9
SLIDE 9

Enumeration algorithm

Input Step 1: Indexing in O(input)

slide-10
SLIDE 10

Enumeration algorithm

Input Step 1: Indexing in O(input) Indexed input

slide-11
SLIDE 11

Enumeration algorithm

Input Step 1: Indexing in O(input) Indexed input Step 2: Enumeration in O(result)

slide-12
SLIDE 12

Enumeration algorithm

Input Step 1: Indexing in O(input) Indexed input Step 2: Enumeration in O(result)

A B C a b c

Results

slide-13
SLIDE 13

Enumeration algorithm

Input Step 1: Indexing in O(input) Indexed input Step 2: Enumeration in O(result)

A B C a b c

Results State 0011

slide-14
SLIDE 14

Enumeration algorithm

Input Step 1: Indexing in O(input) Indexed input Step 2: Enumeration in O(result)

A B C a b c

Results State 0011

4/16

slide-15
SLIDE 15

Enumeration algorithm

Input Step 1: Indexing in O(input) Indexed input Step 2: Enumeration in O(result)

A B C a’ b c

Results State 010001

4/16

slide-16
SLIDE 16

Enumeration algorithm

Input Step 1: Indexing in O(input) Indexed input Step 2: Enumeration in O(result)

A B C a b’ c

Results State 01100111

4/16

slide-17
SLIDE 17

Enumeration algorithm

Input Step 1: Indexing in O(input) Indexed input Step 2: Enumeration in O(result)

A B C a’ b’ c

Results State ⊥

4/16

slide-18
SLIDE 18

Known results on dynamic trees

All these results are on data complexity in T (for a fixed pattern): Work Data Preproc. Delay Updates

[Bagan, 2006], [Kazana and Segoufin, 2013]

trees O(T) O(1) O(T)

5/16

slide-19
SLIDE 19

Known results on dynamic trees

All these results are on data complexity in T (for a fixed pattern): Work Data Preproc. Delay Updates

[Bagan, 2006], [Kazana and Segoufin, 2013]

trees O(T) O(1) O(T)

[Losemann and Martens, 2014] trees

O(T) O(log2 T) O(log2 T)

5/16

slide-20
SLIDE 20

Known results on dynamic trees

All these results are on data complexity in T (for a fixed pattern): Work Data Preproc. Delay Updates

[Bagan, 2006], [Kazana and Segoufin, 2013]

trees O(T) O(1) O(T)

[Losemann and Martens, 2014] trees

O(T) O(log2 T) O(log2 T)

[Niewerth, 2018]

trees O(T) O(log T) O(log T)

5/16

slide-21
SLIDE 21

Known results on dynamic trees

All these results are on data complexity in T (for a fixed pattern): Work Data Preproc. Delay Updates

[Bagan, 2006], [Kazana and Segoufin, 2013]

trees O(T) O(1) O(T)

[Losemann and Martens, 2014] trees

O(T) O(log2 T) O(log2 T)

[Niewerth, 2018]

trees O(T) O(log T) O(log T)

[Niewerth and Segoufin, 2018]

text O(T) O(1) O(log T)

5/16

slide-22
SLIDE 22

Known results on dynamic trees

All these results are on data complexity in T (for a fixed pattern): Work Data Preproc. Delay Updates

[Bagan, 2006], [Kazana and Segoufin, 2013]

trees O(T) O(1) O(T)

[Losemann and Martens, 2014] trees

O(T) O(log2 T) O(log2 T)

[Niewerth, 2018]

trees O(T) O(log T) O(log T)

[Niewerth and Segoufin, 2018]

text O(T) O(1) O(log T) this paper trees O(T) O(1) O(log T)

5/16

slide-23
SLIDE 23

Tree Automata

  • MSO query evaluation is non-elementary (if P = NP)

6/16

slide-24
SLIDE 24

Tree Automata

  • MSO query evaluation is non-elementary (if P = NP)
  • Most queries are much simpler

6/16

slide-25
SLIDE 25

Tree Automata

  • MSO query evaluation is non-elementary (if P = NP)
  • Most queries are much simpler
  • We use bottom-up (binary) tree-automata

6/16

slide-26
SLIDE 26

Tree Automata

  • MSO query evaluation is non-elementary (if P = NP)
  • Most queries are much simpler
  • We use bottom-up (binary) tree-automata

∃y . . . Query

slide-27
SLIDE 27

Tree Automata

  • MSO query evaluation is non-elementary (if P = NP)
  • Most queries are much simpler
  • We use bottom-up (binary) tree-automata

∃y . . . Query Automaton

slide-28
SLIDE 28

Tree Automata

  • MSO query evaluation is non-elementary (if P = NP)
  • Most queries are much simpler
  • We use bottom-up (binary) tree-automata

∃y . . . Query Automaton Tree

slide-29
SLIDE 29

Tree Automata

  • MSO query evaluation is non-elementary (if P = NP)
  • Most queries are much simpler
  • We use bottom-up (binary) tree-automata

∃y . . . Query Automaton Tree Knowlege Compilation Set Circuit in DNNF

6/16

slide-30
SLIDE 30

Semantics of set circuits

∪ × x:1 ⊤ × y:3 Every gate g captures set of sets S(g)

7/16

slide-31
SLIDE 31

Semantics of set circuits

∪ × x:1 ⊤ × y:3 {{x}} {{y}} Every gate g captures set of sets S(g) S( x:1 ) := {{x:1}}

7/16

slide-32
SLIDE 32

Semantics of set circuits

∪ × x:1 ⊤ × y:3 {{x}} {{y}} {{}} Every gate g captures set of sets S(g) S( x:1 ) := {{x:1}} S( ⊤ ) := {{}}

7/16

slide-33
SLIDE 33

Semantics of set circuits

∪ × x:1 ⊤ × y:3 {{x}} {{y}} {{}} Every gate g captures set of sets S(g) S( x:1 ) := {{x:1}} S( ⊤ ) := {{}} S( ⊥ ) := ∅

7/16

slide-34
SLIDE 34

Semantics of set circuits

∪ × x:1 ⊤ × y:3 {{x}} {{y}} {{}} {{x}} {{x, y}} Every gate g captures set of sets S(g) S( x:1 ) := {{x:1}} S( ⊤ ) := {{}} S( ⊥ ) := ∅ S( × ) := {s1 ∪ s2 | s1 ∈ S(g1), s2 ∈ S(g2)}

7/16

slide-35
SLIDE 35

Semantics of set circuits

∪ × x:1 ⊤ × y:3 {{x}} {{y}} {{}} {{x}} {{x, y}} {{x}, {x, y}} Every gate g captures set of sets S(g) S( x:1 ) := {{x:1}} S( ⊤ ) := {{}} S( ⊥ ) := ∅ S( × ) := {s1 ∪ s2 | s1 ∈ S(g1), s2 ∈ S(g2)} S( ∪ ) := S(g1) ∪ S(g2)

7/16

slide-36
SLIDE 36

Semantics of set circuits

∪ × x:1 ⊤ × y:3 {{x}} {{y}} {{}} {{x}} {{x, y}} {{x}, {x, y}} Every gate g captures set of sets S(g) S( x:1 ) := {{x:1}} S( ⊤ ) := {{}} S( ⊥ ) := ∅ S( × ) := {s1 ∪ s2 | s1 ∈ S(g1), s2 ∈ S(g2)} S( ∪ ) := S(g1) ∪ S(g2) Task: Enumerate the elements of the set S(g) captured by a gate g →E.g., for S(g) = {{x}, {x, y}}, enumerate {x} and then {x, y}

7/16

slide-37
SLIDE 37

Compiling Trees in Set Circuits

8/16

slide-38
SLIDE 38

Compiling Trees in Set Circuits

8/16

slide-39
SLIDE 39

Compiling Trees in Set Circuits

  • One box for each node of the tree

8/16

slide-40
SLIDE 40

Compiling Trees in Set Circuits

  • One box for each node of the tree
  • In each box: one ∪-gate for each state q of the automaton
  • Captures partial runs that end in q

8/16

slide-41
SLIDE 41

Enumerate Circuit Results

Preprocessing phase:

∪ × x z

DNNF set circuit

slide-42
SLIDE 42

Enumerate Circuit Results

Preprocessing phase:

∪ × x z

DNNF set circuit Normalization (linear-time)

× x z

Normalized circuit

slide-43
SLIDE 43

Enumerate Circuit Results

Preprocessing phase:

∪ × x z

DNNF set circuit Normalization (linear-time)

× x z

Normalized circuit Indexing (linear-time)

× x z

Indexed normalized circuit

9/16

slide-44
SLIDE 44

Enumerate Circuit Results

Preprocessing phase:

∪ × x z

DNNF set circuit Normalization (linear-time)

× x z

Normalized circuit Indexing (linear-time)

× x z

Indexed normalized circuit Enumeration phase:

× x z

Indexed normalized circuit

slide-45
SLIDE 45

Enumerate Circuit Results

Preprocessing phase:

∪ × x z

DNNF set circuit Normalization (linear-time)

× x z

Normalized circuit Indexing (linear-time)

× x z

Indexed normalized circuit Enumeration phase:

× x z

Indexed normalized circuit Enumeration (constant delay)

A B C a b c a b’ c

Results

9/16

slide-46
SLIDE 46

Compiling Trees in Set Circuits

10/16

slide-47
SLIDE 47

Compiling Trees in Set Circuits

  • Constructions are bottom-up

10/16

slide-48
SLIDE 48

Compiling Trees in Set Circuits

  • Constructions are bottom-up
  • Updates can be done in O(depth(T))

10/16

slide-49
SLIDE 49

Compiling Trees in Set Circuits

  • Constructions are bottom-up
  • Updates can be done in O(depth(T))
  • Problem: depth(T) can be linear in T

10/16

slide-50
SLIDE 50

Compiling Trees in Set Circuits

  • Constructions are bottom-up
  • Updates can be done in O(depth(T))
  • Problem: depth(T) can be linear in T
  • Solution: Depict trees by forest algebra terms

10/16

slide-51
SLIDE 51

Free Forest Algebra in a Nutshell

‘ = concatenation

11/16

slide-52
SLIDE 52

Free Forest Algebra in a Nutshell

‘ = concatenation d = context application

11/16

slide-53
SLIDE 53

Free Forest Algebra in a Nutshell

‘ = concatenation d = context application d = context application

11/16

slide-54
SLIDE 54

Free Forest Algebra in a Nutshell

tree

12/16

slide-55
SLIDE 55

Free Forest Algebra in a Nutshell

tree d ‘ d ‘ term

12/16

slide-56
SLIDE 56

Free Forest Algebra in a Nutshell

tree d ‘ d ‘ term

12/16

slide-57
SLIDE 57

Free Forest Algebra in a Nutshell

tree d ‘ d ‘ term

12/16

slide-58
SLIDE 58

Free Forest Algebra in a Nutshell

tree d ‘ d ‘ term

12/16

slide-59
SLIDE 59

Free Forest Algebra in a Nutshell

tree d ‘ d ‘ term d d ‘ ‘ alternative term

12/16

slide-60
SLIDE 60

Free Forest Algebra in a Nutshell

tree d ‘ d ‘ term d d ‘ ‘ alternative term

12/16

slide-61
SLIDE 61

Free Forest Algebra in a Nutshell

tree d ‘ d ‘ term d d ‘ ‘ alternative term

12/16

slide-62
SLIDE 62

Free Forest Algebra in a Nutshell

tree d ‘ d ‘ term d d ‘ ‘ alternative term The leaves of the formula correspond to the nodes of the tree

12/16

slide-63
SLIDE 63

Rebalancing Forest Algebra Terms

‘ ‘ 1 2 3

13/16

slide-64
SLIDE 64

Rebalancing Forest Algebra Terms

‘ ‘ 1 2 3 ‘ 1 ‘ 2 3

13/16

slide-65
SLIDE 65

Rebalancing Forest Algebra Terms

‘ ‘ 1 2 3 ‘ 1 ‘ 2 3

13/16

slide-66
SLIDE 66

Rebalancing Forest Algebra Terms

d d 1 2 3 d 1 d 2 3

13/16

slide-67
SLIDE 67

Rebalancing Forest Algebra Terms

d d 1 2 3 d 1 d 2 3 ‘ ‘ 1 ‘ 2 3 4 ‘ ‘ 1 2 ‘ 3 4 ‘ 1 ‘ ‘ 2 3 4

13/16

slide-68
SLIDE 68

Rebalancing Forest Algebra Terms

d d 1 2 3 d 1 d 2 3 d d 1 d 2 3 4 d d 1 2 d 3 4 d 1 d d 2 3 4

13/16

slide-69
SLIDE 69

Rebalancing Forest Algebra Terms

d d 1 2 3 d 1 d 2 3 d d 1 d 2 3 4 d d 1 2 d 3 4 d 1 d d 2 3 4

13/16

slide-70
SLIDE 70

Rebalancing Forest Algebra Terms

d d 1 2 3 d 1 d 2 3 d d 1 d 2 3 4 d d 1 2 d 3 4 d 1 d d 2 3 4 ‘ d 1 3 2 d ‘ 1 2 3

1 contains the hole

13/16

slide-71
SLIDE 71

Rebalancing Forest Algebra Terms

d d 1 2 3 d 1 d 2 3 d d 1 d 2 3 4 d d 1 2 d 3 4 d 1 d d 2 3 4 ‘ d 1 3 2 d ‘ 1 2 3

1 contains the hole

‘ 1 d 2 3

2 contains the hole

13/16

slide-72
SLIDE 72

Main Result

Theorem Enumertion of MSO formulas on trees can be done in time: Preprocessing O( |T| × |Q|4ω+1 ) Delay O( |Q|4ω × |S| ) Updates O( log(|T|) × |Q|4ω+1 ) |T| size of tree |Q| number of states of a nondeterministic tree automaton |S| size of result ω exponent for Boolean matrix multiplication

14/16

slide-73
SLIDE 73

Lower Bound

slide-74
SLIDE 74

Lower Bound

Existencial Marked Ancestor Queries Input: Tree t with some marked nodes Query: Does node v have a marked ancestor? Updates: Mark or unmark a node

15/16

slide-75
SLIDE 75

Lower Bound

Existencial Marked Ancestor Queries Input: Tree t with some marked nodes Query: Does node v have a marked ancestor? Updates: Mark or unmark a node Theorem: tquery ∈ Ω

  • log(n)

log(tupdate log(n))

  • 15/16
slide-76
SLIDE 76

Lower Bound

Existencial Marked Ancestor Queries Input: Tree t with some marked nodes Query: Does node v have a marked ancestor? Updates: Mark or unmark a node Theorem: tquery ∈ Ω

  • log(n)

log(tupdate log(n))

  • Reduction to Query Enumeration with Updates

Fixed Query Q: Return all special nodes with a marked ancestor For every marked ancestor query v:

  • 1. Mark node v special
  • 2. Enumerate Q and return “yes”, iff Q produces some result
  • 3. Mark v as non-special again

15/16

slide-77
SLIDE 77

Lower Bound

Existencial Marked Ancestor Queries Input: Tree t with some marked nodes Query: Does node v have a marked ancestor? Updates: Mark or unmark a node Theorem: tquery ∈ Ω

  • log(n)

log(tupdate log(n))

  • Reduction to Query Enumeration with Updates

Fixed Query Q: Return all special nodes with a marked ancestor For every marked ancestor query v:

  • 1. Mark node v special
  • 2. Enumerate Q and return “yes”, iff Q produces some result
  • 3. Mark v as non-special again

Theorem: max(tdelay, tupdate) ∈ Ω

  • log(n)

log log(n)

  • 15/16
slide-78
SLIDE 78

Results

Theorem Enumertion of MSO formulas on trees can be done in time: Preprocessing O( |T| × |Q|4ω+1 ) Delay O( |Q|4ω × |S| ) Updates O( log(|T|) × |Q|4ω+1 ) |T| size of tree |Q| number of states of a nondeterministic tree automaton |S| size of result ω exponent for Boolean matrix multiplication Theorem max(tdelay, tupdate) ∈ Ω

  • log(n)

log log(n)

  • 16/16
slide-79
SLIDE 79

Results

Theorem Enumertion of MSO formulas on trees can be done in time: Preprocessing O( |T| × |Q|4ω+1 ) Delay O( |Q|4ω × |S| ) Updates O( log(|T|) × |Q|4ω+1 ) |T| size of tree |Q| number of states of a nondeterministic tree automaton |S| size of result ω exponent for Boolean matrix multiplication Theorem max(tdelay, tupdate) ∈ Ω

  • log(n)

log log(n)

  • Thank You

16/16

slide-80
SLIDE 80

References i

Bagan, G. (2006). MSO queries on tree decomposable structures are computable with linear delay. In CSL. Kazana, W. and Segoufin, L. (2013). Enumeration of monadic second-order queries on trees. TOCL, 14(4). Losemann, K. and Martens, W. (2014). MSO queries on trees: Enumerating answers under updates. In CSL-LICS.

slide-81
SLIDE 81

References ii

Niewerth, M. (2018). Mso queries on trees: Enumerating answers under updates using forest algebras. In LICS. Niewerth, M. and Segoufin, L. (2018). Enumeration of MSO queries on strings with constant delay and logarithmic updates. In PODS.

slide-82
SLIDE 82

Normalization: handling ∅

× × x ⊥ y

slide-83
SLIDE 83

Normalization: handling ∅

× × x ⊥ y {{x}} ∅

slide-84
SLIDE 84

Normalization: handling ∅

× × x ⊥ y {{x}} ∅ {{y}} ∅

slide-85
SLIDE 85

Normalization: handling ∅

× × x ⊥ y {{x}} ∅ {{y}} ∅ ∅

slide-86
SLIDE 86

Normalization: handling ∅

× × x ⊥ y {{x}} ∅ {{y}} ∅ ∅

  • Problem: if S(g) = ∅ we waste time
slide-87
SLIDE 87

Normalization: handling ∅

× × x ⊥ y {{x}} ∅ {{y}} ∅ ∅

  • Problem: if S(g) = ∅ we waste time
  • Solution: in preprocessing
  • compute bottom-up if S(g) = ∅
slide-88
SLIDE 88

Normalization: handling ∅

× × x ⊥ y {{x}} ∅ {{y}} ∅ ∅

  • Problem: if S(g) = ∅ we waste time
  • Solution: in preprocessing
  • compute bottom-up if S(g) = ∅
  • then get rid of the gate
slide-89
SLIDE 89

Normalization: handling empty sets

× × × x × × ×

slide-90
SLIDE 90

Normalization: handling empty sets

× × × x × × × {{}} {{}} {{}} {{x}}

slide-91
SLIDE 91

Normalization: handling empty sets

× × × x × × × {{}} {{}} {{}} {{x}} {{x}}

slide-92
SLIDE 92

Normalization: handling empty sets

× × × x × × × {{}} {{}} {{}} {{x}} {{x}} {{x}}

slide-93
SLIDE 93

Normalization: handling empty sets

× × × x × × × {{}} {{}} {{}} {{x}} {{x}} {{x}} {{x}}

slide-94
SLIDE 94

Normalization: handling empty sets

× × × x × × × {{}} {{}} {{}} {{x}} {{x}} {{x}} {{x}}

  • Problem: if S(g) contains {} we waste time

in chains of ×-gates

slide-95
SLIDE 95

Normalization: handling empty sets

× × × x × × × {{}} {{}} {{}} {{x}} {{x}} {{x}} {{x}}

  • Problem: if S(g) contains {} we waste time

in chains of ×-gates

  • Solution:
slide-96
SLIDE 96

Normalization: handling empty sets

× × × x × × × {{}} {{}} {{}} {{x}} {{x}} {{x}} {{x}}

  • Problem: if S(g) contains {} we waste time

in chains of ×-gates

  • Solution:
  • remove inputs with S(g) = {{}} for ×-gates
slide-97
SLIDE 97

Normalization: handling empty sets

× × × x × × × {{}} {{}} {{}} {{x}} {{x}} {{x}} {{x}}

  • Problem: if S(g) contains {} we waste time

in chains of ×-gates

  • Solution:
  • remove inputs with S(g) = {{}} for ×-gates
slide-98
SLIDE 98

Normalization: handling empty sets

× × × x {{x}} {{x}} {{x}} {{x}}

  • Problem: if S(g) contains {} we waste time

in chains of ×-gates

  • Solution:
  • remove inputs with S(g) = {{}} for ×-gates
  • collapse ×-chains with fan-in 1
slide-99
SLIDE 99

Normalization: handling empty sets

× × × x {{x}} {{x}} {{x}} {{x}}

  • Problem: if S(g) contains {} we waste time

in chains of ×-gates

  • Solution:
  • remove inputs with S(g) = {{}} for ×-gates
  • collapse ×-chains with fan-in 1
slide-100
SLIDE 100

Normalization: handling empty sets

× × × x {{x}} {{x}} {{x}} {{x}}

  • Problem: if S(g) contains {} we waste time

in chains of ×-gates

  • Solution:
  • remove inputs with S(g) = {{}} for ×-gates
  • collapse ×-chains with fan-in 1

→ Now, traversing a ×-gate ensures that we make progress: it splits the sets non-trivially

slide-101
SLIDE 101

Indexing: handling ∪-hierarchies

∪ g1 ∪ ∪ g2 g3 g4 ∪ • Problem: we waste time in ∪-hierarchies to find a reachable exit (non-∪ gate)

slide-102
SLIDE 102

Indexing: handling ∪-hierarchies

∪ g1 ∪ ∪ g2 g3 g4 ∪ • Problem: we waste time in ∪-hierarchies to find a reachable exit (non-∪ gate)

  • Solution: compute reachability index
slide-103
SLIDE 103

Indexing: handling ∪-hierarchies

∪ g1 ∪ ∪ g2 g3 g4 ∪ • Problem: we waste time in ∪-hierarchies to find a reachable exit (non-∪ gate)

  • Solution: compute reachability index
slide-104
SLIDE 104

Indexing: handling ∪-hierarchies

∪ g1 ∪ ∪ g2 g3 g4 ∪ • Problem: we waste time in ∪-hierarchies to find a reachable exit (non-∪ gate)

  • Solution: compute reachability index
  • Problem: must be done in linear time
slide-105
SLIDE 105

Indexing: handling ∪-hierarchies

∪ g1 ∪ ∪ g2 g3 g4 ∪ • Problem: we waste time in ∪-hierarchies to find a reachable exit (non-∪ gate)

  • Solution: compute reachability index
  • Problem: must be done in linear time
  • Solution: Compute reachability index with box-granularity
  • Use matrix multiplication
  • Circuit has bounded width (by the size of the automaton)