Неэффективная универсальность и инвариантность – возможна. Например, рекомендация «Если не получилось решить задачу одним способом, попробуй другим» может считаться универсальной, поскольку относится к решению задач в самых разных областях. Но вряд ли она достаточно эффективна, поскольку указывает лишь на возможность смены способа, но не на сам способ.

Возникает вопрос: как же люди решают конкретные задачи, относящиеся к классу алгоритмически неразрешимых? А ведь они их решают – и задачи на доказательства тождеств, и задачи на конструирование автоматов из имеющегося набора, и многие другие.

Решения алгоритмически неразрешимых задач и доказательства их правильности возможны и осуществляются очень часто. Но для каждого такого решения приходится каждый раз особым образом комбинировать различные элементы знания. С одной стороны, это элементы декларативного знания: аксиомы, постулаты, теоремы, описывающие некоторые свойства и связи изучаемой области. С другой стороны, это элементы процедурного знания: знания методов, стратегий, приемов. Сюда входят и общелогические, и предметно-специфические (domainspecific) методы, стратегии, приемы, которые «привязаны» к особенностям конкретной области. Все эти элементы вполне надежны в качестве «кирпичиков», из которых конструируется «здание» решения. Их можно и необходимо использовать, без них поиск решения станет значительно менее эффективным или вообще невозможным. Но проблема алгоритмической неразрешимости состоит в том, что нет общих универсальных правил, точных предписаний, как выбрать «кирпичики», нужные для конкретной задачи, и как сложить из них решение этой задачи. Построение «здания» решения задачи, относящейся к классу алгоритмически неразрешимых, с неизбежностью требует эвристических приемов и творчества: способ решения не выводится из более общего известного типового метода, а изобретается. А. Н. Кричевец пишет, что эти эвристические приемы невозможно описать точно, а можно только сказать, что тот, кто владеет ими, каждый раз вновь или даже впервые самостоятельно конструирует новый прием, нужный для конкретной ситуации – «вспомним, что всякий прием когда-то был создан впервые» [Кричевец, 1999(а), с. 39].

При этом достижимость решения не может быть гарантирована на 100 % никакими методами – в отличие от ситуации с алгоритмически разрешимыми задачами. Здесь неизбежно начинают играть роль индивидуальные творческие возможности решающего. Инвариантный подход оставляет за бортом проблемы конструирования таких решений и проблему алгоритмической неразрешимости вообще.

Для наглядности мы использовали в этом описании решения сложных задач метафору «строительства из кирпичиков», но возможны и другие. Например, Д. Дернер использует компьютерную метафору: «можно сказать, что у нас в голове хранится множество фрагментов отдельных программ, которые в конкретной ситуации комбинируются для решения той или иной проблемы» [Дернер, 1997, с. 215]. Системное мышление – это умение настроить комплекс своих способностей на условия конкретной ситуации, которые всегда различны (там же, с. 236).

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