Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Алгоритмы вокруг нас.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
13.11 Mб
Скачать

§ 4. Эквивалентность описанных теорий

Итак, мы познакомились с теориями, каждая из которых уточняет понятие алгоритма. Но это уточнение не распро­страняется на все алгоритмы, а лишь на одно узкое семей­ство их. Можно сказать, что каждая теория является теорией некоторых избранных алгоритмов. Алгоритмы, с которыми мы имеем дело на практике, как правило, не принадлежат ни одному из таких семейств. Избранные алгоритмы каждого вида пригодны для решения ряда тео­ретических вопросов, но они не предназначены для удов­летворения практических потребностей.

Доказано, что в теоретическом отношении все рассмот­ренные теории эквивалентны. Это значит, что научные результаты, полученные с помощью алгоритмов, изученных в какой-либо из этих теорий, могут быть также получены с помощью алгоритмов, изученных в любой другой.

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

Связь каждой теории избранных алгоритмов со всеми остальными алгоритмами осуществляется с помощью ос­новных тезисов теорий. Но основной тезис позволяет выяв­лять случаи невозможности алгоритмов, однако ничего не дает нам, если требуется получить хороший, удобный для практики алгоритм. Кроме того, как уже было сказано, основной тезис каждой теории избранных алгоритмов является лишь очень вероятной гипотезой, а не строгой теоремой.

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

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

Глава 5

АЛГОРИТМИЧЕСКИ НЕРАЗРЕШИМЫЕ ПРОБЛЕМЫ

§ 1. Массовые проблемы. Неразрешимость проблем

Задачи (проблемы), с которыми нам приходится встре­чаться на практике, можно подразделить на одиночные и массовые.

Задача «найти сумму чисел 5 и 7» может служить при­мером одиночных проблем. Можно было бы привести ог­ромное число одиночных проблем, очень похожих на приведенную. Но возможна задача «найти сумму целых неотрицательных чисел х и у». Это проблема массовая, со­держащая одиночные проблемы в себе как частные случаи. В каком же смысле такая массовая проблема может быть решена? Ведь конкретных значений х и у мы не знаем и поэтому получить конкретное значение суммы не можем. Единственный способ решения приведенной массовой про­блемы состоит в том, чтобы найти алгоритм получения суммы любых двух целых неотрицательных чисел.

А существуют ли неразрешимые вообще проблемы, которые при любом конечном наборе потенциально осуще­ствимых операций окажутся неразрешимыми?

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

Если дана некоторая библиотека (произвольная; в этом массовость проблемы), для разделов которой составлены каталоги, то проблема составления каталога всех несамоназывающихся и только несамоназывающихся каталогов (см. гл. 3, § 4) неразрешима (нельзя построить для ее ре­шения алгоритм), и неразрешима она безнадежно, неза­висимо от набора операций, которыми можно для ее реше­ния пользоваться. Рассмотрим некоторые примеры подоб­ных «абсурдных» массовых проблем.