Решение задач

Все мы хорошо знаем, что задачи, которые нам приходится решать в повседневной жизни, бывают различными как по содержанию, так и по степени сложности. Существуют формальные задачи типа кроссвордов и прочих головоломок для тренировки мозга на досуге, задачи практического порядка, связанные с использованием окружающих нас предметов, организационные задачи, рожденные совместным трудом тех или иных групп людей, а также проблемы взаимоотношений между людьми. Очевидно, что большинство этих задач искусственный интеллект пока еще не в состоянии решить. Проблемы и задачи, которыми призван заниматься ИИ, с человеческой точки зрения столь элементарны, что едва ли заслуживают пристального рассмотрения. В то же время они часто не поддаются решению методами программирования, используемыми в системах ИИ. Отсюда следует, что для решения таких задач, человек, по-видимому, прилагает значительные интеллектуальные усилия, порой даже не осознавая этого.
Один из подходов, применимых к решению задач, основан, как и в игровых программах, на использовании дерева решений. Начав с некоторого заданного состояния задачи, машина с помощью дерева решений исследует все следующие состояния, к которым она может прийти за один-единственный шаг, затем все последующие состояния, достижимые после первого ее шага, и т. д. Трудность этого подхода опять же состоит в том, что даже в достаточно простых задачах число возможных состояний очень быстро возрастает до неуправляемых масштабов. Кроме того, как очевидно каждому решающему повседневные задачи человеку, машина углубляется в изучение множества вариантов (абсолютно нелепых с точки зрения здравого смысла), не приближаясь к решению задачи.
Один из возможных выходов — попытаться разделить задачу на подзадачи, и тогда решение каждой подзадачи, несомненно, приближает на один шаг к искомому решению. Чтобы лучше понять основной принцип данного метода, обратимся к такой аналогии, как прокладывание маршрута на карте. Если турист захочет, например, выбрать оптимальный маршрут для поездки из Парижа в Копенгаген, ему нет необходимости изучать каждую дорогу, выходящую из Парижа, чтобы среди них найти ту, которая в конце концов приведет его в Копенгаген. Скорее всего, рассматривая карту в целом, турист обнаружит, что если сначала направиться в Брюссель, оттуда в Гаагу, а затем в Гамбург, то он доберется к месту назначения относительно прямым путем, выбирая при этом наиболее удобные дороги. Далее турист может приступить к более детальному изучению отдельных участков пути, что позволит ему выбрать наилучший маршрут от Парижа до Брюсселя, от Брюсселя до Гааги и т. д.
Другой метод основан на том, что в отличие от шахматных многие практические задачи, которые могут встать перед роботами, имеют вполне определенные конечное и начальное состояния. Например, невозможно определить заранее, при каких положениях шахматных фигур на доске возможен мат. Однако для робота могут оказаться вполне разрешимыми такие, скажем, задачи, как перестройка башенки из цветных кубиков, которые надо будет уложить в другом порядке, или перемещение самого робота из точки А в точку Z через точки С, В и У. Таким образом, здесь имеется возможность для построения второго дерева решений, «растущего» в обратном направлении — из цели задачи. Когда один из узлов обратного дерева совпадает с одним из узлов прямого дерева, обнаруживается «сквозной путь» от исходного состояния к цели и, следовательно, достигается искомое решение.
Одна из наиболее известных программ, в которой использован процесс «анализ цели — средства», получила название STRIPS. В начале 60-х годов ее использовали в Станфордском университете для управления роботом Шейки, блуждающим в лабиринте (см. главу «Движущиеся роботы»). Программа STRIPS была прямым потомком программы GPS (General Problem Solver — универсальный решатель задач) — одной из первых программ для решения задач, которая была разработана А. Ньюэллом, Дж. Шоу и лауреатом Нобелевской премии экономистом Г. Саймоном. Программа GPS, созданная в результате совершенствования программы «Логический теоретик» (самого первого решателя задач), сначала исследовала процесс разбиения поставленной задачи на отдельные подзадачи, оценивая степень приближения к полному решению задачи путем последовательного решения каждой из подзадач.
Хотя рассмотренные методы и позволили добиться некоторых успехов, для многих видов задач (причем значительная часть их весьма тривиальна по человеческим меркам) они совершенно не пригодны. Одна из удивительнейших особенностей мышления человека, которая играет важную роль при решении задач, — «фактор озарения». Когда мы находим решение задачи — будь то трудное слово в кроссворде или хитроумный способ правильной сборки в единый узел двух компонентов замысловатой конструкции, — мы не осознаем, что шли к этому решению последовательными, логически обоснованными шагами. В какой-то момент решение задачи еще представляется невозможным, но вдруг нас «озаряет» — мы видим верный ответ, который возникает так, будто в какой-то не контролируемой сознанием части мозга «замкнулся» переключатель. По сравнению с мимолетным вдохновением или интуитивным озарением, которые приводят человека к решению многих задач, методы ИИ выглядят крайне примитивными. И если они все же дают какой-то результат и применимы в практических целях, то это связано главным образом с тем, что быстродействие компьютеров намного превосходит скорость, с которой работает мозг человека. Но, хотя компьютер и может решить простейшую задачу в реальном времени, выполняя десятки тысяч логических операций в секунду, это вовсе не означает, что он достигает решения тем же путем, что и человек, который способен прийти к тому же не прибегая сознательно к формальной логике.
Сложные элементы, подобные изображенному здесь транспьютеру фирмы «Инмос» (по существу, он представляет собой выполненный на одном кристалле компьютер, состоящий из процессора и запоминающего устройства), позволят создать новое поколение «разумных» машин.