Сделай Сам Свою Работу на 5

Решение задач из модуля Networks





Рассмотрим сначала решение трёх простейших задач из раздела сетевые модели. Они реализованы в программе QM в модуле Networks.

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

Соответствующий список задач следующий:

· минимизация дерева расстояний;

· определение кратчайшего пути;

· определение максимального потока.

Рассмотрим их последовательно.

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

Алгоритм решения такой задачи предполагает реализацию трёх пунктов:

1. Произвольно выбирается узел сети, который соединяется с узлом сети с кратчайшим расстоянием до него.



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

3. Если все узлы сети соединены, то решение заканчиваем, в противном случае переходим к пункту 2.


Рассмотрим пример. Пусть дана сеть:

Рисунок 6.1 – Схема дорог для задачи минимизации дерева расстояний

 

Поместим данные этой задачи в окно исходных данных программы. Нумерацию пунктов будем вести в соответствии с рисунком 6.1. Зададим число дуг сети, равное 19, и введём в таблицу исходные данные. Получим после решения:

Рисунок 6.2 – Окно исходных данных и решение задачи минимизации дерева расстояний

В этом окне помечены ветви, вошедшие в решение задачи. Если соединить узлы сети по этим ветвям, то получим минимальный расход провода, равный 39 единиц.

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



1. Начальный узел сети определяем как элемент постоянного множества и затем определяем смежные с ним узлы.

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

3. Фиксируем эту ветвь и вычёркиваем другие ветви, соединяющие элементы постоянного множества с выбранным узлом смежного множества, но имеющие большую длину.

4. Присоединяем выбранный узел к элементам постоянного множества.

5. Определяем новое смежное множество узлов. Если такового нет, то решение заканчиваем, в противном случае переходим к пункту 2.

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

Рисунок 6.3 – Окно решения задачи определения кратчайшего пути в сети

Как видим, кратчайший путь от первого до 11-го узлов проходит через узлы 1 – 3 – 6 – 9 – 11 и равен по длине 21 единице.

Кроме того, при необходимости можно вывести на экран или на принтер окно с матрицей расстояний между всеми пунктами сети.

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



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

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

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

3. Уменьшим пропускную способность текущего потока для каждой ветви выбранного пути на величину с в прямом направлении и увеличим в противоположном. Последнее позволяет определить потенциальную возможность для каждой ветви сети. Затем переходим к пункту 1.

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

Рисунок 6.4 – Окно решения задачи определения максимального потока

 

Здесь приведено лишь одно окно, показывающее результаты итераций. Из рисунка 6.4 видно, что решение закончено в две итерации и максимальный поток равен 8 ед. и проходит через ветви, указанные в полных путях каждой итерации. Кроме этого, можно вывести на экран окно, в котором указана исходная информация и результаты решения для каждой ветви сети.

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.