В рассмотренных циклах обоих типов выборки имеется один этап, на котором интерпретатор должен принять то или иное решение. Этот этап состоит в разрешении конфликтов. Для выбора одного правила из нескольких отобранных можно применить самые разные методы, совокупность которых называется управляющими стратегиями (control strategies). Для получения требуемого алгоритма отбора можно применить один из следующих подходов или их комбинацию.
> Выбрать первое рабочее правило, найденное во время проверки соответствия.
> Выбрать лучший из вариантов, основываясь на приоритетах, установленных для каждого правила экспертом.
> Применить наиболее кішкрепюе правило. Таким правилом является то, у которого в условии используется максимальное количество выражений (А & в & С является более конкретным, чем С & D).
> Система может отслеживать все предыдущие операции отбора, применяя исторический список для предотвращения повторного выбора одного и того же правила два раза подряд.
> Наконец, может применяться случайный выбор (как ни странно, но этот метод часто оказывается очень эффективным).
После того как вынесено решение о том, какое правило из всех возможных будет выбрано, остальные отобранные правила теоретически должны быть отброшены. Однако управляющая стратегия может определять, что на самом деле происходит с теми правилами, которые не были выбраны в качестве единственного решения очередной итерации цикла. Здесь нужно уточнить, что мы понимаем под процессом, который в предыдущих обсуждениях называли "циклом": цикл может быть как итеративным (постоянно повторяться, отбрасывая альтернативные правила на каждой итерации), так и рекурсивным (иными словами, для каждого варианта осуществляется вызов очередной функции). В последнем случае (т.е. при рекурсии) все альтернативные правила сохраняются в стеке, что дает возможность, в случае необходимости, выполнить "откат" и попробовать другой вариант. Такой подход гарантирует то, что будут перебраны все возможные варианты и, следовательно, что решение будет найдено (если оно, конечно, вообще существует).
Глава 11. Системы, основанные на правилах 179
Процесс последовательного рассмотрения всех вариантов называется перебором (search) и, в свою очередь, также может быть организован по-разному. Рассказывать о том, какие подходы применяются для контроля и реализации процесса перебора, а также лля его оптимизации и повышения эффективности, можно очень долго.