Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
raspKollokvium_po_Informatike.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
792.06 Кб
Скачать

Описание машины Тьюринга

Конкретная машина Тьюринга задаётся перечислением элементов множества букв алфавита A, множества состояний Q и набором правил, по которым работает машина. Они имеют вид: qiaj→qi1aj1dk (если головка находится в состоянии qi, а в обозреваемой ячейке записана буква aj, то головка переходит в состояние qi1, в ячейку вместо aj записывается aj1, головка делает движение dk, которое имеет три варианта: на ячейку влево (L), на ячейку вправо (R), остаться на месте (N)). Для каждой возможной конфигурации <qi, aj> имеется ровно одно правило. Правил нет только для заключительного состояния, попав в которое машина останавливается. Кроме того, необходимо указать конечное и начальное состояния, начальную конфигурацию на ленте и расположение головки машины.

Варианты машины Тьюринга

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

34. Анализ алгоритмов.

Модели вычислений. РАМ и РАСП машины, многоленточная машина Тьюринга. Понятия временной и емкостной вычислительной сложности с равномерным и логарифмическим весом. Соотношения между оценками вычислительной сложности алгоритма в различных моделях. Примеры оценки вычислительной сложности конкретных алгоритмов: различные варианты генерации перестановок, выполнения умножения целых чисел, поиска наименьшего и наибольшего элементов в неупорядоченном массиве. Некоторые теоремы о вычислительной сложности рекурсивных алгоритмов.

Алгоритмы на перестановках. Особенности оценки вычислительной сложности при биективных отображениях. Построение эффективных алгоритмов генерации элементарных теоретико-множественных объектов: перестановок, размещений, множеств, сочетаний и мультимножеств.

Комбинаторные методы, используемые при оценки сложности алгоритмов. Различные классы производящих функций и операции над ними. Теория Двенадцатеричного пути комбинаторных оценок различных классов отображений. Производящие функции для различных классов графов. Понятие циклового индекса. Теорема Пойа о перечислении.

Оценки сложности конкретных алгоритмов: дерева поиска, алгоритма Евклида и других.

Введение в теорию NP-полных задач.

Анализ трудоёмкости алгоритмов

Целью анализа трудоёмкости алгоритмов является нахождение оптимального алгоритма для решения данной задачи. В качестве критерия оптимальности алгоритма выбирается трудоемкость алгоритма, понимаемая как количество элементарных операций, которые необходимо выполнить для решения задачи с помощью данного алгоритма. Функцией трудоемкости называется отношение, связывающие входные данные алгоритма с количеством элементарных операций.

Трудоёмкость алгоритмов по-разному зависит от входных данных. Для некоторых алгоритмов трудоемкость зависит только от объема данных, для других алгоритмов — от значений данных, в некоторых случаях порядок поступления данных может влиять на трудоемкость. Трудоёмкость многих алгоритмов может в той или иной мере зависеть от всех перечисленных выше факторов.

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