Задача о максимальном K-подграфе
Автор: Бурков Владимир Николаевич, Кашенков Александр Рудольфович, Кондратьев Виктор Дмитриевич
Рубрика: Информатика и вычислительная техника
Статья в выпуске: 1 т.18, 2018 года.
Бесплатный доступ
Вводится понятие K-подграфа как подграфа, каждая компонента которого содержит не более K вершин. Ставится задача определения максимального K-графа, то есть K-графа с максимальным числом вершин. Дается решение задачи для дерева. Для случая K = 2 предложены два эвристических алгоритма. Приведен пример прикладной задачи формирования портфеля с учетом взаимозависимости проектов, алгоритм решения которой включает этап определения максимального K-подграфа.
K-подграф, дерево, эвристические алгоритмы, взаимозависимые проекты
Короткий адрес: https://sciup.org/147155242
IDR: 147155242 | DOI: 10.14529/ctcr180102
Текст научной статьи Задача о максимальном K-подграфе
Ряд задач дискретной оптимизации эффективно решается для графов, которые состоят из компонент, каждая из которых содержит не более K вершин. Чтобы применить соответствующие алгоритмы для общего случая графов, удалим из графа ряд вершин так, чтобы получившийся подграф состоял из компонент, каждая из которых содержит не более K вершин. Если число удаленных вершин невелико, то рассматриваем все варианты вхождения в решение исходной задачи удаленных вершин (таких вариантов 2 q , где q – число удаленных вершин). Сравнивая все варианты, выбираем лучший. Таким образом, задача сводится к определению подграфа, каждая компонента которого содержит не более K вершин (такой подграф назван K-подграфом ). В статье рассматриваются алгоритмы решения задачи определения K- подграфа с максимальным числом вершин (точный алгоритм для дерева и эвристические алгоритмы для случая 2-подграфа ). Приводится пример прикладной задачи формирования портфеля проектов с учетом их взаимозависимости, алгоритм решения которой включает задачу определения максимального K- подграфа.
1. Постановка задачи
Задан неориентированный граф G с вершинами.
Определение 1. K- подграфом графа G называется подграф, каждая компонента которого содержит не более K вершин.
Определение 2. K- подграф с максимальным числом вершин называется максимальным.
Заметим, что следует отличать 2-подграф как подграф, который является паросочетанием или паросочетание графа, как подмножество ребер, никакие два из которых не имеют общих вершин. На рис. 1 приведены примеры паросочетания (рис. 1а) и 2-подграфа (рис. 1б). Любой 2-подграф является паросочетанием, но не любое паросочетание является 2-подграфом (ребра паросочетания и ребра 2-подграфа выделены толстыми линиями) .
Задача . Определить максимальный K -подграф.
Дадим формальную постановку задачи для 2 - подграфа. Обозначим x i = 1, если вершина i принадлежит 2-подграфу, x i = 0 в противном случае. Задача заключается в максимизации
Ф ( X ) = Z X i (1)
i при ограничениях
X i Z X j - 1, i = 1, n , (2)
jeQi, где Qi – множество вершин, смежных с вершиной i. Задача является задачей квадратичного программирования, для которой не существует эффективных точных методов решения в общем случае.
Информатика и вычислительная техника

а) б)
Рис. 1. Примеры паросочетания

Рис. 2. Пример 1
Определение 3. Степенью куста d называется число его висячих вершин.
Теорема 1 . Если степень куста d = k , то существует оптимальное решение задачи такое, что корневая вершина не входит в K -подграф.
Доказательство. Предположим противное, то есть корневая вершина принадлежит K- подграфу. Если удалить эту вершину, то можно добавить не менее одной висячей вершины, что не меняет общего числа вершин K -подграфа. Это доказывает теорему.
Теорема 2 . Если степень куста d > k , то корневая вершина в оптимальном решении не входит в подграф.
Доказательство. Пусть корневая вершина входит в K -подграф. Удалим эту вершину. В этом случае можно добавить в K -подграф не менее двух вершин. Это доказывает теорему.
Частный случай. Пусть граф G является деревом. В этом случае имеет место Теорема 3.
Теорема 3. Если степень куста d ≤ k – 1, то существует оптимальное решение такое, что корневая вершина принадлежит K -подграфу.
Доказательство. Пусть корневая вершина не принадлежит K -подграфу. В этом случае вершина i , смежная с корневой и не принадлежащая кусту, принадлежит K -подграфу (в противном случае корневая вершина была бы включена в K -подграф). Удаляем вершину i и включаем в K -подграф корневую вершину. Число вершин K -подграфа не изменилось.
Пример 1. Рассмотрим дерево (рис. 2).
Решаем задачу для K = 2. Согласно теореме 1 существует оптимальное решение, в котором вершины 6 и 3 не входят в 2-подграф. После их удаления остаются изолированные вершины 1, 2, 4, 5 и цепь 8, 7, 9, 10. Удалив, например, вершину 9, получаем 2-подграф с семью вершинами. Пусть K = 3. В этом случае, согласно теореме 3, существует оптимальное решение такое, что вершина 7 не принадлежит 3-подграфу. После ее удаления получаем K -подграф с девятью вершинами. Такое решение является оптимальным для любого 3 < K < 10.
2. Общий случай
В случае произвольного графа G рассмотрим два эвристических алгоритма решения задачи. Для случая K = 2. Предварительно определим для каждого ребра ( i , j ) ∈ G число вершин m ij графа G , смежных с этим ребром.
Алгоритм 1 . Определяется ребро ( i , j ) с минимальным m ij . Это ребро включается в 2-подграф. Удаляются все смежные вершины. Далее процедура повторяется для оставшегося графа до получения 2-подграфа.
Алгоритм 2 . Определяется вершина i с максимальной степенью. Эта вершина исключается из 2-подграфа. Процедура повторяется до получения 2-подграфа.
Замечание . Если по ходу алгоритма встречаются ситуации теорем 1, 2, 3, то применяем соответствующие операции.
Пример 2. Рассмотрим дерево (рис. 3).

Рис. 3. Пример 2
Информатика и вычислительная техника
Применим алгоритм 1. Ребро (2, 8) имеет минимальную m 28 = 4. Включаем это ребро в 2-подграф. Исключаем ребра (1, 7), (3, 9) и вершины 6 и 12. Остался подграф из четырех вершин 4, 5, 10, 11. Можно включить только одно ребро (например, (4, 10)). Получили 2-подграф с 4 вершинами.
Применим алгоритм 2. Вершины 6 и 12 имеют максимальные степени d В = d 12 = 6. Удаляем вершину 6 и затем 12. Теперь максимальную степень имеют вершины 4 и 10, d 4 = d 10 = 5. Удаляем вершину 4 и затем 10. Ребро (5, 11) включаем в 2-подграф. Из оставшихся вершин максимальные степени имеют вершины 2 и 8. Удаляем вершину 2 и затем 8. Получили 2-подграф с шестью вершинами. Алгоритм 2 позволил получить оптимальное решение.
Пример 3 . Рассмотрим граф (рис. 4).

Рис. 4. Пример 3
Применим алгоритм 1. Минимальное m ij = 2 имеют ребра (4, 3), (7, 11) и (9, 10). Включаем их в 2-подграф. Удаляем вершины 2, 6 и 8. Осталось ребро (1, 5), которое включаем в 2-подграф. Получили 2-подграф с 8 вершинами. Алгоритм 1 дает возможность получить оптимальное решение.
Применим алгоритм 2. Максимальную степень имеют вершины 1 и 6. Удаляем вершину 1 и затем 6. Вершины 5, 7 и 11 включаем в 2-подграф. Далее можно удалить вершины 2 и 10. Получили 2-подграф с 7 вершинами. Полученное решение является оптимальным.
Приведенные примеры позволяют сделать вывод о целесообразности применять оба алгоритма и из полученных решений выбрать лучшее.
3. Пример прикладной задачи
Рассмотрим пример задачи, в решении которой применяется алгоритм определения максимального K -графа. Речь идет о формировании портфеля проектов. Каждый проект описывается эффектом ai и затратами сi . При этом некоторые проекты взаимозависимы в том смысле, что если два проекта i , j включены в портфель, то возникает дополнительный (синергетический) эффект a ij . Определим граф G взаимозависимостей. Вершины графа соответствуют проектам. Две вершины i , j соединены ребром длины a ij , если соответствующие проекты взаимозависимы.
Обозначим x i = 1, i = 1, n , максимизирующие
Tax+Zaijxixj(3)
ii при ограничении
Zc-x ^ R,(4)
i где R – величина инвестиционного фонда. Ниже будет показано, что если граф G является паро-сочетанием, то задача эффективно решается при целочисленных значениях параметров методом дихотомического программирования [1, 2]. Возникает идея исключить из графа ряд вершин так, чтобы получить паросочетание, то есть 2-подграф. Далее рассматриваем все варианты включения в портфель исключенных проектов (таких вариантов 2q , где q – число удаленных вершин, и затем выбрать лучшее решение). При небольших q метод достаточно эффективен. Таким образом, задача свелась к определению максимального 2-подграфа.
Пример 4 . Имеются 7 проектов – претендентов на включение в портфель. Данные об эффектах и затратах приведены в табл. 1.
Таблица 1
i |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
a i |
12 |
10 |
14 |
9 |
8 |
10 |
6 |
c i |
3 |
4 |
7 |
6 |
8 |
12 |
9 |
Примем R = 30. Граф взаимозависимостей представлен на рис. 5.

Рис. 5. Граф взаимозависимостей
I этап . Определяем максимальный 2-подграф. Применяем алгоритм 1. Ребра (2, 3), (3, 4), (5, 7) и (6, 7) имеют минимальные m ij , равные 2. Включаем в 2-подграф. Например, ребра (2, 3) и (5, 7). Удаляем вершины 4, 1 и 6. Получили 2-подграф с четырьмя вершинами. Поскольку число удаленных вершин q = 3, то необходимо рассмотреть 23 = 8 вариантов.
II этап. Рассматриваем 8 возможных вариантов.
Вариант 1. Ни один из проектов 4, 1 и 6 не включен в портфель. Применяем метод дихотомического программирования [1, 2]. Возьмем структуру дихотомического представления так, чтобы на нижнем уровне рассматривались пары взаимозависимых проектов (рис. 6).

Рис. 6. Дихотомическое представление
Информатика и вычислительная техника
1 шаг. Рассматриваем взаимозависимые проекты 2 и 3. Решение приведено в табл. 2.
Первое число в клетках – это эффект, второе – затраты. В клетке (26; 11) к суммарному эффекту 24 добавлен дополнительный эффект 2. Результаты сведены в табл. 3.
Таблица 2
1 |
14; 7 |
26; 11 |
0 |
0 |
10; 4 |
3 1 |
0 |
1 |
Таблица 3
Объединенный проект I
Вариант |
0 |
1 |
2 |
3 |
Эффект |
0 |
10 |
14 |
26 |
Затраты |
6 |
4 |
7 |
11 |
2 шаг . Рассматриваем проекты 5 и 7. Решение приведено в табл. 4. Результаты сведены в табл. 5. Вариант (6; 9) исключен, поскольку он доминируется вариантом (8;8).
Таблица 4
1 |
6; 9 |
17; 17 |
0 |
0 |
8; 8 |
7 5 |
0 |
1 |
Таблица 5
Объединенный проект II
Вариант |
0 |
1 |
2 |
Эффект |
0 |
8 |
17 |
Затраты |
0 |
8 |
17 |
3 шаг . Рассматриваем объединенные проекты I и II. Решение приведено в табл. 6.
Таблица 6
2 |
17; 17 |
27; 21 |
31; 24 |
43; 28 |
1 |
4; 2 |
18; 12 |
22; 15 |
34; 19 |
0 |
0 |
10; 4 |
14; 7 |
26; 11 |
II I |
0 |
1 |
2 |
3 |
Максимальный эффект 43 достигается при затратах 28.
Вариант 2 . Проект 1 включен в портфель. Решаем задачу аналогично предыдущему варианту, добавив к эффектам проектов 2 и 5 дополнительные эффекты 1 и 2 соответственно. Приведем только результат. Максимальный эффект равен 35 при затратах 22.
Вариант 3 . Проект 4 включен в портфель. Добавляем к эффектам проектов 2 и 3 дополнительные эффекты 2 и 3 соответственно. Приведем результат. Максимальный эффект равен 32 при затратах 26.
Вариант 4 . Проект 6 включен в портфель. Добавляем к эффектам проектов 5 и 7 дополнительные эффекты 4 и 5. Приведем результат. Максимальный эффект равен 26 при затратах 23.
Вариант 5 . Проекты 1 и 4 включены в портфель. Добавляем к проктам 2, 3 и 5 дополнительные эффекты 3, 3 и 2 соответственно. Учитываем также дополнительно эффект 4 взаимозависимых проектов 1 и 4. Приведем результат. Максимальный эффект равен 67 при затратах 28.
Вариант 6 . Проекты 1 и 6 включены в портфель. Добавляем к проектам 2, 5 , 7 дополнительные эффекты 1, 6, 5 соответственно. Приведем результат. Максимальный эффект равен 28 с затратами 30.
Вариант 7 . Проекты 4 и 6 включены в портфель. Добавляем к проектам 2, 3, 5, 7 дополнительные эффекты 2, 3, 4 и 5 соответственно. Учитываем дополнительный эффект 4 взаимозависимых проектов 1 и 6. Приведем результат. Максимальный эффект равен 33 при затратах 29.
Вариант 8. Проекты 1, 4 , 6 включены в портфель. Добавляем к проектам 2, 3, 5, 7 дополнительные эффекты 3, 3, 6 и 5 соответственно. Учитываем также дополнительно эффекты 4 и 4 от взаимозависимых проектов 1, 4 и 1, 6 соответственно. Приведем результат. Максимальный эффект равен 25 при затратах 28.
Сравнивая, получаем, что наилучшим является вариант 5 с эффектом 67, то есть в портфель включены проекты 1, 2, 3, 4, 5.
Рассмотрим теперь возможность решения задачи на основе 3 подграфов. Из рис. 5 видно, что, удалив вершину 1, мы получаем 3-подграф из 6 вершин. В данном случае необходимо рассмотреть два варианта вместо 8 в предыдущем случае. Однако при этом требуется определенная модификация метода дихотомического программирования. Рассмотрим ее на примере более подробно.
Вариант 1 . Проект 1 не включен в портфель.
1 шаг . Рассматриваем компоненту 1 из вершин 2, 3, 4. Возьмем структуру дихотомического представления задачи, представленную на рис. 7.

Рис. 7. Структура дихотомического представления
Рассматриваем проекты 2 и 3. Решение приведено в табл. 7. Результаты приведены в табл. 8.
Таблица 7
1 |
14; 7 |
26; 11 |
0 |
0 |
10; 4 |
3 2 |
0 |
1 |
Таблица 8
Объединенный проект I
Вариант |
0 |
1 |
2 |
3 |
Эффект |
0 |
10 |
14 |
26 |
Затраты |
6 |
4 |
7 |
11 |
Эффект от 4 |
0 |
2 |
3 |
5 |
Последняя строка показывает эффект от проекта 4, если он будет включен в портфель. В этом суть модификации метода дихотомического программирования. Рассматриваем объединенный проект I и проект 4. Решение приведено в табл. 9. Результаты приведены в табл. 10.
Таблица 9
1 |
9; 6 |
21; 10 |
26; 13 |
40; 17 |
0 |
0 |
10; 4 |
14; 7 |
26; 11 |
4 I |
0 |
1 |
2 |
3 |
Таблица 10
Компонента 1
Вариант |
0 |
1 |
2 |
3 |
4 |
5 |
Эффект |
0 |
10 |
14 |
21 |
26 |
40 |
Затраты |
0 |
4 |
7 |
10 |
11 |
17 |
2 шаг . Рассматриваем компоненту 2 из вершин 5, 6, 7. Рассматриваем проекты 5 и 6. Решение приведено в табл. 11. Результаты представлены в табл. 12.
Информатика и вычислительная техника
Таблица 11
1 |
10; 12 |
22; 20 |
0 |
0 |
8; 8 |
6 5 |
0 |
1 |
Таблица 12
Объединенный проект I
Вариант |
0 |
1 |
2 |
3 |
Эффект |
0 |
8 |
10 |
22 |
Затраты |
0 |
8 |
12 |
20 |
Эффект от 7 |
0 |
2 |
4 |
6 |
Рассматриваем объединенный проект I и проект 7. Решение приведено в табл. 13. Результаты представлены в табл. 14.
Таблица 13
1 |
6; 9 * |
16; 17 |
20; 21 * |
34; 29 |
0 |
0 |
8; 8 |
10; 12 |
22; 20 |
7 I |
0 |
1 |
2 |
3 |
Таблица 14
Компонента 2
Вариант |
0 |
1 |
2 |
3 |
4 |
5 |
Эффект |
0 |
8 |
10 |
16 |
22 |
34 |
Затраты |
0 |
8 |
12 |
17 |
20 |
29 |
3 шаг . Рассматриваем компоненты 1 и 2. Решение приведено в табл. 15.
Таблица 15
5 |
34; 29 |
– |
– |
– |
– |
– |
4 |
22; 20 |
32; 24 |
36; 27 |
43; 30 |
– |
– |
3 |
16; 17 |
26; 21 |
30; 24 |
37; 27 |
42; 28 |
– |
2 |
10; 12 |
20; 16 |
24; 19 |
31; 22 |
36; 23 |
50; 29 |
1 |
8; 8 |
18; 12 |
22; 15 |
29; 18 |
34; 19 |
48; 25 |
0 |
0 |
10; 4 |
14; 7 |
21; 10 |
26; 11 |
40; 17 |
2 1 |
0 |
1 |
2 |
3 |
4 |
5 |
Максимальный эффект равен 50.
Вариант 2. Проект 1 включен в портфель. Рассматриваем компоненту 1. Берем структуру дихотомического представления рис. 7. Рассматриваем проекты 2 и 3, добавляя к проекту 2 дополнительный эффект от проекта 1. Решение приведено в табл. 16. Результаты представлены в табл. 17.
Таблица 16
1 |
14; 7 |
27; 11 |
0 |
0 |
11; 4 |
3 2 |
0 |
1 |
Таблица 17
Объединенный проект I
Вариант |
0 |
1 |
2 |
3 |
Эффект |
0 |
11 |
14 |
27 |
Затраты |
0 |
4 |
7 |
11 |
Эффект от 4 |
0 |
2 |
3 |
5 |
Рассматриваем объединенный проект I и проект 4. Решение приведено в табл. 18. Результаты представлены в табл. 19.
Таблица 18
1 |
13; 6 |
26; 10 |
30; 13 |
45; 17 |
0 |
0 |
11; 4 |
14; 7 |
27; 11 |
4 I |
0 |
1 |
2 |
3 |
Таблица 19
Компонента 1
Вариант |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Эффект |
0 |
11 |
13 |
14 |
26 |
27 |
30 |
45 |
Затраты |
0 |
4 |
6 |
7 |
10 |
11 |
13 |
17 |
2 шаг . Рассматриваем компоненту 2 из вершин 5, 6 и 7. Рассматриваем проекты 5 и 6. Решение приведено в табл. 20. Результаты представлены в табл. 21.
Таблица 20
1 |
14; 12 |
28; 20 |
0 |
0 |
10; 8 |
6 5 |
0 |
1 |
Таблица 21
Объединенный проект I
Вариант |
0 |
1 |
2 |
3 |
Эффект |
0 |
10 |
14 |
28 |
Затраты |
0 |
8 |
12 |
20 |
Эффект от 7 |
0 |
4 * |
5 |
9 |
Рассматриваем объединенный проект I и проект 7. Решение приведено в табл. 22. Результаты представлены в табл. 23.
Таблица 22
1 |
6;9 * |
20;17 |
25;21 * |
43;29 |
0 |
0 |
10;8 |
14;12 |
28;20 |
7 I |
0 |
1 |
2 |
3 |
Компонента 2
Таблица 23
Вариант |
0 |
1 |
2 |
3 |
4 |
Эффект |
0 |
10 |
14 |
20 |
28 |
Затраты |
0 |
8 |
12 |
17 |
20 |
3 шаг . Рассматриваем компоненты 1 и 2. Решение приведено в табл. 24.
Таблица 24
4 |
28; 20 |
39; 24 |
41; 26 |
42; 27 |
– |
– |
– |
– |
3 |
20; 17 |
31; 21 |
33; 23 |
34; 24 |
46; 27 |
47; 28 |
– |
– |
2 |
14; 12 |
25; 16 |
27; 18 |
28; 19 |
40; 22 |
41; 23 |
44; 25 |
– |
1 |
10; 8 |
21; 12 |
23; 14 |
24; 15 |
36; 18 |
37; 19 |
40; 21 |
55; 25 |
0 |
0 |
11; 4 |
13; 6 |
14; 7 |
26; 10 |
27; 11 |
30; 13 |
45; 17 |
2 1 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
Максимальный эффект равен 55 + 12 = 67. Выбираем вариант 2. Состав портфеля определяем методом обратного хода. Клетке (55, 25) соответствует вариант 7 компоненты 1 и вариант 1 компоненты 2. Варианту 7 компоненты соответствует включение в портфель проектов 2, 3 и 4. Варианту 1 компоненты 2 соответствует включение в портфель проекта 5. Вместе с проектом 1 получаем, что в портфель включаются проекты 1, 2, 3, 4, 5, что и было получено ранее.
Информатика и вычислительная техника
Заключение
Введенное понятие K -подграфа оказалось полезным, как показывает решение задачи формирования портфеля взаимозависимых проектов, особенно при решении целочисленных задач квадратичного программирования. Требует дальнейших исследований задача определения максимальных K -подграфов, особенно для случаев K > 2. Представляет также интерес поиск прикладных задач, эффективно решаемых, если соответствующий граф является K -графом. Заметим также, что, как показывает пример прикладной задачи, в ряде случаев использование 3-подграфа эффективнее, чем использование 2-подграфа.
Действительно, при использовании 2-подграфа в каждом варианте делаются три элементарных шага. Поскольку вариантов 8, то требуется 24 элементарных шага. При использовании 3-подграфа число вариантов равно 2. Однако для каждого варианта требуются 7 элементарных шагов (по три шага для каждой компоненты и один шаг для обоих компонент). В целом получаем 14 элементарных шагов, что меньше 24.
Список литературы Задача о максимальном K-подграфе
- Буркова, И.В. Метод сетевого программирования в задачах нелинейной оптимизации/И.В. Буркова//Автоматика и телемеханика. -2009. -№ 10. -С. 15-21.
- Буркова, И.В. Метод сетевого программирования в задаче целочисленного линейного программирования/И.В. Буркова, А.Р. Кашенков//Теория активных систем -2011. Труды международной научно-практической конференции. -М.: Институт проблем управления РАН, 2011. -С. 25-26.