Построение и исследование алгоритма поиска первой крайней подсистемы для заданной совместной системы линейных неравенств

дящим 8М-потоком методом асимптотических семиинвариантов. Предложен метод просеянного потока для исследования таких систем массового обслуживания. Получены асимптотические семиинварианты первого, второго и третьего порядков,

а также показана область применимости асимптотических результатов в допредельной ситуации.

Работа выполнена при продержке АВЦП «Развитие научного потенциала высшей школы (2009-2011 гг.)», проект № 11803.

СПИСОК ЛИТЕРАТУРЫ

1. Лопухова С.В. Исследование полумарковского потока асимптотическим методом третьего порядка // Информационные технологии и математическое моделирование: Матер. VI Меж-дунар. научно.-практ. конф. - Томск, 2007. - Ч. 2. - С. 30-34.

2. Назаров А.А., Лопухова С.В., Гарайшина И.Р. Исследование полумарковского потока событий // Вычислительные технологии. - 2008. - Т. 13. - Спецвыпуск 5. - С. 56-62.

3. Дудин А.Н., Клименок В.И. Системы массового обслуживания с коррелированными потоками. - Минск: БГУ, 2000. - 175 с.

4. Назаров А.А., Моисеева С.П. Метод асимптотического анализа в теории массового обслуживания. - Томск: Изд-во НТЛ, 2006. - 112 с.

5. Назаров А.А., Семенова И.А. Исследование системы MMP|GI|» методом просеянного потока // Вестник Томского государственного университета. Сер. Управление, вычислительная техника и информатика. - 2011. - № 4 (17). - С. 74-84.

6. Лопухова С.В. Асимптотические и численные методы исследования специальных потоков однородных событий: дис. ... канд. физ.-мат. наук. - Томск, 2008. - 167 с.

7. Назаров А.А., Семенова И.А. Исследование RQ-систем методом асимптотических семиинвариантов // Вестник Томского государственного университета. Сер. Управление, вычислительная техника и информатика. - 2010. - № 3 (12). - С. 85-96.

Поступила 20.01.2012 г.

УДК 519.9

ПОСТРОЕНИЕ И ИССЛЕДОВАНИЕ АЛГОРИТМА ПОИСКА ПЕРВОЙ КРАЙНЕЙ ПОДСИСТЕМЫ ДЛЯ ЗАДАННОЙ СОВМЕСТНОЙ СИСТЕМЫ ЛИНЕЙНЫХ НЕРАВЕНСТВ

С.Г. Небаба, О.Н. Вылегжанин

Томский политехнический университет E-mail: onv@am.tpu.ru

Разработан алгоритм поиска крайней подсистемы для заданной системы линейных неравенств, определена область допустимых значений для этой подсистемы и предложен метод нахождения зависимых неравенств. Алгоритм включает учет возможных ограничений-равенств, а также приведение матрицы системы неравенств к матрице полного столбцового ранга. Работа алгоритма демонстрируется на тестовом примере.

Ключевые слова:

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

Key words:

System of linear inequalities, extreme subsystem, accounting of equality constraints, range of permitted values, dependent inequalities.

Подавляющее большинство задач оценки и прогноза реальных производственно-экономических ресурсов и результатов их использования сводится к нахождению решения (области допустимых решений) для некоторой системы неравенств, выражающих ограничения по тем или иным ресурсам. Эти неравенства представляются в виде линейных функций, либо легко могут быть приведены к ним с использованием ряда допущений.

Нахождение решения системы линейных неравенств при наличии некоторой целевой функции обычно относят к задачам математического программирования. Эти задачи относятся к задачам исследования конкретных производственно-хозяйственных ситуаций, которые в том или ином виде интерпретируются как задачи об оптимальном использовании ограниченных ресурсов.

На практике нередко отсутствует целевая функция, на нахождение оптимального значения которой направлено большинство моделей математического программирования, и на основании учета ограничений в виде системы линейных неравенств определяется множество точек, выпуклая оболочка которых является областью допустимых значений задачи.

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

Отдельные свойства систем линейных неравенств рассматривались еще в первой половине XIX в. в связи с некоторыми задачами аналитической механики, решение которых сводилось к системам такого рода. Их систематическое изучение

началось в самом конце XIX в., однако о теории линейных неравенств стало возможным говорить лишь в конце двадцатых годов XX в., когда уже накопилось достаточное количество связанных с ними результатов.

В тридцатых годах XX в. появился эскиз Г. Вейля теории конечных систем линейных неравенств, построенной финитными методами без привлечения топологических свойств поля действительных чисел. Дальнейшее развитие теории линейных неравенств показало, что теория конечных систем линейных неравенств может рассматриваться как ветвь линейной алгебры, исходящая из нее при дополнительном требовании упорядоченности основного поля (поля коэффициентов). Излагаемая в [1] алгебраическая теория линейных неравенств охватывает все основные результаты, относящиеся к конечным системам линейных неравенств с действительными коэффициентами и свободными членами, давая им алгебраическую трактовку. Центральным предложением этой теории был установленный автором [1] принцип граничных решений, утверждающий, что в каждой совместной конечной системе линейных неравенств над полем действительных чисел, имеющей любой отличный от нуля ранг, можно выделить хотя бы одну такую подсистему того же ранга и с равным ему числом неравенств, каждое решение которой, обращающее все ее неравенства в равенства, удовлетворяет исходной системе. За последнее время появились новые математические средства, позволяющие выделить крайние подсистемы системы линейных неравенств более просто и эффективно.

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

Ах < Ь, х е Я", Ь е Ят

Ах = Ь, х е Я", Ь е Ят.

Будем полагать, что системы линейных неравенств (1) и ограничений-равенств (2) определены или переопределены, и первые к столбцов А линейно независимы.

Необходимо найти множество крайних подсистем, узловые решения которых образуют множество точек, выпуклая оболочка которых совпадает с областью допустимых значений решаемой системы.

В работе [2] предложен метод нахождения крайней подсистемы, сводящийся к решению задачи квадратичного программирования, которую решали методом субоптимизации на многообразиях. Однако этот метод не учитывает в явном виде наличие ограничений-равенств. В данной работе предложен метод решения задачи отыскания крайней подсистемы путем последовательного перемещения рабочей точки вдоль области пересечения удерживающих неравенств.

Для обоснования алгоритма получения крайней подсистемы, т. е. получения точки, являющейся вершиной многогранника области допустимых значений М, сформулируем несколько утверждений:

Утверждение 1. Пусть Ах<Ь - крайняя подсистема системы линейных неравенств, тогда областью допустимых значений этой крайней подсистемы будет множество точек, удовлетворяющих условию

(х - х*) < 0,

где х*=А-1-Ь.

Доказательство. Пусть Б - конус допустимых значений, определенный условием Ах<Ь, с вершиной в точке х*=А4-Ь. Пусть х - произвольная точка, принадлежащая этому конусу (хеБ), тогда, вычитая из Ах<Ь почленно Ах*=Ь получим Ах-х*)<0 и, умножив обе части слева на А-1, получим доказываемое.

Утверждение 2. Если х0 - начальная точка, а ближайшая к ней плоскость многогранника М имеет направляющим вектором а, то х1 - проекция начальной точки на эту плоскость может быть найдена как

Ь, - ат х0 х1 = хо + т а

а а

Утверждение 3. Если точка хк принадлежит пересечению к плоскостей, заданных направляющими векторами а;|/'=1...к, то ее проекция на пересечение плоскости, заданной строкой а, с пересечением плоскостей, заданных строками а;|/'=1...к, составляющими матрицу Ак, есть:

Ь-^ па, а т Па '

где П=(1-Ак-Ак+) - проектор на пространство, перпендикулярное пространству, натянутому на строки матрицы Ак, а А+ - матрица, псевдообратная к матрице Ак, I - единичная матрица.

Доказательства утверждений 2 и 3 приведены в [3]. Повторив процедуру, определенную утверждением 3, не более к-1 раз, получим подсистему, образованную к линейно независимыми строками исходной системы.

Определим вектор разностей -

у = Ь - Ах,

показывающий, каким неравенствам -системы, определенной матрицей А и вектором Ь, удовлетворяет точка х. Решение полученной подсистемы может нарушать некоторые неравенства исходной системы, т. е. при подстановке его в исходную систему вектор разностей может содержать отрицательные элементы.

Для вектора -, в зависимости от того, где находится точка х, возможны следующие варианты:

• если у<0 для V/ |/е1...и, то точка хявляется внутренней точкой многогранника М;

• если у=0 только для некоторой части из / |/е1...и, а для остальных элементов / у<0, то

точка х принадлежит поверхности многогранника М;

• если 3/ |/є 1...и, для которых у>0, то точка х находится вне области многогранника М.

Рассмотрим общий случай, когда начальная точка находится вне многогранника допустимых значений задачи. Для отыскания крайней подсистемы необходимо найти точку, соответствующую вершине многогранника М. Для этого, исключив из матрицы Л* те строки, которые соответствуют положительным значениям вектора -, будем повторять операцию (3), пока все элементы вектора -не станут неположительными.

Когда такая точка найдена, то все неравенства исходной системы могут быть разделены на два множества: множество неравенств, которые не изменяют область допустимых значений Б, и множество неравенств, которые ее изменяют. Назовем первые неравенства зависимыми от данной крайней подсистемы. Рассмотрим задачу выделения зависимых неравенств.

Утверждение 4. Пусть в линейном пространстве Ь размерности г задана система линейных неравенств Лх<Ь ранга г. Тогда для того, чтобы линейное неравенство ах<в было зависимым от этой системы необходимо и достаточно, чтобы для вектора /т=аЛ+ выполнялось условие у>0.

Доказательство.

Достаточность. При умножении любого неравенства системы й^х<Ьі на неотрицательный множитель у>0 неравенство не нарушится. Отсюда справедливо у1Лх<у1Ь, где у - вектор неотрицательных множителей. Обозначив а=утЛ и Р=утЬ, получим доказываемое.

Необходимость. Так как ранг системы равен размерности пространства векторов Ь(гкЛ=г), то любой вектор из Ь может быть представлен в виде линейной комбинации строк Л, т. е. а=уЛ или, умножив обе части на Л+, получим рт=атЛ+. Если среди элементов у есть хотя бы один отрицательный, то для него справедливо уД,тх>^Ь;, что противоречит условиям теоремы.

Для учета ограничений-равенств, проверки матрицы системы на полноту столбцового ранга, поиска первой крайней подсистемы и учета зависимых неравенств был разработан следующий алгоритм:

1. Задаются начальные данные: система линейных неравенств (матрица Л, вектор Ь), система ограничений-равенств (матрица Л, вектор Ь).

2. Выполняется учет ограничений-равенств по методу, предложенному в [4].

3. Проверяется полученная матрица системы на полноту столбцового ранга и, если необходимо, она приводится к матрице полного столбцового ранга методом, предложенным в [3].

4. В результате описанных выше шагов исходная система ограничений равенств и неравенств приводится к системе линейных неравенств полн ого столбцового ранга: с матрицей А и вектором Ь.

Выбирается начальная точка х0 и далее:

5. Вычисляется вектор

у = Ъ -Лх0.

6. Выбирается ближайшая плоскость (минимальный отрицательный элемент -^0) с номером /.

7. Вычисляется проекция начальной точки на выбранную плоскость [3]:

Ъ - а/ х0

х = хо + у а > а а

где х0 - начальная точка; щ - направляющий вектор ближайшей к ней плоскости многогранника М; Ь - /-й элемент вектора Ь; х1 - проекция начальной точки на эту плоскость.

9. Начало рекуррентного вычисления, начиная с /, где /=2,..., п; п - число строк матрицы Л.

10. Вычисляется вектор

у = Ъ - Ах,.

11. Если среди элементов вектора - нет положительных и к элементов равны нулю, где к - размерность задачи (число столбцов матрицы Л), то множество строк матрицы Л, для которых элементы вектора - равны нулю, составляют крайнюю подсистему, а точка х - искомая вершина многогранника М. Иначе переход к шагу 12.

12. Выбирается ближайшая к точке х плоскость

І (по минимальному отрицательному элементу вектора -).

13. Вычисляется вектор направления от точки х к плоскости ] [3]:

Оау. = (I - Л+Л 1)а/,

где I - единичная матрица, Л1+ - матрица, псевдо-обратная к матрице Л1.

14. Вычисляется проекция точки х на плоскость у [2]:

15. Переход к следующему шагу:

/=/+1,

начиная с шага 10.

16. Вывод найденной точки хп.

17. Выполняется поиск зависимых неравенств: умножив матрицу системы на матрицу, псевдооб-ратную найденной подсистеме, получим матрицу, которая показывает зависимость всех неравенств от неравенств, составляющих крайнюю подсистему. В этом случае строки матрицы, содержащие только отрицательные элементы, будут соответствовать зависимым неравенствам.

В качестве тестового примера была взята система из [4].

Исходные ограничения-равенства:

1,2х1 - 3х2 + х3 - х5 = -0,5

1,4 х1 -1,5 х2 + х3 - х4 - х5 = 0,5

-0,7х1 + 0,5х2 + х3 -х4 + х5 = 4,5

0,26х1 - 0,45х2 + 0,2х3 - 0,1х4 - 0,2 х5 = 0

А =

0,26

0 -1 1 "-0,5'

-1 -1 , Ь = 0,5

-1 1 4,5

-0,1 -0,2 7 . 0 7

Ограничения-неравенства:

0,4х1 - 2х2 + 0,1х3 - 0,501х4 + 0,35х5 < 2,225 -х1 - 0,1х2 - 2х3 + 9,994х4 - 3,575х5 < 11,037 -0,5х1 + 0,1х2 + 0,5х3 -7,481х4 + 5,425х5 <6,537 4,5х1 -3х2 - 10,1х3 - 16,551х4 -30,05х5 < 110,225 4,5х1 - 3х2 - 2,398х4 - 5х5 < -12

-х1 + 2х2 + 0,5х3 -1,2х4 -0,35х5 <-1,125

2,4х1 - х2 - 3,5х3 + 4х4 - 5,2 х5 < 0,2

-х1 + х2 - 3х3 + 4,687х4 -1,25х5 < -2,625

Или в обозначениях (1) и (2):

' 1,2 -3 1

1,4 -1,5 1

-0,7 0,5 1

! 0,2 -0,1 -0,2J ^ (

' 2,225 Л

11,037 6,537 110,225 -12 -1,125

0,2 -2,625 7

Система линейных неравенств после учета ограничений-равенств и проверки полноты ранга матрицы А:

(

А =

А =

0,4 -2 0,1 0,501 0,35

-1 0,1 -2 9,994 -3,575

-0,5 0,1 0,5 -7,481 5, 425

4,5 -3 -10,1 -16,551 -30,05

4,5 -3 0 -2,398 -5

-1 2 0,5 -1,2 -0,35

2, 4 -1 -3,5 4 -5,2

-1 1 -3 4,687 -1,25

Ь =

-0,998 -1 > Г 2 1

8 -3 16

-7 5 4,999

-26,998 -25 , Ь = 135

2,998 -5 15

-0,162 0,4 1

0, 455 -3 9,5

2 0,5 7 1 7 7

В качестве начальной точки выбрана:

*0 = (2 -8).

Применяя предложенный алгоритм, получим следующую последовательность векторов - и точек х

1 шаг. Вектор -= Ь-Ах0:

у = (-4,004 -24 58,999 -11,004 -30,996 4,524 -15,41 7).

Ближайшая плоскость соответствует первой строке матрицы А (-0,998 -1), проекция начальной точки на соответствующую этой строке плоскость (точка х1) есть:

* = (4,002 -5,994).

2 шаг. Вектор -= Ь-Ах1

у = (0 -33,998 62,983 93,196 -26,968 4,046 -10,303 1,9 93).

Выбирается седьмая строка матрицы А (0,455 -3), вычисляется точка х2:

*2 = (1,015 -3,013).

3 шаг. Вычисляется вектор - = Ь-Ах2:

у = (0 -1,157 27,166 87,078 -3,106 2,369 0 6,477).

Выбирается вторая строка матрицы А (8 -3), вычисляется точка х3:

*3 = (0,91 -2,908).

4 шаг. Вычисляется вектор -= Ь-Ах3:

у = (0 0 25,905 86,863 -2,266 2,31 0,363 6,635).

Выбирается пятая строка матрицы А (2,998 -5), вычисляется точка х4:

х4 = (0,626 -2,625).

5 шаг. Вычисляется вектор -= Ь-Ах4:

у = (0 3,118 22,504 86,282 1,776 -10-15 2,151 1,341 7,06).

Вектор - содержит только неотрицательные элементы, из которых два равны нулю, следовательно, найдена первая крайняя подсистема, состоящая из первого и пятого неравенств системы.

Для нахождения неравенств, зависимых от этой крайней подсистемы, найдем матрицу, псевдооб-ратную матрице крайней подсистемы:

А + = Г-0,626 0,125

п =[-0,375 -0,1257

Умножив ее справа на исходную матрицу ограничений-неравенств получим:

Г 1 0 1

-3,882 1,376

2,505 -1,501

26,282 -0,256

0 1

-0,049 -0,07

0,841 0,432

у -1,44 0,188 7

Следовательно, зависимым является седьмое неравенство (0,455 -3).

Выводы

Разработан алгоритм расчета крайней подсистемы для заданной системы линейных неравенств, включающий учет ограничений равенств и приведение полученной матрицы системы неравенств к полному столбцовому рангу. Предложен способ определения неравенств системы, зависимых от неравенств, входящих в найденную крайнюю подсистему, и доказаны соответствующие теоремы. Результаты расчета тестового примера подтверждают работоспособность предложенного алгоритма.

СПИСОК ЛИТЕРАТУРЫ

1. Черников С.Н. Линейные неравенства. - М.: Наука, 1968. -488 с.

2. Вен В.Л., Литвинцев П.И., Фролов К.К. Решение системы линейных неравенств по методу наименьших квадратов // Журнал вычислительной математики и математической физики. -1984. - Т 24. - №1. - С. 144-148.

3. Вылегжанин О.Н., Шкатова ГИ. Решение задачи линейного программирования с использованием оператора-проектора //

Известия Томского политехнического университета. - 2009. -Т. 314. - № 5. - С. 37-40.

4. Вылегжанин О.Н., Шкатова Г.И. Учет ограничений равенств при решении оптимизационных задач с линейными ограничениями // Известия Томского политехнического университета. - 2008. - Т 312. - № 5. - С. 76-78.

Поступила 13.03.2012 г.

УДК 004.94

МАТРИЧНЫЙ АЛГОРИТМ РЕШЕНИЯ ЗАДАЧИ РАЗРЕЗАНИЯ ДВУДОЛЬНЫХ ГРАФОВ

Ан.В. Погребной, Д.В. Погребной

Томский политехнический университет E-mail: avpogrebnoy@gmail.com

Предложен алгоритм решения задачи разрезания двудольного графа на заданную совокупность минимально связанных подграфов. Алгоритм использует матричное представление двудольного графа и учитывает его специфику. Это позволило свести задачу разрезания к задаче линейного математического программирования. Алгоритм может работать как с произвольно сформированным, так и улучшенным исходным вариантом разрезания двудольного графа.

Ключевые слова:

Двудольный граф, исходное разрезание, матрица связности вершин графа, задача линейного математического программирования.

Key words:

Bipartite graph, the original cut, connectivity matrix of the vertices, problem of linear mathematical programming.

Введение

Двудольные графы [1] используют при построении графовых моделей, описывающих отношения между объектами разбитыми на два множества. В таких моделях отношения (рёбра) могут связывать объекты (вершины) только из разных множеств. Отношения между объектами внутри множеств отсутствуют или не учитываются. Примером графовых моделей, имеющих двудольную природу, являются сети Петри [2] с непересекающимися множествами позиций и переходов. Дуги в сети Петри могут связывать только переходы и позиции. Другим примером являются графы потока данных [3] с множествами модулей и данных, в которых дуги отражают потребление или формирование данных модулями.

Формально двудольный граф О описывается четвёркой (И,М,У,К), где Ж=|е;|, /=1,2,...,и; М={е/}, /=1,2,...,т - множества вершин двудольного графа; У=& - множество рёбер V/, связывающих неупорядоченные пары вершин (е,е), е!еД еуеМ; Я={Г/} - множество весов Гу рёбер V/.

Если для всех vуеV, г=1, то имеет место не взвешенный двудольный граф. Заметим также, что граф О рассматривается как неориентированный, т. к. пара вершин (е,е), связанная ребром V/, принимается неупорядоченной. Ориентация дуг, например в графе потока данных, означает направление передачи данных. Вместе с тем, загрузка се-

ти при передаче данных по разрезанной дуге зависит от веса дуги и не зависит от её ориентации. Как в этом, так и во многих других примерах, ориентация дуг не учитывается и при решении задачи разрезания используется неориентированный взвешенный двудольный граф. Такой граф полностью описывается матрицей связности вершин Л=||г,||*<м. Матрица Я несимметрична и все её элементы (веса рёбер) г>0. Особенность матрицы Я заключается в том, что она допускает перестановки строк Ц и столбцов Ц независимо друг от друга.

Задача разрезания возникает всякий раз, когда графовую модель, описывающую отношения между объектами распределённой системы, необходимо разбить на совокупность минимально связанных между собой подсистем. Если графовая модель представлена двудольным графом, то это, как правило, связано с наличием в системе объектов двух типов, которые нельзя смешивать в ходе решения задачи разрезания. В частности поэтому, для её решения нельзя использовать матричный алгоритм разрезания обыкновенного графа [4], в котором вершины не различаются по каким-либо признакам и образуют единое множество. Кроме того, двудольные графы в сравнении с обыкновенными обладают спецификой, которая даёт возможность разработать алгоритм разрезания, эффективно работающий для данного класса графов.