Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Машина вывода



Одним из основных компонентов 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; Прочитано: 295 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...