Разработка параллельного алгоритма нахождения оптимального решения транспортной задачи на кластере
Подходы к решению транспортной задачи с помощью параллельных алгоритмов. Экспериментальные данные, полученные при выполнении параллельных алгоритмов нахождения решения транспортной задачи на кластере. Подходы к распараллеливанию методов решения задачи.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 28.05.2017 |
Размер файла | 135,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
12
Размещено на http://www.allbest.ru/
«Разработка параллельного алгоритма нахождения оптимального решения транспортной задачи на кластере»
А.А. Аль-хулайди, Ю.О. Чернышев
Введение
транспортный задача кластер алгоритм
Рассматриваемая задача может найти применение в различных областях: в экономике; в логистическом планировании; в учебном процессе; при разработке баз данных и в программировании.
Это позволяет говорить об актуальности данной задачи. Использование данного алгоритма вместе с параллельным алгоритмом нахождения опорного плана позволяет решать транспортную задачу в многопроцессорной или кластерной среде с большей эффективностью.
Подходы к решению транспортной задачи с помощью параллельных алгоритмов изложены, например, в работе [1]. В работе [2] приведены экспериментальные данные, полученные при выполнении параллельных алгоритмов нахождения оптимального решения транспортной задачи на кластере, однако отсутствует сколько-нибудь подробное описание применявшихся при этом методов. Монография [3] содержит подходы к распараллеливанию методов решения задачи целочисленной оптимизации, которые могут быть применены и при решении транспортной задачи.
В данной статье подробно описан параллельный алгоритм нахождения оптимального решения транспортной задачи, приводится блок-схема и данные о его производительности, полученные экспериментальным путём.
1. Постановка задачи
Транспортная задача является специальным типом задач линейного программирования. Математическая постановка этой задачи имеет вид [4]:
Здесь - объем, - тариф поставки продукции от i-го поставщика к j-му потребителю, - потребности потребителей в продукции, - запасы прдукции у поставщиков.
Видно, что задача (1) является задачей линейного программирования со специальной матрицей. В задаче (1) имеется (m • n) неизвестных Xij и (m + n) уравнений. Решение транспортной задачи называется оптимальным планом перевозок (поставок) продукции.
Метод распределения ресурсов состоит из двух этапов:
1) построение опорного плана;
2) поиск оптимального плана.
Для получения оптимального решения используются различные алгоритмы, такие как венгерский метод; метод потенциалов [5]. Наиболее удобным для распараллеливания является метод потенциалов. Метод потенциалов позволяет, отправляясь от некоторого опорного плана перевозок, построить решение транспортной задачи за конечное число шагов (итераций).
Условные обозначения:
· ui, vj Ї симплексные множители (или потенциалы) для строк и столбцов соответственно (i = 1,2..m, j = 1,2..n);
· ci,j Ї план поставок;
· ki,j Ї коэффициенты для каждой ячейки, которые рассчитываются по формуле ki,j = ui + vj - ci,j;
· minc - переменная, в которой хранится минимальное значение ci,j для всех ячеек, входящих в цикл перерасчёта.
Последовательный алгоритм решения транспортной задачи методом потенциалов для получения оптимального решения выглядит следующим образом.
1. Полагаем vn = 0.
2. Находим ui (i = 1..m) , vj ( j = 1..n-1).
3. Для каждой клетки (i, j) рассчитываем ki,j = ui + vj - ci,j.
4. Если для всех (i, j) в случае ki,j ? 0, то план является оптимальным и метод завершается.
5. Выбираем ячейку (imax, jmax) с наибольшим ki,j = kmax и строим цикл, попутно находя наименьшее minc из значений cij в ячейках, имеющих в цикле чётный номер.
6. Полагаем где l - порядковый номер ячейки в цикле, i, j - координаты ячейки цикла.
7. Переходим к шагу 3.
Примечание. Переменная cell_odd устанавливается в состояние true для ячеек в цикле, находящихся на чётных местах, и в состояние false для ячеек на нечётных местах.
На рис. 1 представлена схема последовательного алгоритма нахождения оптимального решения транспортной задачи методом потенциалов.
Рис1. Схема последовательного алгоритма нахождения оптимального решения транспортной задачи на основе метода потенциалов.
2.Разработка модификации метода потенциалов для работы в параллельной среде
Распараллеливанию в приведённом последовательном алгоритме подлежат шаги 3-4 (расчёт и сравнение k) и шаг 6 (расчёт новой таблицы поставок).
Параллельный алгоритм для нахождения оптимального решения транспортной задачи выглядит следующим образом.
1. Полагаем vn = 0.
2. Находим ui, i = 1..m, и vj, j = 1..n-1.
3. Разделяем множество клеток на части пропорционально количеству процессоров N. Передаём информацию вычислительным узлам.
4. Для каждой клетки (i, j) в группе рассчитываем ki,j = ui + vj - ci,j и находим max ki,j.
5. Получаем данные от вычислительных узлов и выбираем наибольший maxk (для ячейки maxi, maxj) из max ki,j по группам.
6. Если maxk ? 0, то план является оптимальным и метод завершается.
7. Строим цикл из ячейки (maxi, maxj), попутно находя наименьшее minc из значений c в ячейках, имеющие в цикле чётный номер.
8. Разбиваем цикл на части пропорционально количеству узлов N.
Передаём координаты и положение ячеек цикла вычислительным узлам.
9. Для каждой ячейки полагаем где l - порядковый номер ячейки в цикле, i, j - координаты ячейки цикла.
10. Переходим к шагу 3.
На рис. 2а и 2б представлена схема параллельного алгоритма нахождения оптимального решения транспортной задачи методом потенциалов.
Рис 2a. Начало схемы параллельного алгоритма нахождения оптимального решения транспортной задачи на основе метода потенциалов.
Рис 2б. Окончание схемы параллельного алгоритма нахождения оптимального решения транспортной задачи на основе метода потенциалов.
3. Экспериментальная проверка эффективности параллельного алгоритма
Эффективность приведённого параллельного алгоритма проверялась путём выполнения его на кластере следующей конфигурации:
· 4 вычислительных узла (Intel Pentium 4 2,4 ГГц);
· управляющий узел (Intel Pentium 4 2,4 ГГц);
· Узлы объединены между собой сетью Infiniband (пропускная способность 4 Гбит/с).Описанная программа реализована в среде С++. Время выполнения последовательного алгоритма - .
Время выполнения параллельного алгоритма - . Ускорение - У определялось по формуле: У = .Выигрыш - В , В= *100%. Результаты вычислительных экспериментов по исследованию параллельного алгоритма представлены в таблице 1, которую иллюстрирует рис. 3.
Табл. 1. Результаты вычислительных экспериментов исследования последовательного и параллельного алгоритмов
Размерность задачи (m*n) |
Время выполнения последовательного алгоритма, с |
Время выполнения параллельного алгоритма,с |
||||||
1 процессор |
2 процессора |
4 процессора |
||||||
Время, с |
Ускорение |
Время, с |
Ускорение |
Время, с |
Ускорение |
|||
100 |
0,0339 |
1,3835 |
0,0245 |
0,8121 |
0,0417 |
0,1979 |
0,1712 |
|
500 |
0,2021 |
1,8591 |
0,1087 |
1,2123 |
0,1667 |
0,5933 |
0,3406 |
|
1000 |
0,3940 |
2,9931 |
0,1316 |
1,9129 |
0,2059 |
0,9891 |
0,4382 |
|
10000 |
2,8134 |
7,2221 |
0,3895 |
5,6226 |
0,5003 |
1,9392 |
1,4508 |
|
100000 |
5,8119 |
11,0923 |
0,5239 |
6,5578 |
0,8862 |
3,9145 |
1,4847 |
Согласно полученным результатам, ускорение при небольших размерностях задачи значительно меньше 0,5. Это означает, что алгоритм неэффективно работает при небольших размерностях задачи. Однако для больших размерностей получается значительный выигрыш (до 150%). Таким образом, при увеличении размерности матриц соотношение операций пересылок и полезных операций существенно уменьшается. На рис. 3 представлены графически зависимости ускорения параллельного алгоритма от числа используемых процессоров при различной размерности задачи.
Рис. 3. Зависимость ускорения параллельного алгоритма нахожденья оптимального решения, транспортной задачи от числа используемых процессоров при различной размерности задач
На рис. 4 представлены графически зависимости ускорения параллельного алгоритма от размерности задач.
Рис. 4. Зависимость ускорения параллельного алгоритма нахожденья оптимального решения, транспортной задачи от размерности задач
Заключение
Был разработан параллельный алгоритм для нахождения оптимального решения транспортной задачи, который возможно использовать для работы на кластерной локальной сети, либо на многопроцессорной системе. Проведенное тестирование, позволяет сделать вывод, о том что данный алгоритм возможно использовать для эффективного нахождения оптимального решения транспортной задачи.
Данная работа выполнена при поддержке РФФИ (грант № 10-01-00481-а), г/б № 1.21.11.
Литература
1.Барский А. Б. Параллельное программирование. - СПб.: Бином, 2007.
2.Северин А. А. Исследование эффективности реализации численных методов на кластерах персональных ЭВМ. - Минск, 2005.
3.Хохлюк В. И. Параллельные алгоритмы целочисленной оптимизации. - 2007.
4.Каныгин Г.И., Месхи Б.Ч., Соболь Б.В. Методы оптимизации / Каныгин Г.И., Месхи Б.Ч., Соболь Б.В. -- М.: Издательство: Феникс, 2009 г. -- 384 с.
5.Рыков А.С. Системный анализ: модели и методы принятия решений и поисковой оптимизации. -- М.: МИСиС, 119049.
Размещено на Allbest.ru
Подобные документы
Описание алгоритма решения транспортной задачи по планированию перевозки зерна. Ход решения задачи вручную, в программе TORA методом наименьшего элемента, с помощью MS Excel. Разработка программы для решения задачи в общем виде средствами Delphi.
курсовая работа [2,5 M], добавлен 22.11.2012Особенности решения транспортной задачи распределительным методом и анализ результатов. Построение математической модели, алгоритма. Создание программы для решения транспортной задачи распределительным методом в программной среде Borland Delphi 7.
курсовая работа [1000,7 K], добавлен 23.06.2012Создание и реализация алгоритма решения транспортной задачи методом наименьших стоимостей. Схема алгоритма основной программы. Основные шаги алгоритма решения транспортной задачи. Инструкция по эксплуатации программы и обзор результатов ее выполнения.
курсовая работа [2,0 M], добавлен 12.02.2013Сущность и назначение основных алгоритмов оптимизации. Линейное программирование. Постановка и аналитический метод решения параметрической транспортной задачи, математическая модель. Метод решения задачи об оптимальных перевозках средствами MS Excel.
курсовая работа [465,6 K], добавлен 24.04.2009Определение оптимального плана перевозок однородного груза из k-пунктов отправления в m-пункты назначения. Описание алгоритма нахождения потока минимальной стоимости. Решение транспортной задачи вручную и в среде MathCad, сравнение полученных результатов.
курсовая работа [773,6 K], добавлен 09.12.2010Общее понятие и характеристика задачи линейного программирования. Решение транспортной задачи с помощью программы MS Excel. Рекомендации по решению задач оптимизации с помощью надстройки "Поиск решения". Двойственная задача линейного программирования.
дипломная работа [2,4 M], добавлен 20.11.2010Сущность и постановка транспортной задачи для n переменных, их виды, применение и пример решения в MS Excel. Управляющие структуры ветвления Maple языка (if предложение). Решение транспортной задачи в векторных координатах для двух и трёх матриц.
дипломная работа [109,3 K], добавлен 12.01.2011Транспортная задача как одна из самых распространенных специальных задач линейного программирования: понятие, основное назначение. Формальное описание метода минимального элемента. Характеристика этапов разработки алгоритма решения поставленной задачи.
курсовая работа [713,3 K], добавлен 19.10.2012Основные этапы решения транспортной задачи, использование метода потенциалов. Алгоритм решения методом аппроксимации Фогеля. Процедура построения цикла. Планирование перевозок из конечного числа пунктов отправления в конечное число пунктов назначения.
контрольная работа [32,6 K], добавлен 26.04.2011Программа для решения транспортной задачи. Метод потенциалов, его математический смысл и порядок действий по его применению. Математические методы решения транспортных задач. Вычисление стоимости перевозок, расхода топлива, общей прибыли и окупаемости.
курсовая работа [33,7 K], добавлен 20.11.2008