В программе, приведенной в листинге 20.2, реализованы три типа ограничений QDE в виде предикатов deriv(X, Y), sum(X, Y, 2), mplus (X, Y), Все параметры этих предикатов (X, Y и Z) представляют собой качественные состояния переменных. Рассмотрим каждое из этих ограничений.
• Ограничение deriv(X, Т). С качественной точки зрения Y - это производная от X по времени. Проверка этого ограничения является очень простой — направление изменения переменной X должно соответствовать знаку переменной Y
• Ограничение mplus (X, Y). Переменная Y представляет собой монотонно возрастающую функцию от X. Здесь X и Y имеют форму Dx:QmagX/DirX и Dy:QmagY/DirY При этом, во-первых, направления изменений должны быть согласованы: DirX = DirY. во-вторых, должны соблюдаться заданные соответствующие значения. Метод проверки второго требования основан на использовании относительных качественных величин переменных X и Y (они являются относительными применительно к парам соответствующих значений). Например, относительная качественная величина переменной level: zero., top по отношению к top равна neg. Для каждой пары соответствующих значений качественные величины переменных х и у преобразуются в относительные качественные величины. Результирующая относительная качественная величина переменной X должна быть равна таковой для переменной Y,
• Ограничение sum(XF Y, Z). Это ограничение соответствует выражению X + Y = 2, в котором все переменные (X, Y и Z) представляют собой качественные состояния переменных в форме Domain:Qmag/Dir, Этому ограничению суммирования должны соответствовать и направления изменений, и качественные величины. Во-первых, проверяется согласованность направлений изменений. Например, выражение
inc + std - inc
является истинным, а следующее выражение — • ложным: inc + std = std
Во-вторых, качественные величины должны быть согласованы с операцией суммирования. В частности, они должны быть согласованы по отношению ко всем заданным соответствующим значениям, выбранным среди значение" X, " t и Z. Ниже приведены три примера качественных величин, удовлетворяющих ограничению sum.
Глава 20. Качественные рассуждения
flow:zero + flow:inflow = flow:inflow
flow:zero..inflow + flow:zero..inflow • flow:inflow
flow:zero.,inflow + flow:гего..inflow = flow:гего..inflow
Но следующее выражение является ложным: flow:zero.inflow + flow:inflow = flow:inflow
Метод проверки согласованности качественных величин по отношению к соответствующим значениям состоит в следующем. Вначале необходимо преобразовать заданные качественные величины в относительные качественные величины (они являются относительными применительно к соответствующим значениям). Затем необходимо проверить согласованность этих относительных качественных значений применительно к операции качественного суммирования. Рассмотрим следующий пример: sum! flow:zero..inflow/inc, flow:zero..inflow/dec, flow:inflow/std)
Во-первых, направления изменений соответствуют ограничению: inc+dec = std. Во-вторых, рассмотрим три соответствующих значения для операции суммирования, которая при любых условиях является действительной: correspond I sural Di:zero, D2:Land, D2:Land)]
где Dl и D2 - области определения, a Land - отметка в области определения D2. Применяя это выражение к области определения потока, получим следующее: correspond! sum! flcw:zero, flow:inflow, flow:inflow))
Являются ли качественные величины в ограничении sum согласованными с этими соответствующими значениями? Для проверки этого преобразуем три качественные величины в ограничении sum в относительные качественные величины следующим образом:
flow:zero..inflow соответствует 'pos' относительно flow:zero flow:zero..inflow соответствует 'neg 1 относительно flow:inflow flow:inflow соответствует 'гего' относительно flow:inflow
Теперь эти относительные качественные величины должны удовлетворять ограничению qsum [ pos, лед, zero). Такое утверждение является истинным.
Математические основы для этой процедуры проверки ограничения sum состоят в следующем. Предположим, что ограничение представлено в виде выражения su:n(X,Y,Z) с тремя соответствующими значениями (хО, уО, zC). Переменные X, Y и Z могут быть представлены в терминах их отличий от соответствующих значений таким образом:
X = хО т ЛХ, Y = уО + ДХ, Z = zO + AZ
В таком случае ограничение sum означает следующее:
хО + Дх + уО + AY - zO * дг
Поскольку х. О + уО = zO, можно сделать вывод, что ДХ + AY = AZ. Знаки переменных ДХ, AY и Дг определяют относительные качественные величины переменных X, Y и Z применительно к переменным хО, уО и zO. Эти относительные качественные величины должны удовлетворять отношению qsum.