10. Определение температуры электронного газа в ртутной плазме оптическим методом // Автоматизированный лабораторный практикум с удаленным доступом. [Электронный ресурс]. Режим доступа: http://lud.bmstu.ru/indus/demo/scripts/html/perf/porad.htm/ (дата обращения: 27.04.2016).
11. Koshelev K. N., Krivtsun G. N., Gayasov P. S. Experimental study of laser produced gadolinium plasma emitting at 6.7 nm: International workshop on EUV, 2012. October 13-15. Vol. 107 (45). P. 16028-16033. doi:10.1073/pnas.0903864106.
Application of branch and bound method for solving the distribution of new consumers for the electricity stations problem Kuzmina I.1, Schetinin V.2 Применение метода ветвей и границ для решения задачи распределения новых потребителей по подстанциям сети электроснабжения1 Кузьмина И. А.1, Щетинин В. Н.2
'Кузьмина Инна Анатольевна / Kuzmina Inna — ассистент; 2Щетинин Виталий Николаевич /Schetinin Vitaliy — аспирант, кафедра системы автоматизированного проектирования, факультет робототехники и комплексной автоматизации, Московский государственный технический университет им. Н. Э. Баумана, г. Москва
Аннотация: в статье рассмотрена задача распределения новых потребителей по подстанциям сети электроснабжения. В работе дана математическая постановка задачи, предложен алгоритм ее решения, реализующий метод ветвей и границ. Описана программная реализация разработанного алгоритма с применением концепции параллельного программирования.
Abstract: the article describes the distribution of new consumers for the electricity stations problem solving. The mathematical statement of problem and decision algorithm based on the branch and bound method are given. The algorithm software implementation with parallel programming concept using described.
Ключевые слова: метод ветвей и границ, параллельное программирование, городские распределительные сети энергоснабжения.
Keywords: the branch and bound method, parallel programming, urban power distribution network.
Введение
Городская сеть энергоснабжения представляет собой совокупность объединенных кабельными линиями (КЛ) подстанций (трансформаторных (ТП) и распределительных (РП)), к которым подключены все объекты городской инфраструктуры. Строительство новых объектов, увеличение мощности существующих потребителей и пр. требует расширения (развития) энергосети. При этом важной задачей является определение оптимального варианта такого развития, так как это этого зависят не только затраты электросетевой компании на проведение работ, но и надежность энергоснабжения. Эта задача включает в себя множество аспектов -определение мест строительства новых подстанций; выбор оптимальных сечений КЛ; выбор подстанции, к которой будет произведено подключение нового потребителя и пр. В настоящей работе рассматривается решение задачи распределения новых потребителей по подстанциям сети электроснабжения. В работе дана постановка задачи в виде дискретной задачи структурного синтеза, приведен разработанный авторами алгоритм ее решения с применением метода ветвей и границ.
1. Математическая постановка задачи оптимизации
Исходными данными для задачи являются два множества - ТП (Т) и потребителей (Р).
Также заданными являются следующие параметры:
1 Работа выполнена при поддержке гранта РФФИ 16-37-00353.
26
(^00 <^оЛ
: : I - матрица расстояний между объектами множеств Р и Т, где сС ;у -
а10 ••• &ц)
расстояние между г-м потребителем (р ; ЕР ) и /-ой ТП ( £у е Г).
Для каждой ТП:
РуТП - максимальная суммарная мощность потребителей, которые могут быть подключены к /-й ТП;
Пу - максимальное количество потребителей, которое может быть подключено к /-й подстанции.
Для каждого потребителя:
Р; - мощность, требуемая г-му потребителю;
Ставится задача определения такого варианта подключения потребителей множества Р к ТП множества Т, чтобы суммарная длина КЛ была минимальной
гшп(Ф);
Ф=^О ( I (1)
У
Здесь с ;у = 1, если р ; потребитель подключен к £у ТП; с ;у =0 в противном случае.
На решение задачи наложен ряд ограничений:
1) Свободная мощность каждой ТП должна быть больше, чем суммарная мощность подключаемых к ней потребителей
у, (2)
I
где с у = 1 , если р ; потребитель подключен к £у ТП; с у =0 в противном случае.
2) Для каждой ТП число подключаемых к ней потребителей не должно превышать максимального допустимого значения
Пу > ^ (3)
ь
где , если потребитель подключен к ТП; в противном случае.
3) Расстояние между ТП и подключаемым к ней потребителем не должно превышать максимального допустимого значения .
сС;у < О1 ™ (4)
2. Решение задачи оптимизации с помощью метода ветвей и границ
Поставленная задача является задачей комбинаторной оптимизации. В общем случае решение таких задач может быть выполнено простым перебором всех возможных вариантов ее решения. Однако такой подход к решению задачи распределения новых потребителей по подстанциям сети электроснабжения не представляется возможным ввиду ее большой размерности, а также факториального роста вычислительной сложности с увеличением размерности задачи. Число ТП реальной энергосети может достигать десятки тысяч, число подключаемых потребителей - нескольких тысяч. Очевидно, что решение задачи требует разработки эффективных алгоритмов решения.
Важной особенностью задачи является то, что подавляющее большинство решений, которые возможно получить при полном переборе, не удовлетворяют наложенным на задачу ограничениям.
Одним из распространенных методов решения задач данного типа является метод ветвей и границ (МВГ) [1]. По существу, это точный оптимизационный метод, который является вариацией полного перебора с отсевом подмножеств решений, заведомо не содержащих оптимальных. Таким образом, построенный на его основе алгоритм, позволит отсекать целые классы недопустимых решений уже на первых шагах работы. На основании вышеизложенного, сделано предположение о целесообразности применения метода ветвей и границ для решения задачи распределения новых потребителей по подстанциям сети электроснабжения.
Алгоритм решения задачи распределения новых потребителей по подстанциям сети электроснабжения, основанный на применении метода ветвей и границ, состоит из следующих шагов:
1) Построить разбиение множества решений на подмножества.
2) Проверить удовлетворение решений ограничений задачи.
3) Среди множества вариантов, удовлетворяющих ограничениям, выбрать решение, обеспечивающее минимум критерия оптимальности.
2.1. Алгоритм разбиения множества решений
Первым шагом реализации МВГ является построение алгоритма, разбивающего все множество решений на подмножества. Разбиение выполняется до тех пор, пока в подмножестве не останется только один вариант решения.
Считаем, что каждой подстанции и каждом потребителю соответствует уникальный номер. Каждую подстанцию представим в виде упорядоченного списка номеров подключаемых к ней потребителей. Множество подстанций представим в виде упорядоченного вектора списков.
Запись вида [[1, 2, 3], [4, 5], []] означает, что потребители 1, 2 и 3 подключены к подстанции 1, потребители 4 и 5 - к подстанции 2 и ни один потребитель не подключен к подстанции 3. Можно также сказать, что запись представляет собой вариант разбиения множества из пяти элементов на три блока.
Для построения множества всех возможных решений задачи, необходимо реализовать процедуру разбиения множества потребителей на блоки - подмножества. В работе [2] описан алгоритм для неупорядоченного разбиения множества на все возможные подмножества. В данной работе этот алгоритм был модифицирован для учета специфики решаемой задачи. Разработанный алгоритм предполагает упорядоченное разбиение множества на заданное количество блоков, что позволяет учитывать к какой подстанции подключен тот или иной набор потребителей. Возможность отсутствия подключения потребителей к какой-либо подстанции учтена в виде пустых блоков.
Алгоритм имеет рекуррентную форму и сводит решение задачи к построению дерева решений. Каждый уровень дерева отвечает упорядоченному разбиению множества из т элементов на N блоков, где т -номер уровня дерева, N - число ТП. Для построения т+1 уровня дерева нужно добавить элемент т+1 во все варианты разбиения всеми возможными способами.
Пример построения разбиения множества из трёх элементов на два блока представлен на рисунке 1.
Рис. 1. Пример построения упорядоченного разбиения множества из трёх элементов на два блока
Корневая вершина дерева соответствует разбиению пустого множества элементов на два блока; второй уровень - разбиению множества из одного элемента на 2 блока; третий уровень -разбиению множества из трех элементов на 3 блока. Последний уровень дерева является всем множеством решений. Узел на этом уровне дерева называется листом.
Из рисунка 1 видно, что при построении 1-го уровня дерева, выполняется попытка подключить потребителя 1 всеми возможными способами. При построении 2-го уровня - 2-го потребителя, и так далее.
2.2. Отсекающее правило метода ветвей и границ
Характеристиками /-го блока вершины т-го уровня дерева будут являться:
1) Ру™ - суммарная мощность всех потребителей, подключенных к/—й подстанции;
2) л™ - количество потребителей, подключенных к/—й подстанции;
3) О™ - максимальное расстояние между потребителями и/-й подстанцией.
Эти характеристики должны удовлетворять ограничениям:
О™ < О11т (5)
л™ > Лу (6)
Р™ < Р/п (7)
Если условия (5), (6) и (7) не выполнены, то при построении т+1 уровня, вершина, содержащая блок, не учитывается.
Описанную выше операцию называют отсечением. В результате применения отсечений количество вершин дерева сильно сокращается.
Большинство отсечений на первых уровнях происходит по условию (5), таким образом, оно проверяется первым. Следующим проверяется условие (6), затем (7).
Отметим, что, существенное сокращение числа вычислений можно достичь, если в узле дерева сохранять метрики. В этом случае, расчеты метрик блоком, расположенных на m+1 уровне можно производить:
Если D/1 < d„;, то D,m + 1 = d
nf+1 = nf + 1 , (8)
pm+^prn + рп
где dny - расстояние от нового подключаемого потребителя до j-ой ТП, Рп - мощность нового потребителя.
В данной задаче на каждом узле дерева можно ввести только оценку снизу для критерия оптимальности на всех дочерних узлах. Для отсечения подмножеств решения по данному критерию также необходима оценка сверху. Поэтому отсечение по данному признаку не производится.
3. Программная реализация разработанного алгоритма
Алгоритм, реализующий МВГ для решения задачи распределения новых потребителей по подстанциям сети электроснабжения включает в себя следующие шаги:
1) Индексация всех потребителей и ТП.
2) Построения стартовой вершины. Количество блоков в стартовой вершине равно количеству ТП.
3) Построения дерева, порождающего решения с помощью алгоритма обхода в глубину [3]. В процесс обхода выполняется отсечение вершин дерева, не удовлетворяющих условиям.
4) Вычисление критерия оптимальности (1) в каждом узле последнего уровня дерева.
5) Выбор узла, с минимальным значением критерия (1).
Отличительной способностью метода ветвей и границ является простата процедуры распараллеливания. Программная реализация разработанного алгоритма выполнена с применением концепции параллельного программирования на языке Python [4] c использованием реализации технологии MPI-mpi4py [5].
Для обхода дерева выбран алгоритм обхода в глубину [3] так как известно, что для решаемой задачи глубина дерева меньше, чем его максимальная ширина. Такой выбор связан с экономией памяти вычислительной машины.
Выбрана классическая схема распараллеливания master-slaves:
1) Процесс master выполняет пункты 1 и 2 схемы алгоритма;
2) Процесс master выполняет обход в ширину дерева до построения уровня, на котором количество узлов будет больше, чем количество процессов slaves.
3) Процессы slaves выполняют пункты 3-5 алгоритма на узлах построенных процессом master.
4) Процессы slaves пересылают процессу master результат минимизации на своей ветке дерева.
5) После завершения обработки узла дерева, процесс slave переходит к обработке следующего узла дерева, построенного процессом master.
6) После построения всего дерева, процесс master выбирает минимальный из полученных результатов.
Примеры, демонстрирующие идею распараллеливания с 2 и 3 процессами slave, представлены на рисунках 2а) и 2б) соответственно.
б) три процесса slave Рис. 2. Идея распараллеливания алгоритма
В примере, показанном на рисунке 2б), сделано предположение, что процесс slave 1 первым закончит работу со своей веткой.
Процедура балансировки нагрузки в работе не производилась.
Заключение
В работе рассмотрено решение задачи распределения новых потребителей по подстанциям сети электроснабжения. Предложен алгоритм решения задачи, реализующий метод ветвей и границ. Разработана параллельная программная реализация алгоритма. Реализованный алгоритм был протестирован для решения задачи с размерностью, совпадающей с энергосетью района мегаполиса (около 1000 ТП, около 2000 новых потребителей). Алгоритм показал возможность и высокую эффективность применения для решения поставленной задачи.
Литература
1. Land A. H., Doig A. G. An autamatic method of solving discrete programming problems / Econometrica. Vol. 28, 1960. P. 497-520.
2. Липский В. Комбинаторика для программистов. М.: Мир, 1988. 213 с.
3. Новиков Ф. А. Дискретная математика для программистов. 3-е издание. СПб.: Питер, 2008. 384 с.
4. ОленевН. Н. Основы параллельного программирования в системе MPI. М.: ВЦ РАН, 2005. 80 с.
5. Dalcin L, PazR., StortiM. MPI for Python / Journal of Parallel and Distributed Computing. № 65 (9), 2005. P. 1108-1115.