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

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

Таврический национальный университет им. В.И. Вернадского

факультет математики и информатики

кафедра информатики

Методическое пособие по дисциплине Теория сложности вычислений

для студентов 2 курса дневной (заочной) и экстернатной формы обучения

направления 0802 Прикладная математика

специальностей 6.080200 Информатика,

6.080200 Прикладная математика

Симферополь, 2004

Основные понятия теории алгоритмической

Сложности решения дискретных задач

Учебно-методическое пособие для студентов факультета математики и информатики

Введение

С появлением компьютеров алгоритмические методы решения задач стали развиваться столь стремительно, что вызвали появление ряда новых, ярких теоретических направлений в математике. К таким направлениям следует отнести теорию сложности решения дискретных задач, основания которой были заложены в работах С. Кука (1971), Р. Карпа (1972) и А.А. Левина (1973) [7-9].

Только после возникновения этой теории (основанной на понятиях NР- полных и NР- трудных задач) многие математики-исследователи осознали бесперспективность поиска эффективных (существенно отличных от переборных) алгоритмов решения многих, важных задач: минимизации дизъюнктивных нормальных форм, задачи целочисленного линейного программирования общего вида, задачи коммивояжера, раскраски графа, нахождения корней полиномов над полем GР(2) и многих других. Оказалось, что указанные задачи являются универсальными переборными задачами в том смысле, что эффективное решение хотя бы одной из них повлечет открытие эффективных алгоритмов решения для всех остальных.

В монографии К. Гари и Д. Джонсона [1] приведен список более 300 таких универсальных переборных (NР-полных задач), связанных с теорией графов, математической логикой, алгеброй, дискретной оптимизацией и другими .разделами математики.

Изучив теорию NР-полных задач, математик получает на вооружение замечательный аппарат, с помощью которого, приступая и решению новой задачи, во многих случаях можно заранее оценить ее сложность и целесообразность поиска точного алгоритма ее решения за приемлемое число шагов.

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

Учитывая важность простых приближенных алгоритмов решения дискретных экстремальных задач и различных эвристических методов, при изучении теории сложности полезно ознакомиться с возможностями алгоритмов «пожирающего» типа (GREEDY). Поэтому в пособии изложены основы теории матроидов и теорема Радо-Эдмондса.

1.Алгоритм

Понятие алгоритма - одно из центральных в математике и, по крайней мере, не менее важное, чем понятие функции. Функция – это соответствие между двумя множествами X и У, согласно которому для каждого элемента указывается единственный элемент у=f(x). В ряде случаев оказывается важным не только задать функцию (соответствие) f, но и указать способ нахождения y=f(x) для всякого заданного .

Например, функция Лапласа:

(1.1)

полностью определена выражением (1.1) для любого , однако способ вычисления по заданному х значения этим выражением не определен.

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

Главный элемент, необходимый для строгого определения алгоритма - это набор (множество) элементарных действий, из которых строятся конечные последовательности шагов. Математики, занимавшиеся формализацией понятия алгоритма, предложили pяд способов выбора множества элементарных действий и, соответственно, формальных моделей, уточняющих интуитивное понятие алгоритма.

Наиболее удачные формализации понятия алгоритма были разработаны А.А. Марковым (элементарные действия - подстановки), А. Тьюрингом (элементарные действия - команды абстрактной математической машины), Э.Постом, М.Минским.

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

Для математиков-программистов несложно переписать алгоритм решения задачи, подготовленный на одном языке программирования, на другой язык. Если такая трансляция, скажем, с языка PASCAL на С++ является делом достаточно простым, то трансляция тьюринговского алгоритма в марковский может оказаться значительно сложнее. Но есть одно обстоятельство, которое существенно снижает значение того, в какой формальной или прикладной системе (ЭВМ, язык) записан алгоритм.

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

Множества X и У такие, что , называют соответственно множествами начальной информации (данных) и финальной информации (результатов). Естественно считать наилучшим тот алгоритм, который позволяет по заданной начальной информации получить правильный результат у=А(Х) за наименьшее по сравнению с другими алгоритмами, решающими эту же задачу в той же самой алгоритмической модели, число шагов.

Поскольку коэффициент , введенный выше, является параметром конкретной алгоритмической системы (машины), для математиков с точки зрения теории алгоритмов безразлично, какая именно алгоритмическая модель выбрана для построения или анализа алгоритма. Выбор алгоритмической модели, как правило, определяется удобством доказательства свойств алгоритмов, их сравнения, получения теоретических результатов и конкретных прикладных реализаций,

Математики, занимающиеся исследованиями в области теории алгоритмов, чаще всего используют частично-рекурсивные функции и машину Тьюринга, хотя не исключаются и другие алгоритмические модели и языки, вплоть до некоторым образом «расширенных» языков программирования высокого уровня.

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

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

Пусть - тьюринговский алгоритм решения некоторой задачи z из класса Z. Начальная информация (исходные данные) записана на ленте МТ и занимает некоторое количество n ячеек. Это число ячеек называется размером (входа) задачи. Число шагов МТ, выполняемых алгоритмом при решении задачи z, называется временной сложностью алгоритма . Обычно временная сложность представляют как функцию размера задачи: . В процессе выполнения алгоритма изменяется запись на ленте МТ, и головка машины совершает перемещение в пределах участка ленты oт некоторой ячейки до ячейки . Этот участок ленты называют рабочей зоной, а длину рабочей зоны - пространственной сложностью алгоритма . Естественно принимать за размер входа число символов, используемых для записи начальной информации. При этом нужно отметить, что разные способы кодирования изменяют размер входа, как правило, не более чем в константу раз, и во всех случаях сложность остается полиномиальной.

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