ГОСТ Р HCO/HL7 27951—2016
((LIST<IVL<TS»}x> .isEmpty; I;
invariant (GTS x, IVL<TS> first}
where x.notEmpty.ana(x.hull.low.nonNull}
.ana(tir3t.equal(x.next.To(x.hull.low»} )
((LIST<IVL<TS»>
x}
.heaa.equal(first};
((LIGT<1VL<TS»}
x}
.tail.equal(
(LIST<IVL<TS*>}x.except,(first}!;
B.5.3.3 Чередующиеся расписания и периодические оболочки
Два значения А и В типа GTS чередуются, если интервалы их событий чередуются на оси времени. Это по
нятие иллюстрируется рисунком В. 17.
Расписание А
Ш
Е Э
Ш&
Е З^ESI
►
"™ Г
w w /ж
чччччм
Расписание Б
Я^
^//Л -------------NNNH
к
tNNSSN—
^
---------
NNM
---------
KNNNN1
^
Вре“ я
Рисунок В. 17 — Чередующиеся расписания и периодическая оболочка
Значения А и В типа GTS считаются чередующимися, если интервалы событий обоих групп могут быть по
парно упорядочены. При этом соответствующие пары интервалов а С А и b С В должны удовлетворять следующе му
условию: интервал а начинается до начала интервала b (или в то же самое время), и интервал Ь завершается после
завершения интервала а (или в то же самое время).
Отношение чередования имеет место, если два расписания имеют одинаковую среднюю частоту и при этом
второе расписание никогда не иперекрывает» первое расписание. Другими словами, никакой интервал события
второго расписания не может начаться раньше соответствующего ему интервала события первого расписания.
Для двух чередующихся значений типа GTS (ложно определить периодическую оболочку, представляющую
собой совокупность выпуклых оболочек соответствующих пар интервалов событий.
Периодическая оболочка важнадля конструированиядвухрасписаний с помощьюсочетания значений типа GTS.
Например, для конструирования ежегодного периодического интервала отДня памяти (последний понедельник мая)до
Дня труда (первый понедельник сентября) (ложно сконструировать растысание М для Дня памяти и расписание Lдля
Дня труда, а затем скомбинировать эти два расписания, используя периодическую оболочку расписаний М и L
invariant(GTS А, Ь}
where x.nonNull.ana(y.nonNull> )
A.mi erleaves(Б}.equal (
forail(IVL<TS> a, b, c; TS t}
where a.equal(A.nextTo(t>}
.and(L.equal(B.next.To(a.low}>}
.and(c.equal(A.nextTo(L.high}>} !
b. equal(B.next.To(a.high!>;
a.low.lessOrEqual(L.low!;
c .
equal(A.nextTo(b.high)!;
c.equal(a}.or(c.equal(A.nextAfter(a.high}}};
1 !;
);
Периодическая оболочка значений А и В типа GTS. где В чередуется с А. определяется как попарная выпу
клая оболочка соответствующих интервалов появлений А и В.
invariant (GTS Л, Б, С}
where A.interleaves(Б> (
A.perlCKlicHull(В).equal(С).equal(
forall(TVL<TS> a, b; TS t)
where a.equal(A.nextTo(t})
.and
(b .
equal(Б.nextTo(a.low!}} j
C.contains(c>.equal(c.equal(a.hull(b>>>;
H f
I ;
411