Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Determinize.h
Go to the documentation of this file.
1
6/*
7 * This file is part of Algorithms library toolkit.
8 * Copyright (C) 2017 Jan Travnicek (jan.travnicek@fit.cvut.cz)
9
10 * Algorithms library toolkit is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation, either version 3 of the License, or
13 * (at your option) any later version.
14
15 * Algorithms library toolkit is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19
20 * You should have received a copy of the GNU General Public License
21 * along with Algorithms library toolkit. If not, see <http://www.gnu.org/licenses/>.
22 */
23
24#pragma once
25
26#include <alib/set>
27
34#include <automaton/FSM/NFA.h>
35#include <automaton/FSM/DFA.h>
37#include <automaton/TA/NFTA.h>
38#include <automaton/TA/DFTA.h>
43
45
46#include <automaton/PDA/NPDA.h>
47#include <automaton/PDA/DPDA.h>
50
52
53namespace automaton {
54
55namespace determinize {
56
61public:
71 template < class SymbolType, class StateType >
73
82 template < class SymbolType, class StateType >
84
93 template < class SymbolType, class StateType >
95
106 template < class SymbolType, class StateType >
108
118 template < class SymbolType, class StateType >
120
131 template < class SymbolType, class StateType >
133
143 template < class SymbolType, class StateType >
145
156 template < class InputSymbolType, class PushdownSymbolType, class StateType >
158
168 template < class InputSymbolType, class PushdownSymbolType, class StateType >
170
181 template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
183
193 template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
195
206 template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
208
218 template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
220
231 template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
233
244 template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
246
256 template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
258
268 template < class SymbolType, class StateType >
270
271 template < class SymbolType, class StateType >
273};
274
275template < class SymbolType, class StateType >
277 return automaton;
278}
279
280template < class SymbolType, class StateType >
282 return automaton;
283}
284
285template < class SymbolType, class StateType >
287 return automaton;
288}
289
290template < class InputSymbolType, class PushdownSymbolType, class StateType >
292 return automaton;
293}
294
295template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
297 return automaton;
298}
299
300template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
302 return automaton;
303}
304
305template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
307 return automaton;
308}
309
310template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
312 return automaton;
313}
314
315template < class InputSymbolType, class PushdownStoreSymbolType, class StateType >
318 return Determinize::determinize(rhpda);
319}
320
321template < class SymbolType, class StateType >
323 return automaton;
324}
325
326} /* namespace determinize */
327
328} /* namespace automaton */
329
330#include "DeterminizeNFAPart.hxx"
333#include "DeterminizeVPAPart.hxx"
336
Deterministic Z-Automaton in Arc-Factored Normal Form. Computation model for unranked regular tree la...
Definition: ArcFactoredDeterministicZAutomaton.h:65
Nondeterministic Z-Automaton in Arc-Factored Normal Form. Computation model for unranked regular tree...
Definition: ArcFactoredNondeterministicZAutomaton.h:67
Deterministic finite automaton. Accepts regular languages.
Definition: DFA.h:71
Nondeterministic finite tree automaton without epsilon transitions. Accepts regular tree languages.
Definition: DFTA.h:74
Deterministic pushdown automaton. Accepts subset of context free languages.
Definition: DPDA.h:78
Deterministic input driven pushdown automaton. Accepts subset of context free languages.
Definition: InputDrivenDPDA.h:79
Nondeterministic input driven pushdown automaton. Accepts subset of context free languages.
Definition: InputDrivenNPDA.h:79
Nondeterministic finite automaton with multiple initial states. Accepts regular languages.
Definition: MultiInitialStateNFA.h:69
Nondeterministic finite automaton. Accepts regular languages.
Definition: NFA.h:66
Nondeterministic finite tree automaton without epsilon transitions. Accepts regular tree languages.
Definition: NFTA.h:72
Definition: NPDA.h:74
Deterministic single tape turing machine. Accepts recursive languages.
Definition: OneTapeDTM.h:71
Deterministic real time height deterministic pushdown automaton. Accepts subset of context free langu...
Definition: RealTimeHeightDeterministicDPDA.h:89
Nondeterministic real time height deterministic pushdown automaton. Accepts subset of context free la...
Definition: RealTimeHeightDeterministicNPDA.h:76
Deterministic pushdown automaton requiring a symbol pop from pushdown store on each transition use....
Definition: SinglePopDPDA.h:78
Deterministic unordered finite tree automaton without epsilon transitions. Accepts regular tree langu...
Definition: UnorderedDFTA.h:72
Nondeterministic unordered finite tree automaton without epsilon transitions. Accepts regular tree la...
Definition: UnorderedNFTA.h:72
Deterministic visibly pushdown automaton. Accepts subset of context free languages.
Definition: VisiblyPushdownDPDA.h:86
Nondeterministic visibly pushdown automaton. Accepts subset of context free languages.
Definition: VisiblyPushdownNPDA.h:81
Definition: Determinize.h:60
static automaton::DFA< SymbolType, StateType > determinize(const automaton::DFA< SymbolType, StateType > &automaton)
Definition: Determinize.h:276
static automaton::RealTimeHeightDeterministicDPDA< InputSymbolType, PushdownStoreSymbolType, StateType > convert(const automaton::RealTimeHeightDeterministicDPDA< InputSymbolType, PushdownStoreSymbolType, StateType > &pda)
Definition: PDAToRHPDA.h:74
Definition: symbol_or_epsilon.hpp:24
Definition: set.hpp:44
Implementation of the variant class allowing to store any type of those listed in the template parame...
Definition: variant.hpp:98
Definition: ToGrammar.h:31