Упражнения. 20.3. В некоторой системе определены две переменные — X и У

20.3. В некоторой системе определены две переменные — X и У. Варианты их

(количественного) поведения во времени имеют следующую форму: X{t) - al*sin(kl*t), У<t) - a2*sin(k2*t)



Часть II, Применение языка Prolog в области искусственного интеллекта


Здесь al, a2, kl и к2 — постоянные параметры системы; значения всех этих параметров больше 0. Начальным моментом времени является tO = 0, поэто­му начальное качественное состояние системы может быть представлено в виде X(tO) = Y(tO) = zero/inc.

а) Приведите все возможные последовательности первых трех качественных
состояний этой системы.

б) Теперь примите предположение, что между X и Y определено качественное
ограничение Mj'iXY). Перечислите все возможные последовательности пер­
вых трех качественных состояний системы, совместимые с этим ограниче­
нием.

20.4. Качественная модель некоторой системы содержит переменные X, Y и Z и оп­
ределяет следующие ограничения:

sum(X, Y,Z)

Для этих, трех переменных заданы такие отметки: X, Y: minf, zero, inf Z: minf, zero, landz, inf

В момент времени tO качественное значение к равно x{tO) = zero/inc. Ка­ковы качественные значения Y(tO) и 2(tO)? Каковы возможные качествен­ные значения X, Y и Z в следующем качественном состоянии системы, которое сохраняется в течение интервала времени tO. . tl, до следующего качественно­го изменения? Каковы возможные новые качественные значения X(tl), Y (tl) и Z (tl) после следующего качественного изменения, в момент времени tl?

20.5. Определите качественную модель системы сообщающихся сосудов (рис. 20.8) в
форме программы Prolog, применимой для программы машинного моделиро­
вания (см. листинг 20,2). Б этой системе два контейнера соединены тонкой
трубой (настолько тонкой, что можно пренебречь инерцией потока воды в тру­
бе). Проведите эксперименты с этой моделью, задавая разные начальные со­
стояния (см. рис. 20.8).



 


 


Контейнер А


Контейнер В


Рис. 20.8, Сообщающиеся сосуды — два контейнера, соединенные тонкой трубой


20.6. Дополните программу машинного моделирования, приведенную в листинге 20.2, реализовав другие качественные ограничения, которые часто применяют­ся для решения качественных дифференциальных уравнений: minus [X, У) (где X = -Y), m_minus (X Y} (где Y - монотонно убывающая функция от X), mult(X,Y,Z) (где Z = X * Y).

20.7. Рассмотрите следующую качественную модель движения с ускорением:

landmarks( х, [ minf, zero, xl, inf]) . landmarks v, [ minf zero, vO inf]). legalstate< [ x, v]) :-

V = v: /inc, %

Положительное ускорение

deriv _ X, V).

initial ( [ x: zero, .xl/inc, v:v0/inc] }


Глава 20. Качественные рассуждения



Программа качественного машинного моделирования, приведенная в листинге 20.2, вырабатывает следующие результаты (вывод интерпретатора Prolog не­много отредактировав): ?- initial! S), simulate! S, Behav, 31. 3ehav = [ [x : zero..xl/inc,v:vO/inc], [ x:гего..xl/inc,v:vO.. inf/inc] ,

[x:xl/inc,v:vO..inf/inc] , [x:xl..inf/inc,v:v0..inf/inc] ]

Строго говоря, второй из этих двух, выработанных вариантов поведения явля­ется неправильным. Проблема возникает при переходе между первым и вто­рым состояниями системы. Первое состояние включает промежуточное состоя­ние v:vO/inc, которое может продолжаться лишь в течение единственного момента времени (значение возрастающей переменной может применяться в качестве отметки только на мгновение, но не дольше). Второе состояние вклю­чает промежуточное состояние х: xl/inc, которое также является одномо­ментным состоянием. Но за одномоментным состоянием не может непосредст­венно следовать другое кратковременное состояние. Между этими двумя мо­ментами времени должен находиться непустой интервал времени (интервал времени, в котором переменная X должна достичь значения х! из интервала zero..xl). Нет смысла доказывать, что значение X в начальном состоянии может быть сколь угодно близким к xl. Дело в том, что, независимо от того, насколько близким является начальное значение X к xl, всегда имеется другое действительное число между начальным значением X и xl, поэтому значение X должно стать равным этому числу, прежде чем достичь xl. Как можно испра­вить программу, приведенную в листинге 20.2, чтобы устранить этот недоста­ток? Подсказка: откорректируйте процедуру legal_trans.