Е. Аксенова,статья в сборнике 2006

advertisement
Оптимизация, математические модели
Оптимальное управление
FIFO-очередями на бесконечном времени1
Е. А. Аксенова
Ин-т прикл. математ. исслед. КарНЦ РАН, Петрозаводск
2
В статье предложена математическая модель и алгоритм управления тремя последовательными циклическими очередями в памяти одного уровня.
В качестве модели рассматривается случайное блуждание по целочисленной
решетке в трехмерном пространстве, в качестве критерия оптимальности —
доля потерянных пакетов при переполнении какой-либо из очередей на бесконечном промежутке времени.
1.
Введение
В работе исследуется способ управления очередями, когда при
переполнении какой-либо из очередей работа завершена не будет.
Т. е. если очередь занимает всю предоставленную ей память, то все
последующие элементы, поступающие в нее, отбрасываются до тех
пор, пока не появится свободная память (т. е. до тех пор, пока не
произойдет исключение элемента из очереди). Такая схема применяется в работе сетевых маршрутизаторов в том случае, когда по
мере увеличения трафика очередь на исходящем интерфейсе маршрутизатора заполняется пакетами. Заполнение очереди происходит
из-за того, что низкая пропускная способность исходящего канала связи не позволяет ему успешно справляться с возрастающим
объемом поступающего трафика. Если объем трафика продолжает
нарастать со скоростью, превышающей скорость исходящего канала, то возможна ситуация полного заполнения системы очередей.
Когда это происходит, маршрутизатор будет удалять все новые поступающие пакеты. Такое поведение маршрутизатора называется
“сбросом хвоста”. Потери пакетов приводят к нежелательному результату, поэтому, число таких ситуаций необходимо свести к минимуму. В работе рассматриваются чистые FIFO-очереди, т. е. доступ
возможен только к начальному элементу очереди.
1 Работа
2 Е.
c
выполнена при финансовой поддержке РФФИ (грант є06-01-00303).
А. Аксенова, 2006
71
2.
Математическая модель
Пусть в памяти размера m единиц мы работаем с тремя последовательными циклическими FIFO-очередями.
Для последовательного представления каждой очереди выделим некоторое количество единиц памяти из данных m единиц.
Пусть s — количество единиц памяти, выделенных первой очереди,
z — количество единиц памяти, выделенных второй очереди, тогда
m−s−z — количество единиц памяти, выделенных третьей очереди
(Рис. 1).
Предположим, что известны некоторые вероятностные характеристики операций, производимых с очередями. Пусть p1 , p2 , p3
— вероятности включения информации в в первую, вторую и третью очереди соответственно, q1 , q2 , q3 — вероятности исключения
информации из первой, второй и третьей очереди соответственно,
r — вероятность операции, не изменяющей длины очереди (например, чтение), где
p1 + p2 + p3 + q1 + q2 + q3 + r = 1.
Предполагается, что в очередях хранятся данные фиксированного размера. При исключении информации из пустой очереди не
происходит завершение работы.
Обозначим x1 , x2 , x3 — текущие длины очередей в каждый момент времени. В качестве математической модели рассмотрим блуждание в трехмерном пространстве по целочисленной решетке в области 0 ≤ x1 ≤ s + 1, 0 ≤ x2 ≤ z + 1, 0 ≤ x3 ≤ m − s − z + 1 с вероятностями переходов: p1 и q1 — по оси x1 , p2 и q2 — по оси x2 , p3 и q3
— по оси x3 . Плоскости x1 = s + 1, x2 = z + 1, x3 = m − s − z + 1 соответствуют ситуациям “сброса хвоста”. Попадая на эти плоскости,
мы находимся на них до тех пор, пока не произойдет исключение
элемента из очереди (Рис. 1, слева).
Определим поведение процесса в состояниях “сброса хвоста”.
Предположим, что произошло переполнение первой очереди, т. е.
с вероятностью p1 процесс перешел в состояние (s + 1, x2 , x3 ). Теперь с вероятностью p1 процесс будет оставаться в этом состоянии
(s+1, x2 , x3 ), т. к. при попытке включения в переполненную очередь
элемент будет потерян. С вероятностью q1 происходит исключение
элемента из переполненной очереди и освобождается одна ячейка
памяти, т. е. процесс переходит в состояние (s − 1, x2 , x3 ). С вероятностью r процесс переходит в состояние (s, x2 , x3 ), с вероятностью
72
Рис. 1: (слева) Область блуждания. (справа) Нумерация состояний
при m = 3, s = 1, z = 1.
p2 — в состояние (s, x2 + 1, x3 ), с вероятностью q2 — в состояние
(s, x2 − 1, x3 ), с вероятностью p3 — в состояние (s, x2 , x3 + 1), с вероятностью q3 — в состояние (s, x2 , x3 − 1). Аналогично рассматривается поведение процесса блуждания при переполнении второй и
третьей очереди.
Состояния, которые соответствуют точкам (x1 , z+1, m−s−z+1),
(s+1, x2 , m−s−z +1), (s+1, z +1, x3 ) не рассматриваются, т. к. при
заданных вероятностях блуждания в эти состояния процесс попасть
не может.
Необходимо минимизировать число потерянных пакетов при переполнении какой-либо из очередей. Другими словами, необходимо
найти такие s и z, чтобы доля времени, которое процесс проведет в
состояниях “сброса хвоста”, была минимальной. Для решения задачи использовались результаты теории регулярных цепей Маркова.
3.
Матрица переходных вероятностей
Случайное блуждание будем рассматривать в виде регулярной
конечной цепи Маркова с матрицей переходных вероятностей P .
Количество состояний в цепи будет
(s + 1)(z + 1)(m − s − z + 1) + (s + z + 2)(m − s − z + 1) + (s + 1)(z + 1).
Зададим нумерацию состояний цепи так, как показано на Рис. 1
(справа). Сначала пронумеруем состояния области 0 ≤ x1 ≤ s,
73
0 ≤ x2 ≤ z, 0 ≤ x3 ≤ m − s − z, а затем состояния “сброса хвоста” на плоскостях x1 = s + 1, x2 = z + 1, x3 = m − s − z + 1. При
введеной нумерации матрица P в данной задаче имеет определенную структуру:
Q | Q0
.
P =
Q00
Подматрица Q описывает блуждание в области 0 ≤ x1 ≤ s, 0 ≤ x2 ≤
z, 0 ≤ x3 ≤ m − s − z и имеет такую же структуру, как в задаче
последовательного представления трех FIFO-очередей на конечном
времени [1].
Введем обозначение diag(a) — диагональная матрица, в которой
значения элементов на главной диагонали равны a, а остальные —
нули.
Матрица Q при заданной нумерации, размере памяти m и заданных величинах s и z имеет вид:


diag(p3 )
O
A0k×k

 diag(q3 )
Ak×k
diag(p3 )


,
.
.
.
.
.
.
.
.
.
Qp×p = 



diag(q3 )
Ak×k
diag(p3 ) 
O
diag(q3 )
Ak×k
где p = (s + 1)(z + 1)(m − s − z + 1), k = (s + 1)(z + 1), а стоящие
вдоль главной диагонали подматрицы имеют структуру: Ak×k =


D(z+1)×(z+1)
diag(q1 )
O


diag(p1 )
D(z+1)×(z+1)
diag(q1 )


,

...
...
=



diag(p1 )
D(z+1)×(z+1)
diag(q1 )
0
O
diag(p1 )
D(z+1)×(z+1)
A0 = A + diag(q3),

D(z+1)×(z+1)
r + q2
 q2


=



O
p2
r
q2
O
p2
r
...
...
q2
p2
r




 , D0 = D + diag(q1 ).



Подматрица Q0 описывает поведение процесса при переходе в
состояния “сброса хвоста”. Подматрица Q00 описывает поведение
74
процесса в случае, когда какая-либо из очередей переполнена. Все
строки матрицы Q00 полностью дублируют строки матрицы Q, соответствующие состояниям, из которых можно попасть в состояния
“сброса хвоста”.
Теперь необходимо решить уравнение α · P = α, где α — предельный вектор для полученной марковской цепи. По закону больших чисел для регулярной цепи Маркова элемент вектора αi — это
доля времени, которое процесс проводит в состоянии i [3]. Для вычисления времени, проведенного в состояниях “сброса хвоста”, нужно просуммировать элементы вектора α, соответствующие этим состояниям. При введеной нумерации состояний это будут последние
(s + z + 2)(m − s − z + 1) + (s + 1)(z + 1) элементов вектора α.
4.
Результаты
Таблица 1. Оптимальное разбиение памяти и доля времени,
проведенного в состояниях “сброса хвоста”.
r
1/7
0.1
0
0
0
0
0.4
0
0
1/7
0.1
0
0
0
0
0.4
0
0
p1
1/7
0.1
0.2
0.2
0.3
0.15
0.1
0.01
0.9
1/7
0.1
0.2
0.2
0.3
0.15
0.1
0.01
0.9
q1
1/7
0.2
0.1
0.05
0.25
0.3
0.1
0.95
0.02
1/7
0.2
0.1
0.05
0.25
0.3
0.1
0.95
0.02
p2
1/7
0.1
0.1
0.25
0.05
0.2
0.1
0.01
0.01
1/7
0.1
0.1
0.25
0.05
0.2
0.1
0.01
0.01
q2
1/7
0.2
0.05
0.25
0.1
0.1
0.1
0.01
0.02
1/7
0.2
0.05
0.25
0.1
0.1
0.1
0.01
0.02
p3
1/7
0.2
0.4
0.2
0.05
0.15
0.1
0.1
0.02
1/7
0.2
0.4
0.2
0.05
0.15
0.1
0.1
0.02
q3
1/7
0.2
0.15
0.05
0.25
0.1
0.1
0.01
0.03
1/7
0.2
0.15
0.05
0.25
0.1
0.1
0.01
0.03
m
15
15
15
15
15
15
15
15
15
25
25
25
25
25
25
25
25
25
s
5
5
5
2
10
5
5
1
2
8
8
9
3
17
8
8
2
3
z
5
5
5
11
3
4
5
7
5
9
9
8
19
5
7
9
11
8
T
0.0714
0.005
0.403
0.326
0.063
0.159
0.05
0.003
0.88
0.046
0.0005
0.4
0.314
0.053
0.151
0.032
0.002
0.88
Разработана программа для ЭВМ, которая для заданных значений вероятностей блуждания, размера памяти m и всевозможных
75
значений s и z генерирует матрицу P , вычисляет предельный вектор α и долю времени, проведенного в состояниях “сброса хвоста”.
Оптимальное разбиение памяти соответствует минимальному времени, проведенному в состояниях “сброса хвоста”.
Некоторые результаты вычислений представлены в Табл. 1. В
столбце T содержатся значения доли времени, проведенного в состояниях “сброса хвоста”, соответствующие оптимальным значениям s и z.
Список литературы
[1] Аксенова Е. А. Исследование методов представления трех очередей в памяти одного уровня // Труды ИПМИ КарНЦ. Методы математического моделирования и информационные технологии. Выпуск 4. Петрозаводск. 2006. С. 163–186.
[2] Кнут Д. Искусство программирования для ЭВМ. Т. 1. Основные алгоритмы. М.:Мир. 1977.
[3] Кемени Дж., Снелл Дж. Конечные цепи Маркова. М.:Наука.
1970.
[4] Соколов А. В. Математические модели и алгоритмы оптимального управления динамическими структурами данных. Петрозаводск, 2002.
[5] Соколов А. В., Тарасюк А. В. Об оптимальном управлении циклическими FIFO-очередями // Системы управления и информационные технологии. 2005. № 3(20). C. 29–33.
[6] Феллер В. Введение в теорию вероятностей и ее приложения.
М.:Мир. 1964.
76
Download