м* <х, Y) Y - монотонно возрастающая функция от х
М- (х, Y) Y - монотонно убывающая функция от х
sum(X,Y,Z) Z = X+Y
minus(X,Y) Y = -X
mult(X,Y,2) z = X*Y
denv{x,ir; ______________ у = dX/dt(Y-производная по в р е м е н и отх] ____________________
Как обычно, имена переменных начинаются с прописных букв, а имена констант — со строчных.
Иногда удобно проиллюстрировать такие ограничения с помощью графа. Узлы графа соответствуют переменным модели, а соединения между узлами обозначают ограничения. На рис. 20.6 показана модель ванны, представленная в виде подобного графа.
dertv
Amount ---------- *- Netflow
4
Mq f~) ------- ** Inflow = Inflow/std
Level Щ ----- *■ Outflow
Щ
Рис. 20,6. Графическое представление модели ванны
Теперь приступим к проведению машинного моделирования по методу качественных рассуждений с использованием модели, приведенной на рис. 20.6. Для этого применяется несколько произвольная система обозначений, которая, тем не менее, допускает только однозначное толкование. Например, запись Amount=zero означает, что качественное значение переменной Amount равно нулю, а запись Amount=zero/inc означает, что качественное значение переменной Amount первоначально было равно нулю, а теперь возрастает. Начнем работу со следующего начального условия: Amount = zero
С учетом наличия ограничения M43, связывающего переменные Amount и Level (см. рис. 20.6), с помощью логического вывода получим следующее: Level = zero
К этому значению применяется другое ограничение М*о, что позволяет логически вывести следующее: Outflow = zero
После зтого ограничение Outflow + Netflow = Inflow конкретизируется таким образом: гесо + Netflow «inflow
Часть II. Применение языка Prolog в области искусственного интеллекта
Это позволяет получить выражение Netflow = inflow.
Теперь рассмотрим ограничение deriv между переменными Amount и Netflow, которое указывает, что значение Netflow равно производной по времени от Amount. Поскольку Netflow = inflow > zero, с помощью логического вывода определяем, что значение Amount должно быть возрастающим, как показано ниже. Amount = zero/inc
Применяя к этому значению ограничение М^, получим следующее:
Level = zero/inc Outflow = zero/inc
Затем ограничение Outflow + Netflow = Inflow конкретизируется, как показано ниже. zero/inc + Netflow = inflow/std
Для того чтобы удовлетворялось это ограничение, переменная Netflow должна иметь следующее значение: Hetflow» inflow/dec
Таким образом, полное первоначальное качественное описание состояния ванны имеет вид
Amount - zero/inc Level - zero/inc Outflow = zero/inc Netflow = inflow/dec
Теперь рассмотрим возможные переходы в следующее качественное состояние системы. Предполагается, что кривые изменения значений всех переменных во времени являются гладкими; это означает, что изменение значений происходит непрерывно и производные этих значений по времени также являются непрерывными. Следовательно, переменная, которая является отрицательной, не может стать положительной, не приняв перед этим нулевое значение. Поэтому отрицательная величина может в следующий момент времени либо остаться отрицательной, либо стать равной нулю. Аналогичным образом, возрастающая переменная может либо продолжать возрастать, либо оставаться постоянной. Но она не может внезапно стать уменьшающейся, поскольку вначале эта переменная должна в течение некоторого времени оставаться постоянной. Иными словами, если направление изменения значения переменной обозначается как "inc" (возрастающая), то эта переменная может либо оставаться в состоянии "inc", либо перейти в состояние "std" (неизменная), но не сразу в состояние "dec" (уменьшающаяся). Еще одно ограничение, которое распространяется на возможные переходы между состояниями, состоит в том, что изменяющаяся переменная не может обозначаться больше чем одним экземпляром одного и того же значения отметки. Поэтому переход из состояния "zero/inc" в состояние "zero/inc" невозможен.
Очевидно, что предположение о гладкости в условиях рассматриваемой модели ванны является вполне обоснованным, по меньшей мере в той ситуации, когда уровень Level находится в пределах между zero и top, в связи с чем отток воды через край отсутствует. С учетом ограничения, согласно которому кривые изменения значений переменных должны быть гладкими, следующее качественное состояние переменной Level может быть представлено таким образом: Level <= zero..top/inc
Это значение наряду с ограничениями модели на рис. 20.6 определяет качественные состояния других переменных. Поэтому очередное качественное состояние системы принимает следующий вид:
Level = zero..top/inc Amount = zero..full/inc Outflow = zero..inflow/inc Netflow = zero..inflow/dec
Глава 20. Качественные рассуждения
Каковы следующие возможные качественные состояния переменной Level? Теперь существуют четыре такие возможности.
1. Level = zero..top/inc.
2. Level = zero..top/std.
3. Level = top/std.
4. Level = top/inc.
В первом случае качественное значение переменной Level остается таким же, как и в предыдущем состоянии. При этом данная модель позволяет определить, что остальные переменные также остаются неизменными. Поэтому в данном случае остается в силе предыдущее описание качественного состояния и нет необходимости вводить новое качественное состояние. Следует отметить, что одно и то же качественное состояние может сохраняться в течение всего рассматриваемого интервала времени (как и в этом случае).
Остальные три возможных перехода соответствуют трем альтернативным вариантам поведения системы, которые описаны ниже.
1. Переменная Level перестает увеличиваться и принимает постоянное значение до того, как соответствующий ей уровень воды достигнет края ванны. Ограничения, доказанные на рис. 20.6, позволяют сделать вывод, что другие переменные также принимают постоянные значения и с тех пор не происходят какие-либо изменения. Поэтому в данном случае конечное состояние процесса машинного моделирования может быть представлено следующим образом:
Level = zero..top/std
Amount = zero..full/std
Outflow = inflow/std
Hetflow = zero/std
Строго говоря, это устойчивое состояние достигается только после прохождения бесконечно большого промежутка времени, но это соображение в данном качественном описании не имеет значения, поскольку в нем не учитываются продолжительности интервалов времени.
2. Переменная Level принимает постоянное значение точно в тот момент времени, когда соответствующий ей уровень воды достигает края ванны. Несмотря на то что теоретически такая ситуация возможна, в действительности она является весьма маловероятной. В таком случае все другие переменные также принимают постоянные значения и снова наступает конечное состояние процесса машинного моделирования, аналогичное случаю 1.
3. Уровень воды достигает края ванны и с этого момента времени продолжает возрастать. После этого вода начинает переливаться через край, а модель, приведенная на рис. 20.6, перестает действовать. В такой ситуации происходит резкий переход в новую рабочую область. Теперь для этой новой рабочей области требуется другая модель. Кроме того, для описания резких переходов из одной рабочей области в другую нужен особый подход. Такая задача здесь не рассматривается. Поэтому в данном случае выход из рабочей области модели, приведенной на рис. 20.6, рассматривается как переход еще в одно конечное состояние.
Этот пример показывает, что качественная модель способна продемонстрировать несколько вариантов качественного поведения. Безусловно, что в реальной ванне, характеризующейся конкретными физическими параметрами и постоянным притоком, может наблюдаться только один из этих трех вариантов развития событий. Рассматриваемая качественная модель яаляется довольно грубой абстракцией действительности, поскольку в ней исключена вся числовая информация, характеризующая процессы, происходящие при заполнении ванны. Поэтому качественное машинное моделирование не позволяет определить, какой из трех качественных вариантов поведения соответствует развитию событий при фактическом заполнении ванны. Вме-
Часть II, Применение языка Prolog в области искусственного интеллекта
сто этого в данном случае качественное моделирование позволяет лишь выдвинуть разумные предположения о том, какие варианты развития событий являются возможными,
В данном разделе представлены некоторые основные идеи в области качественного теоретического и машинного моделирования. На основании этих идей разработана программа качественного машинного моделирования, приведенная в следующем разделе.