СПИСОК ЛИТЕРАТУРЫ
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,...,т - множества вершин двудольного графа; У={у - множество рёбер у/, связывающих неупорядоченные пары вершин (е,е), е^Ы, е/еЫ; Я={Г/} - множество весов гу рёбер у.
Если для всех У/е¥, гу=1, то имеет место не взвешенный двудольный граф. Заметим также, что граф О рассматривается как неориентированный, т. к. пара вершин (е,е), связанная ребром принимается неупорядоченной. Ориентация дуг, например в графе потока данных, означает направление передачи данных. Вместе с тем, загрузка се-
ти при передаче данных по разрезанной дуге зависит от веса дуги и не зависит от её ориентации. Как в этом, так и во многих других примерах, ориентация дуг не учитывается и при решении задачи разрезания используется неориентированный взвешенный двудольный граф. Такой граф полностью описывается матрицей связности вершин Л=||г,||*<м. Матрица Я несимметрична и все её элементы (веса рёбер) г,>0. Особенность матрицы Я заключается в том, что она допускает перестановки строк Ц и столбцов Ц независимо друг от друга.
Задача разрезания возникает всякий раз, когда графовую модель, описывающую отношения между объектами распределённой системы, необходимо разбить на совокупность минимально связанных между собой подсистем. Если графовая модель представлена двудольным графом, то это, как правило, связано с наличием в системе объектов двух типов, которые нельзя смешивать в ходе решения задачи разрезания. В частности поэтому, для её решения нельзя использовать матричный алгоритм разрезания обыкновенного графа [4], в котором вершины не различаются по каким-либо признакам и образуют единое множество. Кроме того, двудольные графы в сравнении с обыкновенными обладают спецификой, которая даёт возможность разработать алгоритм разрезания, эффективно работающий для данного класса графов.
Предложенный в статье алгоритм можно отнести к алгоритмам последовательного типа. На первом этапе формируется исходный вариант разрезания графа О на подграфы О#, #=1,2,..., к. Здесь фиксируется число к подграфов О#, на которые разрезается граф О и для каждого #-го подграфа устанавливается число и состав вершин из множеств N и М. На последующих этапах выполняется улучшение разрезания за счёт изменения состава вершин в подграфах исходного разрезания {О#} так, чтобы сумма весов разрезанных рёбер была минимальной.
Алгоритм назван матричным, т. к. основан на представлении двудольного графа матрицей связности вершин Я и при реализации поисковых процедур также использует матричное представление.
Формирование исходного варианта разрезания
Алгоритм разрезания будем рассматривать на примере взвешенного двудольного графа, представленного матрицей Я нарис. 1, а, в котором множество N содержит 8, а М - 12 вершин. Граф О требуется разрезать на 3 подграфа О, #=1, 2, 3 с заданным числом вершин из множеств N и М.
На матрице Я (рис. 1, а) вариант разрезания по аналогии с алгоритмом [4] можно представить совокупностью блоков, каждый из которых соответствует подграфу Оі с множеством вершин N(6) и М(О?). В данном примере все блоки содержат по 4 вершины из множества М, а 8 вершин множества N распределены по блокам в количестве 3, 3, 2. Число блоков и их размерность, т. е. соотношение числа вершин из множеств N и М в соответствующих подграфах устанавливается пользователем. Последовательность расположения блоков разной размерности в матрице Я формируется произвольно.
Элементы ґ д матрицы Я, расположенные за пределами блоков, соответствуют межблочным связям, т. е. разрезанным рёбрам, связывающим разные подграфы. Эти элементы составляют часть матрицы, названную областью сечения. Таким образом, матрица Я разбивается на область блоков и область сечения. Задача разрезания сводится к перестановкам строк Я и столбцов Я] матрицы Я
так, чтобы сумма элементов г¡] в области блоков была максимальной, а в области сечения - минимальной. Качество разрезания оценивается соотношением суммы элементов в блоках к сумме в области сечения. Чем больше величина этого соотношения, тем лучше вариант разрезания.
Приведённый на рис. 1, а, исходный вариант разрезания получен произвольным образом. Вершины е;еИ и в]еИ включены в очередной блок в порядке их нумерации. К тому же блок 3 в последовательности блоков мог быть поставлен первым или вторым. Соотношение сумм элементов в блоках и в области сечения для данного варианта разрезания равно 26/56. При визуальном анализе области блоков и области сечения легко обнаружить, что данный вариант разрезания можно улучшить. Так, например, если столбцы Я4 и Я поменять местами, то соотношение станет равным 35/47, т. е. улучшится на 9 единиц. Взаимная перестановка строк Я и Я также улучшает исходный вариант на 4 единицы.
Операции по поиску в множествах строк и столбцов перестановок, улучшающих качество разрезания, могут быть формализованы аналогично тому как это было сделано в [4]. Однако в данном случае более эффективным оказалось применение аппарата математического программирования. Такая возможность была найдена благодаря учёту отмеченной выше особенности матрицы Я.
Метод улучшения качества разрезания
Рассмотрим подробнее операцию перестановки строк Я и Д. Каждая строка относительно блоков делится на подмножества элементов, принадлежащих столбцам соответствующих блоков М(01), М(02), М(03). При перестановке строк элементы этих подмножеств всегда совместно попадают в некоторый блок или исключаются из него. В нашем случае при перемещении строки Я на место Я, одно подмножество (0,1,2,0) исключается из 1-го блока, а другое (3,0,2,0) включается в 3-й блок. Аналогично для строки Я при перемещении её на место Я подмножество (0,0,3,1) включается в 1-й блок, а подмножество (0,1,0,1) исключается из 3-го блока.
Таким образом, исходя из цели решения задачи разрезания, при перестановке строк допустимо оперировать не подмножествами, а суммами элементов этих подмножеств. Сумму элементов гд строки Я, относящихся к множеству М(О), обоз-
начим величиной а
= X Г
Г„еМ (Оц )
(1)
Величины ад вычисляются для всех строк и формируются в матрицу Л=||а;д||пхк. Матрица А, полученная для исходного варианта разрезания (рис. 1, а), представлена на рис. 1, б. В итоге, поиск варианта распределения строк по блокам, улучшающего качество исходного разрезания, стало возможным вести на матрице А.
Матрица А устроена таким образом, что распределение г-й строки в д-й блок соответствует выбору в этой строке одного д-го элемента ад. При этом необходимо проследить, чтобы в каждом #-м столбце матрицы А было выбрано ровно пі - число строк в множестве ЩО) Наибольшее улучшение исходного разрезания будет достигнуто при получении максимальной суммы выбраных элементов.
Для решения данной задачи введём переменную хд=1, если элемент ад выбран, и хд=0, в противном случае. Тогда задачу оптимального распределения строк по блокам можно записать в виде:
п к
X XX а
і=д д=1
X-
¡д ¡д
Ххд = пд , д = 1>2>->к;
¡=1
к
X Хд = 1> І = 1>2>->
п.
(2)
(3)
(4)
д=1
Решив задачу (2)-(4), назовём её задачей TN, например венгерским алгоритмом [5], получим наилучшее распределение строк Я по блокам при фиксированном положении столбцов. Результат решения задачи TNдля матрицы А нарис. 1, бсоот-
ветствует заштрихованным элементам ак. Из решения следует, что строки распределились по блокам следующим образом: И(О1)=(5,6,8), И(О2)=(2,3,4), И(О3)=(1,7). Качество данного разрезания составило 39/43.
Задача оптимального распределения столбцов по блокам решается для матрицы Я, построенной с учётом перестановки строк согласно решению задачи ТИ. Полученная матрица Я представлена на рис. 2, а. Справа от матрицы указана принадлежность строк к блокам. Последовательность расположения и размерность блоков в данной матрице сохраняется. Сформированное таким образом разрезание принимается в качестве исходного для решения задачи распределения столбцов.
Формализованная постановка данной задачи, названной задачей ТМ, осуществляется аналогично задаче ТИ. Вначале определяются элементы в и формируются в матрицу В=\\Р9\\Ьт. Элементы в вычисляются аналогично (1) по выражению:
г..
І/ .
(5)
Матрица В, полученная для матрицы Я (рис. 2, а), представлена на рис. 2, б.
Целевая функция и ограничения задачи ТМ записываются аналогично задаче ТИ:
XX в
д=1 7=1
д/хд/
тах;
X;
7=1
д = 1,2,..., к;
, т.
(6)
(7)
(8)
д=1
Решение задачи (6)-(8) на матрице В отмечено штриховкой выбранных элементов вді. Качество данного варианта разрезания составило 56/26. На рис. 2, в, приведена матрица, полученная после перестановки столбцов согласно решению задачи ТМ. Принадлежность столбцов к блокам показана
Рис. 2. Итоговый вариант разрезания
а
нумерацией снизу матрицы. Попытка улучшить для этой матрицы качество разрезания путём перестановки строк на основе решения задачи TN не привела к успеху. На рис. 2, г, видно, что в матрице А все строки сохранили свои места в блоках. Визуальный анализ области сечения матрицы на рис. 2, в также показывает, что путём перестановки какой-либо строки или столбца достигнутое качество разрезания нельзя улучшить. Ниже предлагается попытка достигнуть разрезание с более высоким качеством за счёт использования улучшенного исходного разрезания.
Методика поиска варианта исходного
распределения строк по блокам.
Вариант разрезания с оценкой 56/26 получен на основе применения метода улучшения качества исходного разрезания, сформированного произвольным образом. В связи с этим возникает вопрос, имеется ли возможность улучшить качество разрезания, если исходное разрезание формировать не произвольным образом, а на основе некоторой процедуры рационального распределения строк или столбцов по блокам.
Рассматривая вопрос о предпочтениях в распределении строк по блокам, легко обнаружить, что в один блок должны попадать те строки, вершины которых соответствуют максимальным суммам весов связей с общими вершинами столбцов. В этом случае при попадании в общий блок данных столбцов и строк суммарный вес блока возрастает. Связность двух строк Я и Яет 9, л=1,2,...,п, обозначим величиной 8Ь, ш. Значение величины 8Ь определяется согласно выражениям:
Ує(, єх е N & Уєу. є М [г/ > 0&г/ > 0] ^
^ Г + г/ X ипаче ($щ = 0); (9)
т
=X5щ. (10)
7=1
На рис. 3 приведены пояснения к вычислению 8Ь на примере величины 517. Вершины е1 и е7, соответствующие строке Я91 и Яі7, связаны через общие вершины е2, е5, е9 столбцов Я2, Як, Я, которые помечены штриховкой. Сумма весов ґ, и г, для общих вершин е, связывающих вершины е1 и е7 составила 16 единиц, т. е. <51,7=16.
1 2 3 4 5 6 7 8 9 10 11 12
М О
1 2 3 4 5 6 7 8
Рис. 3. Иллюстрация к определению Ъ,7
Величины 4, вычисленные по выражениям (9), (10), формируются в матрицу связности строк А. Матрица А, полученная для исходной матрицы Я (рис. 1, а), приведена на рис. 1, в. Для матрицы А с помощью матричного алгоритма (программное средство СШОга/) [6] решается задача разрезания, т. е. определяется распределение строк по блокам. При этом последовательность блоков и их размерность должна совпадать с этими параметрами в рассматриваемом примере, что и отражено на матрице А. Справа (и снизу) от матрицы указано полученное распределение строк по блокам.
Используя полученное распределение строк на матрице Яформируется исходное разрезание и для него решается задача распределения столбцов, т. е. задача ТМ. Для нашего примера решение задачи ТМ привело к распределению столбцов М( О1)=(1,3,6,10), М(О2)=(4,7,8,11), М(О3)=(2,5,9,12). Оценка разрезания при данном распределении составила 58/24. Аналогичная методика формирования улучшенного исходного разрезания может быть применена и в отношении строк с последующим решением задачи ТИ. Достигнутое улучшение оценки на 2 единицы вовсе не означает, что с улучшенным исходным разрезанием всегда будет получено разрезание с более высокой оценкой.
Следует отметить, что после получения решения на основе произвольно сформированного исходного разрезания попытки поиска разрезания с более высокой оценкой являются вполне оправданными, т. к. не требуют больших вычислительных затрат. К таким попыткам, напряду с изложенной выше методикой улучшения исходного разрезания как относительно строк так и столбцов, относятся изменения последовательности решения задач ТИ и ТМ, а также изменения последовательности расположения блоков, имеющих разные размерности.
Заключение
1. Расширены возможности матричного алгоритма разрезания графов в направлении разработки более эффективного алгоритма решения этой задачи для двудольных графов. Учёт специфики двудольных графов сделал возможным применение в алгоритме улучшения разрезания графов этого типа методы линейного математического программирования.
2. Введение оценки связности вершин в одном из подмножеств двудольного графа через общие вершины другого подмножества позволило формировать исходное разрезание с более высокой оценкой. Для решения задачи поиска варианта распределения строк или столбцов по блокам исходного разрезания применен матричный алгоритм разрезания графов.
Работа выполнена в рамках государственного задания «Наука».
СПИСОК ЛИТЕРАТУРЫ
1. Зыков А.А. Основы теории графов. - М.: Вузовская книга, 2004. - 644 с.
2. Питерсон Дж. Теория сетей Петри и моделирование систем. Пер. с англ. - М.: Мир, 1984. - 264 с.
3. Погребной В.К. Визуальный уровень представления алгоритмов функционирования распределённой системы реального времени на языке структурного моделирования // Известия Томского политехнического университета. - 2009. - Т. 314. -№ 5. - С. 140-146.
4. Погребной В.К. Матричный алгоритм решения задачи разрезания графов // Известия Томского политехнического университета. - 2007. - Т. 310. - № 5. - С. 91-96.
5. Галкина В.Н. Дискретная математика: комбинаторная оптимизация на графах. - М.: Гелиос АРВ, 2003. - 232 с.
6. Погребной Ан.В., Погребной Д.В. Исследование матричного алгоритма решения задачи разрезания графов // Молодёжь и современные информационные технологии: Труды VIII Всерос. науч-но-практ. конф. молодых ученых. - Томск, 2010. - С. 140-141.
Поступила 27.02.2012 г.
УДК 519.673
АДРЕСУЕМАЯ ЯЧЕЙКА ОДНОРОДНОЙ ВЫЧИСЛИТЕЛЬНОЙ СТРУКТУРЫ ДЛЯ РЕШЕНИЯ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ
А.А. Хамухин
Томский политехнический университет E-mail: aaxtpu@tpu.ru
Предложена функциональная схема адресуемой ячейки однородной вычислительной структуры для решения дифференциальных уравнений в частных производных. Показана возможность ускорения решения за счет снижения длительности цикла загрузки данных в регистры ячеек. Представлены сравнительные результаты моделирования линейки адресуемых и не адресуемых ячеек на примере решения тестовой краевой задачи с постоянными и переменными коэффициентами.
Ключевые слова:
Адресуемая ячейка, однородная вычислительная структура, параллельные вычисления, дифференциальные уравнения в частных производных, постоянные и переменные коэффициенты.
Key words:
Addressable cell, homogeneous computing structure, parallel computation, partial differential equations, independent and dependent coefficients.
Введение
В статьях [1-3] описаны примеры реализации вычислительных устройств для решения дифференциальных уравнений в частных производных на основе одинаковых ячеек однородной вычислительной структуры (ОВС), показаны возможности реконфигурирования ОВС в соответствии с заданными граничными условиями без аппаратных добавлений в схему ячейки, приведены дополнения, необходимые для решения задач с переменными коэффициентами. Основу такой ячейки составляют сумматоры и масштабные умножители, а информация о коэффициентах дифференциальных уравнений хранится в нескольких регистрах каждой ячейки. Разработан ряд схем реализации таких ячеек, на которые получены патенты [4-6].
Главным преимуществом однородной вычислительной структуры является синхронное аппаратное распараллеливание решения дифференциального уравнения, которое позволяет добиться наибольшей производительности на данном классе задач при прочих равных условиях по сравнению с другими типами вычислительных устройств. Вторым немаловажным преимуществом ОВС являются относительно низкие аппаратные затраты в пе-
ресчете на одну операцию по сравнению с универсальным многоядерным микропроцессором, в котором большая часть транзисторов просто простаивает при решении данного класса задач.
В этих статьях также сделано предположение, что реализация ОВС возможна на современных микросхемах типа БМК (известных за рубежом под аббревиатурой ASIC) или ПЛИС (известных за рубежом под аббревиатурой FPGA).
Наиболее известные реализованные проекты в этой области - это платформа RC100 фирмы SGI и суперкомпьютер фирмы Cray. Платформа RC100 содержит 35 модулей, каждый из которых имеет по две ПЛИС Altera Stratix III и 10 блоков локальной памяти. По данным фирмы SGI платформа решает задачи биоинформатики в 900 раз быстрее, чем кластер из 68 узлов на базе универсальных микропроцессоров AMD Opteron [7].
Суперкомпьютер Cray XT5h объединяет в единую систему скалярные процессоры (на основе AMD Opteron) и векторные процессоры на основе ПЛИС. Он компонуется из серверов двух типов: Cray X2 и Cray XR1. Последний состоит из двух узлов, в каждый из которых входит микропроцессор AMD Opteron, связанный с помощью высокоско-