Научная статья на тему 'Разработка метода мониторинга распределенной вычислительной системы на основе определения кратчайших путей и кратчайших гамильтоновых циклов в графе'

Разработка метода мониторинга распределенной вычислительной системы на основе определения кратчайших путей и кратчайших гамильтоновых циклов в графе Текст научной статьи по специальности «Математика»

CC BY
83
26
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАСПРЕДЕЛЕННАЯ ВЫЧИСЛИТЕЛЬНАЯ СИСТЕМА / МОНИТОРИНГ / АГЕНТ / УДАЛЕННЫЙ ДОСТУП / ЗАДЕРЖКА / ГРАФ / DISTRIBUTED COMPUTING SYSTEM (DCS) / MONITORING / AGENT / REMOTE ACCESS / DELAY / GRAPH

Аннотация научной статьи по математике, автор научной работы — Листровой С.В., Минухин С.В., Листровая Е.С.

Рассмотрен метод мониторинга распределенной вычислительной системы, в основу которого положен принцип минимизации времени опроса удаленными агентами объектов мониторинга, в которые входят ресурсы (узлы кластера), задания и коммуникационные каналы связи. Показано, что время опроса на основе агентов удаленного доступа определяется последовательностью их запуска на ресурсах распределенной системы

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Monitoring distributed computing systems on the basis of the determined shortest paths and shortest hamiltonian cycles in a graph

The tasks of monitoring the Distributed Computing System (DCS) are associated with optimization of the order (sequence) of surveying the monitored objects, such as resources (clusters and cluster nodes), carried out tasks (downloads), communication channels, and database servers. The problems are solved due to the use of plug-ins that include programs to initialize the startup and operation of remote services (agents), while the latter provide control over the DCS performance. Since the size of each of the transmitted commands to initialize the remote services of the monitored objects is several kilobytes and there are thousands of the DCS-controlled nodes, the volume of the transmitted information reaches 4-5 Mbytes. The amount of the transmitted results of assessing the state of the monitored objects in the DCS, which can be about 412 per one object, and the volume of each object about 4Kbytes largely affect the bandwidth of communication channels.This accounts for the necessity to optimize the survey time for the monitored objects via minimizing the time for control over the DCS objects in real time. The problem is solved due to the method implemented in two stages: finding the shortest path and the shortest Hamiltonian cycle in a random graph describing the topology of the DCS communication channels. The proposed DCS-monitoring methods allow optimizing the survey time for the monitored objects in polynomial time and consequent improving the quality of performance and the quality of service provided to the DCS users in real time.

Текст научной работы на тему «Разработка метода мониторинга распределенной вычислительной системы на основе определения кратчайших путей и кратчайших гамильтоновых циклов в графе»

-□ □-

Розглянуто метод монторин-гу розподЫеног обчислювальног системи, в основу якого покладе-но принцип мiнiмiзацiг часу опи-тування виддаленими агентами об'eктiв монторингу, в як вхо-дять ресурси (вузли кластера), завдання та комун^^й^ кана-ли зв'язку. Показано, що час опи-тування на основi агентiв вид-даленого доступу визначаеться по^довтстю гх запуску на ресурсах розподтеног системи

Ключовi слова: розпод^ена обчислювальна система, мотто-ринг, агент, виддалений доступ,

затримка, граф

□-□

Рассмотрен метод мониторинга распределенной вычислительной системы, в основу которого положен принцип минимизации времени опроса удаленными агентами объектов мониторинга, в которые входят ресурсы (узлы кластера), задания и коммуникационные каналы связи. Показано, что время опроса на основе агентов удаленного доступа определяется последовательностью их запуска на ресурсах распределенной системы

Ключевые слова: распределенная вычислительная система, мониторинг, агент, удаленный

доступ, задержка, граф -□ □-

УДК 004.421

|DOI: 10.15587/1729-4061.2015.56247|

РАЗРАБОТКА МЕТОДА МОНИТОРИНГА РАСПРЕДЕЛЕННОЙ ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЫ НА ОСНОВЕ ОПРЕДЕЛЕНИЯ КРАТЧАЙШИХ ПУТЕЙ И КРАТЧАЙШИХ ГАМИЛЬТОНОВЫХ ЦИКЛОВ В

ГРАФЕ

С. В. Листровой

Доктор технических наук, профессор Кафедра специализированных компьютерных систем Украинский государственный университет железнодорожного транспорта пл. Фейербаха, 7, г. Харьков, Украина, 61050

E-mail: om1@ya.ru С. В. Минухин Кандидат технических наук, профессор Кафедра информационных систем Харьковский национальный экономический университет им. Семена Кузнеца пр. Ленина, 9-а, г. Харьков, Украина, 61166 E-mail: minukhin.sv@gmail.com Е. С. Листровая Кандидат технических наук, доцент Кафедра экономики и маркетинга Национальный аэрокосмический университет им. Н. Е. Жуковского, ул. Чкалова, 17, г. Харьков, Украина, 61070 E-mail: listravkina@gmail.com

1. Введение

Решение задач мониторинга распределенных вычислительных систем (РВС) является важной с точки зрения обеспечения требуемой при обработке потоков заданий производительности и пропускной способности. Следует отметить, что наиболее распространенные системы мониторинга Nagios [1], Icinga [2] используют программные расширения (агенты), устанавливаемые на объектах мониторинга для их удаленного запуска и реализующие различные сервисы. Для выполнения сервисов на узлах РВС требуется установить плагин NPRE (Nagios Remote Plugin Executor), инициализирующий работу программных агентов. Процедура работы вызываемого удаленного сервиса включает: инициализацию командой запуска,

осуществляемой агентами NRPE на серверах и узлах РВС; запуск и выполнение сервиса; получение результатов работы сервиса; передачу полученных данных на управляющий узел (базу данных). Для комплексной оценки состояния программно-аппаратных средств, коммуникационных компонент и выполняемых заданий РВС следует использовать сервисы удаленного доступа, непосредственно связанные с решением задач планирования распределенных вычислений. К ним относятся [3, 4]: доступность и уровень загрузки узлов (в том числе многоядерных процессоров) кластеров; доступность и пропускная способность коммуникационных каналов (включая коммуникационные каналы кластеров); количество и доступность свободных узлов кластеров; состояние выполняемых заданий на узлах; доступность, текущая производительность и

©

загрузка узлов, используемых для хранения данных мониторинга. При наличии большого количества необходимых для качественного мониторинга объектов РВС резко увеличивается нагрузка на коммуникационную сеть, ограниченную ее пропускной способностью. Информация о состоянии объектов мониторинга является фоновой по отношению к основной - пользовательской и служебной (управляющей) информации, объемы которых непосредственно влияют на уровень обеспечения качества обслуживания пользователей -время обслуживания запросов и приложений, суммарное запаздывание, стоимость вычислений и т. д.

Для минимизации времени задержки на инициализацию и выполнение удаленных агентов предлагается метод оптимизации последовательности опроса узлов РВС, использующий представление РВС в виде неполносвязного графа, в котором требуется минимизировать задержку путем решения задач нахождения кратчайшего пути и кратчайшего гамильтонова цикла.

2. Анализ литературных данных и постановка проблемы

Модель реализации множеств указанных сервисов Rem_Serv можно представить в следующем виде:

тельной загрузке коммуникационных каналов, что приводит к необходимости минимизации временных задержек работы удаленных сервисов для мониторинга вычислительных кластеров и их узлов РВС, влияющих на пропускную способность каналов связи.

Для получения математической модели для оптимизации последовательности опроса объектов мониторинга РВС используем схему на рис. 1, показывающую технологию работы сервисов удаленного доступа.

На рис. 1 использованы следующие обозначения: Ri, i = 1,m,- ресурсы (вычислительные кластеры) РВС; Si, i = 1,m, - серверы ресурсов; Rij,i = 1,m;j = 1,Nm - узлы кластеров; Mi - маршрутизаторы; УУ - управляющий узел, с которого инициируется запуск удаленных агентов.

Обозначим время передачи запроса на запуск удаленного агента как tij , определяемое по формуле:

1,

j Pij j

гДе

размер инициализирующего пакета, переда-

Rem_Serv: AN х AU х ANet х AJ х xADB^jState4,State2,State3,State4} ,

ваемого между ресурсами Ri и Rj, Байт; р^ - пропускная способность коммуникационного канала между ресурсами Ri и Rj (Байт/сек); х^=1, если ресурсы Ri и Я, соединены коммуникационным каналом, 0 - в противном случае.

Тогда временная задержка пакетов для запуска агентов на всех кластерах РВС составит:

Т<1еку .

Вычислительный

где AN - множество сервисов определения доступ ности узлов; AU - множество сервисов определения загрузки (использования) узлов; AN -множество сервисов определения состояния коммуникационных каналов; AJ - множество сервисов определения состояния выполняемых заданий; ADB -множество сервисов определения состояния БД; State^ i = 1,4 -множество состояний объекта мониторинга, определяемых {OK, WARNING, CRITICAL, UNKNOWN}. Учитывая, что мощности множеств рассмотренных сервисов для мониторинга составляют [1] |AN| =2, |AU| =3, |ANet| = =3, |AJ|=4, |ADB|=6, а контролировать системному администратору и пользователям виртуальных организаций РВС необходимо, например, только два состояния объектов мониторинга WARNING и CRITICAL, минимальное количество сообщений, полученных от участвующих только в одном опросе удаленных агентов, составит 218. Учитывая, что размер одного сообщения составляет порядка 4 Кб, такой объем служебной информации приводит к значи-

1 j=i

Сервер БД

Ч^ервисы АПВ

ш

Рис. 1. Схема работы сервисов удаленного доступа в системе мониторинга РВС

После запуска команды сЬеск_пгре на серверах Si происходит инициализация и запуск удаленных сервисов на узлах вычислительных кластеров РВС. Временная задержка, определяющая запуск сервисов на узлах кластера, составит:

T

delay_Node

Rem_Serv Nm

= 2 2v

Временная задержка, определяющая запуск агентов на всех кластерах РВС определится по формуле:

т Иет_8егу

Т(Ыау ^ ^ -

i=1 к=1 1=1

Таким образом, общая временная задержка запуска удаленных агентов для мониторинга вычислительных кластеров РВС составит:

Tdelay = ^ij ^ ^^ikl.

i=1 j=1 i=1 k=1 l=1

Учитывая, что топология коммуникационных каналов РВС не является полносвязной, то есть не все ресурсы РВС соединены между собой, далее предлагается метод минимизации суммарной задержки: Tdelay ^ min. При этом предполагается, что на интервалах планирования пропускная способность коммуникационных сетей между вычислительными кластерами РВС является постоянной.

Метод решения проблемы

Решение задачи минимизации суммарной временной задержки запуска удаленных агентов на узлах РВС предлагается решить в два этапа.

Этап 1. Построение для всех опрашиваемых узлов РВС дерева кратчайших путей к остальным узлам сети, которую будем представлять в виде графа G, вершинам которого будут соответствовать узлы сети РВС, ребрам - коммуникационные каналы между узлами сети РВС. При этом длины этих ребер будут определять временную задержку передачи данных по каналам связи, объединяющим выделенные узлы в единую сеть, длины путей в дереве кратчайших путей - минимальное время доставки данных (запросов) из некоторого узла i в узел j данной сети.

Этап 2. Рассматривается полный граф из опрашиваемых узлов РВС, в котором ребрам присвоены веса tj, определяющие минимальную задержку передачи запроса от некоторого узла i к узлу j рассматриваемой сети, равную длине кратчайшего пути в дереве кратчайших путей, построенном на этапе 1. Далее для данного графа определяется обход всех этих узлов за минимальное время, то есть определяется кратчайший гамильтонов цикл. Поскольку обе задачи должны решаться в реальном времени, для реализации предлагаемых алгоритмов на этапе 1 предлагается разработать параллельную реализацию алгоритма Дейкстры на основе рангового подхода [5], этапе 2 -решить задачу определения кратчайшего обхода всех улов сети на основе решения системы квадратичных уравнений.

При решении задачи определения путей возможны случаи, когда граф, к которому сведена исходная задача, имеет положительные и отрицательные веса ребер. В литературе выделяют следующие случаи: в графе все ребра имеют положительные веса; в графе имеются ребра с отрицательными весами, но нет циклов отрицательной длины; в графе имеются циклы отрицательной длины. При решении этих задач используются следующие методы: индексные (пометок), матричные и аппаратные. Все эти методы используются для решения двух типов задач: нахождения кратчайшего пути между заданной парой вершин и нахождения кратчайших путей между всеми парами вершин в графе. Для решения задачи поиска кратчайшего пути между парой вершин лучшими являются индексные и аппаратные методы, для решения задач определения кратчайших путей между всеми парами вершин в графе - матричные методы. Одним из наиболее эффективных алгоритмов определения кратчайших путей в графе с положительными весами ребер является алгоритм Дейкстры, использование которого в графах с отрицательными весами ребер приводит к экспоненциальному росту временной сложности [5]. В случае, когда в графе есть циклы отрицательной длины, задача относится к классу _№-полных задач. Даже перечисление всех алгоритмов определения кратчайших путей не является возможным, так как количество публикаций по методам определения кратчайших путей сейчас уже превысило 200 [6]. Задача поиска гамильтонова цикла минимального веса в полном графе с целыми неотрицательными весами рёбер известна как задача коммивояжёра (ЗК). К известным методам ее решения следует отнести точные алгоритмы, полученные в работах [7, 8]. В них для решения ЗК предложен алгоритм динамического программирования, имеющий временную сложность O(2n) и использующий память M (M - максимальный вес ребра). Лучший алгоритм с полиномиальной памятью с временной сложностью O(4nnlogn) получен в работах [9, 10]. В работе [11] показано, что ЗК может быть решена за время O(22n-tnlog(n-t)) и памятью 0(2*) для любого t=n, n/2, n/4, ... В работах [12-15] предложен алгоритм для решения ЗК с временной сложностью O(2n) и памятью O(M). Остается открытым вопрос о существовании алгоритма с временной сложностью O(2n)=2n poly(n; log M ) и полиномиальной памятью [16]. В работе [17] предложен алгоритм для решения ЗК в кубических графах со временем работы 1.260n, для графов степени 4 со временем работы 1.890n. Авторы работы [18] улучшили оценку для кубических графов до 1.51n, в [19] разработан алгоритм для графов степени 4 со временем работы 1.733n и экспоненциальной памятью. Актуальность использования ЗК в различных приложениях подтверждается разработкой в последнее время эвристических алгоритмов - муравьиного алгоритма [20, 21] и его модификаций [22, 23] с временной сложностью в худшем случае O(n3). В работе [24] предложен точный алгоритм решения ЗК с временной сложностью в интервале (O(n4), O(n32n)). В работе [25] для оптимизации стоимости перевозок предложен метод решения транспортной задачи в вероятностной постановке, интерпретируемый для решения данной задачи как минимизация стоимости доставки сообщений в сетях с различной пропускной способностью.

Таким образом, проведенный анализ показывает, что получение точных решений ЗК связано с большими временными затратами. В связи с этим, целью этапа 2 является разработка метода решения ЗК с малой временной сложностью и малой погрешностью, позволяющего использовать его в системе мониторинга РВС в режиме реального времени.

3. Цели и задачи исследования

Целью исследования является решение задачи запуска удаленных агентов для системы мониторинга РВС путем оптимизации порядка их запуска на основе решения задач определения кратчайшего пути и кратчайшего гамильтонова цикла в графе, которые обеспечат повышение пропускной способности и качества обслуживания пользователей РВС.

Для достижения поставленной цели предлагается решить следующие задачи:

- разработать модель мониторинга РВС на основе сервисов удаленного доступа, обеспечивающую минимизацию времени их запуска;

- разработать эффективные методы и алгоритмы построения кратчайших путей, использующие представление коммуникационных каналов РВС в виде графа;

- разработать эффективные алгоритмы построения кратчайших гамильтоновых циклов в произвольном графе.

4. Методы решения задачи определения кратчайшего пути на основе рангового подхода

Для решения поставленной задачи воспользуемся представлением исходного графа G в виде симметричного дерева путей предложенного в работах [26, 27]. Пусть все возможные состояния некоторой системы определяется графом G(V, Е) с п вершинами, где вершины соответствуют возможным состояниям системы. Перейдем к пространству с (п-1)2 состояниями. Для этого каждому из п состояний поставим в соответствие еще (п-1) состояние, характеризующее способ достижения состояния из множества {1, 2, ..., п}. При этом в качестве добавляемых состояний определим ранг пути в графе G(V, Е): из вершины 5 графа G(V, Е) в произвольную вершину] можно попасть:

- путем ранга г=1, используя одно ребро;

- путем ранга г=2, используя 2 ребра и т. д.;

- путем ранга г=п-1, используя п-1 ребро.

Такое пространство состояний можно представить в виде стянутого дерева путей D (рис. 2).

Исходя из стянутого дерева путей, для произвольной вершины ] множество путей, ведущих в эту вершину из некоторой вершины 5, можно представить в следующем виде:

т,С) = т, и т-2 и.... и т^1;, = (1,п -1),

где т^|={тГ|} подмножества путей из произвольной вершины 5 в некоторую вершину] графа G(V, Е), ранга г. Следует отметить, что дерево всех путей D может строиться и от конкретной вершины i графа: в этом случае

вершина 5= и ^я горизонтальная линейка исключаются в D. Таким образом, используя граф D и введя правила формирования путей следующего ранга можно из произвольной вершины 5 поэтапно строить пути {|Л} произвольного ранга вплоть до ранга г=п-1. В работе рассматривается взвешенный граф, ребрам которого присвоены веса 1, где i,] - смежные вершины, которые задаются матрицей длин £={4,}. Если |18);=(5, уу, у^, ..., Vk, 0 - некоторый путь из вершины 5 в t, то его длина определяется как сумма длин ребер, образующих данный путь. Величину длины пути между вершинами i и ] обозначим d (^ 7), величину кратчайшего пути между вершинами i и7 - Р(^7).

Рис. 2. Стянутое дерево всех путей D графа G( V, Е)

4. 1. Метод решения задачи определения кратчайшего пути на основе рангового подхода

Как показано в работе [5], данная задача может интерпретироваться как задача линейного программирования на основе единичного потока минимальной стоимости. В терминах математического программирования она формулируется следующим образом: необходимо минимизировать

I №

(1)

при условии

IX,-! X, =

Х е {0,1}.

1, если 1 = я;

-1, если 1 = Ъ (2)

0, если 1 ^ Б,^

(3)

Требуется определить поток {Х,}, минимизирующий функционал (1). Если ребро (^ 7) принадлежит кратчайшему пути, то Ху=1, в противном случае - Ху=0. Значения функционала определяет Р(5, €). Ограничения (2), (3) отображают условия непрерывности пути. Задачу определения кратчайшего пути предлагается решить с помощью рангового метода, использующего переход от графа G к стянутому дереву всех путей D.

Рассмотрим некоторый произвольный граф G(V, E) с множеством вершин V и множеством ребер Е, мощность которого не превышает значения п(п-1)/ 2. Если в графе выделить свободные вершины 5 и t, то множество всех путей {|8);} между этой парой вершин можно представить в виде объединения подмножеств

Mst = м-1* и Mr=2st... и Mst-\ (4)

где Mrst - множества путей между вершинами s и t ранга r.

Пути ранга r=n-1 - пути с максимально возможным рангом - являются гамильтоновыми путями, проходящими через все вершины графа G. Таким образом, задача определения кратчайшего пути между заданной парой вершин s и t сформулирована как задача определения пути минимальной длины некоторого ранга r в множестве Mst:

minMst = min{Mr=1st, Mr=2st,..., Мг="-^}. (5)

Из (5) следует, что если в каждом из подмножеств Mrt, r = (1, n -1) определить кратчайший путь ранга r и обозначить полученное множество как Mstr,r = (1, n -1), тогда задача определения кратчайшего пути сводится к задаче определения кратчайшего пути в множестве M str:

min{M*r=1st, M*r=2st,...,M*r=n-1st}. (6)

Пусть некоторая процедура А позволяет строить кратчайшие пути между вершинами s и t произвольного ранга. Тогда в соответствии с (5), (6) требуется определить кратчайший путь между вершинами s и t. В случае определения кратчайших путей между вершиной s и всеми остальными вершинами графа G задача формулируется следующим образом: необходимо определить min |irsi = min{ ^r=1si,Цr=2si,...,^r=n-1si}, где i=(1,n), r=(1,n-1).

Переход от дерева всех путей графа к стянутому дереву всех путей D соответствует разбиению множества путей графа G на подмножества Ms,r, при этом вершины графа D рассматриваются как множества путей Ms[.

4. 2. Алгоритмы определения кратчайших путей на основе рангового подхода

В последнее время для решения задачи нахождения кратчайшего пути в графе используются многопроцессорные вычислительные структуры [4]. Построение кратчайших путей основывается на следующей процедуре А. Из вершины s строятся все возможные пути второго ранга ко всем вершинам графа G. Полученное множество путей M2 разбивается на подмножества M2i таким образом, что каждый из них заканчивался на i. В каждом подмножестве выделяется путь минимальной длины. В результате этого получается M2min - множество путей второго ранга, в котором каждый путь является кратчайшим путем второго ранга от вершины s к соответствующей вершине t. Используя множество M2min, строятся все пути ранга 3 ко всем вершинам графа. Далее полученное множество M3 разбивается на подмножества M3i, в каждом из которых определяется путь минимальной длины.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Выполнение процедуры А повторяется до получения путей максимально возможного ранга r=n-1. Очевидно, что после (п-1)-го шага повторения процедуры А будут получены все возможные кандидаты на кратчайшие пути между вершинами s и рангов r=1, 2, ..., n-1. Выбирая среди них для каждой вершины пути минимальной длины, определяем кратчайшие пути между вершиной s и остальными вершинами графа.

Таким образом, алгоритм определения кратчайших путей между заданной вершиной 5 и остальными вершинами графа реализуется следующим образом. АлгоритмА1

Шаг 1. Процедура А повторяется (п-1) раз, в результате чего получается множество минимальных путей всех возможных рангов ко всем вершинам.

Шаг 2. В каждом из полученных на шаге 1 множеств путей выбираются минимальные пути к вершине 1, которые и являются искомыми кратчайшими путями от вершины s к остальным вершинам графа G.

Утверждение 1. Алгоритм А1 позволяет определить кратчайшие пути между заданной вершиной 5 и остальными вершинами графа G.

Доказательство. Пусть процедура построила все пути ранга 1 от вершины s к остальным вершинам графа и на их базе - все возможные пути ранга г=2, то есть сформированы все подмножества М^=2. Выберем

в каждом подмножестве кратчайший путь ц[=2. Ясно,

что пути ц[=2 являются кратчайшими путями ранга г=2 к вершинам 1, поскольку на этом шаге каждое из подмножеств содержит все возможные пути ранга

г=2. Сформируем на базе путей {|/=2} в соответствии с

алгоритмом А1 все возможные пути ранга г=3, то есть подмножества М ;г"3, и выделим в каждом пути кратчайший путь |^Г3. Докажем, что полученные таким

образом пути ц[=3 являются кратчайшими путями ранга г=3 из вершины s в вершины i = (1, п), Для этого предположим, что к некоторой вершине есть

путь ц/=3, длина которого меньше, чем |/=3. Поскольку

длины путей ранга г=3 в соответствии с предложенной процедурой определяются как

ds1r=3"min ^/=2 + },1=(Ш),;=оП)4 * ^

это предположение может быть выполнено, если в графе есть более короткий путь ц/=2 ранга г=2, чем

пути ц[=2. Это невозможно, так как они в графе G являются кратчайшими путями ранга г=2.

Предположим, что алгоритм А1 построил кратчайшие пути |=к ранга г=к ко всем вершинам графа. Далее в соответствии с А1 построим на их основе все возможные пути ранга г=к+1, то есть сформируем множества М^"к+1 и в каждом множестве

МГк+1Д=(1,п) выделим кратчайшие пути |^=к+1.

Докажем, что они являются кратчайшими путями ранга г=к+1. Для этого повторим предыдущее рассуждение: предположим, что есть путь ц^^1 короче,

чем путь ||/=к1 , что противоречит первоначальному предположению о том, что построенные алгоритмом

А1 пути ц/=к являются кратчайшими путями ранга

г=к и, следовательно, пути ц/^1 действительно являются кратчайшими путями ранга г=к+1.

Таким образом доказано, что алгоритм А1 при г=3 определяет кратчайшие пути ранга г=3 и на их

основе алгоритм построил кратчайшие пути ранга г=к+1, и, следовательно, в соответствии с методом полной математической индукции алгоритм А1 позволяет определять кратчайшие пути произвольного ранга.

После (пт1)-го шага во всех множествах М^ построены пути ц^ и тогда в соответствии с соотношением (6) определены кратчайшие пути между вершиной 8 и всеми остальными вершинами графа, что и требовалось доказать.

В процессе работы алгоритма А1 для произвольных графов возможна ситуация, когда множества {Му в процессе работы алгоритма могут оказаться пустыми. Это возможно в двух случаях: когда пути текущего ранга г к вершине 1 в графе G отсутствуют, и когда путь существует, но алгоритм А1 не смог его построить -такую ситуацию назовем тупиковой. Покажем, что возникновение тупиковых ситуаций не нарушает оптимальности работы алгоритма А1. Для этого рассмотрим механизм возникновения тупиков. Тупиковая ситуация может иметь место в случае, если М/"ч+1=0. Согласно алгоритму А1 подмножество формируемых путей МТ1 может быть пустым, если вершина 1 вошла во все кратчайшие пути ранга г=д к вершинам 1 = (1,п). Сформулируем следующее утверждение.

Утверждение 2. Если в процессе работы алгоритма А1 построены кратчайшие пути следующих рангов

ц8= , ц8=2 ..... ЦГ=Ч и подмножество путей М8/"ч+1=0, то

кратчайшим путем между вершинами 5 и t является путь

* * * *

ц^т {цг=1, ц;=2 .....цг=ч}.

Доказательство. Так как подмножество М8/"ч+1=0 , то вершина 1 вошла в пути ц/=ч , представляющие собой кратчайшие пути ранга г=д из вершины 8 ко всем остальным вершинам графа 1 = (1,п). Предположим,

что есть путь ц!^1 короче пути ц8=ч+1. Это возможно, если существуют пути ц/=ч более короткие, чем пути ц8=ч ранга г=д, не проходящие через вершину 1. Однако

это противоречит предположению о том, что пути ц/=ч, проходящие через вершину 1, являются кратчайшими путями ранга г=д к вершинам 1, и, следовательно, предположение о наличии более короткого пути ц^1, чем

путь ц51, неверно, что и требовалось доказать.

Справедливость утверждения 2 вытекает из свойства, присущего всем кратчайшим путям, - любой отрезок кратчайшего пути также есть кратчайший путь между соединенными им вершинами. Из утверждения 2 следует важный вывод: если веса в матрице длин L=||lij| - положительные величины, то возникновение тупиковых ситуаций не влияет на оптимальность работы алгоритма А1, поскольку сами кратчайшие пути являются источником возникновения тупиков. Значительно сложнее решить задачу, когда в матрице весов (длин) содержатся веса отрицательной величины и есть циклы отрицательной длины. В анализируемом графе в этом случае оптимальность работы алгоритма А1 может нарушиться. В этом случае переходим к другому классу известных задач дискретной оптимизации - NP-полным задачам,

возможность решения которых на графе G требует дополнительного исследования.

Фактически предложенный алгоритм А1 отображает основное функциональное уравнение динамического программирования для данной задачи:

dLШ = тт^ПИ +1,}, (7)

где dmin [1] - минимальная длина (г-1)-го ранга от вершины 8 к вершине 1.

Так как предложенный алгоритм разворачивает процесс динамического программирования от первого шагу к последнему, то нахождение оптимального решения возможно после нахождения всех условных локальных решений и соответствующих значений локальных минимумов. При этом величины кратчайших путей от корневой вершины 8 ко всем остальным вершинам 1 определяются следующим соотношением:

dmin[i] = тт^ДШ. (8)

Использование рассмотренного алгоритма в соответствии с принципом оптимальности Беллмана [7] позволяет определить кратчайшие пути из некоторой, произвольной вершины 8 графа G ко всем остальным вершинам этого графа.

Отличительной особенностью алгоритма А1 является то, что на каждом шаге работы сравниваются величины путей одного и того же ранга. Это, в отличие от алгоритмов, основанных на методе расстановок меток, позволяет реализовать эффективное распараллеливание алгоритма определения кратчайших путей в графе.

4. 3. Алгоритм А2 (параллельная реализация алгоритма А1)

Поскольку формирование множеств путей М на каждом ранге можно производить одновременно, в соответствии с соотношениями (7) и (8) для окончания работы алгоритма А1 при его параллельной реализации необходимо (п-1) раз выполнить операции сложения и сравнения и одну операцию выбора минимального элемента в массиве, определяемую соотношением (7). После построения множества путей Мг+1 в множествах предыдущего ранга Мг необходимо сохранять только экстремальные значения dгmin, следовательно, объем памяти, необходимой для реализации алгоритма А2, определяется множеством путей, формируемых на данном ранге. Количество таких путей равно п2-3п+2, так как в каждом подмножестве Мг1 содержится (п-2) пути ранга г и число таких подмножеств равно (п-1). Временная сложность алгоритма А2 не превышает О(п), требуемый объем памяти - 0(п2). Временная сложность алгоритма А2 в последовательном варианте его реализации не превысит 0(п3). Следует отметить, что быстродействие алгоритма А2 может быть повышено, если в процессе выполнения уравнения (7) в каждом из формирующих множеств Мг ввести дополнительную проверку:

dmin [1] * dm+iln [1]. (9)

Если на ранге г выполняются соотношения (9) для всех подмножеств, то дальше использовать его не следует, так как все полученные на следующих шагах величины путей более высокого ранга будут заведомо

длиннее, чем кратчайшие пути, полученные до ранга г+1. В худшем случае, когда кратчайшим путем есть гамильтонов путь, временная сложность равна О(п). Последняя ситуация встречается довольно редко, и введение проверки неравенства (9) позволит значительно уменьшить количество шагов в процедуре А2. Если определяется кратчайший путь в графе ранга г, то он будет найден на (г+1) шаге. Необходимая память для реализации предложенного алгоритма пропорциональна О(п2).

Практическая реализация А2 осложняется тем, что для построения на их основе параллельных архитектур вычислительных систем, в процессорных элементах необходимо иметь (п-1) группу регистров для промежуточного хранения путей и при этом, если сеть задается неполным графом, большая часть регистров не используется, что существенным образом ограничивает размерность решаемых задач. Предположим,

ножестве m' . Тогда самый короткий путь от вершины

s к вершине j равен

mSJ = minim j mSJ>.....- m4}.

Обозначим длину пути msj как d(|msj) и назовем ее

локальным экстремумом ранга г к вершине j, d(|msj) -глобальным экстремумом ранга г к вершине j, и длину

*г *г

d(msj)=min{msj} - глобальным экстремумом на ярусе. j j j

Тогда задача определения КП может быть сформулирована как задача определения глобальных экстремумов в пространстве, определяемом стянутым деревом путей. Используя свойство, что любой отрезок КП является также КП между вершинами, определяющими данный отрезок, построим следующую процедуру определения КП между заданной вершиной s и всеми остальными вершинами произвольного графа G(V, E).

4. 4. Алгоритм A3

Шаг 1. Из вершины s строим пути т^1, ] = (1, п -1), выделяем в них локальные экстремумы и находим

*г=1

среди них глобальный экстремум d(|msj) на ярусе. Вершину j исключаем из дальнейшего анализа.

Шаг 2. На основе пути, соответствующего текущему глобальному экстремуму на ярусе, строим все возможные пути множества т^=г+1 и подтягиваем в них пути, соответствующие локальным экстремумам предыдущего ранга. После этого определяем локальные экстремумы во множествах т^"1 и среди них выделяем глобальный экстремум на ярусе (г+1), соответствующий некоторой вершине Вершину ] исключаем из дальнейшего анализа.

Шаг 3. Проверяем, имеет ли место равенство г=п-1; если нет, то переходим к выполнению шага 2, иначе алгоритм заканчивает работу.

Поясним работу данной процедуры на примере. Пусть требуется определить КП в графе G, приведенном на рис. 3, от вершины 1 ко всем остальным вершинам графа. Процесс работы процедуры на всех ее шагах работы показан в табл. 1, в которой каждый

квадрат соответствует вершине в стянутом дереве путей. В табл. 1 показаны пути, построенные процедурой на всех ярусах, причем символом * помечены пути, соответствующие локальным экстремумам, а символом ** - пути, соответствующие глобальным экстремумам на ярусах (в скобках возле каждого пути указана его длина).

Таблица 1

Процесс построения дерева кратчайших путей

12(1)** 2

2 2 2 12(1)

123(2)** 13(5)3

13(5)* 3 3 3 123(2)

1234(4) 124(4)** 4

4 124(4)* 4 4 124(4)

1245(5)** 1235(6)5

5 5 1235(6)* 5 1245(5)

г=1 г=2 г=3 г=4 -

Следует отметить, что коэффициент ускорения для алгоритма А2 составляет п2/^2п, а для алгоритма - А3 п^2п, однако в алгоритме А2 максимальное число путей, формируемых во множествах т^ на произвольных рангах, не превышает (п-1), а для алгоритма А3 - двух путей. Но при этом алгоритм А2 всегда должен строить пути ранга г=п-1, а алгоритм А3 - до некоторого значения Гк, определяемого неравенством (9). Результаты экспериментальных исследований средних значений рангов кратчайших путей в произвольных графах с весовыми характеристиками, изменяющимися по равномерному закону, для графов с числом вершин от 25 до 70 с плотностями ребер в диапазоне от 0,125 до 1 позволили получить следующие значения Гк (табл. 2).

Таблица 2

Значения среднего ранга кратчайших путей

n 25 30 35 40 45 50 60 70

rk 7 8 8 8 9 9 9 10

max г 11 11 11 12 12 12 14 12

Таким образом, коэффициент выигрыша алгоритма А2 по отношению к алгоритму А3 определяется величиной п/гк.

Для реализации первого этапа предлагаемого метода решения поставленной задачи целесообразно использовать предложенную параллельную реализацию алгоритма Форда (алгоритм А2) и алгоритм Дейкстры (алгоритм А3) на основе рангового подхода.

5. Разработка метода решения задачи нахождения кратчайшего гамильтонова цикла

Для реализации этапа 2 решения поставленной задачи рассматриваемого подхода необходимо разработать эффективный алгоритм определения кратчайшего гамильтонова цикла (КГЦ).

5. 1. Формализация задачи КГЦ

Рассмотрим произвольный полный неориентированный граф G(V, Е) с п вершинами и т ребрами,

что известны самые короткие пути msj в каждом подм

пронумерованными от 1 до т. Каждой вершине i графа инцидентно (п-1) ребро. Поставим в соответствие каждому г-му ребру переменную Хг, которая принимает значение, равное 1, если ребро входит в гамильтонов цикл, и равное 0 - в противном случае. Множество всех таких переменных обозначим W, мощность этого п(п -1)

множества равна ---. Тогда сумма переменных

п-1 2

XХг, входящих в гамильтонов цикл для каждой

г=1

вершины 1, должна удовлетворять условиюXХг=2.

г=1

Следовательно, система булевых уравнений

Таблица 3

XХг=2, 0=1), XХг=2 (i=2),..., XXг=2(i=n)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

(10)

описывает все возможные циклы в графе G(V, Е), то есть для описания произвольного цикла в графе G(V, Е) необходимо выделить такое подмножество переменных {Хг}, чтобы в каждом уравнении в (10) присутствовало ровно по две переменные. Если каждое ребро г и, соответственно, каждая переменная Хг имеет весовую характеристику Рг то, если в каждом 1-м уравнении системы выделить подмножество таких переменных {Хг}, что в каждом уравнении (10) присутствует по две переменных и сумма весов переменных - минимальна, то данное подмножество образует цикл из ребер графа, и он будет иметь минимальную длину. Например, граф G, приведенный на рис. 3 с матрицей весов Р и нумерацией ребер, приведенной на рис. 4, можно представить в виде следующей системы булевых уравнений:

Рис. 3. Граф G

Рис. 4. Нумерация ребер графа G

Х1 + Х2 + Х3 — 2

Х1 + Х4 + Х5 — 2 Х2 + Х4 + Х6 — 2

Х3 + Х5 + Х6 — 2

i — 1, i — 2, i — 3, i — 4,

(11)

и при этом каждое ребро в (11) характеризуется весовой характеристикой Рг. (табл. 3).

Описание графа на рис. 4

Хг Х1 Х2 Х3 Х4 Х5 Хб

Концевые вершины ребра, (г, ;) (1,2) (1,3) (1,4) (2,3) (2,4) (3,4)

Вес ребра, Рг 0 2 1 1 2 0

Для того чтобы произвольное уравнение в (10) выполнялось, в нем должны присутствовать только две переменные, равные 1, а остальные должны быть равны нулю, поскольку в гамильтонов цикл входит только по два ребра, инцидентных каждой вершине к Обозначим множество всех возможных сочетаний пар переменных Х1Хк в каждом 1-м уравнении через П;. Тогда мощность этого множества будет равна

(п - 1)(п - 2)

а — а — -

2

так как для полного графа значения а; во всех уравнениях будут одинаковы. Тогда уравнения (10) можно представить в следующем виде:

X ХХ — 1, i — 1;

Х1Хк еП ¡—1

X

Х1Хк еП ¡—2

(12)

В соответствии с (12) уравнения (11) можно представить в виде:

Х1Х2 + Х1Х3 + Х2Х3 — 1; i — 1,

Х2Х4 + Х2Хб + Х4Х6 — 1; i — 3,

(13)

Пары Х1Хк в выражениях (12) и (13) будем характеризовать суммарной весовой характеристикой

Р„,

Р

переменных Х1иХк соответственно. Особенностью решения системы (12) является то, что подмножества переменных {Хг}, удовлетворяющих системе квадратичных булевых уравнений (12), должны иметь в каждом из уравнений этой системы только по две переменных, равных 1, чтобы этот набор определял гамильтонов цикл в графе G(V, Е). Таким образом, задачу определения кратчайшего гамильтонова цикла в графе G(V, Е) можно рассматривать как задачу определения подмножества переменных {Хг}, удовлетворяющих системе квадратичных булевых уравнений (12) и имеющего минимальную суммарную весовую характеристику.

Каждое 1-е уравнение в (12) будем характеризовать величиной А; — ртах -рт1п, определяемой как разность между максимальной весовой характеристикой слагаемого и минимальной весовой характеристикой слагаемого в г-м уравнении и весовой характеристикой

а,

у. — X Р - Р;т1п.

1—1

Для уравнений (13) в соответствии с табл. 3 эти характеристики будут иметь вид

Х1Хк — 1, 1 — 2

Х1Хк — 1, 1 — п.

i = 1) X12X2 +XjX3+X2X3 = 1; A1 = 2; y 1 = 5, i = 2) X11X4 +x1x5+X4X5 = 1; A2 = 2;y2 = 5, i = 3) X2X4 +X22X6 + X4X6 = 1; A 3 = 2; y 3 = 5, i = 4) X3X5 +X3X6 + X5X6 = 1; A4 = 2;y4 = 5.

(14)

В уравнениях (14) над каждой парой переменных Х,Хк указана сумма весовых характеристик р и Рк переменных Х!иХк соответственно. Выделим в системе (14) базовое уравнение, определяемое на основе максимального значения параметра Д!. В случае, если максимальные значения окажутся равными, то в качестве базового уравнения выбирается то, которое имеет большее значение параметра у¡; в случае, если Д1 и у1 окажутся равными, то в качестве базового уравнения выбирается любое из них. Так как в (14) в уравнениях параметры Д1 и у1 равны, то любое из них может быть выбрано в качестве базового уравнения. Поскольку каждая пара переменных соответствует объединению пары ребер 1 - р- то далее вместо уравнений (12) рассматриваются последовательности пар ребер, соответствующих парам переменных XX в (12). Таким образом, вместо уравнений (14) рассматриваются последовательности ребер следующего вида:

0 2 0 1 2 1 1 = 1)2-1-3; 2 -1-4; 3 -1-4;

0 1 0 2 12 1 = 2)1 - 2 - 3;1 - 2 - 4;3 - 2 - 4;

2 1 2 0 10 1 = 3)1-3 - 2; 1-3 - 4; 2 - 3 - 4;

12 10 2 0 1 = 4)1-4-2; 1-4-3; 2-4-3.

(15)

Над ребрами показаны их весовые характеристики, при этом каждая последовательность имеет те же ха-рактеристикиД1 и у¡, что и соответствующие уравнения в (14). Для решения системы уравнений (12) в последовательностях (15) необходимо указать в каждой последовательности одну пару ребер таким образом, чтобы они образовали цикл минимальной длины.

5. 2. Процедура формирования одного цикла В

Построение цикла начинается с последовательности, соответствующей базовому уравнению, выбирая в ней пару ребер с минимальным суммарным весом. Положим, что, например, пусть это будет пара ребер 1 - s - ] с суммарным весом (р + Р^ ). Далее формирование цикла может осуществляться на основе объединения с другой парой ребер: либо по ребру 1 - s, либо по ребру s - Если осуществляется формирование цикла по ребру s - то осуществляется переход на последовательность 1 = ] и просматриваются в этой последовательности все пары ребер, содержащие ребро s -и среди них выбирается пара ребер с минимальным суммарным весом. Пусть это будет пара ребер s - ] - ^ Далее осуществляется объединение с другой парой по ребру ] - ^ для чего осуществляется переход на последовательность 1 = t и в этой последовательности просматривается все пары ребер, содержащие ребро ] - ^ и среди них выбирается пара ребер с минимальным суммарным весом - пара ] -1 - ^ На данный момент сформирована цепочка 1 - s - ] -1 - q, и далее аналогич-

но, переходя на последовательность i = q, снова просматриваются в этой последовательности все пары ребер, содержащие ребро t - q и среди них выбирается пара ребер с минимальным суммарным весом. Процедура продолжает работу до тех пор, пока не просмотрится (п-1) последовательность, соответствующая системе уравнений (12). Последнюю последовательность можно не посещать, поскольку в ней гарантировано содержится ребро, замыкающее данную цепочку, так как в нем находятся все возможные сочетания ребер по два, инцидентных вершине, соответствующей номеру данной последовательности. При этом в процессе формирования цепочки на этапах выбора пары ребер, с помощью которой можно продлить цепочку, из анализа будут исключаться пары ребер вершины, которые уже присутствуют в цепочке или образуют ранний цикл. Таким образом, если сформирована цепочка i - s - j -1 - q и на основе ребра t - q в q-й последовательности ищутся подмножества ребер, содержащих ребро t - q, то исключаются из анализа пары вида t - q - s, t - q - j, так как вершины s, j уже содержатся в сформированной цепочке, а также исключается пара вида t - q - i, если число ребер в цепочке меньше n, поскольку она образует ранний цикл.

На основе процедуры В предлагается следующая процедура A4 определения кратчайшего гамильто-нова цикла на основе решения системы уравнений (12), представленной последовательностями наборов ребер вида (14), соответствующих уравнениям системы (12).

5. 3. Процедура A4

Шаг. 1. Для последовательностей пар ребер, определяемых уравнениями (12), рассчитываются характеристики A; и y¡; выбирается последовательность, определяемая как базовое уравнение.

Шаг 2. В базовой последовательности выделяются пары ребер с минимальным весом (их, в общем случае, может быть X), которые включаются в множество U1. Таким образом, сформированы ребра первого яруса.

Шаг 3. Путем применения процедуры В выбирается пара ребер i - s - j из Uj, X:=X-1, далее подсоединяется следующее ребро, или, если при выборе минимальной пары число минимальных одинаковых пар равно h, h ребер. Таким образом, сформированы ребра следующего яруса.

Шаг 4. На основе всех ребер, сформированных на предыдущем ярусе, используя процедуру В формируются ребра следующего яруса.

Шаг 5. Проверяется, равно ли число построенных ярусов п-1; если нет, то осуществляется переход к выполнению шага 4, иначе выполняется следую-щий шаг.

Шаг 6. Из всех построенных циклов выбирается цикл минимальной длины и заносится в множество U2.

Шаг 7. Проверяется равенство X = 0 , если оно не выполняется, то осуществляется переход к выполнению шага 3, иначе выполняется следующий шаг.

Шаг 8. Из множества U2 выбирается самый короткий цикл.

На этом процедура заканчивает работу, так как кратчайший гамильтонов цикл найден.

Рассмотрим пример работы процедуры A4 для 6-вершинного полного графа, заданного набором ребер {Xr} с весовыми характеристиками {Pr} (табл. 4).

Таблица 4

Описание 6-вершинного полного графа

Хг Х1 Х2 Х3 Х4 Х5 Х6 Х7 Х8 Х9 Х« Х11 Х12 Х13 Х14 Х15

Концевые вершины ребер, (у) (1,2) (1,3) (1,4) (1,5) (1,6) (2,3) (2,4) (2,5) (2,6) (3,4) (3,5) (3,6) (4,5) (4,6) (5,6)

Веса ребер, Рг ° ° 1 1 ° ° 1 °,5 1 1 1 1 ° 1 °

Для данного графа уравнения (12) и их характеристики Д! и у! будут иметь следующий вид:

1) Х1°Х2 +х1хз + Х11Х4 + хД5 + Х2Х3+Х2Х4+ + Х2°Х5 + Х3Х4 + Х3Х5 + Х4Х5 = 1; Д1 = 2; у 1 = 8,

° 1 ° ,5 11 °,5

2) Х1Х6 + Х1Х7 + Х1Хд + Х1Х9 + ХдХу + ХдХд +

+ Х6Х9 + Х7Х8 + Х7Х9 + Х;Х9 = 1; Д 2 = 2; у 2 = 10,

° 1 1 111

3) Х2Х6 +Х2ХЮ+Х2Х11+Х2Х12 + ХбХю+ХбХц+

12 2 2 + Х6Х12 + Х1°Х11+ Х1°Х12 + Х11Х12 = 1; Д3 = 2;Т 3 = 12,

2 2 1 2 2 1 4) Х3Х7 +Х3Х1° + Х3Х13 + Х3Х14 + Х7Х1° + Х7Х13 +

+ Х7Х14 + Х°Х3 + ВД, + Х13Х14 = 1; Д4 = 1; у 4 = 15,

1,5 2 1 1 1,5 °,5

5) Х4Х8 +Х4Х11 + Х4Х13 + Х4Х15 + Х8Х11 + Х8Х13 +

°,5 1 1 °

+ Х8Х15 + Х11Х13+Х11Х15 + Х13Х15 = 1; Д 5 = 2;у 5 = 12,

11 1 ° 2 2 6) Х5Х9 +Х5Х12 + Х5Х14 + Х5Х15 + Х9Х12 + Х9Х14 +

+ Х9Х15 + Х12Х14 + Х12Х15 + Х14Х15 = 1;Д2 = 2;У6 = 13*. (16)

Составляются последовательности ребер, соответствующие уравнениям (16) (в последовательностях над каждым ребром показана его весовая характеристика):

°° ° 1 °° °° ° 1 1) 2 -1-3; 2-1 - 4; 2 -1-6; 2 -1 -5; 3-1 - 4;

1 ° ° ° 11 ° 1 1 ° 5-1-3; 6-1-3; 4-1-5; 6-1-4; 5-1-6;

2) 1 ° ° - 2 - 3; ° 1- 1 2 - 4 ° 1- °,5 2 - 5; ° 1- -2-6; 1 4- ° 2 - 3

° 5 ,5 ° - 2 - 3; ° 3 - 1 -2 - 6 4- °,5 - 2 - 5 4 1 1 - 2 - ;; 6 1 °,5 — 2 -

3)1 ° ° - 3 - 2; ° 1- 1 3 - 4 ° 1- 1 3 - 5; ° 1- 3 --6; ° 2 - 1 3 - 4

2 1 -3 - 5; ° 2 - 3 --6- 1 4 - 1 -3 - 5; 4 1 -3 - 6 1 5 - 1 -3 - 6

4)1 1 1 - 4 - 2; 1 1- 1 4 - 3 1 1- ° 4 - 5; 1 1- 4 --6; 1 2 - 1 4 - 3

2 ° -4 - 5; 1 2 - 4-& 1 3 - ° -4 - 5; 3- 1 -4 - 6 ° 5 - 1 -4 - 6

I °,5 11 1 ° 1 ° °,5 1

5)1 - 5 - 2; 1 - 5 - 3;1 - 5 - 4;1-5 - 6;2 - 5 - 3;

°,5 ° °,5 ° 1 ° 1 ° ° °

2 - 5 - 4;2 - 5-6;3-5-4;3-5-6;4-5-6;

° 1 ° 1 ° 1 ° ° 11

6)1-6 - 2; 1-6 - 3; 1-6 - 4; 1 - 6 - 5*; 2 - 6 - 3;

II 1 ° 11 1 ° 1 °

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

2-6-4; 2-6-5; 3-6-4; 3-6-5; 4-6-5*. (17)

В последовательности, соответствующей базовому уравнению (она помечена звездочкой), выбирается

пара ребер с минимальным суммарным весом - это

° °

ребра 1-6 - 5 - с суммарной весовой характеристикой,

равной Далее на основе ребра 6-5 (это ребро первого яруса) формируются ребра следующего яруса. Для этого в последовательности 5) ищется пара ребер, содержащая ребро 6-5 с минимальным весом, которую

можно подсоединить к предыдущей. Такой парой яв-

° °

ляется последовательность ребер 4 - 5 - 6, и таким образом, сформированы ребра второго яруса. Объединяя

° ° ° ° ° ° °

пары 1-6-5 и 4-5-6, получим цепочку 1 -6-5-4.

Далее в последовательности 4) ищется пара (пары),

содержащая ребро 5-4 с минимальным весом - таки-

1 ° 1 ° ° 1 ми парами являются ребра 1-4 -5; 3-4-5; 5-4-6.

1 °

При этом подсоединение пары ребер 1-4 -5 при° ° ° 1

водит к образованию раннего цикла 1 - 6 -5 - 4-1, а

° 1

подсоединение пары 5-4-6 невозможно, поскольку вершина 6 уже присутствует в решении. Поэтому можно подсоединить к предыдущему решению

1 ° 1 °

либо пару 3-4-5, либо 2-4-5, имеющие одинаковый

вес (сформированы ребра третьего яруса). Объединяя их с предыдущим решением, получим две ветки:

° ° ° 1 ° ° ° 1

1-6-5-4-3 и 1 -6-5-4-2. Сначала продолжается

построение первой ветки: для этого основе ребра 4-3 формируются ребра четвертого яруса, для чего в 3) последовательности ищется пара, содержащая ребро 4-3 с минимальным весом. Такой парой являются ребра

° 1 ° 1 ° 1

2 - 3 - 4 и 1-3 - 4, но объединение с 1-3 - 4 приводит

° ° ° 1 °

к получению раннего цикла 1-6 - 5 - 4 - 3-1, поэтому

° 1

объединяется 2 - 3 - 4 с предыдущим решением, что

° ° ° 1 °

приводит к решению 1 - 6-5 - 4 - 3 -2 . Далее на основе ребра 3-2 во 2) последовательности формируются ребра пятого яруса, ищется пара, содержащая ребро 3-2

с минимальным весом. Такой парой являются ребра

° °

1- 2 - 3, объединение которых с предыдущим решени-

0 0 0 1 0 0 ем позволяет получить 1-6-5-4-3-2-1. Получен цикл, поскольку номер яруса стал равным 6-1=5, и при этом во всех последовательностях присутствует пара ребер и в последовательности 1), которую не анали-

0 о

зировалась, - это пара 2-1-6 из данного цикла. Аналогичным способом строится вторая ветка, которая 0 0 0 1 0 0 будет иметь вид 1 - 6 - 5 - 4 - 2 -3-1, являющаяся циклом с длиной, равной 1. Поскольку оба цикла имеют одинаковую длину, то они в исходном графе являются кратчайшими. Следует отметить, что наращивание цепочек ребер можно вести в любую сторону и при этом результат не изменится.

Рассмотрим еще один пример с полным 6-вершин-ным графом, в котором всем ребрам, образующим цикл 1-2-3-4-5-6-1, присвоен вес, равный нулю, а остальным ребрам - произвольным образом присвоены веса, равные 1 и 0. Особенностью данного графа является то, что длины всех кратчайших гамильтоновых циклов в нем равны 0. Граф задается следующим набором ребер (Хг| с весовыми характеристиками (Рг| в виде табл. 5.

Составим последовательности ребер, соответствующие уравнениям (12):

1) 2 -1 - 3; 2 -1-4; 2 -1 - 6; 2 -1 - 5; 3 -1 - 4;

1 0 5 -1 - 3; 0 0 6 -1 - 3; 1 1 4 -1 - 5; 0 1 6 -1 - 4; 1 0 5 -1 - 6;

0 0 2) 1 - 2 - 3: 0 1 ; 1 - 2 - 4: 0 0 ; 1 - 2 - 5; 0 0 1 - 2 - 6; 1 0 4 - 2 - 3;

0 0 5 - 2 - 3; 0 0 3 - 2 - 6; 1 0 ; 4 - 2 - 5 1 0 ; 4 - 2 - 6 0 0 ; 6 - 2 - 5;

0 0 3) 1 - 3 - 2 0 0 ; 1 - 3 - 4 0 0 ; 1 - 3 - 5: 0 1 ; 1 - 3 - 6; 0 0 2 - 3 - 4;

0 0 2 - 3 - 5; 0 0 2 - 3 - 6; 0 0 ; 4 - 3 - 5 0 1 ; 4 - 3 - 6 0 0 ¡; 5 - 3 - 6;

1 1 4) 1 - 4 - 2 1 0 ; 1 - 4 - 3 1 0 ; 1 - 4 - 5: 1 0 ; 1 - 4 - 6; 1 0 2 - 4 - 3;

1 0 2 - 4 - 5; 1 0 2 - 4 - 6; 0 0 ; 3 - 4 - 5 0 0 ; 3 - 4 - 6 0 0 ¡; 5 - 4 - 6*

1 0 5) 1 - 5 - 2; 1 0 ; 1 - 5 - 3; 1 0 1 - 5 - 4; 1 0 1 - 5 - 6; 0 0 2 - 5 - 3;

0 0 2 - 5 - 4; 0 0 2 - 5 - 6; 0 0 3 - 5 - 4 0 0 ; 3 - 5 - 6 0 0 ; 4 - 5 - 6;

0 1 6) 1 - 6 - 2: 0 1 ; 1 - 6 - 3: 0 1 ; 1 - 6 - 4; 0 0 1 - 6 - 5; 1 1 2 - 6 - 3;

1 1 2 - 6 - 4; 1 0 2 - 6 - 5; 1 1 ; 3 - 6 - 4 1 0 ; 3 - 6 - 5 1 0 ; 4 -6-5.

/

1-6-3

3-4-5-2

Ч-

3-4-6-5

/

1-3

2-1-3

1-2-3

/

5-4-6 /1\

2-3-5

(18)

Базовым уравнением является уравнение, составленное для 4-й вершины, с максимальными характеристиками А;=4 = 2 и у;=4 = 8 , соответствующая ему последовательность ребер помечена звездочкой в (18). В последовательности 4) из (18) три пары ребер имеют минимальный вес, равный 0: 3-4-5; 3-4-6; 5-4-6. На основе этих пар процедура А4 построит три дерева (рис. 5).

3-2-5

2-3-1-5

Рис. 5. Деревья, построенные процедурой А4

На рис. 5 все ребра деревьев имеют вес, равный 0, то есть процедура построила в исходном графе все кратчайшие циклы, которые можно построить на основе пар ребер 3-4-5; 3-4-6; 5-4-6. В общем случае, кратчайшие циклы, построенные от разных пар ребер, соответствующих базовому уравнению, могут иметь разную длину. Поэтому следует выбрать из них самый короткий , что реализуется процедурой А4 на восьмом шаге ее работы.

Рассмотрим вопрос оптимальности работы процедуры А4. Последовательности ребер, соответствующих уравнениям (12), можно рассматривать как множества {и;} объектов (Цг|, имеющих определенную стоимость {Сг}. Требуется выбрать по одному объекту из каждого множества таким образом, чтобы суммарная стоимость выбранных объектов была минимальной при этом после выбора очередного объекта следующий можно выбрать только в случае, если он удовлетворяет некоторым правилам И. Совокупность объектов из каждого множества и;, удовлетворяющих правилу И, будем называть полной. Роль правила И реализуется процедурой В. Работа процедуры А4 заключается в том, что в некотором множестве выбирается объект Ц^С^а) минимальной стоимости, и при этом все остальные объекты, находящиеся в этом множестве, имеют большую стоимость. Далее среди всех объектов, удовлетворяющих правилу И в множестве и;, находим следующий объект Цг+1(Ст+1п) с минимальной стоимостью, при этом стоимость Ст+11п<Сг еи;, где Сг - стоимости объектов, принадлежащих и;, но неудовлетворяющих правилам И. Процедура продолжает работать до тех пор, пока в соответствии с правилами И из всех множеств и; не будет выбрано по одному объекту с суммарной стоимостью Sd. Правило И отождествляется с процедурой В, а это значит, что если процедура А4 построила один цикл, то он является кратчайшим при условии, что каждый раз при выборе пар ребер в последовательностях нет ситуации, когда в последовательностях встречаются несколько пар ребер с минимальным весом. В дальнейшем о такой ситуации будем говорить как о некотором свойстве V. При наличии свойства V при решении уравнения (12) процедура А4 строит X деревьев всех цепочек из ребер, которые на последнем шаге замыкаются в циклы с д ветками, где X - количество пар ребер с минимальным весом в базовой последовательности с минимальным весом.

Таблица 5

Описание 6-вершинного полного графа с нулевым весом в цикле

Хг Х1 Х2 Х3 Х4 Х5 Х6 Х7 Х8 Х9 Х10 Х11 Х12 Х13 Х14 Х15

Концевые вершины ребер (1,]) (1,2) (1,3) (1,4) (1,5) (1,6) (2,3) (2,4) (2,5) (2,6) (3,4) (3,5) (3,6) (4,5) (4,6) (5,6)

Веса ребер Рг 0 0 1 1 0 0 1 0 0 0 1 1 0 0 0

Каждое дерево, построенное на основе одной из пар ребер XX с минимальным весом, принадлежащих базовой последовательности, является деревом всех кратчайших цепочек, которое можно построить на основе ребер соответствующих паре переменных Х[Хк. После того, как все деревья построены процедура А4 из всех возможных кратчайших циклов, построенных с учетом возникновения свойства V, выбирает самый короткий цикл, который и является решением рассматриваемой задачи. Следует отметить, что в принципе начало работы процедуры А4 можно начинать с любой последовательности, но в процедуре А4 выбирается базовая последовательность с наибольшим значением параметров Д, и у¡, что позволяет существенно сократить число веток при построении деревьев кратчайших цепей. Это можно пояснить на примере для графа, заданного табл. 1. Если построение начинается не с базовой последовательности ¡=6 с Д|=6 = 2 и у¡=6 = 13 , а с последовательности 1=2 с Д1=2 = 2 и у¡=2 = 1° , то в этом случае

° °

дерево цепей строится на основе пары ребер 1-2 - 3

с минимальным суммарным весом, равным °, и при этом в построенном дереве цепей будет не две ветки, а три (рис. 6).

ООО

4-5-6-1 Длина цикла равна 1

0 0 ,010

1 5_4_б_1 Длина цикла равна 2

O(n3 +n2 +2log2n + пф)ф + + log2 ф«0(п3(1 + 4т)Ф + ^2 ф).

1-2-3

1 \ о о i

6-5-4-1 Длина цикла равна 2

Рис. 6. Дерево, построенное процедурой А4на основе пары ребер 1—2—3

В худшем случае, общее число веток, построенных в деревьях кратчайших цепей процедурой А4, равно ф = Х-ц, и оно зависит от числа пар ребер минимального веса, используемых на каждом шаге работы процедуры А4. Сколько таких пар, столько и ветвлений в дереве, построенных процедурой А4. Оценим временную сложность работы процедуры А4.

Число пар ребер во всех последовательностях, соответствующих уравнениям (12), равно

а =

(П - 1)(n - 2) 2

поэтому для анализа одной последовательности требуется не более (n - 1)(n-2)<n2 операций сравнения. Так как требуется проанализировать n таких последовательностей, то для построения одного цикла с помощью процедуры A4 понадобится не более n3 операций сравнения. Для расчета параметров А, и у, понадобится не более n2 и 2log2n операций выбора минимального элемента из п2чисел. Поскольку общее число веток, построенных процедурой A4, равно ф, то для определения длин всех веток, содержащих по n ребер, понадобится ф-n операций сложения. Для построения всех веток для выбора ветки минимальной длины требуется еще log2 ф операций (для выбора минимального элемента из массива из ф чисел). Таким образом, общая временная сложность работы процедуры не превысит:

Ясно, что если построить деревья от всех пар ребер в произвольной последовательности без выбора минимальных элементов, то дерево будет содержать число веток, равное

(n -1)!

2 *

Процедура А4 строит не все деревья, а равное количеству пар ребер с минимальными весами, находящихся в базовой последовательности* Число веток в самом дереве зависит только от числа пар ребер с минимальными весами на каждом шаге процедуры А4* Так, в примере анализа 6-вершинного графа (табл* 4), в базовом множестве оказались две пары ребер минимального веса, и процедура А4 построила дерево, состоящее из одной ветки, то есть из множества 60 различных циклов, выполнив около 2 n элементарных операций, процедура построила кратчайший цикл* В случае задания 6-вершинного графа, заданного табл* 5, 10 ребер имеют вес, равный 0, и пять ребер - равных 1* Таким образом, в анализируемых последовательностях почти 60 % ребер участвуют в образовании минимальных пар ребер и при этом процедура строит три дерева (рис* 7), содержащие всего 7 веток, и для определения кратчайшего гамильтонова цикла процедура А4 выполнила не более 7n3 элементарных операций* Из приведенных примеров следует, что при увеличении диапазона изменения весов ребер можно ожидать, что среднее число веток, которые будет строить предложенная процедура А4, будет соизмерима с размерностью задачи n из за того, что в процессе работы процедуры А4 число пар ребер с минимальным весом на каждом шаге ее работы будет уменьшаться, и при этом алгоритм ее решения будет иметь в среднем полиномиальную сложность* Для проверки данной гипотезы проведен эксперимент* При равномерном законе распределения весов ребер определялось среднее значение числа веток, построенных процедурой А4 при изменении весовых характеристик ребер в диапазонах от 0 до 5; от 0 до 30 и от 0 до 50 и при различных значениях n* Все результаты получены с доверительной вероятностью 0,95* Погрешность предложенной процедуры при равномерном законе распределения весовых характеристик ребер графа при изменении числа вершин в диапазоне от 10 до 100 не превысила в среднем 20 %* Преимуществом данной процедуры является то, что ее можно адаптировать для решения задачи определения гамильтоновости произвольных графов, и с увеличением диапазона изменения весовых коэффициентов ребер графа число выполняемых шагов процедурой А4 уменьшается, как и погрешность ее работы*

6. Обсуждение результатов исследования предложенного метода мониторинга РВС на основе методов определения кратчайших путей и кратчайших гамильтоновых циклов в графе

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Использование двухэтапного подхода для решения задачи мониторинга РВС на основе методов, использу-

ющих ранговый подход, позволяет реализовать эффективное распараллеливание их реализации на основе технологий CUDA. Для реализации этапа 1 при числе узлов топологии РВС, равного п, требуется время, не превышающее значение O(n). Аналогично можно реализовать распараллеливание метода решения задачи на этапе 2. При этом, как показало экспериментальное исследование, с увеличением диапазона изменения временных задержек, возникающих при передаче информации между узлами РВС, что возможно при высокой интенсивности и объемах, передаваемых по коммуникационным каналам РВС данных, уменьшается время выполнения и повышается точность решения задач на этапе 2.

7. Выводы

1. Предложена модель мониторинга состояния объектов мониторинга РВС на основе минимизации суммарного времени запусков удаленных сервисов мониторинга объектов на ресурсах РВС.

2. Предложен двухэтапный метод решения задачи минимизации суммарной задержки запуска удаленных агентов, использующий на этапе 1 стянутое дерево всех путей и распараллеливание процесса решения на узлах РВС, что частично решает проблему необходимости разработки специальных архитектур для решения поставленных задач.

3. Для решения задачи этапа 2 предложен метод определения кратчайших гамильтоновых циклов с полиномиальной временной сложностью, который позволяет эффективно решить задачу определения последовательности запуска удаленных сервисов для мониторинга объектов на ресурсах РВС в реальном времени. Особенностью предложенного метода является сведение решения ЗК к задаче решения системы квадратичных булевых уравнений с задаваемыми характеристиками.

Предложенные для реализации обоих этапов методы и алгоритмы позволяют использовать технологии параллельного программирования их реализации с использованием CUDA-технологий, позволяющих значительно повысить качество работы системы мониторинга РВС.

Литература

1. Nagios - The Industry Standard in IT Infrastructure Monitoring [Electronic resource]. - Available at: http://www.nagios.org

2. Icinga. Open Source Monitoring [Electronic resource]. - Available at: https://www.icinga.org

3. Минухин, С. В. Информационные технологии реализации двухуровневой модели планирования пакетов заданий в распределенной вычислительной системе на основе решения задачи о наименьшем покрытии [Текст] / С. В. Минухин // Системи управлшня, навтацп та зв'язку. - 2015. - Вип. 1 (33). - С. 111-115.

4. Пономаренко, В. С. Методы и модели планирования ресурсов в GRID-системах [Текст]: монография / В. С. Пономаренко, С. В. Листровой, С. В. Минухин и др. - Харьков: ИНЖЭК, 2008. - 408 с.

5. Кофман, А. Методы и модели исследования операций. Целочисленное программирование [Текст] / А. Кофман, А. Анри-Лабродер. - М.: Мир, 1977. - 236 с.

6. Вагнер, Г. Основы исследования операций [Текст] / Г. Вагнер. - М.: Мир. 1973. - Т. 2. - 489 с.

7. Bellman, R. Dynamic Programming Treatment of the Travelling Salesman Problem [Text] / R. Bellman // Journal of the ACM. -1962. - Vol. 9, Issue 1. - P. 61-63. doi: 10.1145/321105.321111

8. Held, M. The Traveling-Salesman Problem and Minimum Spanning Trees [Text] / M. Held, R. M. Karp // Mathematical Programming. - 1971. - Vol. 1, Issue 1. - P. 6-25. doi: 10.1007/bf01584070

9. Gurevich, Y. Expected computation time for Hamiltonian path problem [Text] / Y. Gurevich, S. Shelah // SIAM Journal on Computing. - 1987. - Vol. 16, Issue 3. - P. 486-502. doi: 10.1137/0216034

10. Bjorklund, A. Exact Algorithms for Exact Satisfiability and Number of Perfect Matchings [Text] / A. Bjorklund, T. Husfeldt // Algorithmica. - 2008. - Vol. 52. - P. 226-249. doi: 10.1007/s00453-007-9149-8

11. Koivisto, M. A space-time tradeoff for permutation problems [Text] / M. Koivisto, P. Parviainen // ACM-SIAM Symposium on Discrete Algorithms: Proceedings of the Twenty-First Annual. - Austin, 2010. - P. 484-492. doi: 10.1137/1.9781611973075.41

12. Kohn, S. A generating function approach to the traveling salesman problem [Text] / S. Kohn, A. Gottlieb, M. Kohn // ACM '77 : Proceedings of the 1977 annual conference. - New York, USA, 1977. - P. 294-300. doi: 10.1145/800179.810218

13. Karp, R. M. Dynamic Programming Meets the Principle of Inclusion and Exclusion [Text] / R. M. Karp // Operations Research Letters. - 1982. - Vol. 1, Issue 2. - P. 49-51. doi: 10.1016/0167-6377(82)90044-x

14. Bax, E. A Finite-Difference Sieve to Count Paths and Cycles by Length [Text] / E. Bax, J. Franklin // Information Processing Letters. - 1996. - Vol. 60, Issue 4. - P. 171-176. doi: 10.1016/s0020-0190(96)00159-7

15. Bjorklund A. Determinant Sums for Undirected Hamiltonicity [Text] / A. Bjorklund // Foundations of Computer Science : Proceedings of the 51st Annual Symposium. - Washington, DC, 2010. - P. 173-182. doi: 10.1109/F0CS.2010.24

16. Woeginger, G. J. Open Problems Around Exact Algorithms [Text] / G. J. Woeginger // Discrete Applied Mathematics. - 2008. -Vol. 156, Issue 3. - P. 397-405. doi: 10.1016/j.dam.2007.03.023

17. Eppstein, D. The traveling salesman problem for cubic graphs [Text] / D. Eppstein // Algorithms and Data Structures. Lecture Notes in Computer Science. - 2003. - Vol. 2748. - P. 307-318. doi: 10.1007/978-3-540-45078-8_27

18. Iwama, K. An improved exact algorithm for cubic graph TSP [Text] / K. Iwama, T. Nakashima // Computing and Combinatorics. Lecture Notes in Computer Science. - 2007. - Vol. 4598. - P. 108-117. doi: 10.1007/978-3-540-73545-8_13

19. Gebauer, H. Finding and enumerating hamilton cycles in 4-regular graphs [Text] / H. Gebauer // Theoretical Computer Science. -2011. - Vol. 412, Issue 35. - P. 4579-4591. doi: 10.1016/j.tcs.2011.04.038

20. Могила, I. А. Вплив napaMeTpiB мурашиного алгоритму на розв'язок задач1 ко1швояжера [Текст] / I. А. Могила, I. I. Лобач, О. А. Якимець // Схщно-бвропейський журнал передових технологш. - 2014. - Т. 4, № 4 (70). - С. 18-23. doi: 10.15587/17294061.2014.26290

21. Боронихина, Е. А. Сравнение методов решения задачи коммивояжера. Ч. 3 [Текст]: материалы XIII Междунар. науч.-практ. конф. им. А. Ф. Терпугова/ Е. А. Боронихина, В. А. Сибирякова // Информационные технологии и математическое моделирование И74 (ИТММ-2014). - Томск: Изд-во Том. ун-та, 2014. - С. 18-21.

22. Курейчик, В. М. Об алгоритмах решения задачи коммивояжера с временными ограничениями [Текст] / В. М. Курейчик, А. В. Мартынов // Информатика, вычислительная техника и инженерное образование. - 2014. - № 1 (16). - С. 1-13.

23. Частикова, В. А. Разработка и сравнительный анализ эвристических алгоритмов для поиска наименьшего гамильтонова цикла в полном графе [Текст] / В. А. Частикова, К. А. Власов // Фундаментальные исследования. - 2013. - № 10. - С. 63-67.

24. Li, Y. A New Exact Algorithm for Traveling Salesman Problem with Time Complexity Interval (O(n4), O(n3*2n)) [Electronic resource] / Y. Li. - Available at: http://arxiv.org/abs/1412.2437

25. Серая, О. В. Анализ методов решения транспортных задач со случайными стоимостями перевозок [Текст] / О. В. Серая // Информационно-управляющие системы на железнодорожном транспорте. - 2013. - № 4. - С. 42-45.

26. Listrovoy, S. V. Method of Minimum Covering Problem Solution on the Basis of Rank Approach [Text] / S. V. Listrovoy, Yu. GUL // Engineering Simulation. - 1999. - Vol. 17. - P. 73-89.

27. Listrovoy, S. V. Solution method on the basis of rank approach for integer linear problems with boolean variables [Text] / S. V. Listrovoy, D. Yu. Golubnichiy, E. S. Listrovaya // Engineering Simulation. - 1999. - Vol. 16. - P. 707-725.

-□ □-

В роботi розглянуто проблему тдви-щення ефективностi роботи маг^траль-водоводiв в сучасних умовах при переходi на трьохзонш тарифи з елек-троенерги. Запропоновано ефективний метод виршення щег проблеми, заснова-ний на використанш специфiчних особли-востей маг^тральних водоводiв як сто-хастичних об'ектiв, що функщонують в стохастичному середовищ^

Ключовi слова: оптимальне стохас-тичне управлтня, ймовiрнiснi обмеження

на фазовi змтт, маг^тральний водови) □-□

В работе рассматривается проблема повышения эффективности работы магистральных водоводов в современных условиях при переходе на трёхзонные тарифы по электроэнергии. Предложен эффективный метод решения этой проблемы, основанный на использовании специфических особенностей магистральных водоводов как стохастических объектов, функционирующих в стохастической среде

Ключевые слова: оптимальное стохастическое управление, вероятностные ограничения на фазовые переменные,

магистральный водовод -□ □-

УДК 628.12, 628.14

|DOI: 10.15587/1729-4061.2015.55469]

МАТЕМАТИЧЕСКАЯ МОДЕЛЬ И МЕТОД ОПТИМАЛЬНОГО СТОХАСТИЧЕСКОГО УПРАВЛЕНИЯ РЕЖИМАМИ РАБОТЫ МАГИСТРАЛЬНОГО ВОДОВОДА

А. Д. Тевяшев

Доктор технических наук, профессор, заведующий кафедрой* E-mail: tad45@mail.ru О. И. Матвиенко

Аспирант* E-mail: olga_mat@ukr.net *Кафедра прикладной математики Харьковский национальный университет радиоэлектроники пр. Ленина, 14, г. Харьков, Украина, 61166

1. Введение

Резкое возрастание тарифов на электроэнергию и введение трёхзонного тарифа создали необходимые условия для перехода к энергосберегающим технологиям управления магистральным водоводом (МВ).

МВ представляет собой сложную техническую систему, предназначенную для транспорта воды на боль-

шие расстояния. МВ состоит из последовательности многоцеховых насосных станций (НС) и многониточных магистральных трубопроводов [1]. На входе каждой НС имеется резервуары чистой воды (РЧВ). В РЧВ первой НС МВ поступает подготовленная вода с одного или нескольких подъёмов. На выходе МВ, как правило, имеются РЧВ значительной ёмкости, используемые в качестве источников водоснабжения для городов и населённых пунктов [2].

©

i Надоели баннеры? Вы всегда можете отключить рекламу.