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



              

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


(errand (name lunch) (earliest 1130) (latest 1430)

(duration 100) (priority 2))

(errand (name guitar-shop)

(earliest 1000)

(latest 1700) (duration 100)

(priority 3)) (errand (name haircut)

(earliest 900) (latest 1700)

(duration 30) (priority 4))

(errand (name groceries)

(earliest 900) (latest 1800)

(duration 130) (priority 5))

(errand (name dentist)

(earliest 900) (latest 1600)

(duration 100) (priority 2))

;; Попадает ли время начала S в интервал [Т, T+D]?

;; Две задачи не могут начинаться в одно и то же время.

(deffunction overlapl (Is ?t ?d)

(and (<= ?t ?s) (< ?s (+ ?t ?d))))

;; Попадает ли время завершения S в интервал [Т, T+D]?

;; Для задачи А можно назначить время начала выполнения

;; равным времени завершения задачи В.

(deffunction overlap2 (?s ?t ?d)

(and (< ?t ?s) (< ?s (+ ?t ?d))))

;; Операция добавления к значению времени интервала,

;; выраженного в формате INTEGER,

(deffunction +t (?X ?Y) (bind ?T (+ ?X n))

(if(or (= (- ?T 60) ( (div (- ?T 60) 100) 100))

(= (- ?T 70) ( (div (- ?T 70) 100) 100))

(= (- ?T 80) ( (div (- ?T 80) 100) 100))

(= (- ?T 90) ( (div (- ?T 90) 100) 100)))

then (+ ?T 40)

telse ?T))

;; ПРАВИЛА

;; На выполнение некоторых задач отводится

;; фиксированное время, (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)



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