Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700108.doc
Скачиваний:
6
Добавлен:
01.05.2022
Размер:
629.25 Кб
Скачать

2.2.3. Алгоритм Прима

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

Пусть имеется множество территориально распределенных объек­тов X={xi}, характеризуемых: географическими координатами (ai,bi); объемом информации fi, генерируемой объектом. Предполагается, что одним из объектов является "центральный" (главный) узел, выделен­ный в соответствии с некоторыми правилами - административными, территориальными и пр.

Пусть, кроме того, известны приведенные затраты Cпер,ij на передачу информации от объекта xi к объекту xj, зависящие от тра­фика fij в данном направлении и длины линий связи lij. Требуется синтезировать структуру минимальной стоимости в классе древовидных структур при ограничениях на максимальный трафик fij в каждой вет­ви (fij,dmax), где fij определяется как сумма информационных пото­ков от всех узлов, предшествующих узлу i на путях от концевых вер­шин к корню дерева, и потока hi, формируемого объектом xi.

Задача синтеза древовидной сети впервые рассматривалась в ра­боте Прима, в которой предложен точный алгоритм синтеза сети мини­мальной стоимости, но без учета ограничений на пропускные способ­ности линий связи и, как следствие, на суммарный поток, передавае­мый по ветвям. Вместе с тем доказано, что алгоритм достав­ляет оптимальное решение и состоит из следующих шагов. Пусть пер­воначально рассматривается исходное множество несвязанных объектов (вершин) X={xi}.

1. Выбирается произвольная вершина (подграф) xi и определяет­ся стоимость введения ребра (i, j), связывающего xi с некоторым подграфом xj: cij.

2. Если подграфы xi и xj состоят из нескольких вершин, то вы­бирается ребро, доставляющее топологическое расстояние между под­графами (минимум из всех пар возможных расстояний): среди всех пар (i, j) определяется такая пара (i*, j*), для которой

ci*j* = min cij.

(i,j)

3. Подграфы xi* и xj* объединяются в один: xij*= xi*xj*. На этом итерация алгоритма Прима завершается, а сами итерации повто­ряются до тех пор, пока имеются изолированные подграфы (их коли­чество на каждой итерации уменьшается на единицу).

2.2.4. Метод насыщения сечения

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

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