Для случая построения одного кратчайшего покрытия

Словесное описание алгоритма:

0. Считаем исходную таблицу покрытий текущей, а множество ядерных строк – пустым;

1. Находим ядерные строки, запоминаем множество ядерных строк. Текущую ТП сокращаем: вычеркиваем ядерные строки и все столбцы, покрытые ими;

2. Вычеркиваем антиядерные строки;

3. Вычеркиваем поглощающие столбцы;

4. Вычеркиваем поглощаемые строки;

5. Если в результате выполнения п.1-4 текущая ТП изменилась, снова выполняем п.1, иначе преобразования заканчиваем.

Получаются два результата: множество ядерных строк и ЦО ТП.

В случае построения минимального покрытия

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

3. При условии построения всех безызбыточных покрытий

В этом случае п.4 не выполняется – нельзя вычеркивать никакие поглощаемые строки.


Алгоритм приближенного решения задачи о покрытии

 

Покрытие, близкое к кратчайшему, даёт следующий алгоритм преобразования ТП; основанный на методе “ минимальный столбецмаксимальная строка ”.

0. Исходная таблица считается текущей преобразуемой ТП, множество строк покрытий – пусто;

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

2. Если в таблице есть невычеркнутые столбцы, то выполняется п. 1, иначе – покрытие построено.

Примечание. При подсчёте числа единиц в строке учитываются единицы в невычеркнутых столбцах.

2.6. Задачи для самостоятельной работы

 

1. Сократить до циклического остатка (ЦО) заданную ТП с помощью теорем 2.3-2.7 с гарантией построения одного кратчайшего покрытия.

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

3. Решить задачу о покрытии методом минимального столбца - максимальной строки.

4. Сравнить полученные решения и сделать выводы.

1                       2                    
А                     А                    
Б                     Б                    
В                     В                    
Г                     Г                    
Д                     Д                    
Е                     Е                    
Ж                     Ж                    
З                     З                    
3                       4                    
А                     А                    
Б                     Б                    
В                     В                    
Г                     Г                    
Д                     Д                    
Е                     Е                    
Ж                     Ж                    
З                     З                    
5                       6                    
А                     А                    
Б                     Б                    
В                     В                    
Г                     Г                    
Д                     Д                    
Е                     Е                    
Ж                     Ж                    
З                     З                    

АЛГОРИТМЫ НА ГРАФАХ

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

Общие положения

Графом G =(X, E) называется совокупность двух конечных множеств: множества точек, которые называются вершинами (Х ={ x1, …, xn })и множества связей в парах вершин ((xi, xjE), которые называются дугами или ребрами в зависимости от наличия или отсутствия направленности связи.

Ребром называются две встречные дуги (xi, xj) и (xj, xi). На графе они изображаются одной линией без стрелки (рис. 3.1). Ребро, у которoго концевые вершины совпадают, называются петлей; то же относится и к дуге.

Рис. 3.1

Если на каждом ребре задаётся направление, то граф (X, E) называется о риентированным. В противном случае граф называется неориентированным.

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

Матрицей смежности называется прямоугольная таблица, у которой число строк и число столбцов одинаково и равно числу вершин. Элементы матрицы задаются следующим образом: “1” отмечается наличие соответствующей дуги (направление принимается от буквы, именующей строку, к букве, именующей столбец), “0” - отсутствие связи вершин; “1” на главной диагонали таблицы означает наличие петли на графе.

Матрицей инцидентности называется прямоугольная таблица с числом строк, равным числу вершин графа, и с числом столбцов, равным количеству рёбер (дуг) графа. Элементы матрицы aij задаются следующим образом: “1” ставится в случае, если вершина xi инцидентна ребру (xi, xj), “0” - в противном случае.

Пример 3.1. На рис. 3.1 изображён граф, имеющий четыре вершины X ={ x1, x2, x3, x4 }, четыре дуги (x1, x3), (x2, x1), (x2, x3), (x3, x2) и два ребра (x1, x4), (x4, x5). Для вершины x1 смежными являются вершины: x2, x3 и x4, а инцидентными - дуги (x1, x3), (x2, x1) и ребро (x1, x4). Матрица смежности представлена табл. 3.1, а матрица инцидентности – табл. 3.2.

Таблица 3.1 Таблица 3.2

G x1 x2 x3 x4   G            
x1         x1            
x2         x2            
x3         x3            
x4         x4            

Взвешенным называется граф, если задана функция веса lij на дугах графа, которая характеризует, например, длину дуги (xi, xj), время пребывания на дуге, пропускную способность дуги и т. д.; чаще всего lij ³ 0.

Функция веса задаётся в матричном виде (с - конечное число):

; (3.1)

тогда в матрице смежности вместо 1 ставится c.

Для ориентированного графа определяются следующие понятия:

1. Исход вершины E (xi) - множество вершин xj, таких, что (xi, xjE.

2. Вход вершины E -1(xi) - множество вершин xi, таких что (xj, xiE.

3. Степень исхода - мощность S (xi) =½ E (xi)½ множества исхода.

4. Степень входа - мощность S -1(xi)=½ E -1(xi)½ множества входа.

Для графа (рис. 3.1) рассмотрим исходы и входы вершин x1 и x4. Имеем:

E (x1)= { x3, x4 }; (x1, x3), (x1, x4E; E (x4)= { x1, x3 }; (x4, x1), (x4, x3E;

E -1(x1)={ x2, x4 }; (x2, x1), (x4, x1E;

E -1(x4)={ x1, x2, x3 }; (x1, x4), (x2, x4), (x3, x4E.

Для тех же вершин x1 и x4 степени исхода и входа соответственно равны S (x1)=2, S (x4)=2; S- 1(x1)=2, S- 1(x4)=3.

Для неориентированного графа степень S (xi)=½ E (xi)½ вершины xi равна числу рёбер, инцидентных этой вершине.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: