4. Условие, что {v(x)} = 0 если и только если {v'(x)} = 0 при v(x) ≤ c
x
,
приводит к разбиению, например, класса [0 ≤ x < 1] на классы
[x = 0] и [0 < x < 1]. Аналогично разбивается класс [1 ≤ x < 2]. Класс
[x > 2] далее разбивать не требуется, так как для этого класса
нарушается условие v(x) ≤ c
x
. В качестве результата получаем для
простого временного автомата 6 классов эквивалентности:
[x = 0], [0 < x < 1], [x = 1], [1 < x < 2], [x = 2] и [x > 2].
Пример. Рассмотрим множество часов C = {x, y} с c
x
= 2 и c
y
= 1, и
пусть часовые ограничения не содержат подформул вида x – y ~ c или
y – x ~ c. На рис. 2.37 отображено последовательное построение
регионов путем рассмотрения каждого условия в определении
отношения по отдельности. Рисунок отображает разбиение
двумерного квадранта
×
. Часовые оценки v и v' эквивалентны,
если вещественнозначные пары (v(x), v(y)) и (v'(x), v'(y)) являются
элементами одного и того же класса эквивалентности в двумерном
пространстве.
1. Требование того, что [v(x)] = [v'(x)] для всех часов из C, приводит,
например, к классам эквивалентности [(0 ≤ x < 1), (0 ≤ y < 1)] и
[(1 ≤ x < 2), (0 ≤ y < 1)] и т. д. Условие, что v(x) > c
x
и v'(x) > c
x
для всех часов из C, приводит к классу эквивалентности [(x > 2),
(y > 1)]. Это означает, что для любой часовой оценки v, для которой
v(x) > 2 и v(y) > 1, точные значения x и y несущественны. В
результате получаются следующие классы эквивалентности:
[(0 ≤ x < 1), (0 ≤ y < 1)], [(1 ≤ x < 2), (0 ≤ y < 1)],
[(0 ≤ x < 1), (y = 1)], [(1 ≤ x < 2), (y = 1)],
[(0 ≤ x < 1), (y > 1)], [(1 ≤ x < 2), (y > 1)],
[(x = 2), (0 ≤ y < 1)], [(x > 2), (0 ≤ y < 1)],
[(x = 2), (y = 1)], [(x > 2), (y = 1)],
[(x = 2), (y > 1)], [(x > 2), (y > 1)].
Эти 12 классов отображены на рис. 2.37 (а).
2. Рассмотрим класс эквивалентности [(0 ≤ x < 1), (0 ≤ y < 1)],
который был получен на предыдущем шаге. Так как порядок
дробных частей часов сейчас становится важным, этот класс
эквивалентности разбивается на классы [(0 ≤ x < 1), (0 ≤ y < 1),
(x < y)], [(0 ≤ x < 1), (0 ≤ y < 1), (x = y)] и [(0 ≤ x < 1), (0 ≤ y < 1),
(x > y)]. Аналогичное рассуждение применимо к классу [(1 ≤ x < 2),
(0 ≤ y < 1)]. Другие классы более не разбиваются. Например, класс
[(0 ≤ x < 1), (y = 1)] не должен разбиваться, так как порядок на
дробных частях часов x и y в данном классе фиксирован,
{v(x)} ≥ {v(y)}. Класс [(1 ≤ x < 2), (y > 1)] не разбивается, так как
для этого класса нарушается условие v(x) ≤ c
x
и v(y) ≤ c
y
.
Рис. 2.37 (б) показывает результирующие классы эквивалентности.