В первой части дается введение в теорию алгоритмов (часто называемую также теорией вычислимых функций или просто теорией вычислимости). Намечаются разные варианты её построения, основанные на использовании теории рекурсивных функций, машин Тьюринга, Поста и Минского, бесконечного абака, алгорифмов Маркова и экзотического языка Фрактран, предложенного Конвеем. Приводятся классические примеры алгоритмически неразрешимых проблем. Во второй части излагаются основы теории NP-полных задач. Доказывается NP-полнота ряда классических комбинаторных проблем переборного характера, таких как проблема выполнимости логических формул, проблемы коммивояжера, упаковки рюкзака, размена монет, поиска минимального покрытия и максимальной клики и др. Рассматриваются точные и приближенные алгоритмы для решения этих задач. В конце каждой части приводится список задач, дополняющих ее содержание. К некоторым из них даны указания к решению. В основу книги положен семестровый курс, читавшийся автором на факультете математики и компьютерных наук Бакинского филиала МГУ им. М. В. Ломоносова.
все жанры