Ограничение Описание


м* <х, 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 в области искусственного интеллекта


сто этого в данном случае качественное моделирование позволяет лишь выдвинуть разумные предположения о том, какие варианты развития событий являются воз­можными,

В данном разделе представлены некоторые основные идеи в области качественного теоретического и машинного моделирования. На основании этих идей разработана про­грамма качественного машинного моделирования, приведенная в следующем разделе.