Вы находитесь на странице: 1из 44

КЫРГЫЗСКО –ГЕРМАНСКИЙ

ИНСТИТУТ ПРИКЛАДНОЙ
ИНФОРМАТИКИ
Кыргызско – германский институт
прикладной информатики

Образовательный портал: https://lms.inai.kg/

ДИСЦИПЛИНА: „ТЕОРЕТИЧЕСКАЯ ИНФОРМАТИКА“

к.т.н., доцент Кошоева Бибигуль Бейшенбековна


koshoevabibigul@gmail.com
+996551779422
Лекция №

АЛГОРИТМИЧЕСКИЕ МАШИНЫ
Алгоритмические машины (АМ)

• имеют единственный процессор, выполняющий небольшой


набор очень примитивных действий,
• простую структуру данных (структуру памяти) в виде
бесконечной ленты,
• простую логику (правила) управления процессором.
Основные АМ
• Машина Тьюринга (МТ) предложена Тьюрингом в 1937
г.
• Машина Поста (МР) предложена Постом в 1937 г.
• Нормальный алгоритм Маркова (НАМ) предложен
Марковым в 1953 г.
Машина Тьюринга

-абстрактный исполнитель (абстрактная вычислительная


машина). Была предложена Аланом Тьюрингом в 1936 году для
формализации понятия алгоритма.
Машина Тьюринга является расширением конечного автомата и,
согласно тезису Чёрча — Тьюринга, способна имитировать все
другие исполнители (с помощью задания правил перехода),
каким-либо образом реализующие процесс пошагового
вычисления, в котором каждый шаг вычисления достаточно
элементарен.
Автор
ТЬЮРИНГ Алан Матисон (Turing Alan Mathison)
(1912—1954), английский математик. Основные труды по
математической логике, вычислительной математике.
В 1936-37 годах ввел математическое понятие абстрактного
эквивалента алгоритма, или вычислимой функции,
получившее затем название «машины Тьюринга».
В возрасте 24 лет Тьюринг написал работу "О вычислимых
числах", которой суждено было сыграть исключительно
важную роль в развитии вычислительной математики и
информатики
Соглашение об алгоритме
Структура алгоритма (составляющие алгоритма)
• Процессорная структура. (Исполнитель алгоритма).
Во всех теоретических конструкциях алгоритмов и большинстве
алгоритмических языках это единственный процессор.
• Структуры данных. Структура данных это способ организация
записи, хранения и извлечение данных.
• Данные – это элементы множеств, которые нужно порождать или
распознавать.
Составляющие структуры
• Информационная структура алгоритма (ИСА). Структура функций
есть описание конструирования функции от функций из базовых.
• Логическая структура алгоритма (ЛСА) или программы (ЛСП).
ЛСА суть описание организации вычислительного процесса,
который управляется состоянием памяти.
Интерпретация МТ.
• Процессор – в МТ называется управляющей головкой (УГ).
• Структура данных (память процессора) бесконечная лента,
разбитая на ячейки, в ячейку может быть записан только один
символ
• Процесс вычислений происходит по тактам
• Процесс остановки (остановка) МТ.
 Замечание Список правил для МТ не упорядочен
МТ
• Тьюринг назвал свое абстрактное механическое устройство "универсальной
машиной", поскольку она должна была справляться с любой допустимой, то
есть теоретически разрешимой задачей — математической или логической.
• Данные должны были вводиться в машину на бумажной ленте, поделенной на
клетки — ячейки.
• Каждая такая ячейка либо содержала символ, либо была пустой.
• Машина могла не только обрабатывать записанные на ленте символы, но и
изменять их, стирая старые и записывая новые в соответствии с инструкциями,
хранимыми в ее внутренней памяти.
Машина Тьюринга
 Представляет собой бесконечную ленту,
разделенную на ячейки.
 Имеет управляющее устройство, которое
перемещается в двух направлениях.
 В управляющем устройстве содержится
таблица, которая описывает порядок
действий.

УУ
таблица
Абстрактная модель машины Тьюринга
• МТ = <Q, D, P, q0, qкон>

L R
xj, d

УУ xi
q
МТ = <Q, D, P, q0, qкон>
Машина Тьюринга состоит из трех
частей:
• ленты,
• считывающей-записывающей
головки,
• логического устройства

Лента выступает в качестве внешней памяти; она


считается неограниченной (бесконечной)
• Головка неподвижна, а лента передвигается относительно нее вправо или влево.
• Машина работает в некотором произвольном конечном алфавите
A = {ε a1…a n} – этот алфавит называется внешним.
• В нем выделяется специальный символ – ε, называемый пустым – его посылка в
какую-либо ячейку стирает тот символ, который до этого там находился, и оставляет
ячейку пустой.
• В каждую ячейку ленты может быть записан лишь один символ.
• Информация, хранящаяся на ленте, изображается конечной последовательностью
символов внешнего алфавита, отличных от пустого символа.
• Головка всегда расположена над одной из ячеек ленты.
• Работа происходит тактами (шагами).
• Система исполняемых головкой команд предельно проста:
на каждом такте она производит замену символа в обозреваемой
ячейке ai символом aj
• При этом возможны сочетания:
• j = i – это означает, что в обозреваемой ячейке символ не
изменился;
• i_0, j = 0 означает, что хранившийся в ячейке символ заменяется
пустым, т.е. стирается;
• i =0, j_ 0 означает, что пустой символ заменяется непустым (с
номером j в алфавите), т.е. производится вставка символа;
• i j_ 0 соответствует замене одного символа другим.
Команды перемещений ленты

• L («Left») на ячейку влево,


• R («Right») на ячейку вправо
• S («Stop») остаться на месте, т.е. адрес обозреваемой ячейки в результате
выполнения команды может либо измениться на 1, либо остаться неизменным.
Элементарный шаг (такт) работы
машины Тьюринга
• головка считывает символ из
обозреваемой ячейки и, в
зависимости от своего состояния и
прочитанного символа, выполняет
команду, в которой указано, какой
символ записать (или стереть) и
какое движение совершить. При
этом и головка переходит в новое
состояние
Определение
• Конфигурация машины- совокупность состояний всех ячеек
ленты, состояния УУ и положение головки
В зависимости от начальной конфигурации возможны два
варианта :
• после конечного числа тактов машина останавливается по
команде остановки; при этом на ленте оказывается конечная
конфигурация, соответствующая выходной информации;
• остановки не происходит.

В первом случае говорят, что данная машина применима к


начальной информации, во втором – нет.
Отличия читающего автомата с выходом и
МТ
Тезис Тьюринга
• Всякий алгоритм может быть задан посредством тьюринговой функциональной
схемы и реализован в соответствующей машине Тьюринга.

• Машина Тьюринга - это модель компьютера

Отличия ЭВМ и машины Тьюринга


Главное отличие машины Тьюринга от ЭВМ – бесконечная лента
В отличие от машины Тьюринга память реальных машин всегда конечна и ее
ограничения удается преодолеть путем организации циклов if(если) и for
(делай до тех пор пока)
Этапы решения задачи
Предметная Ассемблер
область

Аналитическая Микрокоманды
модель

Вычислительная Вентили
модель (булева алгебра)

Физико-
Языки технический
высокого уровня процесс
Представление машины Тьюринга
совокупностью команд
Совокупность всех команд, которые может выполнять машина,
называется ее программой. Машина Тьюринга считается заданной,
если заданы ее внешний и внутренний алфавиты, программа,
начальная конфигурация и указано, какие из символов обозначают
пустую ячейку и заключительное состояние.
Чтобы записать совокупность команд, нужно воспользоваться
следующими правилами:
1) начальному шагу алгоритма ставится в соответствие q 0 - начальное
состояние;
2) циклы реализуются так, что последнее действие цикла должно
соответствовать переходу в то состояние, которое соответствует
началу цикла;
3) соседним шагам алгоритма соответствует переход в смежные
состояния, которые соответствуют этим пунктам;
4) последний шаг алгоритма вызывает переход в заключительное
состояние.
В качестве примера рассмотрим совокупность команд машины
Тьюринга, которая инвертирует входную цепочку, записанную с
использованием нулей и единиц.
Пусть алфавит машины Тьюринга задан множеством A={0, 1,
ε}, где символ ε соответствует пустой ячейке, а число состояний
устройства управления задано в виде множества Q = {q0, q1, qz}.
Если, например, начальная конфигурация имеет вид q0110011,
то конечная конфигурация после завершения операции
инвертирования должна иметь вид qz001100.
Для решения задачи машиной будет порождена следующая
совокупность команд: q01 → q00R, q10 → q10L, q00 → q01R, q11
→ q11L, q0 ε → q1εL, q1ε → qzεR.
Представление машины Тьюринга графом
При представлении машины Тьюринга посредством графа необходимо каждому
состоянию поставить в соответствие вершину графа, а каждой команде -
помеченную дугу. Машина Тьюринга из рассмотренного примера
инвертирования цепочки, состоящей из символов 0 и 1, будет представлена в
виде графа следующим образом:

Начальная и конечная вершины графа обычно выделяются; на рисунке они


отмечены черным кружком. Если на очередном такте работы машины Тьюринга
символ на ленте не изменяется, то в правой части команды его можно не писать (ε
на ребре в состояние qz ).
Представление машины Тьюринга
таблицей соответствия
Пример 1.
• Построить машину Тьюринга, которая правильно вычисляет функцию f(x) =x+1 по правилам
двоичного сложения.
• Решение. Исходя из формулировки задачи, требующей вычислить функцию по правилам
сложения в двоичной системе сложения, выберем входной алфавит: А ={0, 1, ε}.
• Представим машины Тьюринга таблицей соответствия и графом. Таблица соответствия:
Запишем программу построенной машины Тьюринга для
случая, когда входная цепочка на ленте равна двоичному числу
111.
Слева от каждой команды приведем представление входной
цепочки на ленте до выполнения данной команды. Символ,
который находится под головкой, будем помечать
подчеркиванием.
1) q01 → q01R ε111ε 6) q11 → q10L ε110ε
2) q01 → q01R ε111ε 7) q11 → q10L ε100ε
3) q01 → q01R ε111ε 8) q1ε → q21L ε000ε
4) q0ε → q1εL ε111ε 9) q2 ε → qz εR ε1000ε
5) q11 → q10L ε111ε
Построение МТ
Для того чтобы доказать вычислимость функции, а в
дальнейшем и существование алгоритма необходимо построить
машину Тьюринга, реализация которой на практике зачастую
представляет собой трудоемкую задачу.
В связи с этим возникает необходимость разбиения алгоритма
на отдельные задачи, каждая из которых будет решаться отдельной
машиной Тьюринга.
Если объединить программы этих машин, то получится новая
программа, позволяющая решить исходную задачу.
Операции над машинами Тьюринга
1. Композиция машин Тьюринга. Пусть машины Т1 и Т2 имеют программы Р1 и Р2.
Предположим, что внутренние алфавиты этих машин не пересекаются; пусть qz1 -
заключительное состояние машины Т1, а q02 - начальное состояние машины Т2.
Заменим всюду в программе Р1 заключительное состояние qz1 на начальное
состояние q02 машины Т2 и полученную программу объединим с программой
Р2. Новая программа Р определяет машину Т, называемую композицией машин
Т1 и Т2 по паре состояний (qz1, q02).
Композиция машин может быть обозначена Т1 ⋅Т2 или Т1Т2. Более подробно
композиция машин записывается следующим образом:
Т = Т(Т1, Т2, (qz1, q02)), где
T1 = (Q1, A1, δ1, p01, pz1, a01, a11),
Т2= (Q2, A2, δ2, p02, pz2, a02, a12).
Операции над МТ
Пусть a01 = a02 = a0 и a11 = a12 = a1. Внешний алфавит композиции
Т1Т2 является объединением внешних алфавитов машин Т1 и Т2:

Операция композиции, выполняемая над алгоритмами, позволяет


получать новые, более сложные алгоритмы из ранее известных
простых алгоритмов.
2. Итерация машины Тьюринга. Эта операция применима только к
одной машине.
Пусть qz - заключительное состояние машины Т, а qn - какое-либо
состояние машины Т, не являющееся заключительным. Заменим
всюду в программе Р машины Т состояние qz на qn . Полученная
программа определяет новую машину Т′(qz, qn), которая называется
итерацией машины Т по паре состояний (qz, qn). Если машина
Тьюринга имеет одно заключительное состояние, то после
выполнения итерации получается машина, не имеющая
заключительного состояния.
Операции над МТ
Алгоритмическая машина Поста
Пример
Комментарий к примеру

 Последовательное исполнение команд 1 и 2 приводит к тому,


что головка за два такта работы машины сдвигается на одну
позицию вправо.
 Это передвижение продолжается до тех пор, пока после
очередного сдвига под головкой не окажется пустая ячейка –
тогда по команде 3 в нее будет поставлена метка
 и по команде 4 машина остановится
Тезис Чёрча — Тьюринга и алгоритмически
неразрешимые проблемы

 Алан Тьюринг высказал предположение (известное как Тезис Чёрча —


Тьюринга), что любой алгоритм в интуитивном смысле этого слова может
быть представлен эквивалентной машиной Тьюринга. Уточнение
представления о вычислимости на основе понятия машины Тьюринга (и
других эквивалентных ей понятий) открыло возможности для строгого
доказательства алгоритмической неразрешимости различных массовых
проблем (то есть проблем о нахождении единого метода решения некоторого
класса задач, условия которых могут варьироваться в известных пределах).
Простейшим примером алгоритмически неразрешимой массовой проблемы
является так называемая проблема применимости алгоритма (называемая
также проблемой остановки). Она состоит в следующем: требуется найти
общий метод, который позволял бы для произвольной машины Тьюринга
(заданной посредством своей программы) и произвольного начального
состояния ленты этой машины определить, завершится ли работа машины за
конечное число шагов, или же будет продолжаться неограниченно долго.
Литература:

1. Хопкрофт, Джон, Э., Мотвани, Раджив, Ульман, Джеффри, Д.. Введение в теорию автоматов, языков и
вычислений, 2-е изд.. : Пер. с англ. — М. : Издательский дом “Вильямс”, 2008. — 528 с. : ил. — Парал.
тит. англ. ISBN 978-5-8459-1347-0 (рус.)
2. АЛГОРИТМЫ И АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ БЕЛЕВАНЦЕВ АНДРЕЙ АНДРЕЕВИЧ ВМК МГУ
СПАСИБО
ЗА ВНИМАНИЕ !

Если Вы нуждаетесь в консультации,


можете связаться со мной через WhatsApp
+996551779422

Вам также может понравиться