- •Основные понятия теории алгоритмов
- •Конечные автоматы
- •Рекурсивные функции
- •Операция суперпозиции
- •Операции примитивной рекурсии
- •Определение минимального корня. Метод минимизации.
- •Машины Тьюринга (мт)
- •Разработка машин Тьюринга
- •Несмотря на количество лент такая машина может выполнять стандартный набор действий: -лево
- •Пример:
- •Итого, получаем следущий нам:
- •Итого, получаем следующий алгоритм перевода чисел из четверичной системы в двоичную
- •Все эти действия реализуются в виде следующего нам
Конечные автоматы
Детерминированным конечным автоматом называется произвольная пятерка следующего вида: M ={Q, , δ, S ,F}
При этом:
Q, , F – конечные множества
SQ, FQ, δ:Q→Q
δ – функция перехода из Q →Q
– алфавит автомата М (входной)
Q – множество состояний конечного автомата (внутренний алфавит)
S – начальное состояние
F – множество конечных состояний
δiq1q2Q и a q2 = δ(q1,a)
Если q1q2Q и для некоторых 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:
r0 = x0x1x2 r0x1x2 r0r1r2x1x2
Составим функцию для r1:
r1 = r0x1x2 r0r1r2x1 r1r2x1x2r1r2x1x2
Составим функцию для r2:
r2 = r1r2x1x2 r1x1x2 x0x1x2r1r2x1x2