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


             

Ниже приведена программа планирования мероприятий,



15.1. Программа планирования мероприятий

Ниже приведена программа планирования мероприятий, написанная на языке CLIPS. При сформировании расписания программа сначала старается как можно раньше назначить для каждого отдельного мероприятия начальный момент выполнения, а затем назначает конечный момент, если в расписании найдено место для мероприятия. Программа расставляет задачи в соответствии с их приоритетами и старается сохранять себе свободу действий как можно дольше. Однако эта программа не способна справиться с ситуацией, которая складывается после неудачно принятого решения, ни с помощью обратного прослеживания, ни с помощью коррекции частичного расписания, из которого развился тупиковый вариант.

;; ШАБЛОНЫ

;; Объект мероприятий.

(deftemplate errand

(field name (type SYMBOL)) ; имя

;; интервал времени, в течение которого нужно

;; приступить к выполнению мероприятия

;; не раньше (field earliest (type INTEGER) (default 0))

;; не позже

(field latest (type INTEGER) (default 0))

;; продолжительность

(field duration (type INTEGER) (default 0))

;; приоритет

(field priority (type INTEGER) (default 0))

;; включено в расписание (field done (type SYMBOL)

(default no));

)

; ; Объект расписания (def template schedule

(field task (type SYMBOL))

;; задача

;; интервал времени, в течение которого нужно

;; выполнить задачу

;; начало

(field start (type INTEGER) (default 0))

;; конец

(field finish (type INTEGER) (default 0))

;; приоритет

(field priority (type INTEGER) (default 0))

;; полностью заполнено

(field status (type SYMBOL) (default no))

)

;; Объект цели. Используется для управления поведением

;; программы, принуждая ее к определенному порядку

;; достижения целей. (def template goal

(field subgoal (type SYMBOL)))

;; ФАКТЫ

(deffacts the-facts (goal (subgoal start))

(errand (name hospital) (earliest 1030)

(latest 1030)

(duration 200) (priority 1)) (errand

(namе doctor) (earliest 1430) (latest 1530)

(duration 200) (priority 1))


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