- •Основные понятия теории алгоритмов
- •Конечные автоматы
- •Рекурсивные функции
- •Операция суперпозиции
- •Операции примитивной рекурсии
- •Определение минимального корня. Метод минимизации.
- •Машины Тьюринга (мт)
- •Разработка машин Тьюринга
- •Несмотря на количество лент такая машина может выполнять стандартный набор действий: -лево
- •Пример:
- •Итого, получаем следущий нам:
- •Итого, получаем следующий алгоритм перевода чисел из четверичной системы в двоичную
- •Все эти действия реализуются в виде следующего нам
Конечные автоматы
Детерминированным
конечным автоматом называется произвольная
пятерка следующего вида: M
={Q,
,
δ, S
,F}
При этом:
Q,
,
F
– конечные множества
S
Q,
F
Q,
δ:Q
→Q
δ
– функция перехода из Q
→Q
– алфавит автомата М (входной)
Q – множество состояний конечного автомата (внутренний алфавит)
S – начальное состояние
F – множество конечных состояний
δiq1q2
Q
и
a
q2
= δ(q1,a)
Если
q1q2
Q
и для некоторых a
можно записать q2
= δ(q1,a),
то говорят что автомат М переходит из
состояния q1
в
состояние
q2
под
действием а.
Конечные автоматы изображаются графами(рис.3): вершины – состояния, дуги – переход из 1 состояния в другое при этом над дугой пишут символы, под влиянием которых осуществляется переход.

Рисунок 3 – Изображение конечного автомата.
∆ - начальное состояние
-
конечное состояние
= {a,b}
Q = {q0, q1}
S = q0
F = {q1}
|
Q |
a |
b |
|
q0 |
q0 |
q1 |
|
q1 |
q0 |
q1 |
Пример: является ли слово mamba подсловом некоторого алфавита.
= {m,a,b,_,др}
Q = {q0, q1, q2, q3, q4, q5, q6}
S = q0
F = {q5, q6}

|
Q |
a |
b |
m |
_ |
др |
|
q0 |
q0 |
q0 |
q1 |
q6 |
q0 |
|
q1 |
q2 |
q0 |
q1 |
q6 |
q0 |
|
q2 |
q0 |
q0 |
q3 |
q6 |
q0 |
|
q3 |
q2 |
q4 |
q1 |
q6 |
q0 |
|
q4 |
q5 |
q0 |
q1 |
q6 |
q0 |
Кодирование входного алфавита и состояний
|
|
С |
|
a |
000 |
|
B |
001 |
|
m |
011 |
|
_ |
010 |
|
др |
110 |
|
Q |
С |
|
q0 |
000 |
|
q1 |
001 |
|
q2 |
011 |
|
q3 |
010 |
|
q4 |
110 |
|
q5 |
111 |
|
q6 |
101 |
Реализация конечного автомата
|
∑ |
Q^t |
Q^(t+1) | |||||||
|
X0 |
X1 |
X2 |
R0 |
R1 |
R2 |
R0 |
R1 |
R2 | |
|
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 | |
|
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 | |
|
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 | |
|
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 | |
|
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 | |
|
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 | |
|
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 | |
|
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 | |
|
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
1 | |
|
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 | |
|
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 | |
|
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 | |
|
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 | |
|
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 | |
|
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 | |
|
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 | |
|
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 | |
|
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 | |
|
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 | |
|
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 | |
|
0 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 | |
|
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 | |
|
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 | |
|
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 | |
|
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 | |
Составим функцию для r0:

r
0
= x0x1x2
r0x1x2
r0r1r2x1x2
Составим функцию для r1:

r
1
= r0x1x2
r0r1r2x1
r1r2x1x2
r1r2x1x2
Составим функцию для r2:

r
2
=
r1r2x1x2
r1x1x2
x0x1x2
r1r2x1x2


