Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Поиск оптимальной трассы на неориентированном графе
1. Процедуру поиска оптимальной трассы покажем на примере неразветвляющего трубопровода. Имеем сеть, множество дуг которой образуют неориентированный граф, формальные параметры которого обозначим: D — одномерный массив информации о сети, состоящей из последовательностей трех элементов, характеризующих одну дугу: NHАЧ — номер узла начала дуги, Nkoh — номер узла конца дуги, до — критерий оптимальности, IPB —номер узла начальной точки сети, IPE — номер узла конечной точки сети, NT — массив номеров в массиве D с информацией о дугах дерева; ОРТ — массив номеров элементов в массиве D с информацией о дугах кратчайшего пути. Поиск производится следующим образом. В массиве информации D отыскиваются дуги, вершиной которых является точка, определенная в исходных данных, как начальная. Для этой цели организуются вложенные циклы, которые обеспечивают поиск любой дуги, вершиной которой является заданная точка независимо от ориентации дуги (последовательности записи элементов массива Di, Di +1, инцидентных дуге вершин). Информация о найденной дуге заносится в массивы Р и ND, где Р — массив значений длины всей цепи от начального узла до рассматриваемого; ND — номер элемента массива Р, содержащего информацию о рассматриваемой дуге. Запоминаются значение длины цепи для рассмотренного узла, номер соответствующего элемента в массиве Р. Для указания последнего значащего элемента P(j) в массиве Р элементу P(j+ 1) присваивается заведомо большое и нереальное при расчетах значение. Следующие циклы ограничены именно этим элементом массива. В массиве Р исключаются большие из путей достижения одного узла, если такие имеются. Кроме того, определяется элемент справочного массива, содержащий минимальное значение длины цепи. Рассмотренная дуга включается в состав ветвей дерева и инцидентный ей узел становится узлом дальнейшего развития поиска. Цикл по j продолжается до тех пор, пока не встретится узел, определенный в исходных данных как конечный. Если дерево построено (число его ветвей KNT), то на нем фиксируется кратчайший путь. Результатом работы процедуры, выходными формальными параметрами является массив NT номеров элементов массива D —дуг дерева и массив ОРТ — значений номеров узлов следования кратчайшего пути на графе. 2. В предыдущем пункте рассмотрен метод поиска кратчайшего пути между двумя точками неориентированного графа. Этот метод эффективен при поиске кратчайшего пути на сети с большим числом дуг. Однако его эффективность существенно снижается в задачах поиска точек разветвления систем трубопроводов, поскольку во всех возникающих ситуациях многократно повторяются процессы поиска кратчайшего пути между двумя точками. С этой точки зрения представляет интерес метод поиска многополюсных кратчайших цепей между всеми парами узлов сети. Он обеспечивает быстродействие при многократном выборе кратчайшего пути между парами узлов, однако из-за необходимости хранения в памяти ЭВМ матрицы результатов он ограничен по объему информации о сети. Рассмотрим алгоритм поиска многополюсных кратчайших цепей. На графе возможных путей развития лишь некоторые дуги Aij являются кратчайшими цепями из Ni в n j, они принадлежат дереву графа. Предположим, что известна кратчайшая цепь из узла Ns в узел Nt. Тогда эта цепь должна состоять только из дуг дерева, в противном случае она не будет кратчайшей. Если теперь ввести дугу Ast с длиной, равной длине рассматриваемой цепи Ns — Nt, то эта дуга Asi будет также принадлежать дереву. Задача нахождения кратчайших цепей между -всеми парами узлов реализуется добавлением дуги дерева (если таких дуг в цепи не было) между всеми парами узлов. Рассмотрим операцию получения дуги дерева относительно узла n j
При этом сравнивается длина dik дуги Аik и длина цепи Ni— nj — Nh. Затем длине дуги Aih присваивается значение dij + djk при условии dik>dij + djk. Если выполнить эту операцию последовательно для каждого узла Nj(j=1, 2,..., п), то полученные в результате значения Dih будут длинами кратчайших цепей между всеми парами узлов. По мере последовательного выполнения операции (3.12) заполняется справочная таблица. Элемент (i, k) этой таблицы, стоящий на пересечении i'-й строки и k-ro столбца, полагаем равным k. После выполнения операции (3.12) элемент указывает первый промежуточный узел в кратчайшей цепи между Ni и Nh, если такой узел существует, в противном случае элемент (i, k) равен k. Таким образом
Для того чтобы найти кратчайшую цепь из Ns в Nt, no справочной таблице сначала отыскивается элемент s, t = k, который означает, что узел Nh является первым промежуточным узлом в кратчайшей цепи из NS в Nt. Затем находится элемент (k, t), который указывает первый промежуточный узел в кратчайшей цепи из Nh в Nt. Этот процесс продолжается до тех пор, пока не будет найден элемент (i, t)=T, который означает, что найдены все узлы, входящие в кратчайшую цепь из NS в Nt, а именно NS Nk,..., n i, Nt. Если при выборе оптимальных трасс газопроводов и их paзветвлений используется неориентированная сеть произвольной конфигурации, то для поиска многополюсных кратчайших цепей на такой сети допустимо использовать симметричные матрицы исходных данных, длин кратчайших путей и узлов прохождения кратчайших путей. Это позволяет хранить лишь половину исходной и выходной информации, что существенно повышает эффективность применения рассматриваемого метода и его реализуемость на ЭВМ. Следует отметить, что метод позволяет также сохранять произвольность распределения пометок графа. Рассмотрим работу алгоритма нахождения кратчайших цепей между всеми парами узлов (рис. 3.6). Условимся, что дуги графа не ориентированы. Длины дуг отрезков сети заносятся в таблицу. Выполняем операции (3.12) (для j=1), заключающиеся в том, что определяются все элементы табл. 3.2, не лежащие в первой строке и в первом столбце. Длины кратчайших цепей заносятся в табл. 3.3, а узлы прохождения пути — в табл. 3.4; Величины d26 и d56 своего значения не изменили. Для /=2 также выполняется операция (3.12), определяющая все элементы теперь уже табл. 3,3, не лежащие во второй строке и втором столбце, так как при этом используются результаты вычислений при j=1;
Величины d14, d47, d56 своего значения не изменили. Для j = 3:
Величины d57 , d67 своего значения не изменили. Для j = 5: Величины d13,d14, d16,d17, d23, d24, d37 , d67 своего значения не изменили. Результатом вычислений являются табл. 3.3 длин кратчайших цепей и справочная табл. 3.4, с помощью которой определяются узлы, входящие в кратчайшие цепи. Пусть, например, необходимо найти кратчайшую цепь из N1 в N4. Тогда по табл. 3.4 сначала находим элемент (1,4) =7. Затем находим
(1,7) =2 и (1,2) = 1. Следовательно, кратчайшая цепь из N1 в jV4 проходит через узлы N2 и N7 Таким образом, пользуясь построенной табл. 3.4 для нахождения кратчайших цепей между любыми двумя парами узлов, достаточно выполнить лишь некоторое число операций сравнения, равное числу дуг в искомом кратчайшем пути. Это дает существенные преимущества рассматриваемому методу, поскольку в предыдущих алгоритмах для отыскания кратчайшего пути из какой-либо точки необходимо строить дерево относительно этой точки, что при переборе начальных и конечных точек на сети представляет трудоемкий процесс. 3. Проблема выбора оптимального разветвления трубопровода состоит не только в поиске оптимальных трасс участков между двумя пунктами, но и в определении места оптимального разветвления при отборе или притоке перекачиваемого продукта. Для решения данной задачи будем исходить из следующих предпосылок. Сеточная модель местности представляет собой возможные пути проложения трассы и отвода или притока. При этом не делается различий для дуг проложения трассы и отвода (притока)—каждая дуга может принадлежать как основной магистрали, так и отводу. Естественно, что дуги сети не ориентированы. Точка разветвления находится в одном из узлов сети. В противном случае постановка не соответствует основной предпосылке решаемой задачи — любые пересечения возможных путей проложения трассы являются узлами сети. Конфигурацию разветвления удобно рассматривать как три независимых участка, сходящихся в одной точке. При этом концевые точки каждого из участков являются исходными данными. В зависимости от технологической схемы транспорта газа возможны сочетания вариантов диаметров трубопроводов разветвленной системы (рис. 3.7): где d1 , D2 , D3 — диаметры трубопроводов соответственно первого, второго и третьего участков. Алгоритмы поиска оптимального разветвления для перечисленных вариантов различны. Рассмотрим наиболее простой случай, когда все диаметры трубопровода равны (D1 D2, D3). Сеть представляет собой помеченный неориентированный граф G(A, N) (рис. 3.8). В общем случае каждая вершина множества вершин Ni Е G(А, N) может рассматриваться как возможная точка разветвления Nsi системы, а кратчайшие пути для трех участков находятся на ветвях дерева, построенного относительно этой точки разветвления в конечные точки участков Ntj(j=l, 2, 3). Относительно
вершин Nsi по методу поиска кратчайшего пути на неориентированном графе осуществляется поиск кратчайшего пути в каждую из вершин Ntj(j=\, 2, 3), т. е. строится дерево графа относительно вершины Ns. Построенное дерево позволяет отыскать кратчайшие цепи на участках Л/.„, Ntj(j=l, 2, 3) и определить их длину Ltj или значение другого критерия оптимальности. Суммарный кратчайший путь системы Осуществляемый перебор вершин графа в заданной области разветвления позволяет отыскать вершину, удовлетворяющую условию Выбранная таким образом точка разветвления будет оптимальной относительно заданного критерия. Если точка разветвления совпала с одним из узлов Ntj(j=l, 2, 3), т. е. отвод «вырождается», то рассматриваются два участка газопровода. Рассмотрим алгоритм поиска оптимального разветвления системы для случая, если диаметры всех трех участков различны. В этом случае для каждого участка строятся три графа G\(A\, N), С2(Л2, N), G3(A3, N), соответствующие исходной сети. Для этих графов существует взаимно однозначное соответствие между А}, Л2, А3, сохраняющее отношения инцидентности и распределения пометок. Следовательно, рассмотренные графы изоморфны. Для графа G\(A\, N) и отдельно для графа 02(Л2, N) строится дерево при значениях критерия оптимальности, соответствующих участку М,,-, Nti, и отыскивается кратчайшая цепь на графе между этими точками, а также суммарное значение критерия оптимальности для найденного пути. 4. Разработанные алгоритмы поиска оптимальной трассы между двумя точками и алгоритм поиска оптимального разветвления системы магистрального газопровода позволяют перейти к решению более сложной проблемы — выбору оптимальных трасс системы магистральных трубопроводов со многими отводами. Проблему выбора сложных трасс можно разделить на 2 задачи: поиск оптимальных трасс газопроводов с отводами при заданной конфигурации системы и поиск оптимальных трасс сложных систем газопроводов с выбором конфигурации системы. Остановимся на реализации первой задачи, применив модификацию иерархического метода оптимизации магистральных нефтепродуктопроводов. При выборе трасс сверхпротяженных трубопроводов длиной 2000—2500 км и более между двумя точками сеть разбивается на ряд фрагментов с граничными группами узлов. Эти группы рассматриваются как макрогруппы, если под макродугами подразумевать участки оптимальной трассы между двумя смежными граничными участками. Расстояние между граничными группами рекомендуется принимать 400—700 км. Используя суперпозицию изложенного метода, можно рассчитывать трассы практически любой протяженности. Задана неориентированная сеть произвольной конфигурации с определенными начальными и конечными узлами трассы, а также конечными точками отводов (притоков) на сети и ориентировочно определенными областями их подключения к основной магистрали трассы (рис. 3.9). Сеть представляет собой неориентированный граф G(V, N), который разобьем на подграфы G(Vh, N), а множество вершин на независимые подмножества Vk(k=\, 2,..., п), где п —число отводов. При этом необходимо выполнение условия V\(] V^nVsH, • • • • ПУпз=0, т. е. подмножества графа не должны пересекаться. Кроме того, в каждом из подграфов Gk(Vk, N) должно находиться не более одного разветвления. Вершины Nv, инцидентные обоим соседним подмножествам, назовем соединяющими. Числом вершинного соединения /(Vh) подмножества Vft назовем число соединяющих вершин с подмножеством ул+ь будем говорить, что подмножества V\ и Vh+\ вершинно соединены. Аналогичные понятия существуют и для реберного соединения подграфов. Следовательно, к условию разбиения графа добавим еще одно: p(Vk, V\+i)=0, т. е. отсутствие реберного соединения подмножеств. Такой граф называется сепарабельным. Таким образом, в результате разбиения графа на подграфы имеем некоторую конфигурацию системы, состоящую из вершинных соединений подмножеств (рис. 3.10). Очевидно, что каждая пара сочетаний Ыпн, Л/ль+i вершинных соединений, относящихся к одному подмножеству, представляет собой расчетный вариант, для которого возможно отыскание оптимальной точки разветвления либо оптимальной трассы между двумя точками. Напомним, что по условию разбиения в подграфе должно находиться не более одного разветвления системы. Это обусловлено тем, что разработанный математический и программный аппарат позволит оптимизировать именно такой вариант. В случае, если разветвление для подмножества V/, отсутствует, то кратчайший путь находится между двумя точками Nnh, Nn+t{,h(k=l, 2,..., l(Vk), где l(Vk) — число вершинных разбиений). После выполнения расчетов для каждого из подмножеств строится граф вершинных соединений G(Vk, N„1,), поиск кратчайшего пути между двумя точками которого не представляет особого труда. Ввиду простоты алгоритма и наличия математического и программного аппарата поиска оптимальной трассы и оптимальной точки разветвления оптимизация трассы газопровода с отводами при заданной конфигурации системы выполняется путем последовательной реализации предложенных этапов. Следует отметить, что этот путь является наиболее надежным и реализуемым при оптимизации сложных систем газопроводов, поскольку в случае появления ошибок исходной информации их локализация значительно упрощается, что приводит к увеличению надежности работы программ. Для поиска оптимальных трасс сложных систем газопроводов с выбором конфигурации системы разработан итерационный метод, предусматривающий оптимальное уточнение первоначально заданной конфигурации системы и выбор оптимальных участков основной трассы и отводов. Сеть представляет собой помеченный неориентированный граф G(V, N). Зададим ориентировочную конфигурацию системы на сети. Исходной информацией будут номера узлов начала nu и конца Nt2 основной магистрали, конечные точки отводов или притоков на сети Л/(ь(й = 3, 4,..., п, где п — число отводов), диаметры трубопроводов на участках. Кроме того, произвольно зададим узлы подключения отводов (притоков) к магистрали, т.е. точки разветвления системы Nsk(k=l, 2,..., п). Выбор оптимальной конфигурации системы производится тю следующему алгоритму. На графе G(V, N) отыскивается вершина yV.,i оптимального разветвления системы относительно конечных вершин Nt\, Nt2, Ntz по уже описанному методу поиска оптимального разветвления трассы с отводом (рис. 3.11, а). Естественно, что первоначально заданный узел разветвления получит некоторое смещение и перейдет в вершину /V'sl (рис. 3.11, б). После этого можно приступить к рассмотрению следующей предполагаемой точки разветвления, решив систему конечных точек ЛГ,,2, nh, М>з относительно точки Af,,2. Следующим этапом решается система N'K2, Nt5, N12 относительно точки разветвления Ns3 (рис. 3.11, 0). Откорректированная таким образом система разветвлений становится исходной (базовой) для следующего цикла последовательных решений (рис. 3.11, г). Процесс продолжается до момента сходимости, т.е. до тех пор, пока итерации решений поиска разветвления системы не приведут к постоянным координатам узлов разветвления. Несколько усложним предполагаемый алгоритм с целью выбора оптимальных трасс и конфигураций системы. Предположим для простоты изложения, что все диаметры системы магистрального трубопровода Nt\Ns\, Л^2Л^2 и отводов Nx]Ni;\, N*tNtt (рис. 3.12, а) одинаковы. При поиске оптимального разветвления системы Nt\N& относительно точки разветвления Nx\ строим дерево не для определенной конечной точки отвода /V(3, а для ближайшей с точки зрения алгоритма построения дерева. Таким образом, с искомой точкой разветвления Л^ может соединиться не предварительно заданная вершина #<3, а более целесообразная с точки зрения данного алгоритма вершина Nt* (рис. 3.12, б). Безусловно, на следующих итерациях процесса ситуация может измениться и «ближайшей» окажется опять-таки, вершина /V(4- Таким образом, на каждом шаге итерационного процесса осуществляется не только выбор оптимальных на данной итерации точек разветвления системы, а и наиболее целесообразная ее конфигурация. Этот алгоритм реализуется и для системы с трубопроводами различных диаметров. Проведение практических расчетов показало, что анализ исходной информации занимает в 2—2,5 раза больше машинного времени, чем непосредственно выбор оптимальной трассы. Однако следует учитывать, что одного-двух расчетов в режиме поиска ошибок оказывается достаточно для выявления, локализации и последующей корректировки искажений информации. Произвольное задание сети, простота и наглядность описания информации о дугах, наличие развитой системы диагностнки ошибок позволяют уменьшить непроизводительные затраты машинного времени, сократить сроки проведения расчетов, получить качественный исходный материал и, таким образом, повысить уровень достоверности проводимых расчетов. Date: 2015-06-07; view: 1226; Нарушение авторских прав |