Машина Тьюринга — различия между версиями
Ws (обсуждение | вклад) (Восстановление статей Logic-samara) |
м |
||
| (не показано 12 промежуточных версий 2 участников) | |||
| Строка 1: | Строка 1: | ||
'''Машина Тьюринга''' (МТ) — это абстрактная вычислительная машина для выполнения программ, предложенная английским математиком Аланом Мэтисоном Тьюрингом в 1936 году. | '''Машина Тьюринга''' (МТ) — это абстрактная вычислительная машина для выполнения программ, предложенная английским математиком Аланом Мэтисоном Тьюрингом в 1936 году. | ||
| − | + | = Машина Тьюринга = | |
== Состав МТ == | == Состав МТ == | ||
МТ состоит из управляющего устройства (каретки или считывающей и записывающей головки) и ленты, разбитой на секции (ячейки) и бесконечной в обе стороны. | МТ состоит из управляющего устройства (каретки или считывающей и записывающей головки) и ленты, разбитой на секции (ячейки) и бесконечной в обе стороны. | ||
| Строка 11: | Строка 11: | ||
Правил нет только для заключительного состояния, попав в которое машина останавливается. | Правил нет только для заключительного состояния, попав в которое машина останавливается. | ||
Работа МТ определяется программой, состоящей из конечного числа командных строк. | Работа МТ определяется программой, состоящей из конечного числа командных строк. | ||
| − | |||
== Виды команд: == | == Виды команд: == | ||
| − | * сдвиг вправо | + | *сдвиг вправо |
| − | * сдвиг влево | + | *сдвиг влево |
| − | * остаться на месте | + | *остаться на месте |
| − | * запись символа алфавита в ячейку | + | *запись символа алфавита в ячейку |
| − | * перейти в состояние из множества | + | *перейти в состояние из множества |
| − | + | ||
Введём обозначения: | Введём обозначения: | ||
| Строка 42: | Строка 40: | ||
'''M''' — оставание на месте. | '''M''' — оставание на месте. | ||
| − | |||
== Виды командных строк: == | == Виды командных строк: == | ||
'''s<sub>1</sub>a<sub>1</sub>s<sub>2</sub>a<sub>2</sub>M''' — при считывании символа '''a<sub>1</sub>''' в состоянии '''s<sub>1</sub>''' записать символ '''a<sub>2</sub>''', перейти в состояние '''s<sub>2</sub>''' и остаться на месте; | '''s<sub>1</sub>a<sub>1</sub>s<sub>2</sub>a<sub>2</sub>M''' — при считывании символа '''a<sub>1</sub>''' в состоянии '''s<sub>1</sub>''' записать символ '''a<sub>2</sub>''', перейти в состояние '''s<sub>2</sub>''' и остаться на месте; | ||
| Строка 54: | Строка 51: | ||
После запуска программы на МТ возможны следующие варианты: | После запуска программы на МТ возможны следующие варианты: | ||
| − | * работа может закончиться если система переходит в терминальное (конечное) состояние; | + | *работа может закончиться если система переходит в терминальное (конечное) состояние; |
| − | * работа никогда не закончится (т.е.программа составлена не корректно). | + | *работа никогда не закончится (т.е.программа составлена не корректно). |
| − | + | ||
== Пример задачи == | == Пример задачи == | ||
[[файл:МТ11.JPG]], где '''x''', '''y''' - неотрицательные целые числа. | [[файл:МТ11.JPG]], где '''x''', '''y''' - неотрицательные целые числа. | ||
| − | |||
=== Программа для МТ === | === Программа для МТ === | ||
[[файл:МТ12.JPG]] | [[файл:МТ12.JPG]] | ||
| − | |||
=== Таблица для программы === | === Таблица для программы === | ||
[[файл:МТ13.JPG]] | [[файл:МТ13.JPG]] | ||
| − | + | == Примеры работы МТ: == | |
| − | + | ||
Введём обозначения: | Введём обозначения: | ||
| Строка 80: | Строка 73: | ||
'''1<sup>x+1</sup>λ1<sup>y+1</sup>''' — набор значений аргументов '''(x,y)'''. | '''1<sup>x+1</sup>λ1<sup>y+1</sup>''' — набор значений аргументов '''(x,y)'''. | ||
| − | + | === Пример 1 === | |
| − | + | ||
Входные данные: '''1<sub>1</sub>1λ1'''. | Входные данные: '''1<sub>1</sub>1λ1'''. | ||
| Строка 87: | Строка 79: | ||
Выходные данные: '''λ<sub>0</sub>λλλλ1'''. | Выходные данные: '''λ<sub>0</sub>λλλλ1'''. | ||
| − | + | === Пример 2 === | |
| − | + | ||
Входные данные: '''1<sub>1</sub>λ111'''. | Входные данные: '''1<sub>1</sub>λ111'''. | ||
| Строка 94: | Строка 85: | ||
Выходные данные: '''λ1<sub>0</sub>11'''. | Выходные данные: '''λ1<sub>0</sub>11'''. | ||
| − | + | *Заметим, что [[машина Поста]] во многом аналогична машине Тьюринга. | |
| − | * Заметим, что [[машина Поста]] во многом аналогична машине Тьюринга. | + | == [[Алгоритм|Другие алгоритмы:]] == |
| − | + | {{Список Алг}} | |
| − | == | + | = [[Разделы математики|Другие разделы]] = |
| − | * Википедия | + | = Ссылки = |
| − | * [[Участник:Logic-samara]] | + | *Википедия. Машина Тьюринга. |
| − | [[Категория:Дискретная математика]][[Категория:Алгоритмы]] | + | *[[Участник:Logic-samara]] |
| + | [[Категория:Математика]][[Категория:Дискретная математика]][[Категория:Алгоритмы]] | ||
Текущая версия на 13:03, 14 января 2024
Машина Тьюринга (МТ) — это абстрактная вычислительная машина для выполнения программ, предложенная английским математиком Аланом Мэтисоном Тьюрингом в 1936 году.
Содержание
Машина Тьюринга
Состав МТ
МТ состоит из управляющего устройства (каретки или считывающей и записывающей головки) и ленты, разбитой на секции (ячейки) и бесконечной в обе стороны. В каждой ячейке ленты может быть какой-либо символ конечного алфавита, включающего пробел. За один шаг каретка может считать и записать символ алфавита в том месте, где она стоит и сдвинуться на одну позицию влево или вправо или остаться на месте. Управляющее устройство может находиться в одном из множества состояний. Число возможных состояний управляющего устройства конечно и точно задано. Управляющее устройство работает согласно правилам перехода (командным строкам), которые представляют алгоритм (программу). Конкретная программа для МТ задаётся перечислением элементов множества букв алфавита, множества состояний и набором правил, по которым работает МТ. Для каждой возможной конфигурации имеется ровно одно правило. Правил нет только для заключительного состояния, попав в которое машина останавливается. Работа МТ определяется программой, состоящей из конечного числа командных строк.
Виды команд:
- сдвиг вправо
- сдвиг влево
- остаться на месте
- запись символа алфавита в ячейку
- перейти в состояние из множества
Введём обозначения:
n — число состояний управляющего устройства без конечного;
Q={q0, q1, q2, …, qn} — множество состояний управляющего устройства с конечным состоянием (q0);
k — число символов алфавита;
A={a1, a2, …, ak} — алфавит с пробелом (λ);
s1 — номер состояния, в котором управляющее устройство находится до выполнения команды;
s2 — номер состояния, в которое управляющее устройство переходит после выполнения команды;
a1 — считываемый символ a1;
a2 — записываемый символ a2;
R — сдвиг вправо;
L — сдвиг влево;
M — оставание на месте.
Виды командных строк:
s1a1s2a2M — при считывании символа a1 в состоянии s1 записать символ a2, перейти в состояние s2 и остаться на месте;
s1a1s2a2R — при считывании символа a1 в состоянии s1 записать символ a2, перейти в состояние s2 и осуществить сдвиг каретки вправо на 1 ячейку;
s1a1s2a2L — при считывании символа a1 в состоянии s1 записать символ a2, перейти в состояние s2 и осуществить сдвиг каретки влево на 1 ячейку.
Для работы машины Тьюринга нужно задать программу и её начальное состояние (т. е. состояние управляющей системы, состояние ленты и позицию каретки). Предполагается, что неопределённая часть ленты заполнена символами пробела, т.е. она чистая.
После запуска программы на МТ возможны следующие варианты:
- работа может закончиться если система переходит в терминальное (конечное) состояние;
- работа никогда не закончится (т.е.программа составлена не корректно).
Пример задачи
, где x, y - неотрицательные целые числа.
Программа для МТ
Таблица для программы
Примеры работы МТ:
Введём обозначения:
1 — число 0;
11 — число 1;
111 — число 2;
1x+1 — неотрицательное целое число x;
1y+1 — неотрицательное целое число y;
1x+1λ1y+1 — набор значений аргументов (x,y).
Пример 1
Входные данные: 111λ1.
Выходные данные: λ0λλλλ1.
Пример 2
Входные данные: 11λ111.
Выходные данные: λ1011.
- Заметим, что машина Поста во многом аналогична машине Тьюринга.
Другие алгоритмы:
- алгоритм метода математической индукции;
- алгоритмы в арифметике;
- алгоритмы перевода чисел;
- комбинаторные алгоритмы;
- алгоритм сортировки;
- алгоритм определения мест;
- логистические алгоритмы;
- алгоритмы решения транспортных задач;
- алгоритмы численных методов;
- алгоритмы построенные с помощью машины Поста;
- алгоритмы построенные с помощью машины Тьюринга;
- алгоритм синтеза автомата Мили;
- алгоритм синтеза автомата Мура.
Другие разделы
Ссылки
- Википедия. Машина Тьюринга.
- Участник:Logic-samara