ВМФ позволяет получить достаточно полную информацию о состоянии метрологического обеспечения кораблей, определить состав и количество необ-
ходимых СИ в обменном фонде и создаваемый запас на складах довольствующих органов флотов и центральных базах обеспечения.
ОПТИМАЛЬНОЕ РАЗМЕЩЕНИЕ МОДУЛЕЙ ПРИ ПРОЕКТИРОВАНИИ РАСПРЕДЕЛЕННЫХ ТРЕНАЖЕРНЫХ КОМПЛЕКСОВ
В.Б. Крестьянинов
Одной из основных и наиболее трудно решаемых задач разработки распределенных тренажерных систем на основе технологии БСОМ (модель клиент-сервер) является задача оптимального распределения серверных компонентов (служб) по узлам локальной вычислительной сети (ЛВС). При фиксированном числе рабочих станций работу между ними можно распределить по-разному. В связи с этим встает задача определения такого распределения служб, при котором обеспечивается равномерная загрузка рабочих станций при ограниченной пропускной способности каналов связи.
Пусть имеется п серверных служб, которые формируют определенный трафик для каждого рабочего места тренажерного комплекса, и m рабочих станций. Имеются данные о мощностях узлов сети и об объеме формируемого серверной службой трафика. Также известна загрузка j-го узла сети 1-й серверной службой. Загрузка j-го узла сети основным процессом (рабочее место) одинакова и равна Т. Кроме того, на начальном этапе задается точность А. Необходимо так распределить серверные службы по узлам сети, чтобы минимизировать суммарную загрузку всего программного комплекса.
Данные задачи представляются в виде таблицы,
где aj - мощность 1-го узла, 1 = 1,т ; Ь j - сетевой
трафик службы, j = 1,п ; C ц - загрузка j-го узла сети 1-й серверной службой; А - точность, причем a1 < а2 <... < ат и Ь < Ь2 < ... < Ьп .
b1 b 2 bn
a1 C11 C12 Cn1
* * * * *
am Cm 1 Cm 2 C
Поскольку на одном компьютере могут одновременно работать несколько процессов, то загрузка 1-го узла представляется в виде уравнения:
Т = 2 С. + T , (1)
где I - множество индексов, расположенных в 1-м узле серверных служб.
Необходимо учитывать ограничение на количество передаваемых по сети данных, поэтому определим:
Bi = 2 Ь < B , (2)
.м
где Б1 - суммарный трафик расположенных в 1-м узле серверных служб; Б - максимально допустимый трафик.
Тогда целевая функция примет вид:
X - (xj, x2,..., xm ) ,
F(X) - Y, Ti ^ min , где
i—1
Xi - мощность работы i-го узла.
Рассмотрим общую схему метода решения подобных задач. Пусть задача А состоит в нахождении такого элемента р* конечного множества Р, на котором достигается минимум функции F(X), определенной на этом множестве: F(p*) — minF(X).
XeP
Элементы множества Р, среди которых производится поиск, называются планами задачи А, а план р* - оптимальным планом задачи А.
Метод построения последовательности планов [1,2] применим к задаче А, если выполняются следующие условия:
1) можно найти конечное расширение R множества P(PcR) и функцию Q(X) (миноранту), определенную на R, такую что Q(X)<F(X) для всех X е P ;
2) можно построить алгоритм ф, который на k-м шаге находит элемент Гк е R, обладающий свойст-
Q(rk) - min Q(X), к > 1, где
XeR
Rk - Rk-1 /rk-1,
к > 0, причем R1 — R . При построениях по данному методу важное значение имеет следующий критерий оптимальности.
Если существует такое натуральное число k, при
котором P — 0i,r2,...,rk}nP , Q(Rk) > min F(X) —
XePk
— F(pk), то Pk - оптимальный план задачи А. Схема работы метода у решения задачи A: 1) конструируется конечное расширение R исходного множества Р;
m
k
2) на множестве R задается функция Q(X), являющаяся минорантой функции F(X) на множестве Р;
3) формируется итеративный (но конечный) алгоритм ф, который на каждом шаге с номером k определяет оптимальный план Гк задачи минимизации функции Q(X) на множестве Rk , образованном из расширения R путем исключения предыдущих оп-тимумов Гц, Г2,Гк. Таким образом, алгоритм ф определяет последовательность оптимумов Гц, Г2,Гч, q ^ ^ миноранты Q(X) на последовательности вложенных друг в друга множеств R = Rj з R2 з ... з Rq, q ^^;
4) на каждом k-м шаге метода у проверяется выполнение критерия оптимальности. Если критерий выполняется, то процесс обрывается и Pk есть оптимальный план исходной задачи А. В противном случае переходим к (k+lj-му шагу метода у.
Вспомогательную задачу минимизации миноранты Q(X) на множестве R будем называть задачей A . На предварительном этапе работы алгоритма строим функции gj (Xj ) , решая уравнения:
если xj < aj и Bj < B , то Tj = min V C¡¡ + T ; j j j j jeI ^ iJ
если Xj > aj или Bj > B , то этот случай не рассматриваем.
Пусть задача A состоит в минимизации сепара-бельной функции
Q(x1 ,X2 ,-,Xn) =
= gj (Xj )fflg2 (X2 )Ю ... fflgn(Xn) , (3)
заданной на множестве R векторов X = (xj, X2,..., xn ) , удовлетворяющих условиям
n _
VXj = b, Xj e Äj = {aj ,aj ,...,aj }, j = 1,n, где
j=1 s b>0, a¡ > 0 - целые числа. Здесь w - операция сложения или умножения. Для этого следует воспользоваться следующим функциональным уравнением:
fk (z) = mjn [gk (Xk )f_1 (z _ x, )], k = 2,n , (4)
Xk eÄk
где 0 < z < b , причем f1 (z) = g1 (z) для 0 < z < b . Здесь fk (z) - оптимальное значение функционала
задачи A , в которой индекс n и параметр b заменены соответственно на k и z. Введем некоторые необходимые определения и обозначения. План
X = (Xj, X 2,..., X n ) задачи A назовем h-опти-
мальным, если Q(X) = gh+1(Xh+1)ffl.»fflgn(Xn)ffl
n
fflfh(b _ V XXj) , и будем обозначать его j=h+1
(*,*,».,*,Xh+1 '...,Xn) .
Таким образом, X = (Xj, X2,..., Xn ) - h-опти-
мальный план задачи A , если (Xj, X2,..., Xn ) - оп-
тимальный план задачи минимизации функции (3)
h n при условиях ^ Xj = b — ^ Xj, Xj e Äj . i=1 j=h+l Непосредственно из определения h-оптималь-ного плана следует, что Q(*, *,...,*, Xh+1,..., Xn ) = = min Q(X), где R(*.....*,Xh+1 ,...,Xn) =
XeR(*)...,*,X h+i,...,X n)
= {XIXe R,Xj = Xj,j = h + 1,n}, то есть R(*,..., *, Xh+1,..., X n ) - множество всех тех планов
задачи A , у которых Xj = Xj, i = h +1, n .
Теперь можно сформулировать процедуру построения последовательности Г1,Г2,... планов задачи
A следующим образом.
Алгоритм ф
1-й шаг: среди множества Wi всевозможных (n-1)-оптимальных планов (*, *,..., *, ani) , ... , (*,*,...,*,ans) находим такой план r = (*,...,*, X,) = = (x1 , x2 ,..., X,), что Q(ri) = mjn Q(X).
XeW,
к-й шаг (к=2,3,...): множество ^к_1 преобразуем во множество ^^ по следующему правилу. Оставляем без изменения все планы множества ^^_1, кроме плана (*,*,...,*,хк-1,..,хП-1) = (ххк-1,хк-1,...,хк-1), который заменяем множеством 0(гк_1) , состоящим из следующих планов:
,X
q_1>
к _1
„k _1
Vxq—1 e {xq—1 1 xq—1 e Äq—1, xq—1 * 1 Ь
q = 2p.
Далее находим такой план, что Q(rk) = = mjn Q(X) , и переходим к следующему шагу.
XeW,
k
Для решения функционального уравнения (4) необходимо знать значения функций к = 1, п
в промежуточных точках 0 < z < Ь . Так как все типы данных задачи целочисленные (биты, секунды), то в качестве промежуточных точек будем брать лишь целые числа 1,...,Ь. Но и в этом случае при больших значениях Ь и при высокой точности (скажем, А=1) объем информации, которую необходимо вычислить, а главное, хранить, весьма велик. Все это делает актуальной проблему сокращения количества таких точек до числа, которое приемлемо при машинной реализации.
Список литературы
1. Емиличев В.А., Комлик В.И. Метод построения последовательности планов для решения задач дискретной оптимизации. - М., 1981.
2. Корбут А.А., Финкельштейн Ю.Ю. Дискретное программирование - М., 1969.
*