Читайте также:
|
|
Пример 1. Выделить семейство независимых подмножеств для графа, заданного списком смежности RL.
.
Решение: для решения поставленной задачи воспользуемся вышеописанным алгоритмом.
1. Выбираем из списка смежности RL строку с наибольшим числом элементов. В данном случае это строка с индексом 3.
Теперь можем записать следующее выражение:
C3 = (x 3 + x 2 x 5 x 6 x 7 x 8).
Удаляем из списка 3-ю строку и из всех остальных строк – элементы с индексом 3. В результате получим модифицированный список смежности RL1.
.
2. В списке RL1 выбираем строку с индексом 4. Записываем выражение: C4 = (x 4 + x 1 x 5 x 7 x 8). После удаления четвертой строки и элементов с соответствующими ей индексами, получим список смежности RL2.
.
3. Выбираем строку 2 и записываем выражение C2 = (x 2 + x 1 x 6 x 7). После удаления второй строки и элементов с соответствующими ей индексами, получим список RL3.
.
4. Из двух оставшихся ненулевых строк, выберем строку 1 и запишем C1 = (x 1 + + x 5).
5. Запишем произведение полученных выражений:
P =(x 1 + x 5)(x 2 + x 1 x 6 x 7)(x 3 + x 2 x 5 x 6 x 7 x 8)(x 4 + x 1 x 5 x 7 x 8).
В результате последовательного перемножения и минимизации на основе тождеств алгебры логики получим выражение:
P = x 1 x 2 x 3 x 4 + x 1 x 2 x 3 x 5 x 7 x 8 + x 1 x 3 x 4 x 6 x 7 + x 2 x 3 x 4 x 5 + x 1 x 3 x 5 x 6 x 7 x 8 + + x 1 x 2 x 5 x 6 x 7 x 8.
6. Обозначим каждую конъюнкцию в произведении следующим образом: K1, K2, K3, …, K6. Теперь «проинвертируем» каждый элемент полученного произведения, т.е. определим элементы не входящие в каждую из конъюнкций:
= x 5 x 6 x 7 x 8 + x 4 x 6 + x 2 x 5 x 8 + x 1 x 6 x 7 x 8 + x 2 x 4 + x 3 x 4.
Каждая из полученных конъюнкций соответствует независимому подмножеству. Таким образом, мы получили семейство независимых подмножеств:
y = [y1, y2, y3, y4, y5, y6],
где y1 = { x 5, x 6, x 7, x 8}; y2 = { x 4, x 6}; y3 = { x 2, x 5, x 8}; y4 = { x 1, x 6, x 7, x 8}; y5 = { x 2, x 4}; y6 = { x 3, x 4}.
Поскольку мощность максимального независимого подмножества равна четырём, то число внутренней устойчивости заданного графа h(G) также равно 4.
Данный алгоритм можно использовать также для решения задачи раскраски графа. Для этого необходимо для каждой вершины определить независимые подмножества, в которые она не входит.
Пример 2. Выполнитьраскраску графа, заданного в примере 1 на основе алгоритма Кофмана. Выпишем для каждой вершины графа те конъюнкции, в которые эти вершины не входят.
x 1 Ï K4; x 2 Ï K3, K5; x 3 Ï K6; x 4 Ï K2, K5, K6; x 5 Ï K1, K3; x 6 Ï K1, K2, K4; x 7 Ï K1, K4; x 8 Ï K1, K3, K4.
Теперь запишем полученное выражение в виде произведения этих конъюнкций:
P‘ = K4 × (K3 + K5) × K6 × (K2 + K5 + K6) × (K4 + K3) × (K1 + K2 + K4) × (K1 + K4) × (K1 + K3 + K4).
После перемножения элементов данного выражения и его минимизации получим следующее выражение:
P‘ = K1K2K3K4K6 + K1K4K5K6.
Число элементов K i в каждой конъюнкции соответствует количеству цветов, которые необходимы для раскраски графа, а каждый K i - определяет подмножество вершин, которые можно раскрасить одним цветом.
Таким образом, из полученного выражения следует, что данный граф можно раскрасить двумя способами, причем для этого потребуется либо четыре краски, либо пять.
Рассмотрим, например, конъюнкцию, содержащую четыре элемента. Это элементы K1, K4, K5, K6.Как мы уже определили ранее, конъюнкции K1 соответствуют элементы { x 5, x 6, x 7, x 8}.Следовательно, эти вершины мы окрашиваем в первый цвет.
Для определения вершин, которые будут окрашены во второй цвет необходимо определить разность:
K4 \ K1 = { x 1, x 6, x 7, x 8} \ { x 5, x 6, x 7, x 8} = { x 1}.
Окрашиваем вершину x 1 во второй цвет.
Действуя аналогичным образом мы определяем, что вершины x 2, x 4 окрашиваются в третий цвет, а вершина x 3 – в четвёртый.
Таким образом, задача раскраски графа решена, граф раскрашен четырьмя красками.
Задачу раскраски графа можно решить также решением задачи нахождения минимального покрытия независимыми подмножествами всех элементов исходного набора, как показано в следующем примере.
Пример 3. Раскрасить граф из примера 1, через решение задачи покрытия.
Решение: cоставляем таблицу, в которой строки соответствуют независимым подмножествам, а столбцы - вершинам графа.
x 1 | x 2 | x 3 | x 4 | x 5 | x 6 | x 7 | x 8 | . | |
y1 | |||||||||
y2 | |||||||||
y3 | |||||||||
y4 | |||||||||
y5 | |||||||||
y6 |
Выбираем первую строку этой таблицы. Она покрывает элементы x 5, x 6, x 7, x 8. Вторая строка перекрывает вершину x 4. Третья строка - вершину x 2. Четвертая - вершину x 1. И, наконец, шестая - вершину x 3. Таким образом, мы получили раскраску исходного графа пятью цветами.
1 вариант: 1–я краска – x 5, x 6, x 7, x 8; 2–я краска – x 4; 3–я – x 2; 4–я – x 1; 5–я – x 3.
Очевидно, что существует и второй, более оптимальный, вариант раскраски данного графа.
2 вариант: 1 – я краска – x 1, x 6, x 7, x 8 (4–я строка таблицы); 2–я краска – x 3, x 4 (6–я строка таблицы); 3–я – x 2, x 5 (3–я строка таблицы).
ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
1. Что такое число внутренней устойчивости графа?
2. Что такое независимое подмножество вершин графа?
3. Каким образом выделяется независимое подмножество вершин графа?
4. Какое подмножество вершин графа называется предельным?
5. Приведите механизм определения внутренне устойчивых подмножеств.
6. Опишите идею алгоритма выделения независимых подмножеств в графе.
7. Что такое число внешней устойчивости?
8. Приведите механизм определения внешне устойчивых подмножеств.
9. Что такое минимальное внешне устойчивое подмножество?
10. Опишите основную идею алгоритма выделения минимальных внешне устойчивых подмножеств.
Дата добавления: 2015-10-26; просмотров: 146 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Числа внутренней и внешней устойчивости графа | | | ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ |