УДК 519.6
Вычислительная математика
DOI: 10.14529/cmse160202
ПАРАЛЛЕЛЬНАЯ РЕАЛИЗАЦИЯ СЛЕДЯЩЕГО АЛГОРИТМА ДЛЯ РЕШЕНИЯ НЕСТАЦИОНАРНЫХ ЗАДАЧ ЛИНЕЙНОГО ПРОГРАММИРОВАНИЯ1
И.М. Соколинская, Л.Б. Соколинский
В статье описывается параллельный алгоритм решения нестационарных задач линейного программирования большой размерности, ориентированный на кластерные вычислительные системы. В основе алгоритма, получившего название «следящий», лежат фейеровские отображения. Алгоритм отслеживает изменения исходных данных и вносит корректировки в вычислительный процесс. При этом задача разбивается на большое количество подзадач, которые могут решаться независимо без обменов данными. Приводятся диаграммы деятельности UML, описывающие реализацию следящего алгоритма.
Ключевые слова: нестационарная задача линейного программирования, фейеровские отображения, следящий алгоритм, диаграммы деятельности UML, массовый параллелизм, кластерные вычислительные системы.
ОБРАЗЕЦ ЦИТИРОВАНИЯ
Соколинская И.М., Соколинский Л.Б. Параллельная реализация следящего алгоритма для решения нестационарных задач линейного программирования // Вестник ЮУрГУ. Серия: Вычислительная математика и информатика. 2016. Т. 5, № 2. С. 15-29. DOI: 10.14529/^е160202.
Введение
Основы современной теории нестационарных процессов математического программирования были заложены в классической монографии [1], где было предложено использовать для решения нестационарных задач линейного программирования итерационные процессы фейеровского типа. Указанный подход обобщает релаксационный метод Моцкина-Агмона [2, 3]. Это направление исследований получило продолжение в дальнейших работах И.И. Еремина, В.В. Васина, Л.Д. Попова, Е.А. Бердниковой, С.В. Пац-ко и других ученых [4].
Нестационарные задачи линейного программирования большой размерности с быстро меняющимися входными данными достаточно часто встречаются в практике современного экономико-математического моделирования. Одним из примеров таких задач является задача управления портфелем ценных бумаг с использованием методов алгоритмической торговли [5, 6]. В подобных задачах количество переменных и неравенств в системе ограничений может составлять десятки и даже сотни тысяч, а период изменения исходных данных находиться в пределах сотых долей секунды. На нестационарность в таких задачах может накладываться плохая формализуемость части ограничений. В работе авторов [7] был описан параллельный алгоритм для решения задач линейного программирования с плохо формализуемыми ограничениями. Суть предложенного подхода заключается в синтезе методов линейного программирования и дискрими-
1 Статья рекомендована к публикации Программным комитетом Международной научной конференции "Параллельные вычислительные технологии (ПаВТ) 2016" (http://agora.guru.ru/pavt).
нантного анализа. Для выполнения эффективного дискриминантного анализа необходимы два набора образцов М и N , первый из которых удовлетворяет неформализованным ограничениям, а второй - нет. Для получения качественных наборов образцов могут применяться методы интеллектуального анализа [8] данных и анализа временных рядов [9].
Для преодоления проблемы нестационарности входных данных в работах [10, 11] был предложен «следящий» алгоритм решения задачи линейного программирования с использованием фейеровских отображений, ориентированный на кластерные вычислительные системы с многоядерными ускорителями. В данной работе дается полная параллельная реализация следящего алгоритма с использованием диаграммы деятельности UML. Статья организована следующим образом. В разделе 1 приводится формальная постановка задачи линейного программирования, даются определения фейеровского процесса и операции псевдопроектирования на многогранник. В разделе 2 приводится математическое описание следящей области. В разделе 3 приводятся формулы для построения пересечения многогранника, задаваемого системой ограничений, с произвольной ячейкой следящей области. В разделе 4 дается полное описание параллельной реализации следящего алгоритма с помощью диаграмм деятельности UML. В заключении суммируются полученные результаты и определяются направления дальнейших исследований.
1. Постановка задачи
Пусть задана задача линейного программирования
тах{(с,х} | Ах < Ь7х > 0} . (1)
Определим фейеровское отображение <р : Мп ^ Мп следующим образом:
I \ т Л тах {( а , х>- ь ,0} < (х) = х — е а—--—2-
-—!— а. (2)
г=1 Ы
Пусть М - многогранник, задаваемый ограничениями задачи линейного программирования (1). Такой многогранник всегда является выпуклым. Известно [12], что < будет однозначным непрерывным М-фейеровским отображением для любой системы положи-
тельных коэффициентов {аг > 0}, г = 1,...,т , таких, что Еаг = 1, и коэффициентов
г = 1
релаксации 0 < Xi < 2. Полагая в формуле (2) — = X и а% = т (г = 1,.,т), получаем формулу
, ч X т тах {( а., х) — Ь,0 }
< (х) = х — - е —";,,,2 г, }
2 (з)
а.
которая будет использоваться в следящем алгоритме. Обозначим
<(х) = <...<р(х).
а
Под фейеровским процессом, порождаемым отображением p при произвольном началь-
ном приближении x0 е М™ , будем понимать последовательность {ps(x0)} . Известно,
что указанный фейеровский процесс сходится к точке, принадлежащей множеству М:
|ps (x о)};
s = 0
— x е M.
U\
6 7 8
со 4 5
1 ° 1 2
15
12
~7"
16
13
10
17
14
11
/ / / /
24 25 26 /
21 22 23 /
18 19 20 /
(4)
■>Uo
Рис. 1. Линейная нумерация ячеек следящей области при n = 3 Будем кратко обозначать это следующим образом: lim ps(x0) = x .
s —> то
Под p-проектированием (псевдопроектированием) точки x е М™ на многогранник M понимается отображение nM(x) = lim ps(x).
s — TO
2. Построение следящей области
Без ограничения общности мы можем считать, что все процессы происходят в положительной области координат. Пусть п - размерность пространства решений, K -количество ячеек в следящей области по одному измерению. Пусть P - количество MPI-процессов, используемых для распараллеливания вычислений. Будем предполагать, что всегда выполняется равенство:
K™ = P, (5)
то есть, количество ячеек следящей области равно количеству MPI-процессов. Зададим
в пространстве целочисленных координат «0,
1 линейную нумерацию ячеек сле-
дящей области следующим образом. Пусть ячейка а имеет целочисленные координаты (а0,..., ап. Тогда ее номер ка вычисляется по формуле:
п-1
k =V aK
а / j %
(6)
г=0
На рис. 1 приведен пример такой линейной нумерации при К = 3. Например, ячейка с номером 19 на рис. 1 имеет целочисленные координаты (1,0,2). Действительно,
19 = 1 • 30 + 0 • 31 + 2 • 32.
Выразим целочисленные координаты ячейки а через ее порядковый номер ка . Из (6) получаем
9
u
a- = ka mod K ; (7)
k — a„
a =-£*--modK ; (8)
1 к
= ka — ao — axK mod к; (9)
2 K2
Таким образом, в общем виде имеем:
г—i
k — YaKj
а j
a. =-3—-mod K . (10)
г K
Формула (10) содержит ресурсоемкую операцию возведения в степень. От нее можно избавиться следующим образом. По определению операции mod из (7) получаем
a- = ka — (ka - K)• K2. (11)
Подставив в (8) вместо a- правую часть этого уравнения, получим
k — (k — (k - K) • K)
a = -s-^-^--- mod K
1 K
(k - K) • K
= ^---mod K (12)
K
= (ka - K) mod K. По определению операции mod отсюда следует
a = ka - K — ((ka - K) - K) • K . (13)
Подставив в (9) вместо a- правую часть уравнения (11), а вместо a - правую часть уравнения (13), получим
k — a„ — a K = _a-о-1—mod K
2 K2
k — (k — (k - K) • K) — (k - K — ((k - K) - K) • K) • K
= -^-^-----^-^-------mod K (14)
K2
= ((ka - K) - K) mod K. Из (12) и (14) для г = 1,..., n — 1 по индукции получаем:
a. = (((ka-K)...)-K) mod K. (15)
г
Пусть g = (g0,..., gn—1) - нулевая вершина куба следящей области. Пусть У = (Уо,"•,Уп—i) - нулевая вершина произвольной ячейки a. Выразим координаты точ-
r
ки y через координаты точки д. Обозначим s = — - шаг сетки. Тогда
K
Уг = дг + sai (г = 0,..., п — 1). (16)
Определим в качестве центральной ячейки куба ячейку y с целочисленными координатами (y0, ..., Yn—1), где
2 С помощью символа ^ здесь обозначается целочисленное деление.
70 = ••• = 1п-1 =[К/2] • (17) Пусть q = (qo,■ ■■,дп_1) - нулевая вершина центральной ячейки 7 . Выразим координаты точки д через координаты точки g, используя формулу (16):
ql = д + ^ = 0,...,п _ 1). (18)
3. Пересечение многогранника M с ячейкой а
Пусть у - нулевая вершина ячейки а. Тогда область внутри ячейки а (включая границы) задается системой из 2п неравенств:
хп
_х.
< <
У0 У1
-х
п _1
V п
п _1
< _у 1
— уп _1
< у0 + 5
< у1 + 5
< у 1 + 5
— уп _1
Эта же система в матричной форме: где (для п = 3)
Ах < Ь
а — а
А =
а
_1 0 0 _У0
0 _1 0 _У1
0 0 _1 , Ь = У 2
1 0 0 ' а У0 + 5
0 1 0 У1 + 5
0 0 1 У 2 + в
Положим
А' =
' А Ь
А а , ь' =
Ь а
(19)
(20)
(21)
(22)
Тогда пересечение многогранника M с ячейкой а задается системой неравенств в матричной форме
А'х < Ь, (23)
где А' - расширенная матрица размера (т + 2п) х п, Ь' - расширенный столбец свободных членов. Расширенный столбец Ь' в соответствии с формулой (22) имеет инвариантную часть Ь, не зависящую от координат нулевой вершины ячейки а, и вариативную часть Ьа , зависящую от координат нулевой вершины ячейки а. Элементы расширенной матрицы А' не зависят от координат нулевой вершины ячейки а.
0
1
4. Реализация следящего алгоритма
В данном разделе описывается полная реализация следящего алгоритма в виде диаграмм деятельности UML.
4.1. Схема головной подпрограммы
Общая схема головной подпрограммы следящего алгоритма приведена на рис. 2. На шаге 1 выполняется подпрограмма тй (см. раздел 4.2), выполняющая инициализацию
init ©
©
until (stop)
с
xo[0..n-1]=n(z[0..n-1],0)
X
xK-i[0..n-1]=TT(z[0..n-1],P-l) ©
X
(kg=MinInt; C=MinFloa^ ©
©
Л>г к=0ЮР-1
©
( g = <c[0..n-1];xk[0..n-1]> )
xt[0]=-1
g<C ( C = g; кд^Г^)
q'[0..n-1]=zero(ka)
-||q-q'||>%r-
©
k„=MmInt
-|q-q'|<%r-
r=(l+%)*r; s=(l+%)*s; z[0..n-1]=(l+%)*z[0..n-1]
%r<|q-q'y<% r
r=(l-%)*r; s=(l-%)*s; z[0..n-1]=(l~%)*z[0..n-1]
g[0..n-1]=g[0..n-1]+(q,[0..n-1]-q[0..n-1]); _q[0..n-1]=q'[0..n-1]_
¡13) r=w*r; s=w*s; z[0..n-1]=w*z[0..n-1]
Рис. 2. Головная подпрограмма следящего алгоритма
переменных. Затем в цикле until с меткой 2 выполняется корректировка следящей области в соответствии с описанием идеи алгоритма в [11]. Одна итерация соответствует одной корректировке. Головная подпрограмма следящего алгоритма оформляется в виде независимого процесса, который выполняется до тех пор, пока переменная stop не примет значение true (истина). Начальную установку переменной stop в значение false (ложь) осуществляет головной процесс, соответствующий основной программе. Он же присваивает переменной stop значение true , когда вычислительный процесс нужно остановить. В качестве текущего приближения решения задачи (1) головная программа использует текущее значение нулевой вершины центральной ячейки q , координаты которой вычисляются по формуле (18).
В теле цикла until выполняются следующие действия. На шаге 3 организуется K параллельных потоков управления (нитей), которые независимо друг от друга вычисляют псевдопроекции из целевой точки z на пересечение г-той ячейки с многогранником M (i = 0,..., P — 1). Напомним, что P равно количеству MPI-процессов, и в соответствии с формулой (5) равно количеству ячеек в кубической следящей области. Схема подпрограммы вычисления псевдопроекции детально описана в разделе 4.3.
В цикле for с меткой 5 для полученных на шаге 3 точек псевдопроекций Хо,-..,xp— вычисляется номер ka ячейки, на которой достигается максимум C целевой функции. Для корректной работы цикла 5 переменным ka и C на шаге 4 присваиваются начальные значения MinInt и MinFloat соответственно. Значение MinInt соответствует минимальному машинному значению целого типа, MinFloat - минимальному машинному значению вещественного типа. Подпрограмма, вычисляющая точку xk = (xk о,..., xkn_1)
псевдопроекции точки z на пересечение многогранника M с ячейкой с номером k , присваивает координате x^ значение —1 в том случае, когда точка xk псевдопроекции не принадлежит многограннику M . Эта ситуация возникает в случае, когда пересечение многогранника M с ячейкой с номером ka является пустым. Если же xk принадлежит многограннику, то в силу предположения о том, что все процессы находятся в положительной области координат (см. раздел 2), значение xk о не может быть отрицательным. Указанное условие проверяется на шаге 6. Случаи x^ = —1 из рассмотрения исключаются. Если при выполнении цикла 5 оказывается, что ни одна из ячеек следящей области не имеет непустого пересечения с многогранником M , то в переменной k
сохраняется значение MinInt. Этот факт проверяется на шаге 7. В этом случае шаг сетки s, длина r ребра следящей области и координаты целевой точки z увеличиваются в w раз, где w - положительная константа, являющаяся параметром алгоритма (шаг 13 на рис. 2).
Если на шаге 7 выясняется, что ka ^ MinInt, значит найдена ячейка с номером ka ,
имеющая непустое пересечение с многогранником, на которой достигается максимум целевой функции. В этом случае на шаге 8 вычисляется вектор q', представляющий нулевую вершину новой центральной ячейки следящей области. Схема подпрограммы вы-
числения нулевой вершины ячейки с порядковым номером ка приведена на рис. 3. Вычисления осуществляются с использованием формул (11), (15) и (16).
На шаге 9 (см. рис. 2) анализируется, насколько новая центральная ячейка далеко отстоит от предыдущей. Если расстояние между новой и старой центральными ячейками
q[0..n-l]=zero(ka)
( x=kg - n )
I
(q[0] = g[0] + (kg - x*n)*s)
for ¡=1 to n-1 1
С q[i]=g[iMT mod n)*s )
С т=т - n
Рис. 3. Схема подпрограммы zero вычисления нулевой вершины ячейки с порядковым номером ka
3
превышает 4г (где г - длина ребра кубической следяЩей области), то длина ребра кубической следящей области г, шаг сетки s и координаты целевой точки z на шаге 10 увеличиваются в 1.5 раза. Если расстояние между новой и старой центральными ячейками меньше iг, то длина ребра кубической следящей области г, шаг сетки s и координаты целевой точки z на шаге 11 уменьшаются в 2 раза. Величина 1^2, используемая
в шагах 10 и 11, в общем случае является параметром алгоритма. Если же отклонение
13
лежит в пределах от —г до —г, то корректировка значений г, s и z не производится.
4 4
Величины 1^4 и также являются в общем случае параметрами алгоритма.
На шаге 12 следящая область сдвигается по вектору (q' — q), и в качестве текущей нулевой вершины q центральной ячейки следящей области берется точка q'.
4.2. Схема подпрограммы инициализации переменных init
Подпрограмма инициализации переменных init выполняет ввод исходных данных и инициализацию переменных. Схема подпрограммы init приведена на рис. 4. На шаге 1 вводятся значения переменных: n - размерность пространства решений; m - число неравенств в системе ограничений; R - начальное значение длины ребра следящей области, обеспечивающее покрытие многогранника M; p - количество итераций при построении псевдопроекции, выполняемое между обновлениями входных данных (этот параметр используется в подпрограмме dataChange обновления исходных данных); K - количество ячеек в следящей области по одному измерению; u - размерность подвектора; L - число
независимых фейеровских итераций на подвекторах в подпрограмме вычисления псевдопроекции (см. рис. 5); T - масштабирующий коэффициент для вычисления координат целевой точки z. На шаге 2 проверяется условие (assert) nmodu = 0, означающее, что размерность пространства решений n кратно размерности подвектора u .
init
( input n, m, R, p, K, u, L, T ) ©
© C0n mod u = 0
9
(input A[0..n-1,0..m-1], b[0..m-1], c[0..n-1], G[0..n-1j)
С
P=rankQ
J©
©COKn=p
(b'[0..m-1]=b[0..m-1]) ©
(An[0..2n-1,0..n-1]=0) ©
for i=0 to n-1
©
(Aa[i,i]=-1)
(Aa[i+n,i] = 1)
( A'[0..m-1,0..n-1]=A[0..m-1,0..n-1] ) ©
/ I \
(A'[m..m+2n-1,0..n-1]=Aa[0..2n-1,0..n-T^ (¿0)
, 1 x
( r=R; s=r/^) (n)
^ I
( g[0..n-1]=G[0..n-1] ) dD / i \ ( z[0..n-1]=c[0..n-1]*T ) (¿3)
I
(q[0..n-1]=g[0..n-1]+s*y[0..n-1])) (¿4)
\ I
( y[0..n-lH[K/2J,...,[K/2J) ) ©
Рис. 4. Схема подпрограммы инициализации переменных init
На шаге 3 осуществляется ввод исходных данных задачи линейного программирования: A - матрица коэффициентов неравенств; b - столбец свободных членов; c - вектор коэффициентов целевой функции. Также здесь вводится вектор G, содержащий начальные координаты нулевой вершины кубической следящей области. Шаг 4 присваивает переменной P значение, равное количеству доступных MPI-процессов и вычисляемое с помощью системной функции rank . На шаге 5 проверяется условие (assert) Kn = P ,
означающее, что общее количество ячеек следящей области равно количеству MPI-процессов. На шаге 6 формируется инвариантная часть расширенного столбца b' свободных членов, определяемого по формуле (22). На шаге 7 происходит инициализация матрицы Aa путем присваивания всем ее элементам нулевых значений. На шаге 8
определяются ненулевые элементы матрицы A в соответствии с системой неравенств
(19). На шагах 9 и 10 строится расширенная матрица A', определяемая формулой (22). На шаге 11 в качестве начального значения длины r ребра следящей области определяется значение R, обеспечивающее покрытие многогранника M, и вычисляется значение s длины ребра ячейки. На шаге 12 в качестве начальной нулевой вершины g кубической следящей области берется точка G, определяющая такое положение следящей области, при котором она полностью покрывает многогранник M. На шаге 13 вычисляются координаты целевой точки z по формуле z = Tc. На шаге 14 вычисляется нулевая вершина q центральной ячейки следящей области по формуле (18). На последнем шаге вычисляется вектор y начальных целочисленных координат центральной ячейки по формуле (17).
4.3. Схема подпрограммы вычисления псевдопроекции
На рис. 5 приведена схема подпрограммы вычисления псевдопроекции x = n(z, ka) из целевой точки z на пересечение многогранника M с ячейкой следящей области, имеющей порядковый номер k , где k вычисляется по формуле (6). Псевдопроекция
вычисляется путем организации фейеровского процесса (4) (см. раздел 1). На шаге 1 выполняется инициализация переменных, необходимых для организации итерационного процесса. В качестве начального значения Xk берется точка z ; с помощью подпрограммы zero (см. рис. 3) вычисляется нулевая вершина y ячейки с номером ka ; по формуле (21) определяется вариативная часть ba расширенного столбца b' системы ограничений (23), получаемой при пересечении многогранника M с ячейкой . В цикле 2 вычислял/ II /1|2
ется normsq - вектор квадратов норм строк расширенной матрицы A : noгmsqг = a J .
На шаге 3 организуется итерационный процесс вычисления псевдопроекции. Для обеспечения высокой масштабируемости процедуры вычисления псевдопроекции используется метод разбиения вектора x на h подвекторов размерности u , предложенный в работе [13]. Мы здесь предполагаем, что n = h ■ u . На каждом w-том подвекторе делается L независимых итераций вида
(xvu, •••, X(v+1)u—1) (xvu, •••, X(v+1)u—1) m mqx J / (a. , •. a
X m maX {( (ai,vu, ai,(v+1)u—1),(xvu, x(v+1)u—J) — bi,0 } ( )
/ J .. ||2 ■ (ai,vu, •", ai(v+1)u—1).
\a-
Указанная формула получается из формулы (3) путем ограничения действия фейе-ровского отображения (р на соответствующий подвектор. Подпрограмма dataChange вносит изменения в исходные данные с периодом в Ь секунд (Ь - положительное число, которое может принимать значения меньше единицы).
Итерационный процесс заканчивается, когда расстояние между двумя последними приближениями х их' будет меньше е. На четвертом шаге подпрограмма т (см. рис. 6) проверяет принадлежность найденной точки псевдопроекции х ячейке с номером ка . Если х не принадлежит ячейке с номером ка , то х[0] присваивается значение (-1).
х[0..п-1]=-п:^[0..п-1],ка)
0( х[0..п-1^[0..п-1]; у[0..п-1] = zero(kg); Ьд[0..п-1]=-у[0..п-1]; Ьд[п..2*п-1]=у[0..п-1^)
©
й>г 1=0 Ь) т+2*п-1
( погт5д[Ц=0 ^
&>г ¡=01х> п-1 1 г
( погтздН^огтздИ+А'р^А'р^] )
о®
й>г I = 1 <:о Ь
( х'[0..и-1]=х[0..и-1] )
( 3[0..й-1
й>г ¡=0 Ь) т+2*п-1
= (0-0) )
( х'[п-и+1..п]=х[п-и+1..п| ^ ( 5[п-и+1..п]=(0..0) )
( scal_ai_x=0 ^
®ог )=0 Ь>и-1 1
( sca1_ai_x+=A'[i,j]*x[j] ^
^ааог=тах^са1_а^х-Ьр],0)/погт5д[1])
6)Г)=0 Ь>и-1 1
( S[j]+=factor*A'[i,j] )
®ог ¡=0 Ш т+2*п-1
( sca1_ai_x=0 ^
®ог }=п-и+1Ь> п
( sca1_ai_x+=A'[i,j]*x[j] ^
1 •
^асШг=тах^са1_а^х-Ь [i],0) /погтзд[Г]^
6ог)'=п-и+11о п г
( S[j]+=factor*A'[i,j] )
(х[0..и-1]=х'[0..и-1НУт)*3[0..и-1]) (хИ+1-п]=х,И-И..п]-(1/т)'5[д-и+1..11])
4 __+ .
dataChange(t)
-|х'[0..п-1]-х[0..п-1]|>£-
©
т(х[0..п-1],к«)
Рис. 5. Схема подпрограммы п вычисления псевдопроекции
in(x[0..n-l],ka)
( q[0..n-l]=zero(kg) )
for i=0 to n-1
q[i]-£<x[i
<q[i]+s+£ ( x[0]=-l )
Рис. 6. Схема подпрограммы щ проверяющей принадлежность точки х ячейке с номером ка
Переменная в в подпрограмме т на рис. 6 задает длину ребра ячейки. Ее значение определяется на шаге 11 подпрограммы тй (см. рис. 4). Константа е задает малое положительное число, позволяющее корректно обрабатывать приближенные значения.
Заключение
В работе описана параллельная реализация следящего алгоритма для решения нестационарных задач большой размерности на кластерных вычислительных системах. Данный алгоритм использует подход, основанный на применении фейеровских отображений для построения псевдопроекции на многогранник. Приведена формальная постановка задачи, и дано описание фейеровского процесса. С помощью математических формул определены следящая область и пересечение многогранника, задаваемого системой ограничений, с произвольной ячейкой следящей области. В плане дальнейших исследований - реализация параллельного алгоритма на языке C++ с использованием технологий параллельного программирования MPI и OpenMP, и проведение вычислительных экспериментов на искусственных и реальных данных.
Литература
1. Еремин И.И., Мазуров Вл.Д. Нестационарные процессы математического программирования. М.: Наука, 1979. 291 с.
2. Agmon S. The relaxation method for linear inequalities // Canad. J. Math. 1954. Vol. 6, No. 3. P. 382-392.
3. Motzkin T.S., Schoenberg J.J. The relaxation method for linear inequalities // Canad. J. Math. 1954. Vol. 6, No. 3. P. 393-404.
4. Еремин И.И., Попов Л.Д. Фейеровские процессы в теории и практике: обзор последних результатов // Известия высших учебных заведений. Математика. 2009. № 1. С. 44-65.
5. Дышаев М.М., Соколинская И.М. Представление торговых сигналов на основе адаптивной скользящей средней Кауфмана в виде системы линейных неравенств //
Вестник Южно-Уральского государственного университета. Серия: Вычислительная математика и информатика. 2013. Т. 2, № 4. С. 103-108.
6. Ананченко И.В., Мусаев А.А. Торговые роботы и управление в хаотических средах: обзор и критический анализ // Труды СПИИРАН. 2014. № 3 (34). С. 178-203.
7. Sokolinskaya I.M., Sokolinskii L.B. Parallel algorithm for solving linear programming problem under conditions of incomplete data // Automation and Remote Control. 2010. Vol. 71, No. 7. P. 1452-1460.
8. Rechkalov T.V., Zymbler M.L. Accelerating Medoids-based Clustering with the Intel Many Integrated Core Architecture / / Proceedings of the 9th International Conference on Application of Information and Communication Technologies (AICT'2015), October 14-16, 2015, Rostov-on-Don, Russia. IEEE, 2015. P. 413-417.
9. Zymbler M.L. Best-match Time Series Subsequence Search on the Intel Many Integrated Core Architecture // Proceedings of the 19th East-European Conference on Advances in Databases and Information Systems, ADBIS 2015 (Poitiers, France, September 8-11, 2015). Lecture Notes in Computer Science. Springer, 2015. Vol. 9282. P. 275-286.
10. Соколинская И.М., Соколинский Л.Б. Алгоритм решения нестационарных задач линейного программирования для кластерных вычислительных систем с многоядерными ускорителями // Параллельные вычислительные технологии (ПаВТ'2015): труды международной научной конференции. Челябинск: Издательский центр ЮУрГУ, 2015. С. 477-481.
11. Sokolinskaya I., Sokolinsky L. Solving unstable linear programming problems of high dimension on cluster computing systems // 1st Russian Conference on Supercomputing Days 2015, RuSCDays 2015; Moscow; Russian Federation; 28 September 2015 through 29 September 2015. CEUR Workshop Proceedings. Vol. 1482, CEUR-WS.org 2015. P. 420-427.
12. Еремин И.И. Фейеровские методы для задач выпуклой и линейной оптимизации. Челябинск: Изд-во ЮУрГУ, 2009. 200 с.
13. Ершова А.В., Соколинская И.М. О сходимости масштабируемого алгоритма построения псевдопроекции на выпуклое замкнутое множество // Вестник ЮжноУральского государственного университета. Серия: Математическое моделирование и программирование. 2011. № 37(254), Вып. 10. C. 12-21.
Соколинская Ирина Михайловна, доцент, кафедра вычислительной математики,
Южно-Уральский государственный университет (Челябинск, Российская Федерация),
Соколинский Леонид Борисович, д. ф.-м. н., профессор, проректор по информатизации, Южно-Уральский государственный университет (Челябинск, Российская Федерация), [email protected]
Поступила в редакцию 6 марта 2016 г.
Bulletin of the South Ural State University Series "Computational Mathematics and Software Engineering"
2016, vol. 5, no. 2, pp. 15-29
DOI: 10.14529/cmse160202
IMPLEMENTATION OF PARALLEL PURSUIT ALGORITHM FOR SOLVING UNSTABLE LINEAR PROGRAMMING PROBLEMS
I.M. Sokolinskaya, South Ural State University, Chelyabinsk, Russian Federation
L.B. Sokolinsky, South Ural State University, Chelyabinsk, Russian Federation
The paper describes an implementation of the parallel pursuit algorithm for solving unstable linear programming problems of high dimension on cluster computing systems. This algorithm uses Fejer's mappings for building pseudo-projection on polyhedron. The algorithm tracks changes in input data and corrects the calculation process. This task is divided into set of independent subtasks, which can be processed in parallel. The UML activity diagrams describing the algorithm implementation are presented.
Keywords: unstable linear programming problem, Fejer's mappings, pursuit algorithm, UML activity diagrams, massive parallelism, cluster computing systems.
FOR CITATION
Sokolinskaya I.M., Sokolinsky L.B. Implementation of Parallel Pursuit Algorithm for
Solving Unstable Linear Programming Problems. Bulletin of the South Ural State University.
Series: Computational Mathematics and Software Engineering. 2016. vol. 5, no. 2. pp. 15-29.
(in Russian) DOI: 10.14529/cmse160202.
References
1. Eremin I.I., Mazurov Vl.D. Nestatcionarnye protcessy matematicheskogo programmiro-vaniia [Unstable Processes of Mathematical Programming]. Moscow, Nauka [Science], 1979. 291 p. (in Russian)
2. Agmon S. The Relaxation Method for Linear Inequalities. Canad. J. Math. 1954. vol. 6, no. 3. pp. 382-392.
3. Motzkin T.S., Schoenberg J.J. The Relaxation Method for Linear Inequalities. Canad. J. Math. 1954. vol. 6, no. 3. pp. 393-404.
4. Eremin I.I., Popov L.D. Feyerovskie protsessy v teorii i praktike: obzor poslednikh rezu-l'tatov [Fejer's Mappings in Theory and Practice: Review of the Latest Results]. Izvestiya vysshikh uchebnykh zavedeniy. Matematika [Proceedings of the Higher Educational Institutions. Mathematics]. 2009. no. 1. pp. 44-65. (in Russian)
5. Dyshaev M.M., Sokolinskaya I.M. Predstavlenie torgovykh signalov na osnove adaptivnoy skol'zyashchey sredney Kaufmana v vide sistemy lineynykh neravenstv [Representation of Trading Signals Based Kaufman Adaptive Moving Average as a System of Linear Inequalities]. Vestnik Yuzhno-Ural'skogo gosudarstvennogo universiteta. Seriya: Vychislit-el'naya matematika i informatika [Bulletin of South Ural State University. Series: Computational Mathematics and Software Engineering]. 2013. vol. 2, no. 4. pp. 103-108. (in Russian)
H.M. CoKOJiHHCKaa, JI.B. COKOJIHHCKHH
6. Ananchenko I.V., Musaev A.A. Torgovye roboty i upravlenie v khaoticheskikh sredakh: obzor i kriticheskiy analiz [Trading Robots and Management in Chaotic Environments: an Overview and Critical Analysis]. Trudy SPIIRAN [SPIIRAS Proceedings]. 2014. no. 3 (34). pp. 178-203. (in Russian)
7. Sokolinskaya I.M., Sokolinskii L.B. Parallel Algorithm for Solving Linear Programming Problem Under Conditions of Incomplete Data. Automation and Remote Control. 2010. vol. 71, no. 7. pp. 1452-1460.
8. Rechkalov T.V., Zymbler M.L. Accelerating Medoids-based Clustering with the Intel Many Integrated Core Architecture. Proceedings of the 9th International Conference on Application of Information and Communication Technologies (AICT'2015), October 1416, 2015, Rostov-on-Don, Russia. IEEE, 2015. pp. 413-417.
9. Zymbler M.L. Best-match Time Series Subsequence Search on the Intel Many Integrated Core Architecture. Proceedings of the 19th East-European Conference on Advances in Databases and Information Systems, ADBIS 2015 (Poitiers, France, September 8-11, 2015). Lecture Notes in Computer Science. vol. 9282. Springer, 2015. pp. 275-286.
10. Sokolinskaya I.M., Sokolinskiy L.B. Algoritm resheniya nestatsionarnykh zadach lineynogo programmirovaniya dlya klasternykh vychislitel'nykh sistem s mnogoyadernymi uskoritelyami [Algorithm for Solving Unstable Linear Programming Problems for Cluster Computing Systems with Manycore Accelerators]. Parallel'nye vychislitel'nye tekhnologii (PaVT'2015): trudy mezhdunarodnoy nauchnoy konferentsii [Parallel Computational Technologies (PCT'2015): Proceedings of the International Scientific Conference]. Chelyabinsk, Publishing of the South Ural State University, 2015. pp. 477-481. (in Russian)
11. Sokolinskaya I., Sokolinsky L. Solving Unstable Linear Programming Problems of High Dimension on Cluster Computing Systems. 1st Russian Conference on Supercomputing Days 2015, RuSCDays 2015; Moscow; Russian Federation; 28 September 2015 through 29 September 2015. CEUR Workshop Proceedings. vol. 1482, CEUR-WS.org 2015. pp. 420427. (in Russian)
12. Eremin I.I. Fejerovskie metody dlya zadach linejnoj i vypukloj optimizatsii [Fejer's Methods for Problems of Convex and Linear Optimization]. Chelyabinsk, Publishing of the South Ural State University, 2009. 200 p. (in Russian)
13. Ershova A.V., Sokolinskaya I.M. O skhodimosti masshtabiruemogo algoritma postroeniya psevdoproektsii na vypukloe zamknutoe mnozhestvo [About Convergence of Scalable Algorithm of Constructing Pseudo-Projection on Convex Closed Set]. Vestnik Yuzhno-Ural'skogo gosudarstvennogo universiteta. Seriya: Matematicheskoe modelirovanie i pro-grammirovanie [Bulletin of South Ural State University. Series: Mathematical simulation and programming]. 2011. no. 37(254), issue 10. pp. 12-21. (in Russian)
Received March 6, 2016.