Пример: УДК 519.1 О размещении клапанов на линейном участке трубопровода Ким О.Э., научный руководитель канд. техн. наук Быкова В.В. Институт математики и фундаментальной информатики Сибирский Федеральный Университет Современным средством транспортировки опасных жидкостей и газов являются сети трубопроводов. Из-за влияния внешних факторов и эрозии труб возникают аварийные ситуации, приводящие к разгерметизации системы и как следствие к попаданию вредных веществ в окружающую среду. Каждая труба обычно оснащена запорной аппаратурой (клапанами) для контроля возможного разлива. Клапаны автоматически разделяют трубопроводную сеть на секции, когда происходит разгерметизация сети. Поэтому количество опасных жидкостей и газов, потенциально покидающих сеть пропорционально общей длине труб в поврежденном секторе сети, разделенной клапанами. В большинстве случаев разгерметизация одновременно происходит только на одном участке, ограниченном с обеих сторон клапанами. Одновременный разрыв нескольких участков трубопровода маловероятен. Возникает следующая задача. Задана сеть трубопроводов и число клапанов для расстановки. Известны также точки соединения участков отдельных труб между собой и веса (длины) этих участков. Считается, что клапаны могут размещаться только в точках соединения труб. Предполагается, что при разгерметизации какого-либо одного участка трубы между клапанами объем утечки опасных жидкостей и газов равен весу соответствующего участка трубы. Требуется найти такое размещение клапанов, которое минимизирует максимально возможный объем разлива нефти. 1 Формулировка задачи о размещении клапанов для линейного участка трубопровода на языке теории графов Сети трубопроводов обычно имеют довольно сложную структуру, обусловленную географией местности. Поэтому, возникает интерес рассматривать более простые с точки зрения теории графов участки сети. Наиболее распространенным участком является магистраль – линейный участок сети (в терминах теории графов цепь). В работе [3] была поставлена задача о размещении клапанов в терминах теории графов для произвольного связного неориентированного графа. Придерживаясь терминов и обозначений работы [3] рассмотрим случай, когда граф является цепью. Пусть G = (V, E) связный неориентированный граф, изображающий сеть трубопроводов, где V = {v1, v2, …, vn} – множество вершин графа, n = |V| количество вершин графа, E = {e1, e2, …, en − 1} множество ребер графа. Пусть k есть число клапанов, заданных для размещения в трубопроводе, причем 0 k n 2. Всякое ребро e E задает определенный участок трубы. Вершины степени 1 представляют собой источники и стоки. Вершины степени 2 – точки соединения труб между собой. Предполагается, что каждый из k заданных клапанов может быть установлен в любой вершине степени 2. Полагается, что в вершинах степени 1 (в данном случае их две, одна − источник, другая − сток) клапаны установлены изначально. Обозначим вес участка трубы e E через we +. Требуется найти k-элементный сепаратор V V, минимизирующий величину максимального разлива. Напомним, что V V является kэлементным сепаратором связного графа G = (V, E), если G = (V \ V) несвязен и |V’| = k. Обозначим через V1, V2, …, Vs области связности графа G(V \ V), где s 1. Пусть NG(Vi) определяет окрестность множества вершин Vi и граф G* построен из G(V \ V) добавлением в него всех окрестностей NG(Vi), i = 1, …, s. Графы Gi = G(Yi) = (Yi, Ei) Yi = Vi NG(Vi)) (i = 1, …, s) задают компоненты связности в G* относительно сепаратора V. Для любых двух таких компонент связности Gi и Gj верно включение Yi Yj V, 1 i j s. Тогда функцию, определяющую максимальный разлив, можно выразить следующим образом: W(V) = max 1 i s e Ei we. (1.1) Таким образом, задача о размещении клапанов для линейного участка трубопровода состоит в нахождении k-элементного сепаратора V, минимизирующего значение величины W(V). 2 Метод полного перебора для решения задачи о размещении клапанов Наиболее простым методом решения данной задачи является исчерпывающий перебор всех возможных вариантов расстановки клапанов, то есть всех различных kэлементных сепараторов графа G = (V, E). Однако уже при n ≥ 17 возникает проблема 𝑘 нехватки вычислительной мощности, так как приходится перебирать до 𝐶𝑛−2 комбинаций. Поэтому был разработан алгоритм полного перебора с использованием кода Грея. В ходе исполнения алгоритма генерируются двоичные вектора, где единица соответствует наличию клапана в данной вершине, а ноль – отсутствию. Преимуществом данного алгоритма является последовательность подмножеств множества V, когда каждое следующее подмножество получается из предыдущего добавлением или удалением одного элемента, то есть происходит изменение лишь одного разряда в текущем двоичном векторе. Поэтому, для каждого нового подмножества значение максимального разлива вычисляется на основе предыдущего и тем самым сокращается объем вычислений. 3 Описание алгоритма Рассмотрим подробнее алгоритм полного перебора. Входными данными являются: n – число вершин цепи, k – число клапанов для расстановки, w[n − 1] – массив весов ребер, где элемент w[i] при i = 1, …, n − 1 отвечает весу ребра под номером i. Алгоритм сводится к выполнению следующей последовательности шагов. Шаг 1. В качестве начального взять двоичный вектор B[n−2] = (0 ,…, 0). За оптимальный разлив принять сумму весов всех ребер цепи Wopt = 1 ≤ i ≤ n−1 w[i]. Задать начальный вектор разливов, то есть для всех i = 1, …, n − 2 выполнить R[i] = 0, а при i = n − 1 присвоить R[i] = Wopt. Шаг 2. Положить i = 0, где i − число построенных двоичных векторов. Шаг 3. Вычислить максимальный элемент массива разливов по формуле W = max 1 i n − 1 R[i] и количество ненулевых элементов двоичного вектора kol = 1 ≤ i ≤ n−2 B[i]. Шаг 4. Если kol ≤ k и W = Wopt, то добавить вектор B в список наилучших векторов. Шаг 5. Если kol ≤ k и W < Wopt, то очистить список наилучших векторов и внести в него вектор B. Принять Wopt = W. Шаг 6. Найти p − наибольшую степень двойки, которая делит нацело i. Шаг 7. Если p > n − 2, то останов. Шаг 8. Присвоить B[p] = 1 − B[p]. Шаг 9. Если B[p] = 1, то R[p] = R[p] + w[p] и из ближайшего справа ненулевого элемента массива R вычесть значение w[p]. Иначе R[p] = R[p] − w[p] и к ближайшему слева ненулевому элементу массива R прибавить значение w[p]. Шаг 10. Вернуться к шагу 3. Результатом выполнения алгоритма являются: значение минимально максимально возможного разлива Wopt, наилучшие векторы B, в которых наличие единицы на i − ой позиции означает наличие клапана в i − ой вершине графа G = (V, E) и ноль − отсутствие. В данном случае число всевозможных вариантов размещения клапанов равно 𝑘 𝐶𝑛−2 . На обработку одного варианта требуется порядка O(n) операций. Таким образом, время работы алгоритма составляет O(n 2𝑘𝑛 – 2). Следует отметить, что разработанный алгоритм может быть использован при решении задачи о размещении клапанов для графа произвольной структуры методом динамического программирования на основе дерева декомпозиции [1]. 4 Решение прямой задачи для линейного участка сети методом динамического программирования При решении прямой задачи для участка сети типа цепь можно применить классический алгоритм динамического программирования. Суть данного метода состоит в следующем. Пусть функция f(v, j) обозначает минимаксный разлив для первых v ребер цепи, когда j клапанов установлены только в первых v вершинах. Тогда рекуррентные соотношения, связывающие оптимальные решения возникших подзадач имеют вид: f(v, j) = min1 ≤ u ≤ v − 1 max{f(u, j − 1), Σ u ≤ω ≤ v − 1 wω} (4.1) для всех 2 ≤ v ≤ n, 1 ≤ j ≤ k, f(v, 0) = Σ 1 ≤ω ≤ v − 1 wω, (4.2) где 2 ≤ v ≤ n и f(1, j) = 0, (4.3) где 0 ≤ j ≤ k. Установлено [2], что данные рекуррентные соотношения позволяют найти решение задачи за время O(k n2 log wmax), где n = |V| и wmax = maxe E we . 5 Применение эвристик Любой участок сети типа цепь можно представить в виде некоторого отрезка целочисленной прямой. Длинна этого отрезка равна суммарному весу всех ребер: L = 1 ≤ i ≤ n−1 w[i]. (5.1) Возможным приближенным способом решения прямой задачи о размещении k клапанов в сети типа цепь является разделение данного отрезка на k + 1 равных интервалов. При этом следует учитывать специфику задачи (требование о размещении клапанов лишь в вершинах сети). Данная эвристика основана на здравом смысле. Был разработан алгоритм, реализующий эту эвристику. Алгоритм основан на реализации деления отрезка длины L на k + 1 равных интервалов и нахождении мнимых точек расстановки клапанов. На следующем шаге осуществляется поиск ближайших к мнимым точкам вершин цепи. Основываясь на формуле (1.1), для полученных вариантов расположения клапанов вычисляются значения максимально возможных разливов. На заключительном шаге в качестве решения задачи выбирается такое расположение клапанов, которое обеспечивает наименьший из полученных максимальных разливов. Для выполнения данного алгоритма необходимо время O(n 2k). 6 Заключение Следует отметить, что метод полного перебора и метод динамического программирования решают более широкую задачу, чем прямая задача о размещении клапанов. В результате их применения мы получаем различные оптимальные варианты размещения клапанов, при этом число клапанов не превышает заданного по условию. Разработанные алгоритмы и программы могут быть использованы для оптимального размещения запорной аппаратуры при проектировании и эксплуатации трубопроводов. Сравнение алгоритмов позволяет сделать следующие выводы, относительно их практического применения: алгоритм полного перебора ввиду его высокой вычислительной сложности по n целесообразно использовать только при небольшом числе точек соединения труб между собой; время реализации метода динамического программирования зависит от значения wmax. Поэтому, данный метод целесообразно использовать, когда значение wmax полиномиально зависит от n; представленный эвристический алгоритм, имеет полиномиальное время выполнения относительно n, однако, дает лишь приближенное решение задачи. Алгоритм может быть использован при больших значениях n. 7 Список литературы 1 Быкова В.В. Вычислительные аспекты древовидной ширины графа // ПДМ/. 2011. №3. С. 65−79. 2 Grigoriev A., Grigorieva N.V. The valve location problem: Minimizing environmental damage of a spill in long oil pipelines // Computers & Industrial Engineering. 2009. V. 57. P. 976–982. 3 Ким О.Э. О размещении клапанов в трубопроводах // Труды XV Международной конференции по эвентологической математике и смежным вопросам. Красноярск, 2011. С. 100101.