Научная статья на тему 'Оптимальное управление n FIFO-очередями на бесконечном времени'

Оптимальное управление n FIFO-очередями на бесконечном времени Текст научной статьи по специальности «Математика»

CC BY
147
31
i Надоели баннеры? Вы всегда можете отключить рекламу.
Область наук
Ключевые слова
FIFO-ОЧЕРЕДЬ / СВЯЗАННЫЙ СПИСОК / СЛУЧАЙНОЕ БЛУЖДАНИЕ / РЕГУЛЯРНЫЕ ЦЕПИ МАРКОВА / REGULAR MARKOV'S CHAINS. REFS: 9 TITLES / FIFO-QUEUE / LINKED LIST / RANDOM WALK

Аннотация научной статьи по математике, автор научной работы — Аксенова Е. А., Соколов А. В., Драц В.

Исследуются методы представления n FIFO-очередей в памяти размером m единиц. Решаются задача оптимального разбиения памяти между очередями в случае последовательного циклического представления очередей и задача анализа связанного представления очередей. В качестве математических моделей предложены случайные блуждания по целочисленной решетке в различных областях n-мерного пространства. Задачи решаются с помощью аппарата регулярных цепей Маркова.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Optimal control of the n FIFO-queues for infinity time

In this article, we research methods of the n FIFO-queues allocation in the memory of m units size. The problem of optimal memory partitioning between queues in the case of consecutive circular implementation, as well as the problem of the analysis of linked list implementation are investigated. As mathematical models, we propose random walks into different areas of the n-measured space. The tasks are solved with the help of the apparatus of regular Markov's chains.

Текст научной работы на тему «Оптимальное управление n FIFO-очередями на бесконечном времени»

информационные каналы и среды

УДК 681.142.2+519.2

оптимальное управление N р^-очередями на бесконечном времени

Е. А. Аксенова,

канд. физ.-мат. наук, научный сотрудник А. В. Соколов,

доктор физ.-мат. наук, ведущий научный сотрудник

Институт прикладных математических исследований Карельского научного центра РАН

А. В. Драц,

студент Петрозаводский государственный университет

Исследуются методы представления п FIFO-очередей в памяти размером m единиц. Решаются задача оптимального разбиения памяти между очередями в случае последовательного циклического представления очередей и задача анализа связанного представления очередей. В качестве математических моделей предложены случайные блуждания по целочисленной решетке в различных областях п-мерного пространства. Задачи решаются с помощью аппарата регулярных цепей Маркова.

Ключевые слова — FIFO-очередь, связанный список, случайное блуждание, регулярные цепи Маркова.

Введение

Во многих приложениях требуется работа с несколькими FIFO-очередями, расположенными в общем пространстве памяти. Для этого применяют различные программные или аппаратные решения [1-3]. В данной статье предлагаются математические модели для последовательного циклического и связанного способов представления очередей [1]. В обоих способах представления для каждой очереди нужны два указателя на начало и конец. В первом способе элементы равных длин располагаются циклически в последовательных адресах участка памяти, выделенного очереди. Во втором каждая очередь представлена в виде односвязанного списка элементов, и переполнение памяти наступает тогда, когда список свободных элементов пуст и требуется включить элемент в какую-либо очередь. В обоих способах операции включения и исключения выполняются за время 0(1). В качестве критерия оптимальности рассмотрена минимальная доля потерянных элементов при бесконечном времени работы очередей. Эту величину разумно минимизировать, когда переполнение очереди является не аварийной, а стандартной ситуацией (здесь мы подчеркиваем, что в некоторых приложениях при переполнении очереди работа программы заканчивается, и тогда в качестве критерия оптимальности надо рассматривать максимальное среднее время до переполнения памяти). То есть если очередь занимает всю предоставленную ей память, то все последующие элементы, поступающие в нее, отбрасываются до тех пор, пока не появится свободная память (т. е. до тех пор, пока не произойдет исключение элемента из очереди). Такая схема применяется, например, в работе сетевых маршрутизаторов [3] в том случае, когда по мере увеличения трафика очередь на исходящем интерфейсе маршрутизатора заполняется пакетами. Такое поведение маршрутизатора называется

«сбросом хвоста». Потери пакетов приводят к нежелательному результату, поэтому число таких ситуаций необходимо свести к минимуму. Мы в этой работе строим математические модели в виде случайных блужданий по целочисленной решетке. Первоначально такие модели в виде случайного блуждания в треугольнике [4-7] были построены для решения задачи анализа процесса работы с двумя стеками, растущими навстречу друг другу [1]. В этих моделях предполагается, что на каждом шаге дискретного времени с заданными вероятностями происходят некоторые операции со стеками. Время выполнения операций — это не случайная величина, а константа, поэтому фиксированным является и шаг времени. Рассмотрены случаи последовательного представления очередей для п = 2 [8] и п = 3 [9]. В данной статье рассмотрены последовательный и связанный способы представления FIFO-очередей для случая произвольного п. Необходимо определить, как распределить память между очередями в последовательном способе организации и какой из способов организации очередей является оптимальным.

В работе будем придерживаться следующих обозначений: т — размер памяти; п — количество стеков и/или очередей в быстрой памяти;

рг — вероятность включения элемента в 1-ю очередь;

qi — вероятность извлечения элемента из Ьй структуры данных;

г — вероятность того, что не произойдет операции включения или извлечения;

кг — размер памяти, выделенной для очереди с номером i при последовательном представлении;

— текущая длина структуры данных с номером I;

I — отношение размера узла к размеру указателя (для связанного представления);

— доля времени, которую проводит очередь в состоянии «сброса хвоста».

Одна очередь на бесконечном времени

Рассмотрим одну FIFO-очередь, расположенную в быстрой памяти размером т. В каждый момент дискретного времени может произойти одна из следующих операций: включение элемента с вероятностью р, исключение элемента с вероятностью q, очередь не изменяет своей длины с вероятностью г, где р + q + г = 1. Если происходит включение элемента при полностью заполненной памяти, то он считается потерянным. Требуется определить долю времени, в течение которого происходят потери элементов, при бесконечном времени работы.

Для описания процесса работы построим однородную регулярную цепь Маркова [10] с т + 2 состояниями, где состояния с номерами 0, ..., т соответствуют количеству элементов, находящихся в очереди. Состояние т + 1 соответствует «сбросу хвоста», т. е. пока процесс находится в этом состоянии, происходит потеря поступающих в очередь элементов.

Пусть процесс находится в состоянии т + 1, т. е. очередь заполнила всю выделенную память и произошла попытка включения еще одного элемента. Тогда с вероятностью р процесс остается на месте, так как при попытке включения элемента

в переполненную очередь он будет потерян и для процесса блуждания ничего не изменится, с вероятностью q процесс перейдет в состояние т - 1, т. е. исключается элемент из переполненной очереди и появляется одна свободная позиция в памяти, с вероятностью г процесс перейдет в состояние т. Переход процесса из состояния х в состояние х' определяется следующими правилами:

х, х = 0;

р ,

X,

1, 0 < х < т;

х = т + 1;

х — 1, 1 < х < т ;

х — 2, х = т + 1;

х, 0 < х < т;

х — 1, х = т + 1.

Построим матрицу переходных состояний Р. Для данной цепи она имеет вид

Р =

+ Г р 0 0 . .0 0 0 0'

Ч г Р 0 . .0 0 0 0

0 Ч г Р .0 0 0 0

0 0 0 0 . Ч г Р 0

0 0 0 0 .0 Ч г Р

0 0 0 0 . .0 Ч г Р,

У построенной цепи Маркова существует предельный век-

тор а = (а0,

1), который удовлетворяет уравне-

нию аР = а. По закону больших чисел, значение ai является долей времени, которое процесс проводит в состоянии i. Тогда ат + 1 является долей времени, которое процесс проводит в состоянии «сброса хвоста» при бесконечном времени работы.

Построим систему уравнений для определения предельных вероятностей:

1 — (ч + г) —ч 0 0 .. 0 0 0 0 0

—Р 1 — г —ч 0 .. 0 0 0 0 0

0 —Р 1 — г —ч 0 0 0 0 0

0 0 0 0 • — Р 1 — г —ч 0 0

0 0 0 0 0 —Р 1 — г —ч —ч

0 0 0 0 0 0 —Р 1 — г —г

0 0 0 0 .. 0 0 0 —Р 1 — Р

а0 0

а1 0

«2 0

ат—2 = 0

ат—1 0

ат 0

ат+1 _ 0

а

а

а

X

Вычеркнем первую строчку и добавим условие нормировки а0 + а1 + ... + ат + ат + 1 = 1:

- р 1 — г —ч 0 . 0 0 0 0 0 ' ' а0 ' 0'

0 — Р 1 — г —Ч 0 0 0 0 0 а1 0

«2 0

0 0 0 0 • — р 1 — г —ч 0 0

0 0 0 0 0 —Р 1 — г —ч —ч ат—2 0

0 0 0 0 0 0 —Р 1 — г —г ат—1 0

0 0 0 0 0 0 0 —Р 1 1 Р ат 0

1 1 1 1 . 1 1 1 1 1 ^ ат+1 _ 1

Найдем ат + 1 по формуле Крамера: а столбцу:

т + 1 = Дт + 1 / Д. Разложим определитель Дт + 1 по последнему

^т+1 —

—р 1 — г —ч 0 .. 0 0 0 0 0

—р 1 — г —ч 0 .. 0 о О О

0 —р 1 — г —ч .. 0 0 0 0 0

0 —р 1 — г —ч 0 0 0 0

0 0 0 0 .. • — р 1 — г —ч 0 0

— 0 0 0 0 • — р 1 — г — ч 0

0 0 0 0 .. 0 —р 1 — г —ч 0

0 0 0 0 0 —р 1 — г —а

0 0 0 0 .. 0 0 —р 1 — г 0

0 0 0 0 0 0 — 1 1

0 0 0 0 .. 0 0 0 —р 0

0 0 0 0 .. 0 1 О о

1 1 1 1 .. 1 1 1 1 1

= (-р)

т+1

Для вычисления Д прибавим к первой строке строки с номерами 2, ..., т, ко второй — с номерами 3, ..., т и т. д. Учитывая равенство р + д + г = 1, получаем

—р 1 — г —Ч 0 .. 0 0 0 0 0 —Р Ч 0 0 . 0 0 0 0 0

0 —Р 1 — г —Ч •• 0 0 0 0 0 0 —Р Ч 0 . 0 0 0 0 0

0 0 0 0 .. • — р 1 — г —Ч 0 0 0 0 0 0 . • —Р Ч 0 0 0

0 0 0 0 .. 0 —Р 1 — г —Ч —Ч 0 0 0 0 . 0 —Р Ч 0 0

0 0 0 0 .. 0 0 —Р 1 — г —г 0 0 0 0 . 0 0 —Р Ч Ч

0 0 0 0 .. 0 0 0 —Р 1 1 Р 0 0 0 0 . 0 0 0 —Р 1 1 Р

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1 1 1 1 .. 1 1 1 1 1 1 1 1 1 . 1 1 1 1 1

Рассмотрим случай р Ф q. Умножим первый столбец на q/p и прибавим ко второму столбцу, затем умножим второй столбец на q/p и прибавим к третьему. Продолжим эту операцию до столбцов с номерами т и т + 1. Потом столбец с номером т умножим на q/p и прибавим к столбцу с номером т + 2. Тогда

—р 0 0 0 . 0 0 0 0 0

0 —р 0 0 . 0 0 0 0 0

0 0 0 0 . • — р 0 0 0 0

0 0 0 0 . 0 —р 0 0 0

0 0 0 0 . 0 0 —р 0 0

0 0 0 0 . 0 0 0 —р 1 1 р

1 s2 ^ . ■ sm-2 ^—1 sm sm+1 sm+1

где — сумма геометрической прогрессии:

л£—1

—1

—1

Умножим столбец с номером т + 1 на (1 - р)/р и прибавим к столбцу с номером т + 2, после чего получим диагональную матрицу, поэтому окончательно определитель

1 — Р1

А — в

т+1

(—Р)т+1 —

т+1

—1

—1

-(—р)т+1 —

т+1

—1

Тогда

ат+1 '

хт+1

Ч — Р

Ч — Р

-(—Р)

т+1

т+1

—1

Если д = р, то si будет суммой арифметической прогрессии и si = i. Тогда

п - Р

^т+1 -, •

т + 1

Окончательно получаем

ат+1

я—р

, т+1

я_ — 1

і р.

р

+ 9 т + 1

я — р-

(*)

Последовательное представление очередей

Постановка задачи.

Рассмотрим ге FIFO-очередей, расположенных в быстрой памяти размером т. Для последовательного представления каждой очереди необходимо выделить ki единиц памяти, где k1 + ... + + kn = т. Если очередь занимает всю предоставленную ей память, то все последующие элементы, поступившие в нее, отбрасываются до тех пор, пока не появится свободная память.

Рассмотрим очередь с номером i. Вероятность того, что ее длина останется прежней, будет

П

П - г + Е (Pj + Яj)- 1-Рь-Я1-j-1,j^i

*

В этом случае долю времени Р1, которое процесс проводит в состоянии «сброса хвоста», для ^й очереди можно вычислить по формуле (*). Тог-

да общая доля времени, проведенного в состояниях «сброса хвоста»:

1-1

Задача заключается в том, чтобы минимизировать долю потерянных элементов при переполнении какой-либо из очередей. Другими словами, необходимо определить такие значения ^, i = = 1, 2, ..., п, чтобы доля времени, проведенного в состояниях «сброса хвоста», была минимальной.

Случай равных вероятностей.

Рассмотрим случай, когда р1 = Тогда доля

времени, проведенного в состояниях «сброса хвоста», равна

і—1 і

Таким образом, необходимо найти

п

, Рі

Ш1П ---

к-1 +.. .+кп —т,—і к, +1

^ Рі ^ к; +1'

дим

п

^ Рі ^ к, + 1'

Рассмотрим функцию

п—1

^ к..к,-1) -Е утг + ,

;=1к+1 т-Е ,-1 к +1

и найдем ее минимум при условии ^ > 0, i = = 1, 2, ..., ге-1, ^ + ... + kn-l < т. Функция F(kl, ^_1) дважды непрерывно-дифференцируема на рассматриваемом множестве:

77/ р1 | ри

£ь. —-----7ГП-------------77 ;

№+1)2 т-е::>^1)2

2 Рі

Т?! > ____

- ,, 3

2 рп

л+1)" т-^к,+1

3 ’

Т?!! ___

V,. - ■

2 рп

Найдем точку, подозрительную на экстремум, из условия Fк,. (к,кп—1) — 0:

Рі _ Рп

Г, 1 < і < п — 1.

Введем новые переменные у1 = ki + 1. Для каждого i извлечем квадратный корень из обеих частей уравнения. Учитывая, что обе части неотрицательные, получаем

- 4рП

1 < і < п — 1.

Рассмотрим уравнения при і = 1 и при і = 2:

Тл _

и \—'П—1

У1 т + п — Т 1—1 Уі

4р2 — 4рП

у2 т + п — Т 1=1 Уі

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Вычтем второе уравнение из первого:

Получаем

— 0.

4р1 4р2

Уі У2

— Уі4р2 У 2 — /=^~ •

ЯР1

Аналогично выразим остальные переменные ^ через у1:

Уі4рЇ

Подставим в уравнение при і = 1:

Найдем у1:

Уі — -Уі

2 < і < га — 1.

4рП

Уі

и—і

Уі —

I-- / ,

т 1—1

(т + п)^[р

ТП—^

ЕТл

Получаем точку, подозрительную на экстремум:

к* — —1, 1 < і < п — 1.

‘ т—^ ~ <

Покажем, что эта точка является точкой минимума. Для этого по критерию Сильвестра нужно показать, что

. * т * ч т * ч -Г-.П ✓ т * т *

(к*...Ап—1) (к*.Ап—1) ... (к..Ап—і)

(А*...АП—1) К'2кг (кІ-,кІ_і) ... F4/Аn-1 (А1*.АП—1)

, * , *

> 0, 1< і < га — 1.

(к1,., к*—1) Fk2:kn-1 (к!.Ап*—1) ... (к*,., к*—1)

Введем обозначения

2 Рп _ А і ^ р II 2рі , 2 рл

- — I ^ ]. ркк —

77'' __

-

т

-Е п^+1

кікі з

(к +1)3

-е +1

= А + В.

Очевидно, что А > 0 и Ві > 0. Покажем, что определитель Д > 0, где

А + В А ... А

А; —

А А + В2 ... А

А А ... А + В;

, і >1.

По методу математической индукции:

1) база индукции i = 1: Д1 = А + В1 > 0;

2) пусть верно при i = ];

3) докажем при i = ] + 1:

А + В А ... А А

А А + В2 ... А А

д;+і -

А

А

А

А

А + В А А А

А А + В2 А А

А А . А + Ву А

А А А А

А + В А

А

+ В:

j+1

А + В А А 0

А А + В2 А 0

А А .. А + В 0

А А А В+1

і 0 А 0

0 В2 • А 0

— +

0 0 В А

0 0 0 А

А + В А А 0

А А + В2 А 0

А А .. А + В 0

А А А В+1

— АВі .. Ву + Ву*+іА: > 0.

Значит, точка (к*,к*—і) является единственной точкой минимума функции F(k1, ..., kn_1). Следовательно, в этой точке функция достигает своего наименьшего значения. Поскольку k■

и* и*

должны быть целыми, то значения % ,..., необходимо округлить до ближайшего целого и перебрать значения, удовлетворяющие условию k1 + ... + kn = т:

П—1

Ип — т — Е И* — т + п — 1 — і—1

— (т + п)Е г—1 4рІ = (т + п)4РП — і

Т,Пі—і4Рі Т,Пі—і4рі

Наименьшая доля времени, проведенного в состояниях «сброса хвоста»:

1

т + п

РР =у-^- = у

к ь+1 &

(Е пі=і4рі

ІРІ ^ Рі 1=1

т + п

Общий случай.

Введем обозначение

^т (А1’ Ап ) —

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Ш1П

-...+й„ =

Е р*(к1) І—1

где Zm — доля времени, которое процесс проводит в состоянии «сброса хвоста», при оптимальном разбиении памяти размером т между очередями; р) — доля времени, в течение которого происходит потеря элементов только для ^й очереди при размере памяти ki.

Рассмотрим рекуррентную формулу

%т (*1, • • •, *п ) = ^т-1 (*1, •*п ) _

(рНь ) - Р*(к1 +1))'

Начальное значение Z0 равно [по формуле (*)]

го (0,.... 0) = Е-^^_ = Еп

■ тах

1<Кл

<к_

Рі

— 1

т. е. при отсутствии памяти любая попытка включения элемента в одну из очередей будет приводить к его потере.

Был реализован эффективный алгоритм решения задачи на основе предложенной модели динамического программирования, который за время О(тп) вычисляет оптимальное разбиение памяти и долю времени, проведенного в состояниях «сброса хвоста». Также была построена математическая модель этого процесса в виде случайного блуждания по целочисленному п-мер-ному параллелепипеду с вершиной в начале координат, ребрами, параллельными осям координат, и длинами ребер k1 + 1, ..., kn + 1. Гиперплоскости соответствуют состояниям «сброса хвоста». Была предложена нумерация состояний и на ее основе разработан алгоритм генерации соответствующей цепи Маркова и решения задачи с использованием результатов теории регулярных цепей Маркова. Этот метод решения задачи будет подробно изложен далее на примере анализа связанного представления очередей. Метод динамического программирования в данном случае приводит к более эффективному алгоритму.

Связанное представление очередей

При связанном представлении каждая очередь хранится в виде связанного списка, в кото-

ром 1/1-я часть памяти тратится на хранение указателей. Пусть Ш = m(1 - 1/1). В качестве математической модели рассмотрим блуждание по целочисленной п-мерной пирамиде с ребрами 0 < х1 < < Ш, 0 < х2 < Ш, ..., 0 < хп < Ши основанием х1 + х2 + ... + хп = Ш. Для каждого состояния (х1, х2, ..., хп) на плоскости х1 + х2 + ... + хп = Ш, т. е. когда вся память уже занята, введем состояние (х1;х2, ...,хп), соответствующее «сбросу хвоста». В это состояние можно попасть в случае попытки включить элемент в любую из очередей, когда вся память занята. Переход процесса из состояния (х1, х2, ..., хп) определяется по следующим правилам:

•)-

Рі

(. .., хі , . .., -

[(..., Хі +1,..., Xj, •), 0 < хі + . + хп < М;

!(•

,..., xj,...), хі +

(. . . , , . . . , Ху , . . .) -

- хп — М;

Чі

(. . ., Хі 1, . . ., Ху , . .), Хі < 0,

(. . . , Хі , . . . , Ху , . .), Хі ---- 0 ,

(. .., хі, . .., xj, ...)

(. .., хі , . .., х;, . .) -

>(. .., хі, . .., xj, . .), “>(. . ., Хі , . . ., Xj , . .);

Чі

(..., хі , ..., xj , ...)

(..., хі 1,..., xj,..хі > 0,

(..., хі,..., xj,..хі — 0,

(..., хі ,..., xj,. . ^ > (..., хі ,..., xj,..).

На плоскости х1 + х2 + ... + хп = М количество состояний «сброса хвоста»

(М + п — 1)!

С,

М

п+М—1

(п — 1)!М!

Перечислим все состояния области блуждания: (0, 0, 0, ..., 0, 0), (1, 0, 0, ..., 0, 0), ..., (М - 1, 0, 0, ..., 0, 0), (М, 0, 0, ..., 0, 0);

(0, 1, 0, ..., 0, 0), (1, 1, 0, ..., 0, 0), ..., (М - 2, 1, 0, ..., 0, 0), (М - 1, 1, 0, ..., 0, 0);

(0, М - 1, 0, ..., 0, 0), (1, М - 1, 0, ..., 0, 0);

(0, М, 0, ..., 0, 0);

(0, 0, 1, ..., 0, 0), (1, 0, 1, ..., 0, 0), ..., (М - 2, 0, 1, ..., 0, 0), (М - 1, 0, 1, ..., 0, 0);

(0, 1, 1, ..., 0, 0), (1, 1, 1, ..., 0, 0), ..., (М - 3, 1, 1, ..., 0, 0), (М - 1, 1, 1, ..., 0, 0);

(0, 0, М - 1, ..., 0, 0), (0, 0, М, ..., 0, 0);

(0, 0, 0, ..., 0, 1), (1, 0, 0, ..., 0, 1), ..., (М - 2, 0, 0, ..., 0, 1), (М - 1, 0, 0, ..., 0, 1);

(0, 1, 0, ..., 0, 1), (1, 1, 0, ..., 0, 1), ..., (Ш - 3, 1, 0, ...,

0, 1), (Ш - 2, 1, 0, ..., 0, 1);

(0, Ш - 2, 0, ..., 0, 1), (1, Ш - 2, 0, ..., 0, 1);

(0, Ш - 1, 0, ..., 0, 1);

(0, 0, 0, ..., 0, Ш).

Введем нумерацию этих состояний, начиная с 0. Для того чтобы построить матрицу переходных вероятностей, построим функцию F(X) = I,

X = (х,, х2, ..., хп), где X

1

, хп — текущие длины

очередей; I — номер состояния. Будем искать ее в виде

I х„

F(x1, ..., хп) = F(0, ..., 0, хп) + ^(0,

- F(0, ..., 0, хп)) + ... + ^(0, х2, х3,

- F(0, 0, х3, ..., хп-1, хп)) + ^(хх, х2, х3, ..., х

х„) - F(0,

''га-1

хп))’

"га-1, Хп) -■ х--Р хп) -«-Р

т. е. будем увеличивать значения аргументов, начиная с последнего, и вычислять, на сколько увеличится значение функции. Увеличение значения разности функций F(0, 0, ..., 0, хі, хі+1, ..., хп) - F(0, 0, ..., 0, 0, х;+1, ..., хп) зависит от номера і, от значения хі и от суммы хі+1 + ... + хп, т. е. от количества уже занятых ячеек памяти. Теперь пронумеруем состояния «сброса хвоста» таким образом, чтобы состоянию на плоскости х1 + х2 + . + + хп = М с меньшим номером соответствовало состояние «сброса хвоста» с меньшим номером.

На рисунке показан пример нумерации состояний при п = 2, М = 4. Для нахождения доли времени, проведенного в состояниях «сброса хвоста», необходимо найти предельный вектор а и просуммировать его компоненты с номерами от

)! (М + п — 1) (М + п — 1)!

до ----• В приведен-

(М +п п! М!

п! М!

(п — 1)! М!

ном примере необходимо найти сумму а15 + + а19.

+

■ Нумерация состояний при п = 2, М = 4

■ Таблица 1. М = 16, п = 5

г Р1 Р2 Р3 Р4 Р5 ?2 ?3 ?4 ?5 Р* 11 12 14 18

0 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.15 0.2273 0.1923 0.1786 0.1667

0 0.25 0.15 0.05 0.03 0.02 0.25 0.15 0.05 0.03 0.02 0.1208 0.2273 0.1923 0.1786 0.1667

0 0.3 0.03 0.15 0.1 0.05 0.05 0.03 0.05 0.04 0.03 0.61 0.6989 0.6923 0.6902 0.6886

0 0.05 0.2 0.05 0.04 0.03 0.3 0.2 0.15 0.1 0.05 0.01 0.012 0.0045 0.0027 0.0017

0 0.05 0.05 0.05 0.05 0.05 0.15 0.15 0.15 0.15 0.15 0.005413 0.0002506 0.000559 0.000113 0.000021

0 0.07 0.07 0.07 0.07 0.07 0.13 0.13 0.13 0.13 0.13 0.0249 0.0322 0.0168 0.0083 0.00395

■ Таблица 2. М = 16, п = 4

г Р1 Р2 Р3 Р4 ?1 ?2 ?3 ?4 Р* Р* Р2 11 12 14 18

0.2 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.08 0.08 0.1333 0.1143 0.1 0.089

0 0.44 0.02 0.02 0.02 0.44 0.02 0.02 0.02 0.1 0.06 0.1667 0.1429 0.125 0.1111

0 0.5 0.07 0.07 0.07 0.08 0.07 0.07 0.07 0.462 0.459 0.5964 0.5964 0.5964 0.5964

0 0.08 0.05 0.05 0.05 0.5 0.07 0.07 0.07 0.042 0.039 0.08 0.0677 0.0589 0.0517

0 0.15 0.08 0.05 0.02 0.35 0.2 0.1 0.05 0.0049 0.0061 0.0067 0.0022 0.00068 0.0000198

Численные результаты Был разработан комплекс программ для ЭВМ, который реализует вышеописанные алгоритмы нахождения доли времени, проведенного в состояниях «сброса хвоста». Приведем некоторые численные результаты. Сравним последовательное и связанное представление очередей с точки зрения доли времени, в течение которого происходят потери пакетов (табл. 1). В строке Р* указана минимальная доля времени, проведенного в состояниях «сброса хвоста», для последовательного представления. В строке 11 указана доля времени, проведенного в состояниях «сброса хвоста», для связанного представления, когда на связи тратится 1/2 часть памяти (размер информационной части равен размеру указателя), в строке 12 — когда на связи тратится 1/3 часть памяти (размер указателя равен 1/2 размера информационной части), в строке 14 — когда на связи тратится 1/5 часть памяти (размер указателя равен 1/4 информационной части), в строке 18 — когда на связи тратится 1/9 часть памяти (размер указателя равен 1/8 информационной части). На практике вероятности включения и исключения, которые считались известными, не всегда могут быть вычислены. В этом случае будет логичным разделить память поровну между всеми структурами данных в случае последовательного представления. В табл. 2 сравнивается связанное и последовательное представление в том случае, если память разделена поровну между очередями. В строке Р± указана доля времени, проведенного в состояниях «сброса хвоста», когда память разделена поровну между очередями, в строке /2 указана минимальная доля времени, проведенного в состояниях «сброса хвоста», когда память разделена оптимально. Строки 11, 12, 14, 18 такие же, как в табл. 1. Заключение Из приведенных таблиц видно, что связанное представление предпочтительнее использовать, если вероятности включения элемента в очереди меньше, чем вероятности исключения, и на связи тратится 1/3 часть памяти или меньше. В остальных случаях лучше использовать последовательное представление, даже если вероятностные характеристики очередей заранее неизвестны и разбиение памяти может быть неоптимальным. Работа выполнена при финансовой поддержке РФФИ, грант № 09-01-00330-а.

Литература 3. Боллапрагада В., Мэрфи К., Расс У. Структура операционной системы Cisco ЮS. — М.: Вильямс, 2002. — 208 с.

1. Кнут Д. Искусство программирования для ЭВМ. Т. 1. — М.: Вильямс, 2001. — 736 с. 2. Седжвик Р. Фундаментальные алгоритмы на С++. — Киев: Диасофт, 2001. — 688 с.

4. Соколов А. В. О распределении памяти для двух стеков // Автоматизация эксперимента и обработки данных: Сб. ст. / Карельский филиал АН СССР. Петрозаводск, 1980. С. 65-71. 5. Flajolet P. The evolution of two stacks in bounded space and random walks in a triangle // Lecture Notes 7. Аксенова Е. А., Соколов А. В. Оптимальное управление двумя параллельными стеками // Дискретная математика. 2007. № 1. С. 67-75. 8. Соколов А. В., Тарасюк А. В. Об оптимальном управлении циклическими FIFO-очередями // Системы управления и информационные технологии.

in Computer Science. 1986. Vol. 223. P. 325-340. 6. Louchard G., Schott R., Tolley M., Zimmermann P. Random walks, heat equation and distributed algorithms // Journal of Computational and Applied Mathematics. 1994. N 53. P. 243-274. 2005. № 3 (20). С. 29-33. 9. Аксенова Е. А. Оптимальное управление FIFO-очередями на бесконечном времени // Стохастическая оптимизация в информатике: Межвуз. сб. СПб.: СПбГУ, 2006. Вып. 2. С. 71-76.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

/

уважаемые авторы!

С сентября 2ОО9 г. основные элементы статей, размещенные на платформе РУНЭБ, индексируются в крупнейшей поисковой системе Интернета Google.

На сайте РУНЭБ (http://www.elibrary.ru) доступна новая услуга — «обсуждение статьи». Авторы и читатели теперь могут вступить в диалог и ответить на вопросы и комментарии друг друга.

i Надоели баннеры? Вы всегда можете отключить рекламу.