|
| | OneTapeDTM (ext::set< StateType > states, ext::set< SymbolType > tapeAlphabet, SymbolType blankSymbol, ext::set< SymbolType > inputAlphabet, StateType initialState, ext::set< StateType > finalStates) |
| | Creates a new instance of the automaton with a concrete set of states, tape alphabet, blank symbol, input alphabet, initial state, and a set of final states. More...
|
| |
| | OneTapeDTM (StateType initial, SymbolType blank) |
| | Creates a new instance of the automaton with a concrete initial state and blank symbol. More...
|
| |
| const StateType & | getInitialState () const & |
| |
| StateType && | getInitialState () && |
| |
| bool | setInitialState (StateType state) |
| |
| const ext::set< StateType > & | getStates () const & |
| |
| ext::set< StateType > && | getStates () && |
| |
| bool | addState (StateType state) |
| |
| void | setStates (ext::set< StateType > states) |
| |
| void | removeState (const StateType &state) |
| |
| const ext::set< StateType > & | getFinalStates () const & |
| |
| ext::set< StateType > && | getFinalStates () && |
| |
| bool | addFinalState (StateType state) |
| |
| void | setFinalStates (ext::set< StateType > states) |
| |
| void | removeFinalState (const StateType &state) |
| |
| const ext::set< SymbolType > & | getInputAlphabet () const & |
| |
| ext::set< SymbolType > && | getInputAlphabet () && |
| |
| bool | addInputSymbol (SymbolType symbol) |
| |
| void | addInputSymbols (ext::set< SymbolType > symbols) |
| |
| void | setInputAlphabet (ext::set< SymbolType > symbols) |
| |
| void | removeInputSymbol (const SymbolType &symbol) |
| |
| const ext::set< SymbolType > & | getTapeAlphabet () const & |
| |
| ext::set< SymbolType > && | getTapeAlphabet () && |
| |
| bool | addTapeSymbol (SymbolType symbol) |
| |
| void | addTapeSymbols (ext::set< SymbolType > symbols) |
| |
| void | setTapeAlphabet (ext::set< SymbolType > symbols) |
| |
| void | removeTapeSymbol (const SymbolType &symbol) |
| |
| const SymbolType & | getBlankSymbol () const & |
| |
| SymbolType && | getBlankSymbol () && |
| |
| bool | setBlankSymbol (SymbolType state) |
| |
| bool | addTransition (StateType from, SymbolType input, StateType to, SymbolType output, Shift shift) |
| | Add a transition to the automaton. More...
|
| |
| bool | removeTransition (const StateType &from, const SymbolType &input, const StateType &to, const SymbolType &output, const Shift &shift) |
| | Removes a transition from the automaton. More...
|
| |
| const ext::map< ext::pair< StateType, SymbolType >, ext::tuple< StateType, SymbolType, Shift > > & | getTransitions () const & |
| |
| ext::map< ext::pair< StateType, SymbolType >, ext::tuple< StateType, SymbolType, Shift > > && | getTransitions () && |
| |
| auto | operator<=> (const OneTapeDTM &other) const |
| |
| bool | operator== (const OneTapeDTM &other) const |
| |
| void | accessComponent () |
| |
template<class SymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
class automaton::OneTapeDTM< SymbolTypeT, StateTypeT >
Deterministic single tape turing machine. Accepts recursive languages.
Definition is classical definition of finite automata. A = (Q, T, G, \delta, I, B, F), Q (States) = nonempty finite set of states, T (TerminalAlphabet) = finite set of terminal symbols - having this empty won't let automaton do much though, G (TapeAlphabet) = finite work alphabet \delta = transition function of the form A \times a -> B \times b \times {-1, 0, 1}, where A, B \in Q \ F and a, b \in G, I (InitialState) = initial state, B (BlankSymbol) = blank symbol F (FinalStates) = set of final states
- Template Parameters
-
| SymbolTypeT | used for the terminal alphabet |
| StateTypeT | used to the states, and the initial state of the automaton. |