Международная научно-техническая конференция «Информационные системы и технологии» ИСТ-2014 СЕКЦИЯ 5.2 ТЕХНИЧЕСКАЯ КИБЕРНЕТИКА (ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ УПРАВЛЕНИЯ) М.А. ПАНКРАТОВА (аспирант) (Нижегородский государственный университет им. Н.И. Лобачевского) МЕТОД ВЕТВЕЙ И ГРАНИЦ ДЛЯ РЕШЕНИЯ ЗАДАЧИ ОТОБРАЖЕНИЯ ГРАФА В работе рассматривается известная прикладная задача отображения графа. На практике подобные задачи возникают, например, при планировании вычисления параллельной программы на многопроцессорной вычислительной сети. Под параллельной программой понимается исполняемый код, разбитый на некоторое количество веток, каждая из которых характеризуется собственным номером, может выполняться независимо, осуществлять прием данных из других веток и пересылать данные в другие ветки программы. Под вычислительной сетью понимается множество однородных вычислителей (процессоров), связанных друг с другом в неоднородной коммуникационной инфраструктуре. При этом каждая параллельная ветка должна быть назначена точно на один процессор, а каждый процессор должен выполнять точно одну ветку параллельной программы. Часто такие задачи формулируются в терминах теории графов, когда физическая топология вычислительной системы и виртуальная топология параллельной программы представляются с помощью взвешенных графов. В данной работе рассматривается математическая постановка в терминах квадратичной задачи о назначениях. n min p n a b i 1 j 1 ij p (i ) p ( j ) (1) В задаче (1) матрица A ( aij ) nn описывает затраты на межпроцессорные коммуникации, при этом значение a ij показывает латентность при пересылке стандартного пакета данных от i-го процессора к j-му процессору. Матрица A имеет нули на главной диагонали, а за ее пределами только положительные коэффициенты. В общем случае матрица A может не удовлетворять условию симметричности. Другая матрица B (bij ) nn ассоциируется с интенсивностью коммуникаций между ветками параллельной программы. Решением задачи является перестановка p, которая ставит соответствие i-ой части программы процессор p(i). Целью задачи является минимизация суммарных издержек на пересылку данных. В общем случае задача (1) является NP-трудной, чем обусловлен повышенный интерес к приближенным и эвристическим методам для ее решения. Однако стоит отметить определенные успехи в развитии точных методов, особенно в аспекте их адаптации для высокопроизводительных вычислительных систем. В работе предлагается метод ветвей и границ для нахождения оптимального решения рассматриваемой задачи. Данный метод является вариацией полного перебора с отсевом подмножеств допустимых решений, заведомо не содержащих оптимальных решений. Метод основан на обходе дерева, в каждой вершине которого зафиксирована определенная часть перестановки, описывающей решение задачи. Посещая очередную вершину, алгоритм рассчитывает верхнюю и нижнюю оценки, в границах которых находится лучшее решение для данной ветви. На основе этих оценок алгоритм отбрасывает заведомо неперспективные направления ветвления, что сокращает перебор. Перестановка, на которой была получена наименьшая из верхних оценок, будет являться оптимальным решением задачи. Данный метод не может быть применен для задач большой размерности. На практике удается решить методом ветвей и границ задачи размерности не больше 20. В работе предлагается оригинальный метод расчета верхних и нижних оценок на этапах ветвления. Верхние оценки рассчитываются эвристическим алгоритмом, который представляет собой улучшающий генетический алгоритм. Алгоритм генетическим поиском исследует окрестность начального решения, являющегося параметром алгоритма, находит лучшее решение и итерационно повторяет процедуру. Расчет нижних оценок является важной процедурой в методе 305 Международная научно-техническая конференция «Информационные системы и технологии» ИСТ-2014 СЕКЦИЯ 5.2 ТЕХНИЧЕСКАЯ КИБЕРНЕТИКА (ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ УПРАВЛЕНИЯ) ветвей и границ, поскольку от качества их расчета зависит количество отсеянных неперспективных решений задачи, а, следовательно, и время работы алгоритма. В данной работе нижние оценки рассчитываются с помощью решения ряда линейных задач о назначениях. Для ускорения работы была разработана многопоточная версия предлагаемого алгоритма для вычислительных систем с общей памятью. В данном случае каждый поток занимается обходом своего поддерева, обмениваясь информацией о верхних и нижних оценках с другими потоками. На основе предлагаемого точного метода решения поставленной задачи был разработан приближенный алгоритм решения задачи, который обходит не все дерево, а только заданное количество его уровней. В таком случае перестановка, на которой была получена наименьшая верхняя оценка, будет являться приближенным решением задачи, а наименьшая нижняя оценка будет характеризовать качество полученного приближенного решения. Меняя глубину обхода дерева, можно управлять временем работы алгоритма и качеством получаемого решения. Предложенные методы решения поставленной задачи были программно реализованы. Были проведены вычислительные эксперименты на стандартных тестовых примерах для задач размера 12 на персональном компьютере Intel Core2Duo 2,8Ггц/4Гб/Windows7x64/MS.NET Framework 3.5. Время работы метода ветвей и границ составило от 46 минут до 13 часов 23 минут для разных примеров, при этом количество посещенных вершин составило от 7278 до 76426, что говорит о достаточно высоком качестве расчета нижних оценок (общее количество вершин дерева поиска метода ветвей и границ для задач размера 12 составляет 823059744). Многопоточной версии программы на 4 потоках потребовалось от 9 минут до 3 часов 10 минут для решения задач размера 12. Приближенный алгоритм способен решать задачи гораздо большей размерности в зависимости от заданной глубины обхода дерева. E-mail: [email protected] 306