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


           

Скорректировать значение параметра earliest задач



(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

;; задач более низкого приоритета,

;;если запуск задачи в указанное этим

;;параметром время приведет к тому,

;; что ее начало перекроет одну

;;задачу, уже включенную

;; ранее в расписание, и она не успеет завершиться

;; до запуска другой задачи более высокого приоритета ,


Содержание  Назад  Вперед