Cтраница 4
Для разрешения конфликта интерпретатор имеет критерий, с помощью которого он выбирает единственное правило, после чего оно срабатывает. Это выражается в занесении фактов, образующих заключение правила, в рабочую память или в изменении критерия выбора конфликтующих правил. Если же в заключение правила входит название какого-нибудь действия, то оно выполняется. Работа машины вывода зависит только от состояния рабочей памяти и от состава базы знаний. На практике обычно учитывается история работы, то есть поведение механизма вывода в предшествующих циклах. Обычно память состояний содержит протокол системы. [46]
В этом пункте будут рассмотрены стратегии пяти классов, широко используемые в экспертных системах. Внутри некоторых классов будет рассмотрено более одной стратегии, которые отличаются по селективности или по используемым ими источникам знаний. Стратегии значительно различаются по селективности: одни устраняют только малую часть означиваний из конфликтного набора, другие устраняют почти все означивания. Все рассмотренные ниже стратегии используют один или несколько из следующих источников знаний: рабочая память; память правил; память состояний, поддерживаемая интерпретатором. Память состояний интерпретатора хранит историю работы, т.е. информацию об удовлетворенных правилах и о подмножестве данных, которые означивали правила. [47]
Работа каждого пользователя является последовательностью шагов типа блокировка х, корректировка х и деблоки-ровка х, где х-переменная. Если существует d пользователей, то каждому из них сопоставляем одну из осей d - мерного декартова пространства Еа и для каждой оси устанавливаем взаимно однозначное соответствие между шагами транзакции и точками с целочисленными координатами. При этом корректировке переменной соответствует интервал ( интервал блокировки) на оси, который ограничен точками, соответствующими шагам блокировки и деблокировки. Поэтому, если k пользователей ( k d) обращаются к одной и той же переменной, то декартово произведение соответствующих интервалов блокировки образует 6-мерный прямоугольник. Состояние базы данных представимо точкой на координатной плоскости ( Ui U2), фиксирующей историю работы каждого пользователя; например, точка с координатами ( 8 3) на рис. 8.4 ( а) обозначает, что шаги 8 и 3 пользователей соответственно И и U2 выполнялись одновременно. Ясно, что в системе транзакций с блокировкой точка состояния не может лежать внутри прямоугольника, связанного с переменной. [48]