
- •С.Н.Дроздов
- •Введение
- •1. Методы решения комбинаторных задач
- •1.1. Понятие об оценке эффективности алгоритмов и программ
- •1.2. Понятие комбинаторной задачи
- •1.3. Примеры комбинаторных задач
- •1.4. Организация исчерпывающего перебора
- •1.5. Сокращение перебора
- •1.6. Метод ветвей и границ
- •1.7. Метод динамического программирования
- •1.8. Метод a-b-отсечений для позиционных игр с полной информацией
- •1.9. Приближенные и эвристические методы решения задач комбинаторной оптимизации
- •2. Элементы теории сложности вычислений
- •2.1. Основные понятия и проблемы теории сложности вычислений
- •2.2. Полиномиальная сводимость задач
- •2.3. Недетерминированные машины Тьюринга и np-задачи
- •2.5. Теорема Кука
- •2.6. Примеры np-полных задач
- •2.6. Псевдополиномиальные задачи
- •2.7. Практическое значение результатов теории сложности вычислений
- •Литература
- •Дроздов Сергей Николаевич
С.Н.Дроздов
Комбинаторные задачи и элементы теории вычислительной сложности
Министерство образования российской федерации
Таганрогский государственный радиотехнический университет
С.Н.Дроздов
Комбинаторные задачи и элементы теории вычислительной сложности
Учебное пособие
Таганрог 2000
УДК 681.142.2
С.Н.Дроздов. Комбинаторные задачи и элементы теории вычислительной сложности: Учебное пособие. Таганрог: Изд-во ТРТУ, 2000.62с.
В пособии рассмотрено понятие комбинаторной задачи, приведены примеры таких задач, основные методы их решения и оценки эффективности алгоритмов. Рассмотрены основные понятия теории вычислительной сложности и приведены в кратком изложении основные результаты теории. Рассмотрены приемы доказательства NP-полноты и примерыNP-полных задач. Предназначено для студентов, изучающих курс «Структуры и алгоритмы обработки данных», а также для специалистов, разрабатывающих алгоритмы и программы решения дискретных задач.
Табл. 11. Библиогр.: 9 назв.
Печатается по решению редакционно-издательского совета Таганрогского государственного радиотехнического университета.
Рецензенты:
В.П.Карелин, зав.кафедрой управления и информационных систем Таганрогского института управления и экономики, доктор технических наук, профессор;
Д.С.Святов, главный специалист Южно-Российского регионального кадастрового центра «Земля»;
С.А.Гитис, заведующий отделом системного программного обеспечения ГИС Южно-Российского регионального кадастрового центра «Земля».
© Таганрогский государственный радиотехнический университет, 2000
© Дроздов С.Н., 2000
Введение
Теория и практика решения комбинаторных задач (называемых также переборными задачами) представляют собой одну из важных областей информатики, интересную как с точки зрения практической ценности, так и в плане овладения некоторыми весьма важными для программиста и для системного аналитика понятиями, к числу которых относятся методы полного и сокращенного перебора, динамическое программирование, NP-полные иNP-трудные задачи. Недостаточное знакомство с этими понятиями и со стоящей за ними хорошо разработанной теорией вычислительной сложности рано или поздно приводит специалиста к серьезным ошибкам при разработке алгоритма для решения какой-либо из многочисленных практических задач комбинаторного типа.
В то же время материал, связанный с теорией вычислительной сложности, является довольно трудным с математической стороны, хотя эта трудность связана не с обилием сложных выкладок, а скорее с концептуальной стороной дела. Для студентов, усвоивших программистский стиль мышления, многие положения теории кажутся непривычными и затруднительными для понимания.
В данном пособии сделана попытка объяснить базовые понятия теории вычислительной сложности по возможности просто и конструктивно. При этом приходится опустить многие детали и не предъявлять чрезмерных требований к строгости доказательств.
При разработке пособия автор использовал книги, перечисленные в списке литературы. Некоторые примеры также позаимствованы из этих книг.