Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Одним из основных компонентов G2 является машина вывода, выполняющая рассуждения на основании:
• знаний, содержащихся в базе знаний;
• данных, поступающих от подсистемы имитационного моделирования;
• данных, поступающих от внешних источников (контрольно-измерительной аппаратуры, СУБД и т. п.).
Правила возбуждаются машиной вывода. При этом, проверяется истинность условия, находящегося в антецеденте правила. Если оно истинно, то машина вывода выполняет действия, находящиеся в консеквенте. При проверке условия правила машине вывода необходимо найти значения всех переменных и параметров, содержащихся в них. Параметры в любой момент времени имеют определенное значение, в то время как значение переменных может отсутствовать, поскольку для них определено время жизни. Если переменная не имеет значения, система может получить ее значение из следующих источников:
• сервер данных, получающий данные от внешних источников (контрольно-измерительная аппаратура, СУБД, другая ЭС и т. п.);
• оператор;
• подсистема моделирования внешнего окружения;
• правило, определяющее искомые значения переменных;
• формула, приписанная к переменной (или классу переменных), значение которой требуется системе.
После того как все требуемые значения получены, система определяет, истинно ли условие рассматриваемого правила. Если условия правила истинны, система выполняет действия, находящиеся в консеквенте данного правила. В набор действий, которые используются в консеквентах правил, входят следующие:
- присвоение значения простому атрибуту, параметру или переменной;
- посылка управляющей информации внешнему объекту;
- запуск процедуры;
- создание экземпляра объекта;
- удаление экземпляра объекта;
- порождение и удаление задач (подзадач);
- изменение положения или цвета пиктограмм на экране дисплея;
- управление способом отображения рабочих пространств (положение на экране, масштаб и т. д.);
- вывод сообщений для оператора системы;
- активизация всех правил, ассоциированных с заданным объектом;
- остановка системы и т.д.
В связи с тем, что G2 ориентирована на динамические приложения, работающие в реальном времени, машина вывода должна иметь средства для сокращения перебора, реакции на непредвиденные события и т.п.
Главным недостатком традиционно используемого в статических ЭС прямого и обратного вывода является непредсказуемость затрат времени на их выполнение. Для динамических систем прямой и обратный вывод с полным перебором возможных к применению правил - непозволительная роскошь. Следующая образная интерпретация позволяет понять недостаток традиционных методов построения цепочек логического вывода и необходимость выхода на метауровень (focus и invoke) в динамических системах. Представьте себе, что вы пришли в библиотеку и хотите установить некоторый факт. Следуя алгоритму прямого вывода, вы должны начать читать все книги подряд в алфавитном порядке, пока не наткнетесь на нужный факт. Когда факт установлен, и ваше знание о действительности изменилось, следуя тому же алгоритму, вы должны сначала перечитать все книги, даже уже прочитанные!
Особенностью машины вывода G2 является богатый набор способов возбуждения правил. Правило в G2 может возбуждаться одним из 9 случаев. Методы 4-9 возбуждают правило "при возникновении некоторого события. Для реализации этих методов в G2 введен специальный тип правил, начинающихся с ключевого слова whenever (как только). Правила whenever возбуждаются в первую очередь и обладают наибольшим приоритетом, что гарантирует своевременную реакцию системы на изменения в окружающем мире. Правила этого типа не используются (по умолчанию) ни в прямом, ни в обратном выводе, они являются метаправилами и реагируют на события (перемещение объекта, установление/устранение отношения, получение/неполучение значения).
Планировщик
В связи с тем, что С2-приложение управляет множеством одновременно возникающих задач, необходим Планировщик. Планировщик управляет всеми процессами в G2 (Рисунок 8.1). Планировщик определяет порядок обработки задач, взаимодействует с источниками данных и пользователями, запускает процессы и осуществляет коммуникацию с другими процессами.
Планировщик циклически выполняет следующую последовательность шагов.
1. Проверка наступления начала цикла: если начало цикла наступило, планировщик начинает цикл и переходит к следующему шагу.
2. Планирование ожидающих задач: Планировщик формирует список задач, которые будут выполнятся на данном цикле - очередь текущих задач.
3. Обслуживание источников данных. Каждому источнику данных отводится не более 0,1 с на выполнение этой операции. Для источников, не закончивших обмен за выделенное время, планируются задачи для попытки закончить передачу данных.
Рисунок 8.1 Работа планировщика G2
Выполнение задач: Планировщик берет очередь текущих задач и пытается выполнить как можно большее их число. Любая из задач, не закончившаяся в течение 0,2 с, откладывается для выполнения в конце данного цикла или в следующем цикле.
4. Обслуживание сетевых пакетов: Планировщик посылает и получает сообщение через сеть. На это выделяется до 0,2 с.
5. Обслуживание пользователей: Планировщик принимает и передает данные для всех пользователей, работающих в данном сеансе G2. Это включает и пользователей Telewindows.
6. Подготовка к следующему циклу: Планировщик проверяет, осталась ли какая-либо активность в рамках данного цикла. Если да, (получение данных, завершение отложенных задач, и т.п.), он возвращается к шагу 1 и проверяет, не наступило ли время нового цикла. Если нет, то переходит к шагу 3 для завершения всех отложенных задач. Если да, переходит на следующий цикл. Если отложенных задач не осталось и время нового цикла не наступило, то наступает пауза на 40 мс и после этого переходит к шагу 1.
Дата публикования: 2014-11-18; Прочитано: 297 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!