Упражнения. 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.