7.3. Программирование в clips экспертной системы управления технологическим процессом
Программа ЭС управления ТП по обработке деталей сложной формы, разработанная на основе табл. 7.1 и табл. 7.2, выглядит следующим образом.
;;;===========================================
;;; Control Expert System of technological process
;;;
;;; This expert system administers technological process
;;; of creations of details of the complex form
;;;
;;; CLIPS Version 6.0 Example
;;;Author: Vladimir Makushkin, vmakushkin@mail.ru
;;;
;;; To execute, merely load, reset and run.
;;;===========================================
(deffacts initial-state
(Ds 800)
(Dm 2)
(Da 2)
(Dar 1))
(defrule rule1
(declare (salience 9098))
(Ds 10)
(Dm 1)
(Da 1)
(printout t "Rule1: Vr=A, Vm=10, T=0, I=1, G=tor" crlf))
(defrule rule2
(declare (salience 9095))
(Ds 10)
(Dm 2)
(Da 2)
(printout t "Rule2: Vr=B, Vm=10, T=1, I=1, G=line, Rm=40, J=80, S=60" crlf))
(defrule rule3
(declare (salience 9092))
(Ds 300)
(Dm 2)
(printout t "Rule3: Vr=B, Vm=20, T=2, I=1, G=tor" crlf))
(defrule rule4
(declare (salience 9097))
(Ds 300)
(Da 3)
(printout t "Rule4: Vr=C, Vm=40, T=3, I=2, G=line, Rm=50, J=75, S=75" crlf))
(defrule rule5
(declare (salience 9094))
(Ds 800)
(Dm 2)
(Da 2)
(Dar 1)
(printout t "Rule5: Vr=B, Vm=60, T=4, I=2, G=line, Rm=60, J=70, S=70" crlf))
(defrule rule6_7
(declare (salience 9090))
(Ds 800)
(Dar ? num)
(if (< ? num 3)
then
(printout t "Rule6: Vr=B, Vm=40, T=6, I=3, G=line, Rm=60, J=60, S=75" crlf)
else
(printout t "Rule7: Vr=C, Vm=80, T=6, I=3, G=line, Rm=60, J=60, S=75" crlf)))
Листинг 7.1. Программа ЭС управления ТП по обработке деталей сложной формы.
Эта программа сохраняется в виде файла с именем, например, robot.clp, далее в среде CLIPS выполняются команды: clear; load robot.clp; reset и run. Эта программа начинает работать. Входные воздействия заданы в данном примере через deffacts initial-state. Активизация правил БЗ для конкретных воздействий, заданных в программе, дает конфликтное множество (базу целей) - правила rule5 и rule6_7, а затем по критерию максимальной достоверности первым выбирается управляющее воздействие на систему низшего уровня:
Rule5: Vr=B, Vm=60, T=4, I=2, G= line, Rm=60, J=70, S=70
В реальной жизни входные воздействия поступают через оператор read (ввод данных с заданного устройства), например, следующим образом:
(defrule Dar_parameter
(declare (salience 9101))
(Dar ? num)
(printout t "Ds parameter has value "crlf"
1) 10 "crlf" 2) 300 "crlf" 3) 800 "crlf" Choose 1—3 ")
(assert (Dar =(read))))
Читателю предлагается самостоятельно дописать правила останова программы (halt) по условиям Da=Dar или достижению заданного значения Ds, а также правила для проверки граничных условий. Дотошный читатель, разобравшийся в программе, может спросить, зачем мне CLIPS, если такую простую программу я могу написать на любом языке программирования. Во-первых, это учебный пример с простейшей базой знаний. Во-вторых, в реальной жизни база знаний содержит сотни правил, управляющие параметры постоянно считываются с датчиков и видеокамер, и сразу же отрабатывается поиск в сети продукций новых управляющих воздействий. Простой программой в таком случае не обойтись.
Примером более сложной программы для решения задачи планирования последовательности действий робота (лекция 3, рис. 3.4) является фрагмент программы Д. Грим-шоу (www.ryerson.ca/~dgrimsha). Эта программа управления роботом по перекладыванию кубиков. Начальное состояние положения кубиков в стеке 1 и стеке 2 определяется путем перечисления кубиков сверху вниз. Задавая различные комбинации в deffacts initial-state, мы получим конкретные последовательности действий робота.
(deftemplate goal
(slot move)
(slot on-top-of))
(deffacts initial-state
(stack A B C)
(stack D E F)
(goal (move C) (on-top-of E)))
(defrule move-directly
?goal < — (goal (move ?block1) (on-top-of ?block2))
?stack-1 < — (stack ?block1 $?rest1)
?stack-2 < — (stack ?block2 $?rest2)
(retract ?goal ?stack-1 ?stack-2)
(assert (stack $?rest1))
(assert (stack ?block1 ?block2 $?rest2))
(printout t ?block1 "moved on top of" ?block2 crlf))
(defrule move-to-floor >
?goal < — (goal (move ?block1) (on-top-of floor))
?stack-1 < — (stack ?block1 $?rest)
(retract ?goal ?stack-1)
(assert (stack ?block1))
(assert (stack $?rest))
(printout t ?block1 "moved to the floor." crlf))
(defrule clear-upper-block
(goal (move ?block))
(stack ?top $? ?block $?)
(assert (goal (move ?top) (on-top-of floor))))
(defrule clear-lower-block
(goal (on-top-of ?block))
(stack ?top $? ?block $?)
(assert (goal (move ?top) (on-top-of floor))))
Результат работы CLIPS в данном случае будет следующий:
CLIPS$>$ (run)
A moved to the floor.
B moved to the floor.
D moved to the floor.
C moved on top of E
CLIPS$>$
В завершение лекции читателю может быть рекомендована книга Ж.Гурратано [94], содержащая множество примеров программирования ЭС на основе CLIPS.
Итак, завершающий вывод по данной лекции. Экспертные системы является эффективным и универсальным инструментом для таких задач. Они работают. Их могут уже не называть экспертными системами. Их могут называть просто системами управления, системами мониторинга, системами диагностики. Суть от этого не меняется. Мощные базы знаний, заложенные в создаваемые человеком аппаратно-программные комплексы, позволяют строить новое поколение интеллектуальных робототехнических систем.
1[1] Источник: AI Magazine, Fall 1993.
[2] Источник: Turban Information Technology for Management.
[3] Computerworld, January 11, 1993.
2
3
- Интеллектуальные информационные системы
- 230201 - Информационные системы и технологии
- 080801 - Прикладная информатика в экономике
- Оглавление
- 1. Введение в интеллектуальные информационные системы
- 1.1. Предмет исследования искусственного интеллекта
- 1.2. Определение иис
- 1.3. Искусственный интеллект и интеллектуальное поведение
- 1.4. Определения, используемые в дисциплине иис
- 1.5. Исторический обзор работ в области ии
- Доказательство теорем.
- Распознавание изображений.
- Экспертные системы.
- Машинный перевод и понимание текстов на естественном языке.
- Игровые программы.
- Машинное творчество.
- 1.6. Кратко о развитии робототехники
- 1.7. Области коммерческого использования искусственного интеллекта
- 1.8. Иис других типов
- 1.9. Интеллектуальные агенты
- 1.10. Примеры иис
- 2. Системы представления знаний
- 2.1. Фреймы
- 2.2. Исчисления предикатов
- 2.3. Системы продукций
- 2.4. Семантические сети
- 2.5. Нечеткая логика
- 3. Методы поиска решений
- 3.1. Методы поиска решений в пространстве
- 3.2. Алгоритмы эвристического поиска
- Алгоритм наискорейшего спуска по дереву решений
- Алгоритм оценочных (штрафных) функций
- Алгоритм минимакса
- Альфа-бета-процедура
- 3.3. Методы поиска решений на основе исчисления предикатов
- 3.4. Задачи планирования последовательности действий
- 3.5. Поиск решений в системах продукций
- 4. Распознавание изображений
- 4.1. Общая характеристика задач распознавания образов и их типы.
- 4.2. Основы теории анализа и распознавания изображений.
- 4.2. Распознавание по методу аналогий.
- 4.3. Актуальные задачи распознавания
- 5. Общение с эвм на естественном языке. Системы речевого общения
- 5.1. Проблемы понимания естественного языка
- 5.2. Анализ текстов на естественном языке
- Морфологический анализ
- Синтаксический анализ
- Семантическая интерпретация
- Проблемный анализ
- 5.3. Системы речевого общения
- 6. Методология построения экспертных систем
- 6.1. Экспертные системы: Определения
- 6.2. Основные компоненты эс
- 6.3. Типы решаемых задач эс:
- 6.4. Ограничения и недостатки эс:
- 6.5. Обобщенная схема эс
- 6.6. Экспертные системы: классификация
- 6.7. Трудности при разработке экспертных систем
- 6.8. Методология построения экспертных систем
- 6.9. Примеры экспертных систем
- 7. Практическая разработка экспертных систем в среде clips
- 7.1 Постановка задачи
- 7.2. Основы программирования в системе clips
- 7.3. Программирование в clips экспертной системы управления технологическим процессом