<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="ru">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Решение нестационарных задач линейного программирования большой размерности на кластерных вычислительных системах</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">И</forename><forename type="middle">М</forename><surname>Соколинская</surname></persName>
						</author>
						<author>
							<persName><forename type="first">Л</forename><forename type="middle">Б</forename><surname>Соколинский</surname></persName>
						</author>
						<title level="a" type="main">Решение нестационарных задач линейного программирования большой размерности на кластерных вычислительных системах</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">DB2DB96262E885616A47C2F516E398AD</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T04:06+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Южно-Уральский государственный университет В работе описывается параллельный алгоритм решения нестационарных задач линейного программирования большой размерности, ориентированный на кластерные вычислительные системы. В основе алгоритма, получившего название «следящий», лежат фейеровские отображения. Алгоритм отслеживает изменения исходных данных и вносит корректировки в вычислительный процесс. При этом задача разбивается на большое количество подзадач, которые могут решаться независимо без обменов данными. Приводятся диаграммы деятельности UML, описывающие параллельный следящий алгоритм.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="ru">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Одной из особенностей современного экономико-математического моделирования является появление нестационарных задач линейного программирования <ref type="bibr" target="#b0">[1]</ref> большой размерности с быстро меняющимися входными данными. Кроме этого, часть ограничений может оказаться плохо формализуемой <ref type="bibr" target="#b1">[2]</ref>. Одним из примеров таких задач является задача управления портфелем ценных бумаг с использованием методов алгоритмической торговли <ref type="bibr" target="#b2">[3,</ref><ref type="bibr" target="#b3">4]</ref>. В подобных задачах количество переменных и неравенств в системе ограничений может составлять десятки и даже сотни тысяч, а период изменения исходных данных находиться в пределах сотых долей секунды. В работе <ref type="bibr" target="#b4">[5]</ref> был описан параллельный алгоритм для решения задач линейного программирования с плохо формализуемыми ограничениями. Для преодоления проблемы нестационарности входных данных в работах <ref type="bibr" target="#b5">[6,</ref><ref type="bibr" target="#b6">7]</ref> был предложен «следящий» алгоритм решения задачи линейного программирования с использованием фейеровских отображений <ref type="bibr" target="#b7">[8]</ref>, ориентированный на кластерные вычислительные системы с многоядерными ускорителями. В данной работе дается параллельная реализация следящего алгоритма с использованием диаграммы деятельности UML. Статья организована следующим образом. В разделе 2 приводится формальная постановка задачи линейного программирования, даются определения фейеровского процесса и операции псевдопроектирования на многогранник. В разделе 3 приводится неформальное описание следящего алгоритма. В разделе 4 описывается межузловое распараллеливание следящего алгоритма, предполагающее использование технологии параллельного программирования MPI. В заключении суммируются полученные результаты и определяются направления дальнейших исследований.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.">Формализация задачи</head><p>Пусть задана задача линейного программирования max \{ \langle c, x\rangle | Ax \leq b, x \geq 0\} .</p><p>(</p><formula xml:id="formula_0">)<label>1</label></formula><p>Определим отображение \varphi : \BbbR n \rightar \BbbR n следующим образом:</p><formula xml:id="formula_1">\varphi (x) = x - m \sum j=1 \alpha j \lambda j max \{ \langle a j , x\rangle -b j , 0\} \| a j \| 2 \cdot a j .<label>(2)</label></formula><p>Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org Пусть M -многогранник, задаваемый ограничениями задачи линейного программирования <ref type="bibr" target="#b0">(1)</ref>. Такой многогранник всегда является выпуклым. Известно <ref type="bibr" target="#b7">[8]</ref>, что \varphi будет однозначным непрерывным M -фейеровским отображением для любой системы положительных коэффициентов \{ \alpha j &gt; 0\} (j = 1, . . . , m), таких, что m \sum j=1 \alpha j = 1, и коэффициентов релаксации 0 &lt; \lambda j &lt; 2. Полагая в формуле (2) \lambda j = \lambda и \alpha j = 1/m (j = 1, . . . , m), получаем формулу </p><formula xml:id="formula_2">\varphi (x) = x - \lambda m m \sum j=1 max \{ \langle a j , x\rangle -b j , 0\} \| a j \| 2 \cdot a j ,<label>(3)</label></formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.">Следящий алгоритм</head><p>В общем виде следящий алгоритм может быть описан следующим образом. Все пространство \BbbR n делится гиперкубической сеткой на ячейки с переменной длиной грани. Размер ячейки может динамически меняться в зависимости от скорости изменения исходных данных: чем быстрее меняются данные, тем больше становится ячейка, чтобы успевать следить. Алгоритм постоянно находит (отслеживает) ячейку наименьшего размера, на которой достигается максимум целевой функции. Будем такую ячейку называть целевой. В каждой итерации алгоритма просчитываются ячейки, входящие в некоторую следящую область вокруг целевой ячейки. В простейшем случае следящая область может быть кубической формы со следящей ячейкой в центре. В общем случае следящая область может быть произвольной выпуклой фигурой. При этом ячейки всегда имеют кубическую форму. Целевая точка -это некоторая точка, находящаяся вне следящей области. Ее координаты могут динамически вычисляться по коэффициентам целевой функции. Например, при целевой функции Q (x) = x 1 + 2x 2 в качестве целевой точки можно взять точку (T, 2T ), где Tдостаточно большое положительное число. Нулевой вершиной кубической области будем называть вершину куба, находящуюся ближе всего к началу координат. Нулевой вершиной кубической ячейки будем называть вершину ячейки, находящуюся ближе всего к началу координат.</p><p>Неформально следящий алгоритм может быть описан следующей последовательностью действий.</p><p>1. Первоначально выбирается следящая кубическая область с длиной ребра r и нулевой вершиной в точке q, заведомо покрывающая многогранник.</p><p>2. Выбирается целевая точка z = T c, расположенная вне следящей области. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.">Межузловое распараллеливание</head><p>Межузловое распараллеливание -это распараллеливание вычислений между отдельными узлами кластерной вычислительной системы. В качестве технологии параллельного программирования используется MPI. Каждый MPI-процесс работает на отдельном узле кластера. Обмен данными между MPI-процессами осуществляется с помощью передачи сообщений по коммуникационной сети. Один MPI-процесс считает одну псевдопроекцию на пересечение одной ячейки следящей области с многогранником. Таким образом, количество ячеек следящей области всегда равно константе K, совпадающей с количеством MPIпроцессов.</p><p>Опишем метод межузлового распараллеливания следящего алгоритма. Без ограничения общности мы можем считать, что все процессы происходят в положительной области координат. Пусть P -количество доступных MPI-процессов (количество процессорных узлов в многопроцессорной системе). Определим общее количество ячеек в следящей области следующим образом:</p><formula xml:id="formula_3">K = \Bigl( \Bigl\lf P 1/n \Bigr\rf \Bigr) n .<label>(4)</label></formula><p>Тогда количество ячеек, примыкающих к одному ребру куба следящей области, равно h = K 1/n . Зададим в пространстве целочисленных координат u 0 , . . . , u n линейную нумерацию ячеек следящей области следующим образом. Пусть ячейка \alpha имеет целочисленные координаты (\alpha 0 , . . . , \alpha n ). Тогда ее номер k \alpha вычисляется по формуле:</p><formula xml:id="formula_4">k \alpha = n - 1 \sum i=0 \alpha i n i . (<label>5</label></formula><formula xml:id="formula_5">)</formula><p>Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org </p><formula xml:id="formula_6">\alpha 1 = k \alpha -\alpha 0 n mod n;<label>(6)</label></formula><formula xml:id="formula_7">\alpha 2 = k \alpha -\alpha 0 -\alpha 1 n n 2 mod n;<label>(7)</label></formula><p>. . . . . . . . .</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Таким образом, в общем виде имеем:</head><formula xml:id="formula_9">\alpha i = k \alpha - i - 1 \sum j=0 \alpha j n j n i mod n.<label>(9)</label></formula><p>Формула ( <ref type="formula" target="#formula_9">9</ref>) содержит ресурсоемкую операцию возведения в степень. От нее можно избавиться следующим образом. По определению операции mod из (6) получаем</p><formula xml:id="formula_10">\alpha 0 = k \alpha -(k \alpha \div n) \cdot n.<label>(10)</label></formula><p>С помощью символа \div здесь обозначается целочисленное деление. Подставив в (7) вместо \alpha 0 правую часть этого уравнения, получим</p><formula xml:id="formula_11">\alpha 1 = k\alpha - (k\alpha - (k\alpha \div n)\cdot n) n mod n = (k\alpha \div n)\cdot n n mod n = (k \alpha \div n) mod n.<label>(11)</label></formula><p>По определению операции mod отсюда следует</p><formula xml:id="formula_12">\alpha 1 = k \alpha \div n -((k \alpha \div n) \div n) \cdot n.<label>(12)</label></formula><p>Подставив в (8) вместо \alpha 0 правую часть уравнения (10), а вместо \alpha 1 -правую часть уравнения (12), получим</p><formula xml:id="formula_13">\alpha 2 = k\alpha - \alpha 0 - \alpha 1 n n 2 mod n = k\alpha - (k\alpha - (k\alpha \div n)\cdot n) - (k\alpha \div n - ((k\alpha \div n)\div n)\cdot n)\cdot n n 2 mod n = ((k \alpha \div n) \div n) mod n. (<label>13</label></formula><formula xml:id="formula_14">)</formula><p>Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org Из (11) и (13) для i = 1, . . . , n -1 по индукции получаем:</p><formula xml:id="formula_15">\alpha i = (((k \alpha \div n) . . .) \div n) \underbr \underbr i modn. (<label>14</label></formula><formula xml:id="formula_16">)</formula><p>Пусть g = (g 0 , . . . , g n - 1 ) -нулевая вершина куба следящей области; y = (y 0 , . . . , y n - 1 )нулевая вершина произвольной ячейки \alpha . Выразим координаты точки y через координаты точки g. Обозначим s = r K 1/n -шаг сетки. Тогда</p><formula xml:id="formula_17">y i = g i + s\alpha i (<label>15</label></formula><formula xml:id="formula_18">) для i = 0, . . . , n -1.</formula><p>Определим в качестве центральной ячейки куба ячейку \gamma с целочисленными координатами (\gamma 0 , . . . , \gamma n - 1 ), где</p><formula xml:id="formula_19">\gamma 0 = . . . = \gamma n - 1 = \Bigl\lf K 1/n \Big/ 2 \Bigr\rf (<label>16</label></formula><formula xml:id="formula_20">)</formula><p>Пусть q = (q 0 , . . . , q n - 1 ) -нулевая вершина центральной ячейки \gamma . Выразим координаты точки q через координаты точки g, используя формулу (15):</p><formula xml:id="formula_21">q i = g i + s\gamma i , (<label>17</label></formula><formula xml:id="formula_22">)</formula><formula xml:id="formula_23">для i = 0, . . . , n -1.</formula><p>Пусть y -нулевая вершина ячейки \alpha .Тогда область внутри ячейки \alpha (включая границы) задается системой из 2n неравенств: \left\{ - x 0 \leq - y 0 \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot - x n - 1 \leq - y n - 1</p><p>x 0 \leq y 0 + s \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot \cdot</p><formula xml:id="formula_24">x n - 1 \leq y n - 1 + s<label>(18)</label></formula><p>Чтобы найти пересечение ячейки \alpha с многогранником M необходимо к системе неравенств Ax \leq b добавить неравенства из системы (18). При этом получается система из m + 2n неравенств с n неизвестными. Параллельная версия следящего алгоритма изображена на рис. 2 в виде диаграммы деятельности UML. В качестве начального значения длины ребра r кубической следящей области берется значение R, а в качестве нулевой вершины g кубической следящей области берется точка G, которые заведомо обеспечивают покрытие многогранника M следящей областью. Начальный шаг сетки s определяется по формуле s = r K 1/n , где количество ячеек K следящей области вычисляется по формуле (4). Координаты целевой точки z получаются путем умножения вектора c коэффициентов целевой функции на масштабирующий коэффициент T , выбираемый таким образом, чтобы целевая точка находилась вне следящей области. Целочисленные координаты центральной ячейки следящего куба определяется по формуле (16). Нулевая вершина q центральной ячейки следящей области соответственно вычисляется по формуле (17).</p><p>Вектор-функция \pi (z, k) с помощью фейеровского процесса, описанного в разделе 2, вычисляет псевдопроекцию целевой точки z на пересечение многогранника с ячейкой, имеющей порядковый номер k, и возвращает точку псевдопроекции x k или вектор ( - 1, . . .), если точка псевдопроекции не принадлежит многограннику (пересечение многогранника M с ячейкой пусто).</p><formula xml:id="formula_25">Суперкомпьютерные</formula><p>Псевдопроекции вычисляются параллельно без обменов данными в цикле until. В ходе вычисления псевдопроекций исходные данные задачи (1) могут меняться. После того как все точки псевдопроекций x 0 , . . . , x K - 1 вычислены, в цикле for происходит вычисление порядкового номера k \alpha ячейки \alpha , на которой достигается максимум целевой функции в точке псевдопроекции. При этом в переменной C вычисляется максимум целевой функции. В соответствии с этим в качестве начального значения k \alpha выбирается наименьшее целое число в машинном представлении MinInt, а в качестве начального значения C выбирается наименьшее вещественное число в машинном представлении MinFloat.</p><p>После завершения цикла for проверяется значение k \alpha . Если оно равно MinInt, значит пересечение всех ячеек с многогранником M оказалось пустым. Это означает, что в результате изменения исходных данных задачи (1) многогранник M «уплыл» за пределы следящей области. В этом случае в w раз увеличиваются: длина r ребра следящей области, шаг сетки s и координаты целевой точки z. Константа w является параметром алгоритма.</p><p>Если значение k \alpha отлично от MinInt, значит пересечение многогранника M со следящей областью не пусто. В этом случае в качестве новой центральной ячейки рассматривается ячейка с номером k \alpha и вычисляются координаты q \prime -нулевой вершины этой ячейки. Для этого используется вектор-функция zero(k \alpha ), диаграмма деятельности которой приведена на рис. 3.</p><p>Рис. 3. Вектор-функция, вычисляющая нулевую вершину ячейки с порядковым номером k \alpha .</p><p>Далее рассматриваются три случая в зависимости от удаленности нулевой вершины новой центральной ячейки следящей области от старой. Если \| q -q \prime \| &gt; 3 4 r, то r, s и координаты z увеличиваются в полтора раза. Если \| q -q \prime \| &lt; 1 4 r, то r, s и координаты z уменьшаются в полтора раза. Если 1 4 r \leq \| q -q \prime \| \leq 3 4 r то r, s и координаты z остаются прежними. После этого происходит сдвиг нулевой вершины следящей области на вектор (q \prime -q) и копирование координат q \prime в q. Далее выполняется очередная итерация цикла until.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5.">Заключение</head><p>В работе была описана параллельная реализация следящего алгоритм для решения нестационарных задач большой размерности на кластерных вычислительных системах. Алгоритм был реализован на языке Си с использованием библиотеки MPI. Начальные эксперименты на модельной задаче показали почти линейную масштабируемость параллельной реализации следящего алгоритма на 480 узлах суперкомпьютера «Торнадо ЮУрГУ». Авторы планируют реализовать внутриузловое распараллеливание следящего алгоритма с использованием технологии параллельного программирования OpenMP. Объектом распараллеливания на этом уровне является отдельный фейеровский процесс, вычисляющий псевдопроекцию. Для каждого подвектора организуется отдельная нить. Вычисления предполагается выполнять с использованием ускорителей Xeon Phi, которыми оснащен вычислительный кластер «Торнадо ЮУрГУ». Эффективное использование многоядерных ускорителей достигается путем распараллеливания процесса вычисления отдельной псевдопроекции. При этом предполагается использовать метод разбиения вектора на подвекторы <ref type="bibr" target="#b8">[9]</ref>. Суть метода заключается в том, что вектор исходной точки делится на подвекторы по числу процессорных ядер многоядерного ускорителя. На каждом подвекторе независимо делается v фейеровских приближений с использованием редуцированных фейеровских отображений. Такое редуцированное отображение воздействует только на «свой» подвектор, оставляя оставшуюся часть вектора без изменений. Затем нити управления через общую память обмениваются модифицированными подвекторами и процесс продолжается. В работе <ref type="bibr" target="#b8">[9]</ref> была доказана сходимость описанного итерационного процесса. Литература</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Рис. 1 .</head><label>1</label><figDesc>Линейная нумерация ячеек следящей области при n = 3. На рис. 1 приведен пример такой линейной нумерации при n = 3. Например, ячейка с номером 19 на рис. 1 имеет целочисленные координаты (1, 0, 2). Действительно, 19 = 1 \cdot 3 0 + 0 \cdot 3 1 + 2 \cdot 3 2 .Выразим целочисленные координаты ячейки \alpha через ее порядковый номер k \alpha . Из (5) получаем \alpha 0 = k \alpha mod n;</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head></head><label></label><figDesc>для всех ячеек внутри следящей области вычисляется псевдопроекция из точки z на пересечение ячейки с многогранником. Если пересечение пусто, то такие ячейки отбрасываются. 5. Если получено пустое множество псевдопроекций, то мы увеличиваем размер следящей области в w раз и переходим на шаг 2.Псевдопроекции на шаге 4 для различных ячеек следящей области могут вычисляться параллельно без обменов данными между MPI-процессами. Фейеровский процесс вычисления псевдопроекции, стартовавший из целевой точки на шаге 4, вычисляется до конца, несмотря на то, что координаты целевой точки и сам многогранник в процессе счета могли измениться. Выполнение условия шага 5 означает, что входные данные изменяются быстрее, чем мы вычисляем псевдопроекции. Константы 1/2 и 3/4 , используемые при выполнении шагов 7 и 8, являются значениями параметров алгоритма.</figDesc><table><row><cell>6. Если получено непустое множество псевдопроекций, то на нем вычисляется максимум</cell></row><row><cell>целевой функции.</cell></row><row><cell>7. Если расстояние от точки максимума до центра следящей области меньше 1 4 r, то длина</cell></row><row><cell>ребра следящей области r уменьшается в 2 раза.</cell></row><row><cell>8. Если расстояние от точки максимума до центра следящей области больше 3 4 r, то длина</cell></row><row><cell>ребра следящей области r увеличивается в 2 раза.</cell></row><row><cell>9. Центр следящей области перемещается в центр ячейки, в которой достигнут макси-</cell></row><row><cell>мум, и переходим на шаг 2.</cell></row></table><note>3. Следящая область разбивается на K ячеек. Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org 4. В условиях динамического изменения входных данных (A, b, c),</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head></head><label></label><figDesc>дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org Рис. 2. Параллельная версия следящего алгоритма.</figDesc><table /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" xml:id="foot_0">Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days 2015 // RussianSCDays.org</note>
		</body>
		<back>
			<div type="annex">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Solving unstable linear programming problems of high dimension on cluster computing systems</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Irina Sokolinskaya and Leonid Sokolinsky</head><p>Keywords: linear programming, unstable problems of high dimension, cluster computing systems, Fejer mappings Solving unstable linear programming problems of high dimension on cluster computing systems with multi-core accelerators</p></div>			</div>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<author>
			<persName><forename type="first">И</forename><forename type="middle">И</forename><surname>Еремин</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Мазуров</forename><surname>Вл</surname></persName>
		</author>
		<title level="m">.Д. Нестационарные процессы математического программирования</title>
				<imprint>
			<publisher>Наука</publisher>
			<date type="published" when="1979">1979</date>
			<biblScope unit="page">291</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Распознавание образов как метод формирования плохо формализуемых ограничений в моделях планирования // Оптимизация</title>
		<author>
			<persName><forename type="first">Мазуров</forename><surname>Вл</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Вып</title>
		<imprint>
			<biblScope unit="volume">10</biblScope>
			<biblScope unit="issue">27</biblScope>
			<biblScope unit="page" from="144" to="158" />
			<date type="published" when="1973">1973</date>
			<publisher>Новосибирск</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Представление торговых сигналов на основе адаптивной скользящей средней Кауфмана в виде системы линейных неравенств // Вестник Южно-Уральского государственного университета</title>
		<author>
			<persName><forename type="first">М</forename><forename type="middle">М</forename><surname>Дышаев</surname></persName>
		</author>
		<author>
			<persName><forename type="first">И</forename><surname>Соколинская</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Серия: Вычислительная математика и информатика</title>
		<imprint>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="103" to="108" />
			<date type="published" when="2013">2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Торговые роботы и управление в хаотических средах: обзор и критический анализ // Труды</title>
		<author>
			<persName><forename type="first">И</forename><forename type="middle">В</forename><surname>Ананченко</surname></persName>
		</author>
		<author>
			<persName><forename type="first">А</forename><surname>Мусаев</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="178" to="203" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<title level="m" type="main">Parallel algorithm for solving linear programming problem under conditions of incomplete data // Automation and Remote Control</title>
		<author>
			<persName><forename type="first">I</forename><forename type="middle">M</forename><surname>Sokolinskaya</surname></persName>
		</author>
		<author>
			<persName><forename type="first">L</forename><forename type="middle">B</forename><surname>Sokolinskii</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2010">2010</date>
			<biblScope unit="volume">71</biblScope>
			<biblScope unit="page" from="1452" to="1460" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<author>
			<persName><forename type="first">И</forename><forename type="middle">М</forename><surname>Соколинская</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Л</forename><surname>Соколинский</surname></persName>
		</author>
		<title level="m">применении фейеровских отображений в задачах линейной оптимизации с быстро меняющимися входными данными // Информационный бюллетень Ассоциации программирования</title>
				<imprint>
			<date type="published" when="2015">2015</date>
			<biblScope unit="volume">13</biblScope>
			<biblScope unit="page" from="56" to="58" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<author>
			<persName><forename type="first">И</forename><forename type="middle">М</forename><surname>Соколинская</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Л</forename><surname>Соколинский</surname></persName>
		</author>
		<title level="m">Алгоритм решения нестационарных задач линейного программирования для кластерных вычислительных систем с многоядерными ускорителями // Параллельные вычислительные технологии (ПаВТ&apos;2015): труды международной научной конференции</title>
				<imprint>
			<publisher>Издательский центр ЮУрГУ</publisher>
			<date type="published" when="2015">2015</date>
			<biblScope unit="page" from="477" to="481" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<author>
			<persName><forename type="first">И</forename><surname>Еремин</surname></persName>
		</author>
		<title level="m">Фейеровские методы для задач выпуклой и линейной оптимизации</title>
				<imprint>
			<publisher>Изд-во ЮУрГУ</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page">200</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">О сходимости масштабируемого алгоритма построения псевдопроекции на выпуклое замкнутое множество // Вестник Южно-Уральского государственного университета. Серия: Математическое моделирование и программирование</title>
		<author>
			<persName><forename type="first">А</forename><forename type="middle">В</forename><surname>Ершова</surname></persName>
		</author>
		<author>
			<persName><forename type="first">И</forename><surname>Соколинская</surname></persName>
		</author>
		<ptr target="2015//RussianSCDays.org" />
		<imprint>
			<date type="published" when="2012">2012</date>
			<biblScope unit="page" from="5" to="12" />
		</imprint>
	</monogr>
	<note>Суперкомпьютерные дни в России 2015 // Russian Supercomputing Days</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
