Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lecture9a_FSM.doc
Скачиваний:
3
Добавлен:
19.11.2019
Размер:
5.49 Mб
Скачать

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 q0Q (начальное состояние q0 Q);

  • a set of states F distinguished as accepting (or final) states FQ (набор состояний 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 состояний, что делает такое преобразование непрактичным.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]