№ 3 (45) 2013
А. Б. Борисенко, канд. техн. наук, доцент Тамбовского государственного технического университета С. В. Карпушкин, докт. техн. наук, профессор Тамбовского государственного технического университета
Параллельный алгоритм оптимального выбора аппаратурного оформления многоассортиментных производств
Задача организации многоассортиментных химических производств, которая относится к классу задач частично-целочисленного нелинейного программирования, пока решается только эвристическими методами. В связи с этим появление методик строгого ее решения представляет несомненный интерес.
введение
Выбор аппаратурного оформления (АО) химико-технологических систем (ХТС) — одна из основных задач, возникающих как при проектировании новых [1], так и при модернизации существующих [2] многоассортиментных химических производств (МХП). К особенностям таких производств можно отнести незначительные объемы производства, высокие цены на производимые продукты, широкий ассортимент выпускаемой продукции, возможность быстрого перехода с выпуска одного продукта на другой (существенная гибкость), большое число технологических стадий производства, функционирование оборудования в периодическом или полунепрерывном режиме. Примерами таких производств являются производства химических реактивов, фармацевтических препаратов, красителей и полупродуктов [3].
Решением задачи организации МХП является вариант АО ХТС — число основных аппаратов каждой стадии системы и определяющий размер (рабочий объем или площадь рабочей поверхности) каждого аппарата, а также параметры режима функционирования (размеры партий продуктов и периоды их выпуска), обеспечивающие заданную производительность системы по продуктам. Определяющий размер обыч-
но выбирается из множества стандартных значений. Требуется найти оптимальную комбинацию числа и этих размеров аппаратов стадий ХТС из множества возможных вариантов и параметры режима функционирования системы заданной производительности, при этом критерием оптимальности могут служить, например, суммарные капитальные затраты на оборудование [1, 4, 5]. Результаты решения этой задачи во многом определяют качество проектных решений по компоновке оборудования и календарному планированию выпуска продукции.
Рассматриваемая задача относится к классу задач частично-целочисленного нелинейного программирования (Mixed Integer Nonlinear Programming — MINLP) [7, 8]. В литературе предложены различные подходы к решению данной задачи, например, методы Монте-Карло, генетические алгоритмы, эвристические методы, сведение исходной задачи к задаче нелинейного либо линейного программирования, которые позволяют получить лишь субоптимальные решения [7-11]. До настоящего времени не предложена общепризнанная методика решения этой проблемы.
Оуществующие методы решения задачи
Для каждого работоспособного варианта АО ХТС параметры режима функционирова-
№ 3 (45) 2013
ния системы определяются однозначно. Таким образом, задачу поиска оптимального варианта АО ХТС можно рассматривать как задачу дискретной оптимизации. Применение полного перебора вариантов для получения глобального оптимального решения затруднительно из-за большой размерности задачи. Например, в работе [10] представлена ХТС, состоящая из 16 аппаратурных стадий. На каждой стадии может быть установлено 5-12 типоразмеров стандартного оборудования. Если допустить, что на каждой стадии может быть установлен единственный аппарат, то полное количество вариантов перебора составит 516-1216 (что примерно равно 1011-1017).
Одним из популярных методов, используемых для решения подобных оптимизационных задач в различных областях наряду с такими, как комбинаторная оптимизация, искусственный интеллект и т. д., является метод ветвей и границ. В его основе лежит идея последовательного разбиения множества допустимых решений на подмножества [13]. Затем определяется нижняя оценка для целевой функции на каждом подмножестве. Если она не меньше наилучшего из найденных решений, то подмножество отбрасывается и т. д., пока не будет получено одно конкретное решение (в предположении, что критерием оптимальности является минимум целевой функции).
Подобный подход для решения задачи выбора АО ХТС предлагался в работе [14], в которой авторы использовали упрощенную математическую модель функционирования ХТС и эвристический подход для вычисления оценочной функции и рассматривали в качестве тестовых примеров задачи небольшой размерности. Вычислительные возможности на момент написания работы (1975 г.) были весьма ограничены.
В работе [6] представлен основанный на схеме ветвей и границ последовательный алгоритм оптимального выбора аппаратурного оформления химико-технологических систем. Авторами было проведено исследование быстродействия отдельных
£
фрагментов алгоритма, на основании кото- 5 рого осуществлена его оптимизация. Эксперименты проводились на компьютере ¿g следующей конфигурации: процессор Intel oö Pentium 4 с тактовой частотой 3000 МГц, ^ объем оперативной памяти 2048 Мб, опе- | рационная система Scientific Linux 5.3. Для компиляции программы использовался ком- i§ пилятор GCC 4.1.2. Для тестового примера (ХТС, состоящая из 16 стадий, производятся три продукта, для каждой стадии имеется пять типоразмеров стандартного оборудования) время расчета составило около 46 ч.
Таким образом, несмотря на проведенную оптимизацию последовательного алгоритма и на существенно возросшие за более чем 35 лет по сравнению с [14] возможности вычислительной техники, время выполнения программы для решения задачи сравнительно небольшой размерности остается значительным.
В настоящее время одним из наиболее перспективных способов повышения производительности алгоритмов является их распараллеливание [15], а также применение высокопроизводительных вычислительных систем.
Применение параллельных модификаций метода ветвей и границ при решении различных задач широко представлено в литературе. В работе [16] приводится описание библиотеки BNB-Solver, позволяющей разрабатывать последовательные и параллельные приложения, основанные на методе ветвей и границ. Библиотека была использована при создании программ, предназначенных для решения задач о ранце с одним и несколькими ограничениями и задачи коммивояжера.
Решение задачи о ранце с одним ограничением с использованием параллельной реализации комбинированного алгоритма метода ветвей и границ рассматривается в работе [17], где предлагается подход, в котором комбинируется параллельная реализация метода ветвей и границ и эвристического поиска.
№ 3 (45) 2013
В работе [18] предлагается общий подход к использованию парадигмы мастер-работник как во вновь разрабатываемых, так и в существующих моделях программных компонентов (Software Component Models). Приводятся результаты вычислительных экспериментов на синтетических тестах с использованием программы, реализующей предлагаемый подход.
Использование распределенных вычислительных систем для решения задачи размещения стандартных элементов (Standard Cell Placement Problem) представлено в [19]. Авторы решают задачу с использованием модели смешанного целочисленного программирования и параллельного метода вет-| вей с отсечением (Branch-and-Cut Method).
В работе [20] представлен параллель-§ ный алгоритм перечисления комбинаций хи-| мических элементов (Chemical Compound
I Inference), что является основной процеду-£ рой химио- и биоинформатики. Эту проце-§ дуру используют, например, для определена ния структуры, синтеза новых молекул и для | решения других задач.
§ В настоящей статье предлагается парал-| лельный алгоритм решения задачи выбора
II АО ХТС МХП, основанный на методе ветвей ■S- и границ [12], и исследуются возможности ¡2 его применения для поиска оптимального
решения.
t
g Постановка задачи
<0 <о
& ХТС МХП представляет собой совокупна ность аппаратурных стадий, оснащенных g реакторами, емкостями, фильтрами, сушил-5 ками и другим технологическим оборудова-! нием, которые предназначены для реализа-| ции технологических стадий производства 5 фиксированного ассортимента продуктов. ^ При допущении, что число аппаратов на ка-| ждой аппаратурной стадии ХТС фиксиро->5 вано, задача может быть сформулирована =| следующим образом. | ХТС представляет собой последователь-<| ность I аппаратурных стадий. Каждая i-я ста-¿2 дия системы может быть оборудована ос-
новным аппаратом, выбранным из некоторого конечного множества X, количество элементов которого равно J¡. Множество X-! представляет собой все возможные варианты определяющих размеров аппаратов стадии /: Х1 = {хи},/ = 1,/,/ = 1,J¡, где хи — определяющий размер (рабочий объем, площадь рабочей поверхности) /-го аппарата, которым может быть оборудована /'-я стадия ХТС. _
Каждый вариант АО ХТС Ое ,е = 1,Е, где Е = , представляет собой упорядоченную совокупность определяющих размеров аппаратов, выбранных из соответствующих множеств. Например, существует ХТС, состоящая из трех стадий (/ = 3). Первая стадия системы может быть оборудована аппаратом, определяющий размер которого выбирается из двух вариантов, т. е. ^ = 2, Х1 = {х11,х12}, вторая стадия — из трех вариантов, т. е. J2 = 3, Х2 = {х21,х22,х23}, и третья — из двух вариантов, т. е. J3 = 3, Х3 = {х31,х32}. Общее количество всех возможных вариантов АО ХТС Е = J1 ■ J2 ■ J3 = 2 • 3 • 2 = 12.
Порядок переработки партий продуктов основными аппаратами стадий ХТС фиксирован (заранее определен при разработке структуры ее материальных потоков),
поэтому, например, варианты {х11, х21,х32}, {х12,х21,х31} могут быть допустимыми, а варианты {х31,х21,х12}, {х22,х31,х11} — явно недопустимы.
Для каждого работоспособного варианта АО ХТС должны выполняться условия совместного функционирования оборудования различных ее стадий в(Ое) = 0 (ограничение на работоспособность ХТС).
Вариант АО ХТС считается работоспособным, если аппараты всех ее аппаратурных стадий без исключения способны пере-
№ 3 (45) 2013
работать объем партии выпускаемого продукта с учетом максимальных и минимальных степеней заполнения аппаратов.
Кроме того, работоспособный вариант АО ХТС должен обеспечивать выпуск продукции заданного ассортимента и объема за заданный промежуток времени, т. е. Т(Ое) < Ттах (ограничение на длительность функционирования ХТС), где Ттах — заданное максимальное время выпуска продукции.
Таким образом, задачу выбора аппаратурного оформления химико-технологической системы можно сформулировать следующим образом: необходимо найти такой
вариант Ое еОе,е = 1,Е, АО ХТС, при котором капитальные затраты Cost(Qe) (сумма стоимостей основных аппаратов стадий ХТС) минимальны и выполняются ограничения на работоспособность и длительность функционирования ХТС:
ое = агдтах Cost(Оe), е = 1,Е (1)
"е = {{,Хгк.....х1:11 I у1 = Ц,1 = 1^},е = 1Е (2)
Хи е X,, I = V,у = Ц (3)
S(Qe) = 0,е = 1,Е
Т(Ое ) < Тпах,е = Ц .
(4)
(5)
Подробно математическая модель функционирования ХТС, включающая, в том числе, выражения для проверки ограничений, вычисления критерия оптимизации и т. д., представлена в [21].
Последовательный алгоритм
Все множество вариантов АО ХТС, состоящей из I стадий, может быть представлено в виде дерева, состоящего из I ярусов (рис. 1). Каждый ярус дерева соответствует стадии ХТС. Каждое ребро дерева сопоставляется одному выбранному элементу множества X, = {хи },, = 1,1, у = 1, Ц. Например, ребра, исходящие из корневой вершины (нулевой ярус), соответствуют элементам множества Х1.
Каждый узел п, к яруса Nj = {. 1, п, ......п,к},
I = 1,I, к = 1,К1 , К1 = П¡=1Ц, соответствует фрагменту ХТС, состоящего из стадий 1 - I (из I начальных стадий). Каждый полный
I 1
I
I
на
Рис. 1. Обход в глубину дерева вариантов
59
-ч ПРИКЛАДНАЯ ИНФОРМАТИКА
№ 3 (45) 2013 ' -
путь от корня дерева к одному из его листьев (конечному узлу) представляет собой вариант АО ХТС.
Перебор возможных вариантов АО ХТС осуществляется с использованием обхода дерева в глубину [22, 23].
На каждом ярусе дерева происходит перебор определяющих размеров аппаратов, доступных для оборудования этой стадии. Выбранный размер добавляется к начальному фрагменту АО ХТС, полученному на предыдущих ярусах дерева. Процесс продолжается рекурсивно для всех работоспособных начальных фрагментов АО системы. Таким образом, на последнем ярусе дерева получается полный работоспособный вариант АО ХТС, рекурсивный процесс останавливается и полученный вариант сравнивается с текущим оптимальным. Если получен вариант с меньшим значением критерия, то он заменяет текущее оптимальное решение.
Полный обход дерева вариантов (фиксация на каждой стадии ХТС размера аппарата выбранного из соответствующего данной стадии ряда стандартных размеров и формирование полного варианта АО ХТС) и дальнейшая проверка ограниче-
ний (4) и (5) приведет к значительным вычислительным затратам. Для сокращения числа перебираемых вариантов используется алгоритм, основанный на методе ветвей и границ, псевдокод которого представлен в листинге 1 (имена большинства переменных соответствуют именам, используемым в постановке задачи).
Обход дерева вариантов начинается с вызова процедуры EnumerateVariants () для нулевого яруса (строка 1). Эта процедура вызывается рекурсивно вплоть до яруса I - 1 (строка 4). Затем текущий оптимальный вариант ХТС сохраняется в массиве Wopt с числом элементов I, каждый из которых хранит выбранный определяющий размер аппарата для каждой стадии. Рабочий вариант ХТС хранится в аналогичном массиве W.
Для сокращения вариантов перебора в оригинальном варианте алгоритма применялась следующая схема. На каждом ярусе i дерева проверяется ограничение (4) (процедура Parts (), строка 9) условия совместного функционирования оборудования ХТС, но не для всей ХТС целиком, а только для ее начального фрагмента, состоящего из уже пройденных вышележа-
! S Л
I
&
S3 <0
I I
I
0
e
§
&
1
I
<0
t
e
0
1
I
t= о
i
i iS
Листинг 1
1 FindSolution ( { EnumerateVariants (0); }
2 /* рекурсивный обход дерева */
3 EnumerateVariants (i) {
4 if (i < I) {
5 for (j = 1; j <= J[i]; j++) {
6 /* создание начального фрагмента ХТС (стадии 1 - i) * /
7 W[i] = X[i, j];
8 /* проверка работоспособности и стоимости начального фрагмента ХТС */
9 if (PartS(W) == 0 && PartCost (W, i) < minCost ) {
10 /* рекурсивный поиск */
11 EnumerateVariants (i + 1); } } }
12 else { /* достигнут конечный ярус дерева */
13 /* проверка критерия оптимизации */
14 if (Cost (W) < minCost) {
15 /*проверка ограничения (5) на длительность функц-ния ХТС*/
16 if (T(W) <= Tmax ) {
17 /* сохранение нового оптимального решения */
18 Wopt = W;
19 minCost = Cost(Wopt ); } } }
20 }
60 J
№ 3 (45) 2013
щих ярусов и текущего (фрагмент ХТС, состоящий из стадий 1 - i ). Если часть схемы уже неработоспособна, то нет смысла перебирать аппараты на нижележащих ярусах. Кроме того, сравнивается стоимость начального фрагмента АО ХТС (процедура PartCost (), строка 9) со стоимостью текущего оптимального варианта АО ХТС minCost. В результате количество вариантов перебора будет сокращено, причем тем сильнее, чем на более высоких ярусах дерева будет найдено такое несоответствие.
Переход на следующий уровень рекурсии (вызов процедуры EnumerateVariants () на уровне i+1, строка 11) происходит лишь в том случае, если начальный фрагмент ХТС, состоящий из стадий 1 -i, работоспособен, иначе происходит возврат на предыдущий ярус дерева. Таким образом, переход на следующий уровень рекурсии (вызов процедуры EnumerateVariants () для следующего уровня i + 1, строка 11) осуществляется лишь в том случае, если начальный фрагмент ХТС, состоящий из стадий l - i, во-первых, работоспособен, и, во-вторых, его стоимость не превышает стоимости наилучшего на текущий момент варианта АО ХТС. В противном случае происходит возврат на предыдущий ярус дерева.
Если достигнут конечный ярус дерева (i==i, строка 12), т. е. рассматриваемый вариант АО ХТС работоспособен, то его стоимость (результат выполнения процедуры Cost () ) сравнивается со стоимостью текущего наилучшего варианта АО ХТС minCost (строка 14). Если найдено лучшее решение, проверяется ограничение (5) на длительность функционирования ХТС (процедура т (), строка 16). Если ограничение (5) выполняется, то найден новый оптимальный вариант АО ХТС, и он заменяет текущее оптимальное решение Wopt (строка 18), а его стоимость сохраняется в переменной minCost (строка 19).
Начальным значением переменной minCost служит сумма максимальных стоимостей аппаратов каждой стадии.
Параллельный вариант алгоритма I
!
Древовидная организация пространства ¡g поиска в методе ветвей и границ обеспечи- оо вает хорошие предпосылки для распаралле- ^ ливания алгоритма, так как различные ветви | дерева могут обрабатываться одновременно [25]. Параллельная формулировка метода ветвей и границ представлена в [24]. Основная сложность распараллеливания мето- А да ветвей и границ заключается в том, что структура дерева поиска заранее не известна: невозможно предсказать, где произойдет выполнение или невыполнение условия перехода на более глубокие ярусы дерева. Структура дерева формируется динамически в процессе работы алгоритма.
Существующие методы параллельного обхода дерева поиска в глубину можно классифицировать по способам разбиения дерева на поддеревья (статический подход, динамический подход) и распределения последних между процессами [26]. Статический подход к разбиению дерева может использоваться только для деревьев со строго определенной структурой, что неприемлемо для метода ветвей и границ. Высокую эффективность в условиях нерегулярности и непредсказуемости структуры дерева может обеспечить динамическое разбиение. В данной статье параллельная реализация предлагаемого алгоритма основана на использовании парадигмы мастер-работник (Master-Worker Paradigm, Master-Slave Paradigm) и метода назначаемых поддеревьев [27].
К основным особенностям парадигмы мастер-работник можно отнести следующие:
• управляющий процесс (Master) генерирует задачи и управляет их равномерным распределением между рабочими процессами (Worker);
• каждый рабочий процесс после решения полученной задачи возвращает результаты управляющему процессу и запрашивает новую задачу;
• рабочие процессы не обмениваются данными между собой — только с управляющим процессом;
№ 3 (45) 2013
• после получения результатов решения задачи управляющий процесс динамически генерирует новую задачу для освободившегося рабочего процесса, или, если задач больше нет, посылает сигнал на завершение работы.
Тексты алгоритмов для рабочего и управляющего процессов представлены в листингах 2 и 3, соответственно.
Управляющий процесс
Управляющий процесс с помощью рекурсивной процедуры MasterEnumerateVariants () осуще-§ ствляет последовательный обход дерева Ц в глубину только до некоторого яруса G | (granularity — гранулярность) 1 < G < I, при & этом формируются начальные фрагменты
Л АО ХТС W[/],/ = 1G (строки 26-33). I Параметр гранулярности G используется I для изменения степени параллелизма: подде-§ ревья ниже данного уровня не разделяются <э на параллельные задачи, а обрабатываются | последовательно. Значение параметра долж-§ но быть таким, чтобы количество образую-I щихся подзадач было как минимум не меньше ^ числа используемых процессорных элемен-■Ц тов. На нижнем уровне рекурсии управляю-g щий процесс ожидает сообщений от рабочего го процесса (строка 37), при этом сообщения S5 могут быть двух типов: решение (solution) <1 или запрос задания (request_work). <5 Если управляющий процесс получает ^ от рабочего процесса новый полный вари-Ч ант АО ХТС (строка 39), то его стоимость g сравнивается со стоимостью текущего гло-§ бального оптимального варианта АО ХТС ! (строка 41). Если найден новый оптималь-| ный вариант АО ХТС, то он заменяет теку-| щее оптимальное решение Wopt (строка 43), а его стоимость сохраняется в перемен-| ной minCost (строка 44). >5 Если управляющий процесс получает 1 от свободного рабочего процесса запрос | нового задания (строка 46), то ему переда-<| ется сообщение типа задание (do_work), ¿2 в котором содержится начальный фрагмент
АО ХТС и стоимость текущего оптимального варианта АО ХТС (строка 48).
Рабочий процесс
Рабочий процесс запрашивает задание от управляющего процесса (строка 4) и ожидает ответного сообщения. Ответное сообщение может быть двух типов: задание (do_ work) или завершение работы (quit). Если от управляющего процесса получено сообщение с новым заданием (строка 7), содержащим начальный фрагмент АО ХТС и стоимость текущего оптимального варианта АО ХТС, осуществляется вызов рекурсивной процедуры WorkerEnumerateVariants () (строка 10). С помощью этой процедуры рабочий процесс осуществляет последовательный обход назначенных ему поддеревьев в глубину, начиная с яруса g + 1 и до самого нижнего яруса I, притом полученный от управляющего процесса начальный фрагмент АО ХТС достраивается до полного варианта АО ХТС W[/],i = G + 1,I (строки 20-27).
Переход на следующий уровень рекурсии осуществляется аналогично последовательному варианту алгоритма: если начальный фрагмент ХТС, состоящий из стадий 1 — level, во-первых, работоспособен, и, во-вторых, его стоимость не превышает стоимости наилучшего на текущий момент варианта АО ХТС (строка 25).
В противном случае происходит возврат на предыдущий ярус дерева.
При достижении конечного узла дерева (i==i, строка 28) его стоимость сравнивается со стоимостью текущего локального наилучшего варианта АО ХТС (строка 30). Если найдено лучшее решение, проверяется ограничение (5) на длительность функционирования ХТС (процедура T (), строка 32). Если ограничение (5) выполняется, то найден новый оптимальный вариант АО ХТС, и он заменяет текущее локальное оптимальное решение Wopt (строка 34), а его стоимость сохраняется в переменной minCost (строка 35). После завершения работы рекурсивной процедуры рабочий процесс осуществляет передачу
№ 3 (45) 2013
Листинг 2
I 1
I
I
ua
}
1 Mas
2
3
4
5
6
7
8
9
10 11 12
13
14
15
16
17
18
19
20 21 22
23
24
25 Ma
26
27
28
29
30
31
32
33
34
35
36 */
37
38
39
40
41
42
43
44
45
46
47
49
50 }
ter() {
/* количество рабочих процессов (один из процессов управляющий) */ num_workers = NUM_PROCESSORS - 1;
/* запуск процедуры обхода дерева */ MasterEnumerateVariants(O);
/* пока есть запущенные рабочие процессы */ while (num_workers > 0) {
msg = ReceiveWorkerMessage ();
/* рабочий процесс получил новое решение */
if (msg.type == SOLUTION) {
/* проверка критерия оптимизации */ if (Cost(msg.W) < minCost) {
/* сохранение нового оптимального решения */ Wopt = msg.W;
minCost = Cost(msg.W); } } /* рабочий процесс запрашивает новое задание */
elseif (msg.type
REQUEST_WORK ) { /* остановка рабочего процесса */ SendWorkerMessage (msg.workerID , num_workers --; } }
QUIT
sterEnumerateVariants(level) {
if (level < G) { /* если текущая глубина поиска меньше G */ { for (j=1; j <= J[level]; j++) {
/* создание начального фрагмента ХТС
(стадии 1 - j) */ W[level] = X[level , j]; /* проверка работоспособности и стоимости начального фрагмента ХТС */
if (S(W) == 0 && PartCost(W,level) < minCost) { /* рекурсивный поиск */
MasterEnumerateVariants(level + 1); } } }{ else {/* глубина поиска равна G */ while (true) {
/* получение сообщений от рабочего процесса
msg = ReceiveWorkerMessage ();{ /* получено решение */ if (msg.type == SOLUTION) {{ /* проверка критерия оптимизации */ if (Cost(msg.W) < minCost) {
/* сохранение нового оптимального
решения */ Wopt = msg.W;
minCost = Cost(msg.W); } } /* запрос нового задания */ elseif (msg.type == REQUEST_WORK ) { /* передача начального фрагмента ХТС и текущего значение критерия */
SendWorkerMessage (msg.workerID , W, minCost); break; } } }
63
№ 3 (45) 2013
Листинг 3
1 Worker() {
2 while (true) {
3 /* запрос нового задания */
4 SendMasterMessage (workerlD , REQUEST_WORK );
5 msg = ReceiveMasterMessage ();
6 /* получено новое задание */
7 if (msg.type == DO_WORK) {
8 minCost = msg.minCost;
9 foundNewSolution = false;
10 WorkerEnumerateVariants(G + 1);
11 if (foundNewSolution ) {/* найдено новое решение */
12 /* отправка решения управляющему процессу */
13 SendMasterMessage (workerlD , SOLUTION , Wopt); } }
14 /* получено сообщение о завершении работы */
15 elseif (msg.type == QUIT) {
16 break; } }
17 18 }
19 WorkerEnumerateVariants(level) {
20 if (level < I) {{
21 for (j=1; j <= J[level]; j++) {
22 /* формирование полного варианта АО ХТС */
23 W[level] = X[level , j];
24 /* проверка работоспособности и стоимости АО ХТС */
25 if (S(W) == 0 && PartCost(W, level) < minCost) {
26 /* рекурсивный поиск */
27 WorkerEnumerateVariants(level + 1); } } }{
28 else { /* достигнут конечный узел дерева */
29 /* проверка критерия оптимизации */
30 if (Cost(W) < minCost)) {
31 /* проверка ограничения (5) на длительность функционирования ХТС */
32 if (T(W) <= Tmax) {
33 /* сохранение нового оптимального решения */
34 Wopt = W;
35 minCost = Cost(Wopt );
36 foundNewSolution = true; } } }
37 }
S
0 !
1
с о
Î
i
локального оптимального варианта АО ХТС управляющему процессу (строка 13). Далее рабочий процесс освобождается и производит запрос нового задания. При получении от управляющего процесса сообщения о завершении работы (строка 15), рабочий процесс завершает свою работу (строка 13).
Результаты экспериментов
Для проведения численных экспериментов разработана программа на языке программирования С++ с использованием биб-
лиотеки Message Passing Interface (MPI) [28]. В качестве тестового примера использовался расчет аппаратурного оформления для ХТС, состоящей из 16 аппаратурных стадий (рис. 2), для каждой из которых доступно 5 стандартных типоразмеров оборудования. ХТС должна в течение 7400 ч. обеспечить выпуск трех красителей объемами 2250, 100 и 50 тонн, соответственно.
Эксперименты проводились на кластере Тамбовского государственного технического университета, состоящего из вось-
64
№ 3 (45) 2013
106 Приготовление азосоставляющей
127 Растворение
125 Приготовление азосоставляющей
123 Растворение
122 Выделение красителей
1. Краситель прямой черный 2с
2. Краситель прямой оранжево-коричневый К для кожи
3. Краситель прямой коричневый
ü 1
i I
ua на
Рис. 2. Тестовый пример химико-технологической системы
ми компьютеров (nodes) на базе процессоров Intel Pentium 4 3.0 ГГц и 2 Гб ОЗУ, один из которых (headnode), является сервером, на базе процессора Intel Pentium 4 3.2 ГГц и 4 Гб ОЗУ, операционная система Scientific Linux 5.3. Все компьютеры кластера объединены в локальную вычислительную сеть Fast Ethernet. Для компиляции программы использовался компилятор GCC 4.1.2.
Результат решения задачи выбора АО для тестовой ХТС представлен в табл. 1 (основной размер фильтров характеризуется — в отличие от емкостей — площадью рабочей поверхности).
Было проведено исследование ускорения и эффективности использования процессоров.
Ускорение Sp определяется как отношение процессорного времени Т1, требуемого для выполнения последовательной программы на одном процессоре, ко времени Тр выполнения вычислений параллельной программой на р-процессорной машине. Эффективность использования процессоров Ер определяется как отношение полученного ускорения Sp к количеству процессоров р.
В идеальном случае решение задачи на р процессорах должно выполняться в р раз быстрее. На практике такое ускорение почти никогда не достигается. Причина этого хорошо иллюстрируется законом Амдала (Амдаля) [29], который устанавливает связь между ускорением Sp работы параллельной
65
№ 3 (45) 2013
Таблица 1
Решение задачи выбора АО для тестовой ХТС
№ по схеме Наименование стадии Основной размер оборудования
101 Растворение 6,3 м3
103 Диазотирование 10 м3
106 Приготовление азосоставляющей 5 м3
108 Очистное фильтрование 5 м2
110 Азосочетание 16 м3
115 Диазотирование 20 м3
127 Растворение 0,4 м3
125 Приготовление азосоставляющей 3,2 м3
111 Фильтрование 25 м2
112 Растворение 10 м3
118 Азосочетание 32 м3
122 Выделение красителей 32 м3
123 Растворение 3,2 м3
134 Фильтрование красителей 50 м2
138 Суспензирование 10 м3
145 Сушка красителей 20 м3
Таблица 2
Значения ускорений и эффективности использования процессоров
Количество процессоров 1 2 3 4 5 6 7 8
Время, ч . 45,56 46,55 23,14 15,42 11,51 9,30 8,01 6,49
Ускорение 1 0,98 1,98 2,93 3,88 4,83 5,73 6,74
Эффективность 1 0,49 0,66 0,73 0,78 0,81 0,82 0,84
I
1= о
1
£
программы по сравнению с последовательной, числом процессоров р и долей вычислительных операций параллельной программы в (0 < в < 1), которые выполняются последовательно, Sn =-1-.
М ' р р + (1-р)/р
Следует отметить, что формулировка закона Амдала не учитывает временных затрат на обеспечение обмена информацией между
вычислительными узлами. Поскольку эти затраты (обусловленные необходимостью обеспечения коммуникационных обменов, предотвращения конфликтов памяти, синхронизации и пр.) лишь увеличивают общее время работы параллельной программы, то реальное ускорение оказывается еще ниже.
Результаты представлены в табл. 2. Значение параметра G при этом было равно 5.
66 у
№ 3 (45) 2013
Заключение
В статье предложен основанный на схеме ветвей и границ параллельный алгоритм оптимального выбора АО ХТС. Алгоритм был реализован в виде параллельной программы на языке программирования С++ с использованием библиотеки MPI. Разработанная программа показала ускорение, близкое к линейному, обладает достаточно высокой масштабируемостью, что хорошо соотносится с экспериментальными результатами, полученными другими авторами при решении аналогичных задач (например [30]).
Известным недостатком применения парадигмы мастер-работник является то, что мастер-процесс становится узким местом программы при большом числе обслуживаемых им рабочих процессов. Однако в данном случае этого не происходит из-за небольшого числа узлов на кластере (как видно из табл. 2, эффективность использования процессоров возрастает).
Вычислительный кластер Тамбовского государственного технического университета использует в качестве интеркоммуникационной среды сеть Fast Ethernet, пропускная способность которой на порядки ниже, чем у межсоединений в современных суперкомпьютерах, таких, например, как InfiniBand.
Несмотря на то, что применение парадигмы мастер-работник не требует большого количества межпроцессорных взаимодействий (обмен идет только между управляющим и рабочими процессорами), размер самих сообщений невелик, применение низкоскоростных межсоединений негативно влияет на быстродействие параллельной программы.
Тем не менее, параллельный вариант алгоритма выбора оптимального аппаратурного оформления позволяет значительно сократить время расчета по сравнению с последовательным вариантом и повысить качество проектных решений за счет получения глобального оптимального решения.
£
В дальнейшем авторы планируют провести s
э
исследования, связанные с анализом масштабируемости алгоритма, на вычислитель- ¡g" ном кластере с бо'льшим количеством про- оо цессоров. ^
Список литературы |
&
1. Малыгин Е. Н., Карпушкин С. В., Борисен- ùa ко А. Б. Методика определения аппаратурного оформления многопродуктовых химико-технологических систем // Химическая промышленность сегодня. 2003. № 5. С. 43-50.
2. Карпушкин С. В., Краснянский М. Н., Борисен-ко А. Б. Модернизация химико-технологических систем действующего многоассортиментного производства при изменении планов выпуска продукции // Химическая промышленность сегодня. 2012. № 1. С. 26-32.
3. Кафаров В. В., Макаров В. В. Гибкие автоматизированные производственные системы в химической промышленности. М.: Химия, 1990. — 320 с.
4. Малыгин Е. Н., Карпушкин С. В., Борисен-ко А. Б. Проектирование многоассортиментных химических производств: определение аппаратурного оформления химико-технологических схем // Вестник Тамбовского государственного технического университета. 2002. Т. 8. № 2. С. 272-282.
5. Карпушкин С. В., Краснянский М. Н., Борисен-ко А. Б. Методика оценки эффективности аппаратурного оформления химико-технологических систем многоассортиментного производства // Информационные системы и технологии. 2011. № 5 (67). С. 96-105.
6. Борисенко А. Б., Карпушкин С. В. Применение метода ветвей и границ для оптимального выбора аппаратурного оформления химико-технологических систем // Вычислительные технологии. 2012. № 5. С. 35-43.
7. Hamzaoui Y. E., Hernandez J. A., Cruz-Chavez M. A., Bassam A. Search for Optimal Design of Multiproduct Batch Plants under Uncertain Demand using Gaussian Process Modeling Solved by Heuristics Methods // Chemical Product and Process Modeling. 2010. Vol. 5. Iss. 1. P. 1934-2659.
8. Ponsich A., Azzaro-Pantel C., Domenech S., Pi-bouleau L. Mixed-integer nonlinear programming
-ч ПРИКЛАДНАЯ ИНФОРМАТИКА
№ 3 (45) 2013 ' -
! I Л
I
&
S3 <0 12
IS
I
I
0
е §
&
1
I <0
t
5
0
1 I
с о
i
i
13
14
optimization strategies for batch plant design problems // Industrial & Engineering Chemistry Research. 2007. Vol. 46. № 3. P. 854-863.
9. Lin X., Floudas C. A. Design, Synthesis and Scheduling of Multipurpose Batch Plants via an Effective Continuous-Time Formulation // Industrial & Engineering Chemistry Research. 2001. Vol. 25. P. 665-674.
10. Борисенко А. Б. Синтез аппаратурного оформления многоассортиментных химико-технологических систем: дис.... канд. техн. наук. Тамбов, 2000. — 157 с.
11. Voudouris V. T., Grossmann I. E. MILP model for scheduling and design of a special class of multipurpose batch plants // Computers & Chemical Engineering. 1996. Vol. 20. № 11. P. 1335-1360.
12. Leyffer S, Linderoth J., Luedtke J., Miller A, Mun-son T. Applications and algorithms for mixed integer nonlinear programming // Journal of Physics: Conference Series. 2009. Vol. 180. № 1. P. 12-14. Brassard G, Bratley P. Fundamentals of Algorith-mics. Prentice Hall, 1996.
Sparrow Robert E., Forder Graham J., Rippin David W. T. The Choice of Equipment Sizes for Mul-tiproduct Batch Plants. Heuristics vs. Branch and Bound // Ind. Eng. Chem. Process Des. Dev. 1975. Vol. 14. № 3. P. 197-203.
Воеводин В. В., Воеводин Вл. В. Параллельные вычисления. СПб.: БХВ-Петербург, 2002. — 608 c.
Посыпкин М. А. Архитектура и программная организация библиотеки для решения задач оптимизации методом ветвей и границ на многопроцессорных вычислительных комплексах // Труды Института системного анализа Российской академии наук. 2006. Т. 25. № 4. С. 18-25.
17. Посыпкин М. А, Сигал И. Х. Комбинированный параллельный алгоритм решения задачи о ранце // Известия РАН. Теория и системы управления. 2008. № 4. С. 50-58.
18. Bouziane Hinde Lilia, Christian Perez, Thierry Pri-ol. Extending software component models with the master-worker paradigm // Parallel Computing. 2010. Vol. 36. Iss. 2-3. P. 86-103.
19. Stephen Cauley, Venkataramanan Balakrishnan, Y. Charlie Hu, Northwestern Ave. A parallel branch-and-cut approach for detailed placement // ACM
15
16
Transactions on Design Automation of Electronic Systems (TODAES). 2011. Vol. 16. Iss. 2. P. 18:118:19.
20. Jiayi Zhou, Kun-Ming Yu, Chun Yuan Lin, Kuei-Chung Shih and Chuan Yi Tang. Balanced Multiprocess Parallel Algorithm for Chemical Compound Inference with Given Path Frequencies // Lecture Notes in Computer Science. 2010. Vol. 6082. P. 178-187.
21. Малыгин Е. Н., Карпушкин С. В., Борисенко А. Б. Математическая модель функционирования многопродуктовых химико-технологических систем // Теоретические основы химической технологии. 2005. Т. 39. № 4. С. 455-465.
22. Алгоритмы: построение и анализ / Т. Х. Кормен, Ч. И. Лейзерсон, Р. Л. Ривест, К. Штайн. 2-е изд. М.: Вильямс, 2011. — 1296 c.
23. Кнут Д. Э. Искусство программирования, том 1. Основные алгоритмы. 3-е изд. М.: Вильямс, 2009. — 720 с.
24. Grama A., Gupta A, Karypis G., Kumar V. Introduction to Parallel Computing, Design and Analysis of Algorithms. Addison-Wesley, 2003. — 856 p.
25. Посыпкин М. А., Сигал И. Х. Исследование алгоритмов параллельных вычислений в задачах дискретной оптимизации ранцевого типа // Журнал вычислительной математики и математической физики. 2006. Т. 45. № 10. С. 18011809.
Тимошевская Н. Е. Параллельные методы обхода дерева // Математическое моделирование. 2004. Т. 16. № 1. С. 105-114. Тимошевская Н. Е. Разработка и исследование параллельных комбинаторных алгоритмов // Вычислительные методы в дискретной математике. 2009. № 2. С. 96-103.
28. Message Passing Interface Forum Official MPI (Message Passing Interface) standards documents, errata. URL: http://www.mpi-forum.org/.
29. Amdahl, Gene M. Validity of the single-processor approach to achieving large-scale computing capabilities. // Proc. 1967 AFIPS Conf., AFIPS Press. 1967. V. 30. P. 483-485.
30. Gendron B., Crainic T. G. Parallel branch-and-bound algorithms: Survey and synthesis // Operations Research. 1994. Vol. 42. № 6. P. 10421066.
26
27
68 г