К этому времени вы, возможно, догадались, что каждый из методов поиска, как в глубину, так и в ширину, работает вслепую. Это методы поиска решения, которые полагаются исключительно на передвижение от одной вершины (цели) к другой без учета компьютером каких-либо обоснованных догадок. В некоторых ситуациях, когда объем области поиска контролируется, а также известно, что один метод лучше другого, такой подход может быть приемлемым. Однако для более универсальной программы искусственного интеллекта нужна процедура поиска, которая в среднем лучше любого из этих двух методов. Единственный способ получить такую процедуру — это добавить эвристические возможности.
Эвристика — это набор простых правил, которые позволяют оценить вероятность того, что поиск ведется в нужном направлении. Например, представьте, что вы заблудились в лесу и вас мучит жажда. В этом лесу деревья растут так густо, что далеко впереди ничего не видно, а сами деревья такие большие, что взобраться на них и осмотреться вокруг нельзя. Однако вам известно, что реки, ручьи и пруды вероятнее всего находятся в долинах; что животные часто протаптывают тропы к местам водопоя; что находясь поблизости от воды, ее можно чувствовать по «запаху»; а также вы знаете, что шум бегущей воды можно услышать. Таким образом, вы начинаете спускаться с холма вниз, ведь маловероятно, чтобы вода была на его вершине. Затем вы натыкаетесь на оленьи следы, которые также ведут вниз. Зная, что эти следы могут привести к воде, вы по ним и направляетесь. Через некоторое время с левой стороны начинает доноситься легкий шум. Предполагая, что это может быть вода, вы осторожно идете в этом направлении. По мере движения обнаруживается, что влажность воздуха усилилась; вода уже чувствуется по запаху. И, наконец, вы находите ручей и утоляете жажду. Как видите, эвристическая информация, не обязательно должна быть точной или гарантировать успех, однако она увеличивает шансы на то, что с помощью этого метода поиска вы найдете цель быстрее или найдете более оптимальное решение, а может быть, одновременно выполнятся оба эти условия. Короче говоря, применение эвристики увеличивает шансы скорейшего достижения успеха.
Вы, возможно, думаете, что эвристическую информацию можно легко ввести в программы, предназначенные для специального применения, но общие эвристические методы поиска создать невозможно. Это не так. Чаще всего эвристические методы поиска строятся на основе поиска максимума или минимума некоторого параметра решаемой задачи. И действительно, два эвристических подхода, с которыми мы познакомимся, используют противоположные эвристики и генерируют разные результаты. В основе этих двух методов поиска лежат процедуры поиска в глубину.