- •1 Introduction (Введение)
- •2 Generalized block diagram of a finite state machine (Обобщенная структурная схема конечного автомата).
- •Push – вталкивать данные в стек;
- •Graphs (Графы)
- •Figure 3: Directed labeled graph for the edge detector Ориентированный помеченный граф для краевого детектора)
- •4 Finite State Machines (Конечные Автоматы)
- •5 Unified Modeling Language (Унифицированный язык моделирования)
- •Uml state machines (конечные автоматы унифицированного языка моделирования).
- •Fsm logic (логическая схема работы конечного автомата).
- •State diagrams versus flowcharts (диаграммы состояний в сравнении с блок-схемами программ)
- •Uml state diagram (диаграмма состояний уям)
- •Defining a State diagram (построение диаграммы состояний)
- •Elements of a State diagram (Элементы диаграммы состояний)
- •Asm Chart (диаграмма алгоритмического конечного автомата)
- •Detailed asm Chart (подробная диаграмма asm).
- •Register transfer level (Условное изображение на уровне rtl).
- •Rtl in the circuit design cycle (описание на уровне rtl для разработки имс).
- •Automata-based programming (программирование с помощью модели конечных автоматов).
- •Example (пример)
- •Traditional (imperative) program (обычная императивная программа).
- •Расшифровка операторов программы на языке с:
- •Automata-based style program (программа на основе модели конечного автомата)
- •A separate function for the automaton step (отдельная функция для этапа конечного автомата)
- •Explicit state transition table (таблица переходов состояний в явном виде)
- •Using object-oriented capabilities (использование объектно-ориентированных возможностей)
- •Other extensions
- •Moore machine
- •Formal definition
- •Mealy machine
- •Formal definition
- •Mathematical model
- •Advantages and disadvantages (преимущества и недостатки).
- •Formal definition (формальное определение).
- •Example (пример)
- •Example (пример)
- •Transformations from/to state diagram (переход от/к диаграмме состояний).
- •Directed graph of a finite state machine (направленный граф конечного автомата).
- •Harel statechart (диаграммы Harel).
- •С. State transition table (таблица смены состояний).
- •Δ and λ aren’t shown in Fig.1. Δ и λ не показаны на схеме для визуального упрощения.
- •The methods to define automata (Способы задания автоматов)
- •Transition and output tables (Таблицы переходов и выходов)
- •Transition and output tables for Mealy automaton (тпв автомата Мили)
- •Transition and output tables for Moore automaton (тпв автомата Мура)
Formal definition (формальное определение).
Two similar types of NFA's are commonly defined: the NFA and the NFA with ε-moves. The ordinary NFA is defined as a 5-tuple, (Q, Σ, T, q0, F), consisting of (два подобных типа автоматов NFA имеют общее определение: NFA и NFA с ε-перемещением. Простой автомат NFA имеет 5 элементов (Q, Σ, T, q0, F), которые состоят из):
a finite set of states Q (конечный набор состояний Q);
a finite set of input symbols Σ (конечный набор входных символов Σ);
a transition function T : Q × Σ → P(Q) (функцию перехода T : Q × Σ → P(Q));
an initial (or start) state q0 ∈ Q (начальное состояние q0 ∈ Q);
a set of states F distinguished as accepting (or final) states F ⊆ Q (набор состояний F, которые определяются как поглощающие (или конечные) F ⊆ Q.
Here, P(Q) denotes the power set of Q. The NFA with ε-moves (also sometimes called NFA-epsilon or NFA-lambda) replaces the transition function with one that allows the empty string ε as a possible input, so that one has instead (Таким образом, P(Q) символизирует степенное множество Q. Автомат NFA с ε-перемещением (иногда называемый как NFA-epsilon или NFA-lambda) заменяет функцию перехода такой функцией, которая допускает пустую строку в качестве возможного входа, такую, которую используют взамен):
T : Q × (Σ ∪{ε}) → P(Q).
It can be shown that ordinary NFA and NFA with epsilon moves are equivalent, in that, given either one, one can construct the other, which recognizes the same language (можно показать, что простой автомат NFA и автомат NFA с ε-перемещением являются эквивалентными, при этом, имея один из них, можно построить другой, который распознает тот же язык).
Example (пример)
The following example explains a NFA M, with a binary alphabet, which determines if the input contains an even number of 0s or an even number of 1s (следующий пример поясняет автомат NFA М с двоичным алфавитом, который определяет, имеет ли вход четное число нулей (0) или четное число единиц (1)).
Let M = (Q, Σ, T, , F) where (пусть M = (Q, Σ, T, , F), где):
Σ = {0, 1},
Q = { , s1, s2, s3, s4},
E({ }) = { , s1, s3 }
F = {s1, s3}, and
The transition function T can be defined by this state transition table (функцию перехода Т можно определить с помощью данной таблицы перехода состояний):
The state diagram for M is (диаграмма состояний М):
M can be viewed as the union of two DFAs: one with states {S1, S2} and the other with states {S3, S4}. The language of M can be described by the regular language given by this regular expression:
М можно рассматривать в качестве соединения двух автоматов DFA: один автомат имеет состояния {S1, S2}, второй - {S3, S4}. Язык М можно описать регулярным языком, который определяется данным регулярным выражением: , где - знак логического сложения.
In the theory of computation, the power set construction or subset construction is a standard method for converting a nondeterministic finite automaton (NFA) into a deterministic finite automaton (DFA) which recognizes the same formal language. It is important in theory because it establishes that NFAs, despite their additional flexibility, are unable to recognize any language that cannot be recognized by some DFA. It is also important in practice for converting easier-to-construct NFAs into more efficiently executable DFAs. However, if the NFA has n states, the resulting DFA can have up to 2n states, exponentially more, which sometimes makes the construction impractical for large NFAs.
В теории вычислений конструкция степенного множества или подмножества является стандартным методом преобразования автомата NFA в автомат DFA, который признает тот же самый формальный язык. Это положение очень важно с теоретической точки зрения, поскольку оно указывает, что автоматы NFA, несмотря на свою дополнительную гибкость, не способны распознавать какой-либо язык, который не может распознаваться некоторыми автоматами DFA. Это положение также важно практически, поскольку оно позволяет преобразовать более простые по конструкции автоматы NFA в более эффективно работающие автоматы DFA.
Однако, если автомат NFA имеет n состояний, то полученный в результате преобразования автомат DFA может иметь до 2n состояний, что делает такое преобразование непрактичным.