Основанной на знаниях продукционного типа
Определяя целевое назначение нашей системы, потребуем от нее ответа на единственный вопрос: «Что неисправно в двигателе автомобиля?».
Иллюстративный фрагмент знаний из этой области представлен в виде дерева решений на рис. 3.
Организацию информационного обеспечения системы, включающего базу правил, рабочую память и структуры, обеспечивающие реализацию определенной стратегии вывода и возможность его наглядного представления, рассмотрим на уровне детализации, необходимом для описания алгоритма, положенного в основу механизма вывода.
Базу правил нашей системы организуем в виде четырех массивов:
· массив идентификаторов переменных антецедентов правил;
· массив значений переменных антецедентов правил;
· массив идентификаторов переменных консеквентов правил;
· массив значений переменных консеквентов правил.
В массиве идентификаторов переменных антецедентов правил отведем под каждое правило по три элемента в предположении, что антецедент любого правила может включать не более трех условий (высказываний), соединенных логическими связками И. Это ограничение означает, что в цепочках дерева решений, просматриваемых алгоритмом генерации правил, не должно быть более трех вершин. Цепочки, не укладывающиеся в рамки этого правила, всегда можно разорвать введением дополнительного промежуточного вывода (пусть даже искусственного, не имеющего четко определенного смысла).
Массив значений переменных антецедентов правил имеет аналогичную предыдущему массиву структуру и ставит в соответствие каждой переменной антецедента (переменной условия) ее значение.
В массиве идентификаторов переменных консеквентов правил под каждое правило отведем по одному элементу в предположении, что консеквенты всех правил содержат только один вывод в виде пары «идентификатор переменной = значение». Если в какой-то ситуации заключение складывается из нескольких выводов, это можно учесть, используя несколько правил с одинаковыми антецедентами.
Массив значений переменных консеквентов правил имеет аналогичную предыдущему массиву структуру и ставит в соответствие переменной консеквента (переменной вывода) каждого правила ее значение.
Пример заполнения массивов для двух правил из числа генерируемых по исходному дереву решений (рис. 3) приведен на рис. 7.
Рис. 7. Пример заполнения базы правил
Функции рабочей памяти в нашей системе будет выполнять таблица переменных условий. Каждая строка этой таблицы имеет три поля. Первое – для идентификатора переменной, которая может входить в антецеденты правил и своим значением определять условия их активации. Второе поле – для признака инициализации переменной, фиксирующего факт присвоения ей определенного значения. Третье – для значения, присвоенного переменной.
Исходно, перед началом вывода, заполнены только первые поля всех строк таблицы, т.е. дан перечень идентификаторов всех переменных, характеризующих состояние процесса вывода. Заполнение первых полей таблицы может осуществляться на этапе инициализации системы специальной программой путем просмотра массива идентификаторов переменных антецедентов правил.
Первыми в таблице инициализируются переменные, с задания значений которых начинается вывод. Затем в процессе идентификации и срабатывания правил значения неинициализированных переменных могут запрашиваться у пользователя или получаться как результаты промежуточных выводов.
Пример заполнения таблицы переменных условий при заданной в качестве исходной одной переменной приведен на рис. 8.
Рис. 8. Пример заполнения таблицы переменных условий
В основу механизма вывода нашей системы положим алгоритм, реализующий прямую цепочку рассуждений (от фактов к заключениям), характерную для систем диагностики неисправностей сложных технических объектов.
Для поддержки стратегии поиска в ширину в алгоритме используем очередь логического вывода. Это динамическая информационная структура, которая изначально пуста. Первыми в нее заносятся идентификаторы переменных, задаваемые пользователем в качестве исходных для логического вывода. Затем по мере срабатывания правил в очередь добавляются новые переменные, указанные в их консеквентах, по которым логический вывод может быть продолжен. Удаление первой переменной из очереди происходит после срабатывания всех правил, в антецеденты которых она входит и условия активации которых выполняются. Пустая очередь свидетельствует об окончании логического вывода.
Предусмотрим также в составе информационного обеспечения системы массив сработавших правил. В нем алгоритм вывода должен запоминать в порядке их срабатывания идентификаторы продукционных правил (в качестве таковых можно использовать порядковые номера правил в базе знаний), составивших логическую цепочку рассуждений. Тем самым механизм вывода будет фиксировать информацию, которая может быть востребована подсистемой объяснения для обоснования (пояснения) полученного заключения.
Не акцентируя внимания на деталях, алгоритм, реализующий прямую цепочку рассуждений с использованием стратегии поиска в ширину, можно представить блок-схемой, изображенной на рис. 9.
Приведенный алгоритм отражает общие принципы построения логической цепочки рассуждений, не затрагивая вопросы управления выводом с целью повышения его эффективности. В нем также не предусмотрена возможность правдоподобного вывода на нечетких правилах с оценкой коэффициентов уверенности получаемых заключений. Однако не составляет особого труда расширить возможности алгоритма в указанных направлениях.
Легко видеть, что для получения алгоритма прямого вывода, реализующего стратегию поиска в глубину, достаточно очередь логического вывода в представленной блок-схеме заменить на стек логического вывода. Для реализации обратной цепочки рассуждений идентификацию правил, претендующих на включение в цепочку доказательства выдвигаемых гипотез, следует проводить путем сопоставления фактов, описывающих текущую ситуацию (начиная с исходных гипотез), с переменными консеквентов продукционных правил базы знаний.
ВОПРОСЫ И ЗАДАНИЯ ДЛЯ САМОКОНТРОЛЯ
1. Почему исчисления высказываний и предикатов первого порядка называют полуразрешимыми?
2. Как формулируется и какими методами может решаться задача в рамках указанных исчислений?
3. Что представляет собой механическая процедура Ж. Эрбрана?
4. В чем состоит суть метода резолюций?
5. Попробуйте описать алгоритмы линейной резолюции, линейной входной резолюции, OL-вывода, семантической резолюции, SLD-резолюции.
6. Определите понятие ЭС продукционного типа.
7. Какие информационные и программные составляющие включает ЭС продукционного типа?
8. Какую информацию хранит рабочая память?
9. Какие функции выполняет механизм вывода?
10. В чем состоит суть прямого вывода, обратного вывода и циклического (комбинированного) вывода?
11. В чем состоит различие стратегий вывода (поиска) в ширину и в глубину?
12. Опишите цикл функционирования механизма вывода, представленный схемой на рис. 6.
13. Определите функции, возлагаемые на продукционную систему интеллектуальной поддержки процесса проектирования.
14. Оцените критически предложенный проект макетной системы, основанной на знаниях продукционного типа. В каких направлениях, из каких соображений и как, на Ваш взгляд, можно совершенствовать эту систему?