2013-03-29 5 views
5

Это двудольный граф, и мы хотим перечислить все максимальные полные двудольные подграфы.Найти весь максимальный полный двудольный подграф из заданного двудольного графа

Например,

множество вершин L = {A, B, C, D}

множество вершин R = {а, б, в, д, е}

края: Aa , Ab, Ba, Bb, Cc, Cd, Dc, Dd, Де

максимальный полный двудольный являются:

{A, B} - {а, Ь}

{C, D} - {C, D}

{D} - {C, D, E}

Я нашел алгоритм грубой силы, O (2^п). Я не знаю, есть ли какой-то алгоритм аппроксимации или рандомизированный алгоритм.

+0

Эта проблема NP-полная. Вопрос о приближенных методах лучше задавать в математическом или теоретическом сообществе CS, а не в программно-ориентированном. –

+0

Извините, но я размещаю ту же тему в сообществе математики, но они предложили здесь. – ColinBinWang

ответ

2

Вы можете преобразовать проблему в поиск максимальных клик, добавив ребра между каждой парой вершин в каждой части двудольного графа.

Алгоритм Брон-Кербоша можно использовать для перечисления всех максимальных клик в графе (не обязательно двудольных). Его довольно легко реализовать и имеет немного лучшую худшую временную привязку O (3^(n/3)). Существует также фиксированный параметр сжимаемой временной привязкой в ​​терминах вырождения графа.

+0

Двусторонние графы с множествами A и B и | A | > 1 или | B | > 1 никогда не может быть кликой. –

+0

@ G.Bach, вы правы. Забыл упомянуть о преобразовании, см. Редактирование. –

+0

А я вижу, да, это работает. –