Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
all.docx
Скачиваний:
4
Добавлен:
30.04.2019
Размер:
4.46 Mб
Скачать

20. Какие функции называются монотонными, линейными, самодвойственными, сохраняющими ноль и сохраняющими единицу? Приведите примеры таких функций. Докажите замкнутость классов таких функций. Вопрос 27

Алгоритм — это конечный набор правил, который определяет последовательность операций для решения конкретного множества задач и обладает пятью важными чертами: конечность, определённость, ввод, вывод, эффективность

  • Конечность. Алгоритм всегда должен заканчиваться после выполнения конечного числа шагов.

  • Определенность. Каждый шаг алгоритма должен быть точно определен.

  • Наличие входных данных. Алгоритм имеет некоторое число входных данных, задающихся до начала его работы или определяющихся динамически во время его выполнения.

  • Наличие выходных данных. Алгоритм имеет одно или несколько выходных данных, имеющих определенную связь с входными данными.

  • Эффективность. Алгоритм обычно считается эффективным, если его операторы достаточно просты для того, чтобы их можно было точно выполнить в течение конечного промежутка времени с помощью карандаша и бумаги.

Формализация понятия алгоритма реализуется с помощью построения алгоритмических моделей.

Алгоритмическая модель — математическая модель, представленная в форме алгоритма, перерабатывающего заданный набор входных данных в заданный набор выходных данных. А.м. применяют, когда использование аналитических (расчетных) моделей затруднено либо нецелесообразно.

Можно выделить три основных типа универсальных алгоритмических моделей:

  • рекурсивные функции (понятие алгоритма связывается с вычислениями и числовыми функциями),

  • машины Тьюринга (алгоритм представляется как описание процесса работы некоторой гипотетической машины, способной выполнять лишь небольшое число весьма простых операций),

  • нормальные алгоритмы Маркова (алгоритм описывается как преобразования слов над произвольным алфавитом).

Вопрос 28

Машина Тьюринга была создана в 30-е годы математиком Аланом Тьюрингом (Англия) в качестве теоретического механизма для обоснования понятия алгоритма и для доказательства алгоритмической неразрешимости некоторых проблем. Машина решает следующую проблему: если для решения задачи можно построить машину Тьюринга, то она алгоритмически разрешима.

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

В каждой ячейке ленты может стоять любой символ из заданного алфавита, в котором выделен "пустой" символ - признак того, что ячейка пустая.

Машина имеет конечное множество внутренних состояний, начальное (с него начинается работа машины) и конечное состояние, попав в которое, машина прекращает работу.

Кроме ленты, имеется головка чтения/записи, которая, во-первых, умеет двигаться вперед, назад и стоять на месте; во-вторых, умеет читать содержимое, стирать и записывать символы из данного алфавита; в третьих, управляется программой.

Программа представляет собой таблицу, в которой в каждой клетке записана команда. Каждая клетка определяется двумя параметрами - символом алфавита и состоянием машины. Команда представляет собой указание, куда передвинуть головку чтения/записи из текущего состояния, какой символ записать в текущую ячейку и в какое состояние перейдет машина.

Способы представления машины Тьюринга

Существует три способа представления машины Тьюринга: совокупностью команд, в

виде графа, в виде таблицы соответствия.

  • Представление машины Тьюринга совокупностью команд

Совокупность всех команд, которые может выполнять машина, называется ее

программой. Машина Тьюринга считается заданной, если заданы ее внешний и внутренний алфавиты,

программа, начальная конфигурация и указано, какие из символов обозначают пустую

ячейку и заключительное состояние.

Чтобы записать совокупность команд, нужно воспользоваться следующими правилами:

1) начальному шагу алгоритма ставится в соответствие q 0 - начальное состояние;

2) циклы реализуются так, что последнее действие цикла должно соответствовать

переходу в то состояние, которое соответствует началу цикла;

3) соседним шагам алгоритма соответствует переход в смежные состояния, которые

соответствуют этим пунктам;

4) последний шаг алгоритма вызывает переход в заключительное состояние.

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

инвертирует входную цепочку, записанную с использованием нулей и единиц.

Пусть алфавит машины Тьюринга задан множеством A={0, 1, ε}, где

символ ε соответствует пустой ячейке, а число состояний устройства управления задано в

виде множества Q = {q0, q1, qz}.

Если, например, начальная конфигурация имеет вид q0110011, то конечная

конфигурация после завершения операции инвертирования должна иметь вид qz001100. Для

решения задачи машиной будет порождена следующая последовательность команд:

В стандартной начальной конфигурации головка стоит над первым символом слева, и

устройство управления находится в начальном состоянии. На следующем такте машина

Тьюринга, не меняя своего состояния, заменяет символ 0 на 1 или 1 на 0 и сдвигается вправо

на один символ. После просмотра всей цепочки под головкой оказывается символ,

указывающий на пустую ячейку. В этом случае машина Тьюринга переходит в новое

состояние и сдвигается влево на один символ. На последующих тактах управляющее

устройство не меняет своего состояния, оставляет без изменения символ под головкой и

перемещается влево до тех пор, пока не встретит пустую ячейку. Встретив пустую ячейку,

машина Тьюринга переходит в заключительное состояние и перемещается вправо на один

символ, переходя в стандартную заключительную конфигурацию.

  • Представление машины Тьюринга графом

При представлении машины Тьюринга посредством графа необходимо каждому

состоянию поставить в соответствие вершину графа, а каждой команде - помеченную дугу.

Машина Тьюринга из рассмотренного примера инвертирования цепочки, состоящей из

символов 0 и 1, будет представлена в виде графа следующим образом:

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

черным кружком. Если на очередном такте работы машины Тьюринга символ на ленте не

изменяется, то в правой части команды его можно не писать (ε на ребре в состояние qz ).

  • Представление машины Тьюринга таблицей соответствия

При представлении машины Тьюринга данным способом составляется таблица, в

которой каждому состоянию соответствует строка, а каждому символу из входного алфавита

- столбец. В клетках таблицы на пересечении строки и столбца будет находиться действие

(или правая часть команды).

Таблица соответствия для задания машины Тьюринга из рассмотренного примера будет

выглядеть следующим образом:

Инвертирование входной цепочки можно выполнить программой машины Тьюринга,

приведенной в таблице соответствия. Эта программа включает шесть команд.

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