Тестирование системы
Для проверки экспертной системы будем использовать логические схемы, приведенные на рис. 14.2—14.4. Создайте три файла: scheme- 1.CLP, scheme-2.CLP и scheme-З.СLР. Содержание этих файлов приведено ниже.
Пример 14.19. Содержимое файла scheme-1.CLP
(definstances circuit
(S-l of SOURCE)
(S-2 of SOURCE)
(P-l of SPLITTER)
(P-2 of SPLITTER)
(N-l of NOT-GATE)
(O-1 of OR-GATE)
(X-l of XOR-GATE)
(L-l of LED)
(L-2 of LED)
)
(deffunction connect-circuit ()
(connect [S-l] [P-l])
(connect [S-2] [X-l] 2)
(connect [P-l] 1 [N-l])
(connect [P-l] 2 [O-l] 2)
(connect [N-1] [O-l] 1)
(connect [O-l] [P-2])
(connect [P-2] 1 [L-l])
(connect [P-2] 2 [X-l] 1)
(connect [X-l] [L-2])
Пример 14.20. Содержимое файла scheme-2.CLP
(definstances circuit
(S-l of SOURCE)
(S-2 of SOURCE)
(P-l of SPLITTER)
(P-2 of SPLITTER)
(A-l of AND-GATE)
(N-1 of NOT-GATE)
(N-2 of NOT-GATE)
(N-3 of NOT-GATE)
(O-1 of OR-GATE)
(X-l of XOR-GATE)
(L-l of LED)
)
(deffunction connect-circuit ()
(connect [S-l] [P-l])
(connect [S-2] [P-2])
(connect [P-l] 1 [A-l] 1)
(connect [P-l] 2 [N-2])
(connect [P-2] 1 [A-l] 2)
(connect [P-2] 2 [N-3])
(connect [A-1] [N-l])
(connect [N-2] [O-1] 1)
(connect [N-3] [O-l] 2)
(connect [N-1] [X-l] 1)
(connect [O-l] [X-1] 2)
(connect [X-1] [L-l])
)
Пример 14.21. Содержимое файла scheme-3.CLP
(definstances circuit
(S-l of SOURCE)
(S-2 of SOURCE)
(S-3 of SOURCE)
(S-4 of SOURCE)
(S-5 of SOURCE)
(S-6 of SOURCE)
(P-l of SPLITTER)
(P-2 of SPLITTER)
(P-3 of SPLITTER)
(P-4 of SPLITTER)
(N-1 of NOT-GATE)
(N-2 of NOT-GATE)
(N-3 of NOT-GATE)
(O-1 of OR-GATE)
(O-2 of OR-GATE)
(X-l of XOR-GATE)
(X-2 of XOR-GATE)
(A-l of AND-GATE)
(D-l of NAND-GATE)
(D-2 of NAND-GATE)
(L-l of LED)
(L-2 of LED)
(L-3 of LED)
)
(deffunction connect-circuit ()
(connect [S-l] [P-l])
(connect [S-2] [P-2])
(connect [S-3] [P-3])
(connect [S-4] [A-1] 2)
(connect [S-5] [D-1] 2)
(connect [S-6] [O-2] 2)
(connect [P-l] 1 [O-l] 1)
(connect [P-l] 2 [N-1])
(connect [P-2] 1 [N-2])
(connect [P-2] 2 [A-l] 1)
(connect [P-3] 1 [X-1] 2)
(connect [P-3] 2 [D-1] 1)
(connect [N-1] [X-1] 1)
(connect [N-2] [O-l] 2)
(connect [O-l] [X-2] 1)
(connect [X-1] [X-2] 2)
(connect [A-1] [D-2] 1)
(connect [D-l] [O-2] 1)
(connect [X-2] [P-4])
(connect [O-2] [D-2] 2)
(connect [P-4] 1 [N-3])
(connect [P-4] 2 [L-2])
(connect [D-2] [L-3])
(connect [N-3] [L-1])
)
Запуск программы
Для запуска программы очистите среду CLIPS командой (clear) и выполните команду (load "cios.CLP"). Если при создании файла не было допущено ошибок, вы должны увидеть сообщения, представленные на рис. 14.5.
Рис. 14.5.Загрузка экспертной системы
Рис. 14.5 демонстрирует успешный вариант загрузки экспертной системы. Обратите внимание, что функция load вернула значение true. Если это не так, значит, в синтаксисе определений файла cios.CLP была допущена ошибка.
После удачной загрузки следует убедиться, что необходимые определения присутствуют в системе. Легче всего это выполнить с помощью соответствующих менеджеров. Внешний вид этих менеджеров приведен на рис. 14.6— 14.9.
Для запуска экспертной системы необходимо загрузить файл с определением какой-нибудь логической схемы, например, командой (load "scheme-1").
После этого необходимо выполнить команды reset и run для запуска основного цикла выполнения правил. Пример работы системы показан на рис. 14.10.
Для повторного запуска экспертной системы нужно еще раз выполнить команды load, reset и run. На рис. 14.11 и 14.12 приведены результаты работы системы для схем 2 и 3 соответственно.
Рис. 14.6. Классы экспертной системы
Рис. 14.7. Методы экспертной системы
Рис. 14.8.Функции экспертной системы
Рис. 14.9.Правила экспертной системы
Для того чтобы лучше понять принципы работы экспертной системы, попробуйте выполнить ее по шагам с помощью команды (run 1), наблюдая за изменениями в списке фактов, объектов, переменных и плане решения задачи. Для этого сделайте видимыми окна Facts Window, Instances Window, Globals Window и Agenda Window,воспользовавшись соответствующими пунктами меню Window.Пример такого пошагового нахождения решения приведен на рис. 14.13.
Пример построения экспертной системы, приведенный в данной главе, является наглядным подтверждением того, насколько эффективным может оказаться использование объектно-ориентированных возможностей и родовых функций в среде CLIPS.
Рис. 14.10.Оптимизированная таблица истинности для логической схемы 1
Рис. 14.11.Оптимизированная таблица истинности для логической схемы 2
Рис. 14.12.Оптимизированная таблица истинности для логической схемы 3
Рис. 14.13.Пошаговое выполнение правил
Дата добавления: 2021-12-14; просмотров: 251;