|
|
|
|
semiautomaton
|
(Definition)
|
|
|
A semiautomaton is basically an automaton without designated sets of starting and final states. Formally, a semiautomaton $A$ is a triple $(S,\Sigma,\delta)$ where
- $S$ is a non-empty set whose elements are called states
- $\Sigma$ is a non-empty set whose elements are called input symbols, and
- $\delta$ is a transition function that assigns each pair $(s,a)$ of state $s$ and input symbol $a$ a subset $\delta(s,a)$ of states in $S$ .
A semiautomaton $A$ is said to be deterministic if $\delta(s,a)$ is a singleton for each $(s,a)\in S\times \Sigma$ . In otherwords, $\delta$ is a function from $S\times \Sigma$ to $S$ . Otherwise, it is non-deterministic. A deterministic semiautomaton is also called a state machine. A semiautomaton is said to be finite if both
$S$ and $\Sigma$ are finite. A finite state machine (fsm for short) is a state machine that is finite.
A finite semiautomaton $A$ can be visualized by what is known as the state diagram $G_A$ of $A$ . Given $A$ , the state diagram can be constructed as follows: the vertices of $G_A$ are the states of $A$ . Given two vertices $s,t$ , an edge from $s$ to $t$ is constructed iff $t\in \delta(s,a)$ for some $a\in \Sigma$ . The edge is then labeled $a$ .
For example, let $A$ be defined as follows: $S=\lbrace r,s,t\rbrace$ , $\Sigma = \lbrace a, b, c\rbrace$ , and the transition function $\delta$ is given by the following table:
| |
$a$ |
$b$ |
$c$ |
| $r$ |
$s$ |
$r$ |
$t$ |
| $s$ |
$\varnothing$ |
$t$ |
$r$ |
| $t$ |
$t$ |
$s$ |
$r,s$ |
Then the state diagram $G_A$ is given by
What we would like to do is to extend the transition function $\delta$ so it is applicable to all finite strings over $\Sigma$ . This is done in two steps:
- extend $\delta$ to a function $\delta': P(S)\times \Sigma \to P(S)$ via the subset construction,
- extend $\delta'$ to a function $\delta_1: P(S)\times \Sigma^*\to P(S)$ recursively, given by
Without causing any confusion, we may identify $\delta_1$ with $\delta$ . Basically, when a string $u=a_1a_2\cdots a_n$ is fed into a semiautomaton $A$ in state $s$ , $\delta$ takes the first symbol $a_1$ and computes the next states $\delta(s,a_1)$ . Then it takes the next symbol $a_2$ and computes the next states $\delta(\delta(s,a_1),a_2)$ , and so on. It continues to do this until the last symbol $a_n$ has been consumed, and the next states corresponding to $(s,u)$ is $\delta(s,u)$ . From the recursive definition above, it is not hard to see that
$$\delta(Q,uv)=\delta(\delta(Q,u),v)$$ for any $u,v\in \Sigma^*,$ as the concatenation operation is associative.
In the case of a deterministic semiautomaton, $\delta$ is just a function $S\times \Sigma^*$ to $S$ .
Remark. Like groups and rings, semiautomata can be considered as algebraic objects, so that concepts such as subsemiautomata and homomorphisms between semiautomata may be defined. However, unlike groups and rings, which are defined based on a single set, semiautomata are two-sorted, in that two sets are needed for the definition.
- 1
- A. Ginzburg, Algebraic Theory of Automata, Academic Press (1968).
- 2
- M. Ito, Algebraic Theory of Automata and Languages, World Scientific (2004).
|
"semiautomaton" is owned by CWoo.
|
|
(view preamble | get metadata)
Cross-references: homomorphisms, subsemiautomata, objects, algebraic, rings, groups, associative, operation, concatenation, recursive, subset construction, strings, iff, edge, vertices, finite, function, singleton, deterministic, subset, transition function, states, elements, final states, automaton
There are 16 references to this entry.
This is version 16 of semiautomaton, born on 2008-01-30, modified 2009-09-22.
Object id is 10229, canonical name is Semiautomaton.
Accessed 1703 times total.
Classification:
| AMS MSC: | 68Q45 (Computer science :: Theory of computing :: Formal languages and automata) | | | 03D05 (Mathematical logic and foundations :: Computability and recursion theory :: Automata and formal grammars in connection with logical questions) | | | 20M35 (Group theory and generalizations :: Semigroups :: Semigroups in automata theory, linguistics, etc.) | | | 68Q70 (Computer science :: Theory of computing :: Algebraic theory of languages and automata) |
|
|
|
|
|
|
Pending Errata and Addenda
|
|
|
|
|
|
|
|
|
|
|