Иллюстрированный самоучитель по введению в экспертные системы

Архитектура систем планирования и метапланирования

;; ПРАВИЛА
;; На выполнение некоторых задач отводится
;; фиксированное время, (defrule fixed
(declare (salience 80))
(goal (subgoal start))
?E < – (errand (name?N)
(earliest?T) (latest?T) (duration?D)
(priority?P) (done no))
(not (schedule (start?U1&:(overlapl?U1?T?D))))
(not (schedule (finish?U2&:(overlap2?U2?T?D))))
(printout t crlf "Fixing start and end of "?N t crlf)
;; ("Определение начала и завершения "?N
(modify?E (done finish)) (assert (schedule (task?N)
(start?T) (finish (+t?T?D)) (priority?P)))
;; Следующей в расписание включается задача с наиболее
;; высоким приоритетом, причем ей задается самое раннее
;; время начала выполнения, (defrule priorityl
(declare (salience 50))
(goal (subgoal start))
:?Е < – (errand (name?N) (earliest?T)
(duration?D) (priority?P)) (not (errand
(priority?Q&:(<?Q?P)) (done no)))
(not (schedule (start?01&:(overlapl?Ul?T?D))))
(not (schedule (finish?U2S:(overlap2?U2?T?D))) ›
(printout t crlf "Fixing start of "?N t crlf)
;;"Коррекция начала: "?N
(modify?E (done start)) (assert (schedule
(task?N) (start?T) (priority?P)
)
;; Скорректировать значение параметра earliest задач
;; более низкого приоритета, если это время уне занято
;; теми задачами, которые включены в расписание,
(defrule priority2
(declare (salience 60))
(goal {subgoal start))?E < – (errand (name?N)
(earliest?T)(duration?D) (priority?P) (done no))
(not (errand (priority?QS:(<?Q?P)') (done no)))
(schedule (task?M) (start?U&:(overlapl 7U?T?D)))
(errand (name?M&~?N) (duration?C)) ›
(printout t crlf?N " overlaps with start of "?M t crlf)
;;?N " пересекается с началом "?M
(modify?E (earliest (+t?U?C))))
;; Скорректировать значение параметра earliest задач
;; более низкого приоритета, если запуск задачи в
;; указанное этим параметром время приведет к тому,
;; что она не успеет завершиться до запуска другой
;; задачи более высокого приоритета,
;; ухе включенной в расписание,
(defrule priority3
(declare (salience 60))
(goal (subgoal start))
?E < – (errand (name?N) (earliest?T)
(priority?P) (done no))
(errand (name?M&"?N) (duration?C))
(schedule (task?M)
(start?0&:(overlap1?T?U?C)))
(printout t crlf?N " overlaps with end of "?M t crlf)
;;?N " пересекается с концом "?M
(modify?E (earliest (+t?U?C)))
)
;;Скорректировать значение параметра earliest
;; задач более низкого приоритета,
;;если запуск задачи в указанное этим
;;параметром время приведет к тому,
;; что ее начало перекроет одну
;;задачу, уже включенную
;; ранее в расписание, и она не успеет завершиться
;; до запуска другой задачи более высокого приоритета,
;; уже включенной в расписание.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.