From NFA to minimal DFA
Transcript of From NFA to minimal DFA
From NFA to minimal DFA
Bas Ploeger1 Rob van Glabbeek2 Jan Friso Groote1
1 Department of Mathematics and Computer ScienceTechnische Universiteit Eindhoven
The Netherlands
2 National ICT AustraliaSydney, Australia
ProSe, 19 October 2006
Overview
Introduction
Problem
Solution 1
Solution 2
Conclusions
Preliminaries
Finite automata
I NFA is a tuple (S ,Σ,→, i ,F )
I DFA: every state has at most one outgoing a-transition forevery a ∈ Σ
Language semantics
I Language of a state s: L(s) = {σ ∈ Σ∗ | ∃f ∈ F . sσ−→ f }
I Language preorder and equivalence on states s, s ′:
s vL s ′ ⇔ L(s) ⊆ L(s ′)s ≡L s ′ ⇔ L(s) = L(s ′)
Preliminaries
Finite automata
I NFA is a tuple (S ,Σ,→, i ,F )
I DFA: every state has at most one outgoing a-transition forevery a ∈ Σ
Language semantics
I Language of a state s: L(s) = {σ ∈ Σ∗ | ∃f ∈ F . sσ−→ f }
I Language preorder and equivalence on states s, s ′:
s vL s ′ ⇔ L(s) ⊆ L(s ′)s ≡L s ′ ⇔ L(s) = L(s ′)
Canonization
ProblemGiven an NFA, find the smallest, language equivalent DFA.
Solution
1. Determinize NFA (subset construction)
2. Minimize DFA (Hopcroft)
Minimal DFA can be exponentially larger than NFA
Canonization
ProblemGiven an NFA, find the smallest, language equivalent DFA.
Solution
1. Determinize NFA (subset construction)
2. Minimize DFA (Hopcroft)
Minimal DFA can be exponentially larger than NFA
Canonization
ProblemGiven an NFA, find the smallest, language equivalent DFA.
Solution
1. Determinize NFA (subset construction) EXPTIME
2. Minimize DFA (Hopcroft) PTIME
Minimal DFA can be exponentially larger than NFA
Canonization
ProblemGiven an NFA, find the smallest, language equivalent DFA.
Solution
1. Determinize NFA (subset construction) EXPTIME
2. Minimize DFA (Hopcroft) PTIME
Minimal DFA can be exponentially larger than NFA
ExampleSubset construction
NFA
0
1 2
3
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
a
{2}{2}
b
a
{3}
b
a
b
ExampleSubset construction
NFA
0
1 2
3
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
a
{2}{2}
b
a
{3}
b
a
b
ExampleSubset construction
NFA
0
1 2
3
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
a
{2}
{2}
b
a
{3}
b
a
b
ExampleSubset construction
NFA
0
1 2
3
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
a
{2}
{2}
b
a
{3}
b
a
b
ExampleSubset construction
NFA
0
1 2
3
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
a
{2}
{2}
b
a
{3}
b
a
b
ExampleSubset construction
NFA
0
1 2
3
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
a
{2}
{2}
b
a
{3}
b
a
b
ExampleSubset construction
NFA
0
1 2
3
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
a
{2}
{2}
b
a
{3}
b
a
b
ExampleMinimization
NFA
0
1 2
3
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
a
{2}
{2}
b
a
{3}
b
a
b
ExampleMinimization
NFA
0
1 2
3
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
a,b
a
{3}
b
Relevance to Process Theory (1)
Labelled Transition Systems
I Process modelled by LTS (S ,Σ,→, i)
I No final states (computation “never” stops)
Trace semanticsI Traces of a state s: Tr(s) = {σ ∈ Σ∗ | ∃f ∈ S . s
σ−→ f }I Trace equivalence: s ≡T s ′ ⇔ Tr(s) = Tr(s ′)
Bisimulation semanticsI Bisimulation is a relation R on states satisfying, for a ∈ Σ:
I if s R t and sa−→ s ′, then ∃t ′ . t
a−→ t ′ and s ′ R t ′;I if s R t and t
a−→ t ′, then ∃s ′ . sa−→ s ′ and s ′ R t ′;
I Bisimulation equivalence: s↔ s ′ if there exists a bisimulationR with s R s ′
Relevance to Process Theory (1)
Labelled Transition Systems
I Process modelled by LTS (S ,Σ,→, i)
I No final states (computation “never” stops)
Trace semanticsI Traces of a state s: Tr(s) = {σ ∈ Σ∗ | ∃f ∈ S . s
σ−→ f }I Trace equivalence: s ≡T s ′ ⇔ Tr(s) = Tr(s ′)
Bisimulation semanticsI Bisimulation is a relation R on states satisfying, for a ∈ Σ:
I if s R t and sa−→ s ′, then ∃t ′ . t
a−→ t ′ and s ′ R t ′;I if s R t and t
a−→ t ′, then ∃s ′ . sa−→ s ′ and s ′ R t ′;
I Bisimulation equivalence: s↔ s ′ if there exists a bisimulationR with s R s ′
Relevance to Process Theory (1)
Labelled Transition Systems
I Process modelled by LTS (S ,Σ,→, i)
I No final states (computation “never” stops)
Trace semanticsI Traces of a state s: Tr(s) = {σ ∈ Σ∗ | ∃f ∈ S . s
σ−→ f }I Trace equivalence: s ≡T s ′ ⇔ Tr(s) = Tr(s ′)
Bisimulation semanticsI Bisimulation is a relation R on states satisfying, for a ∈ Σ:
I if s R t and sa−→ s ′, then ∃t ′ . t
a−→ t ′ and s ′ R t ′;I if s R t and t
a−→ t ′, then ∃s ′ . sa−→ s ′ and s ′ R t ′;
I Bisimulation equivalence: s↔ s ′ if there exists a bisimulationR with s R s ′
Relevance to Process Theory (2)
ProblemGiven an LTS, minimize it under trace semantics
Facts
I Deciding trace equivalence is PSPACE-complete
I Deciding bisimulation equivalence is in PTIME
I If LTS is deterministic: ≡T equals ↔
Solution
1. Determinize LTS (subset construction)
2. Minimize LTS under bisimulation semantics (Paige-Tarjan)
Relevance to Process Theory (2)
ProblemGiven an LTS, minimize it under trace semantics
Facts
I Deciding trace equivalence is PSPACE-complete
I Deciding bisimulation equivalence is in PTIME
I If LTS is deterministic: ≡T equals ↔
Solution
1. Determinize LTS (subset construction)
2. Minimize LTS under bisimulation semantics (Paige-Tarjan)
Relevance to Process Theory (2)
ProblemGiven an LTS, minimize it under trace semantics
Facts
I Deciding trace equivalence is PSPACE-complete
I Deciding bisimulation equivalence is in PTIME
I If LTS is deterministic: ≡T equals ↔
Solution
1. Determinize LTS (subset construction)
2. Minimize LTS under bisimulation semantics (Paige-Tarjan)
Relevance to Process Theory (2)
ProblemGiven an LTS, minimize it under trace semantics
Facts
I Deciding trace equivalence is PSPACE-complete
I Deciding bisimulation equivalence is in PTIME
I If LTS is deterministic: ≡T equals ↔
Solution
1. Determinize LTS (subset construction)
2. Minimize LTS under bisimulation semantics (Paige-Tarjan)
Relevance to Process Theory (2)
ProblemGiven an LTS, minimize it under trace semantics
Facts
I Deciding trace equivalence is PSPACE-complete
I Deciding bisimulation equivalence is in PTIME
I If LTS is deterministic: ≡T equals ↔
Solution
1. Determinize LTS (subset construction)
2. Minimize LTS under bisimulation semantics (Paige-Tarjan)
Problem
Overview
NFA mDFADFAsubset construction minimize
Questions
I What if DFA is much larger than mDFA?
I Can we avoid the generation of redundant states?
I Space efficiency (average case)
Problem
Overview
NFA mDFADFAsubset construction minimize
Questions
I What if DFA is much larger than mDFA?
I Can we avoid the generation of redundant states?
I Space efficiency (average case)
Problem
Overview
NFA mDFADFAsubset construction minimize
Questions
I What if DFA is much larger than mDFA?
I Can we avoid the generation of redundant states?
I Space efficiency (average case)
Problem
Overview
NFA mDFA?
Questions
I What if DFA is much larger than mDFA?
I Can we avoid the generation of redundant states?
I Space efficiency (average case)
Problem
Overview
NFA mDFA?
Questions
I What if DFA is much larger than mDFA?
I Can we avoid the generation of redundant states?
I Space efficiency (average case)
Solution 1
Subset construction
Input: NFA N = (SN ,ΣN ,−→N , iN ,FN )Output: DFA D = (SD,ΣD,−→D, iD,FD)
Every DFA state P ∈ SD is a set of NFA states
Basic ideaI Add “irrelevant” NFA states to P
I State is irrelevant if it does not alter L(P)
L(P)?
I Language in NFA: LN (P) =⋃
p∈P LN (p)
I Language in DFA: LD(P), defined as usual
I Lemma: LN (P) = LD(P) for every P ⊆ SN
Solution 1
Subset construction
Input: NFA N = (SN ,ΣN ,−→N , iN ,FN )Output: DFA D = (SD,ΣD,−→D, iD,FD)
Every DFA state P ∈ SD is a set of NFA states
Basic ideaI Add “irrelevant” NFA states to P
I State is irrelevant if it does not alter L(P)
L(P)?
I Language in NFA: LN (P) =⋃
p∈P LN (p)
I Language in DFA: LD(P), defined as usual
I Lemma: LN (P) = LD(P) for every P ⊆ SN
Solution 1
Subset construction
Input: NFA N = (SN ,ΣN ,−→N , iN ,FN )Output: DFA D = (SD,ΣD,−→D, iD,FD)
Every DFA state P ∈ SD is a set of NFA states
Basic ideaI Add “irrelevant” NFA states to P
I State is irrelevant if it does not alter L(P)
L(P)?
I Language in NFA: LN (P) =⋃
p∈P LN (p)
I Language in DFA: LD(P), defined as usual
I Lemma: LN (P) = LD(P) for every P ⊆ SN
Solution 1
Subset construction
Input: NFA N = (SN ,ΣN ,−→N , iN ,FN )Output: DFA D = (SD,ΣD,−→D, iD,FD)
Every DFA state P ∈ SD is a set of NFA states
Basic ideaI Add “irrelevant” NFA states to P
I State is irrelevant if it does not alter L(P)
L(P)?
I Language in NFA: LN (P) =⋃
p∈P LN (p)
I Language in DFA: LD(P), defined as usual
I Lemma: LN (P) = LD(P) for every P ⊆ SN
Solution 1
Subset construction
Input: NFA N = (SN ,ΣN ,−→N , iN ,FN )Output: DFA D = (SD,ΣD,−→D, iD,FD)
Every DFA state P ∈ SD is a set of NFA states
Basic ideaI Add “irrelevant” NFA states to P
I State is irrelevant if it does not alter L(P)
L(P)?
I Language in NFA: LN (P) =⋃
p∈P LN (p)
I Language in DFA: LD(P), defined as usual
I Lemma: LN (P) = LD(P) for every P ⊆ SN
Solution 1
Subset construction
Input: NFA N = (SN ,ΣN ,−→N , iN ,FN )Output: DFA D = (SD,ΣD,−→D, iD,FD)
Every DFA state P ∈ SD is a set of NFA states
Basic ideaI Add “irrelevant” NFA states to P
I State is irrelevant if it does not alter L(P)
L(P)?
I Language in NFA: LN (P) =⋃
p∈P LN (p)
I Language in DFA: LD(P), defined as usual
I Lemma: LN (P) = LD(P) for every P ⊆ SN
Solution 1
Closure
I For any set P ⊆ SN define: P = {p ∈ SN | LN (p) ⊆ LN (P)}
I Proposition: P ≡L P for any P ⊆ SN
Algorithm
I Normal subset construction, but . . .
I Replace every generated set P by P
Main TheoremGiven an NFA, the algorithm constructs the minimal, languageequivalent DFA
Solution 1
Closure
I For any set P ⊆ SN define: P = {p ∈ SN | p vL P}
I Proposition: P ≡L P for any P ⊆ SN
Algorithm
I Normal subset construction, but . . .
I Replace every generated set P by P
Main TheoremGiven an NFA, the algorithm constructs the minimal, languageequivalent DFA
Solution 1
Closure
I For any set P ⊆ SN define: P = {p ∈ SN | p vL P}I Proposition: P ≡L P for any P ⊆ SN
Algorithm
I Normal subset construction, but . . .
I Replace every generated set P by P
Main TheoremGiven an NFA, the algorithm constructs the minimal, languageequivalent DFA
Solution 1
Closure
I For any set P ⊆ SN define: P = {p ∈ SN | p vL P}I Proposition: P ≡L P for any P ⊆ SN
Algorithm
I Normal subset construction, but . . .
I Replace every generated set P by P
Main TheoremGiven an NFA, the algorithm constructs the minimal, languageequivalent DFA
Solution 1
Closure
I For any set P ⊆ SN define: P = {p ∈ SN | p vL P}I Proposition: P ≡L P for any P ⊆ SN
Algorithm
I Normal subset construction, but . . .
I Replace every generated set P by P
Main TheoremGiven an NFA, the algorithm constructs the minimal, languageequivalent DFA
Example
NFA
0 (a|b)a∗b
1a∗b
2a∗b
3 {λ}
a a,b
a
b
a
a
b
DFA
{0}
{1, 2} {2}{1, 2}
{3}
ab
a
b
Example
NFA
0 (a|b)a∗b
1a∗b
2a∗b
3 {λ}
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
{2}{1, 2}
{3}
a
b
a
b
Example
NFA
0 (a|b)a∗b
1a∗b
2a∗b
3 {λ}
a a,b
a
b
a
a
b
DFA
{0}
{1, 2} {2}
{1, 2}
{3}
ab
a
b
Example
NFA
0 (a|b)a∗b
1a∗b
2a∗b
3 {λ}
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
{2}
{1, 2}
{3}
ab
a
b
Example
NFA
0 (a|b)a∗b
1a∗b
2a∗b
3 {λ}
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
{2}{1, 2}
{3}
a,b
b
a
b
Example
NFA
0 (a|b)a∗b
1a∗b
2a∗b
3 {λ}
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
{2}{1, 2}
{3}
a,b
b
a
b
Example
NFA
0 (a|b)a∗b
1a∗b
2a∗b
3 {λ}
a a,b
a
b
a
a
b
DFA
{0}
{1, 2}
{2}{1, 2}
{3}
a,b
b
a
b
Complexity issues
Closure
I Language inclusion is PSPACE-complete
Simulation semantics
I Simulation is a relation R on states satisfying, for a ∈ ΣN :I if s R t and s
a−→ s ′, then ∃t ′ . ta−→ t ′ and s ′ R t ′
I if s R t then s ∈ F ⇒ t ∈ F
I Simulation preorder: s ⊂→ s ′ if there exists a simulation R withs R s ′.
I Simulation is in PTIME
Complexity issues
Closure
I Language inclusion is PSPACE-complete
Simulation semantics
I Simulation is a relation R on states satisfying, for a ∈ ΣN :I if s R t and s
a−→ s ′, then ∃t ′ . ta−→ t ′ and s ′ R t ′
I if s R t then s ∈ F ⇒ t ∈ F
I Simulation preorder: s ⊂→ s ′ if there exists a simulation R withs R s ′.
I Simulation is in PTIME
Complexity issues
Closure
I Language inclusion is PSPACE-complete
Simulation semantics
I Simulation is a relation R on states satisfying, for a ∈ ΣN :I if s R t and s
a−→ s ′, then ∃t ′ . ta−→ t ′ and s ′ R t ′
I if s R t then s ∈ F ⇒ t ∈ F
I Simulation preorder: s ⊂→ s ′ if there exists a simulation R withs R s ′.
I Simulation is in PTIME
Implementation
Trade-off
I Use ⊂→ instead of vL in closure
I Resulting DFA is not minimal
I But at most as large as the DFA produced by subsetconstruction
Implementation
Trade-off
I Use ⊂→ instead of vL in closure
I Resulting DFA is not minimal
I But at most as large as the DFA produced by subsetconstruction
Preliminary results
NFA min. DFAstates transitions states transitions
1 236 456 1.367 2.690
2 1.438 2.821 18.925 37.615
DFAstates transitions memory time
1 - normal 42.665 83.416 5,90 MB 0,200 sec1 - solution 1 4.712 9.252 4,39 MB 0,844 sec
2 - normal 7.403.224 14.616.424 468,05 MB 72,468 sec2 - solution 1 176.105 348.005 63,57 MB 561,022 sec
Preliminary results
NFA min. DFAstates transitions states transitions
1 236 456 1.367 2.690
2 1.438 2.821 18.925 37.615
DFAstates transitions memory time
1 - normal 42.665 83.416 5,90 MB 0,200 sec1 - solution 1 4.712 9.252 4,39 MB 0,844 sec
2 - normal 7.403.224 14.616.424 468,05 MB 72,468 sec2 - solution 1 176.105 348.005 63,57 MB 561,022 sec
Solution 2
Idea
I Why not remove irrelevant states from a set P?
I A p ∈ P is irrelevant if: ∃q ∈ P . p 6= q ∧ p vL q
Better idea
I Replace P by the set of transitions of the states in P:
T = {(a, q) ∈ Σ× S | ∃p ∈ P . pa−→ q}
I Remove irrelevant transitions from T
I A t ∈ T is irrelevant if: ∃u ∈ T . t 6= u ∧ t vL u
Solution 2
Idea
I Why not remove irrelevant states from a set P?
I A p ∈ P is irrelevant if: ∃q ∈ P . p 6= q ∧ p vL q
Better idea
I Replace P by the set of transitions of the states in P:
T = {(a, q) ∈ Σ× S | ∃p ∈ P . pa−→ q}
I Remove irrelevant transitions from T
I A t ∈ T is irrelevant if: ∃u ∈ T . t 6= u ∧ t vL u
Solution 2
Idea
I Why not remove irrelevant states from a set P?
I A p ∈ P is irrelevant if: ∃Q ⊆ P . p 6∈ Q ∧ p vL Q
Better idea
I Replace P by the set of transitions of the states in P:
T = {(a, q) ∈ Σ× S | ∃p ∈ P . pa−→ q}
I Remove irrelevant transitions from T
I A t ∈ T is irrelevant if: ∃u ∈ T . t 6= u ∧ t vL u
Solution 2
Idea
I Why not remove irrelevant states from a set P?
I A p ∈ P is irrelevant if: ∃Q ⊆ P . p 6∈ Q ∧ p vL Q
Better idea
I Replace P by the set of transitions of the states in P:
T = {(a, q) ∈ Σ× S | ∃p ∈ P . pa−→ q}
I Remove irrelevant transitions from T
I A t ∈ T is irrelevant if: ∃u ∈ T . t 6= u ∧ t vL u
Solution 2
Idea
I Why not remove irrelevant states from a set P?
I A p ∈ P is irrelevant if: ∃Q ⊆ P . p 6∈ Q ∧ p vL Q
Better idea
I Replace P by the set of transitions of the states in P:
T = {(a, q) ∈ Σ× S | ∃p ∈ P . pa−→ q}
I Remove irrelevant transitions from T
I A t ∈ T is irrelevant if: ∃u ∈ T . t 6= u ∧ t vL u
Definitions
Language semantics
For transitions t = (a, q) and u = (b, r):
I Language of t: L(t) = {aσ ∈ Σ+ | σ ∈ L(q)}
I t vL u ⇔ a = b ∧ q vL r
Compression
For any set of transitions T define:
↓T =
T if ¬∃t, u ∈ T . t 6= u ∧ t vL u↓(T − {t}) where t ∈ T and ∃u ∈ T . t 6= u ∧ t vL u,
otherwise
Definitions
Language semantics
For transitions t = (a, q) and u = (b, r):
I Language of t: L(t) = {aσ ∈ Σ+ | σ ∈ L(q)}I t vL u ⇔ a = b ∧ q vL r
Compression
For any set of transitions T define:
↓T =
T if ¬∃t, u ∈ T . t 6= u ∧ t vL u↓(T − {t}) where t ∈ T and ∃u ∈ T . t 6= u ∧ t vL u,
otherwise
Definitions
Language semantics
For transitions t = (a, q) and u = (b, r):
I Language of t: L(t) = {aσ ∈ Σ+ | σ ∈ L(q)}I t vL u ⇔ a = b ∧ q vL r
Compression
For any set of transitions T define:
↓T =
T if ¬∃t, u ∈ T . t 6= u ∧ t vL u↓(T − {t}) where t ∈ T and ∃u ∈ T . t 6= u ∧ t vL u,
otherwise
Compression
Language equivalence
For a set of transitions T :
I Language of T : L(T ) =⋃
t∈T L(t)
I Proposition: T ≡L ↓T
Uniqueness?
I ↓T is not unique for a given T
I ↓T is unique if no two states in the NFA are languageequivalent
Compression
Language equivalence
For a set of transitions T :
I Language of T : L(T ) =⋃
t∈T L(t)
I Proposition: T ≡L ↓T
Uniqueness?
I ↓T is not unique for a given T
I ↓T is unique if no two states in the NFA are languageequivalent
Compression
Language equivalence
For a set of transitions T :
I Language of T : L(T ) =⋃
t∈T L(t)
I Proposition: T ≡L ↓T
Uniqueness?
I ↓T is not unique for a given T
I ↓T is unique if no two states in the NFA are languageequivalent
Compression
Language equivalence
For a set of transitions T :
I Language of T : L(T ) =⋃
t∈T L(t)
I Proposition: T ≡L ↓T
Uniqueness?
I ↓T is not unique for a given T
I ↓T is unique if no two states in the NFA are languageequivalent
Sets of transitions
Language equivalence
I For any state p, Tp is the set of outgoing transitions of p
I L(p) = L(Tp)
∪{{λ} if p ∈ F∅ if p 6∈ F
I For any set of states P: L(P) =⋃
p∈P L(p)
DFA state
I A set of transitions T
I T does not determine whether the state is final
I Add a boolean
Sets of transitions
Language equivalence
I For any state p, Tp is the set of outgoing transitions of p
I L(p) = L(Tp)
∪{{λ} if p ∈ F∅ if p 6∈ F
I For any set of states P: L(P) =⋃
p∈P L(p)
DFA state
I A set of transitions T
I T does not determine whether the state is final
I Add a boolean
Sets of transitions
Language equivalence
I For any state p, Tp is the set of outgoing transitions of p
I L(p) = L(Tp) ∪{{λ} if p ∈ F∅ if p 6∈ F
I For any set of states P: L(P) =⋃
p∈P L(p)
DFA state
I A set of transitions T
I T does not determine whether the state is final
I Add a boolean
Sets of transitions
Language equivalence
I For any state p, Tp is the set of outgoing transitions of p
I L(p) = L(Tp) ∪{{λ} if p ∈ F∅ if p 6∈ F
I For any set of states P: L(P) =⋃
p∈P L(p)
DFA state
I A set of transitions T
I T does not determine whether the state is final
I Add a boolean
Sets of transitions
Language equivalence
I For any state p, Tp is the set of outgoing transitions of p
I L(p) = L(Tp) ∪{{λ} if p ∈ F∅ if p 6∈ F
II For any set of states P:
L(P) =⋃
p∈P L(Tp) ∪{{λ} if p ∈ F∅ if p 6∈ F
DFA state
I A set of transitions T
I T does not determine whether the state is final
I Add a boolean
Sets of transitions
Language equivalence
I For any state p, Tp is the set of outgoing transitions of p
I L(p) = L(Tp) ∪{{λ} if p ∈ F∅ if p 6∈ F
II For any set of states P:
L(P) =⋃
p∈P L(Tp) ∪{{λ} if p ∈ F∅ if p 6∈ F
DFA state
I A set of transitions T
I T does not determine whether the state is final
I Add a boolean
Solution 2
Algorithm
I Minimize NFA under language semantics
I Subset construction; DFA states are tuples (T , b)
I Replace every (T , b) by (↓T , b)
Implementation
I Minimize NFA under simulation semantics
I Use ⊂→ for compression
Solution 2
Algorithm
I Minimize NFA under language semantics
I Subset construction; DFA states are tuples (T , b)
I Replace every (T , b) by (↓T , b)
Implementation
I Minimize NFA under simulation semantics
I Use ⊂→ for compression
Conclusions
Done:
I Two algorithms for NFA −→ minimal DFA
I Aim: improve space efficiency (average case)
I Implementation trade-off: simulation semantics
I Suboptimal results
To do:
I Implement Solution 2
I Investigate performance gain in practice (benchmarking!)
I Compare to other tools
I Finish paper
Conclusions
Done:
I Two algorithms for NFA −→ minimal DFA
I Aim: improve space efficiency (average case)
I Implementation trade-off: simulation semantics
I Suboptimal results
To do:
I Implement Solution 2
I Investigate performance gain in practice (benchmarking!)
I Compare to other tools
I Finish paper
Conclusions
Done:
I Two algorithms for NFA −→ minimal DFA
I Aim: improve space efficiency (average case)
I Implementation trade-off: simulation semantics
I Suboptimal results
To do:
I Implement Solution 2
I Investigate performance gain in practice (benchmarking!)
I Compare to other tools
I Finish paper
Conclusions
Done:
I Two algorithms for NFA −→ minimal DFA
I Aim: improve space efficiency (average case)
I Implementation trade-off: simulation semantics
I Suboptimal results
To do:
I Implement Solution 2
I Investigate performance gain in practice (benchmarking!)
I Compare to other tools
I Finish paper
Conclusions
Done:
I Two algorithms for NFA −→ minimal DFA
I Aim: improve space efficiency (average case)
I Implementation trade-off: simulation semantics
I Suboptimal results
To do:
I Implement Solution 2
I Investigate performance gain in practice (benchmarking!)
I Compare to other tools
I Finish paper