Какова сложность этой проблемы графа?

16

Для простого неориентированного графа G найдите подмножество A вершин, такое что

  1. для любой вершины хотя бы половина соседей также находится в , иxAxA

  2. размер A минимален.

То есть мы ищем кластер, в котором по крайней мере половина окрестности каждой внутренней вершины остается внутренней. Само существование такого кластера очевидно, поскольку все множество вершин V(G) всегда обладает свойством 1. Но насколько сложно найти самый маленький (непустой) такой кластер?

Есть ли стандартное название для этой проблемы? Что известно о его сложности?

Андрас Фараго
источник
2
Кажется, вариант Удовлетворительной проблемы с разделами . Я не знаю, известен ли ваш вариант и был ли он NPC; но, вероятно, сработает сокращение от k-клики: свяжите каждый узел исходного графа с k + 1 узлами C i «внешней клики» размера 2 ( k + 1 ) (каждый узел имеет свою внешнюю клику). Тогда вы можете найти нетривиальное множество A размера k тогда и только тогда, когда a kvik+1Ci2(k+1)Akk-clique существует в исходном графе (вы должны выбрать хотя бы узел, но вы должны избегать любой внешней клики). Но это всего лишь идея; если у меня будет достаточно времени, я постараюсь проверить правильность сокращения.
Марцио Де Биаси
@MarzioDeBiasi Спасибо, после некоторого поиска я обнаружил, что проблема удовлетворительного разбиения действительно связана. Однако в каждом варианте, который я мог найти, они ищут раздел, а не отдельный набор. Непонятно, как они связаны. В вашем сокращении, если я что-то не понял, клик исходного графа не удовлетворяет определению, так как каждый узел в нем будет иметь k - 1 внутренних соседей, но по крайней мере k + 1 внешних соседей из-за добавленного внешнего клики. kk1k+1
Андрас Фараго
2
Я думаю, что эта проблема известна как «оборонительный альянс»
Даниелло
1
@daniello: отлично, я искал в опросе IG Yero, JA Rodriguez-Velazquez, «Оборонительные альянсы на графиках: опрос», 2013, но не нашел слова «половина»; когда у меня будет достаточно времени, я внимательно прочитаю; вполне вероятно, что проблема ОП уже известна!
Марцио Де Биаси
2
Кажется, это сформулировано как «каждая вершина имеет как минимум столько же соседей внутри, сколько снаружи», что совпадает с вопросом до округления, и, возможно, включает / не включает в себя саму вершину в подсчете
Даниелло

Ответы:

6

Это сокращение от клики к вашей проблеме.

Начнем с экземпляром Clique: граф и целое число K , пусть V = { V 1 , V 2 , . , , , v n } .GkV={v1,v2,...,vn}

Клика остается NPC даже при условии, что (контрольный эскиз: если m a x ( d e g ( v i ) > 2 ( k - 1 ) затем добавьте K t, где t = 2 ( k - 1 ) - m a xmax(deg(vi))2(k1)max(deg(vi)>2(k1)Kt и соедините его со всеми узлами G и попросите клику размером k = k + t в новом графе).t=2(k1)max(deg(vi))Gk=k+t

Таким образом , мы предполагаем , что в , т а х ( д е г ( v я ) ) 2 ( K - 1 ) . Для каждого узла v i, для которого d e g ( v i ) < 2 ( k - 1 ), мы создаем «внешнюю» клику C i размера 2 ( k + 1 ) + 1 (каждый узел CGmax(deg(vi))2(k1)videg(vi)<2(k1)Ci2(k+1)+1Ci clique has at least 2(k+1) neighbours).

If deg(vi) is the degree of vi, we connect vi to 2(k1)deg(vi) nodes of Ci.

В полученном каждый v i имеет степень 2 ( k - 1 ) ; так | A | k, потому что должна быть выбрана хотя бы одна вершина.Gvi2(k1)|A|k

Ясно, что если одна из вершин включена в A, то в нее также должны быть вставлены не менее 2 ( k + 1 ) / 2 = k + 1 узлов. Обратите внимание, что если исходный узел имеет d e g ( v i ) < k - 1, то должен быть включен по крайней мере один узел связанного C i , что приводит к | A | > к .CiA2(k+1)/2=k+1deg(vi)<k1Ci|A|>k

Таким образом, мы можем построить набор минимального размера | A | = k тогда и только тогда, когда G содержит клику размера k .A|A|=kGk

Пример сокращения, в котором мы спрашиваем, содержит ли граф представленный желтыми узлами и полужирными ребрами, клику размером k = 3 (треугольник).Gk=3

satisfactory problem variant 30CC0991E0BCCCD16E41CBD9CD3EEECC

Синие узлы (сгруппированные для лучшей читаемости) - это , красные края - это связи между узлами G с d e g ( v i ) < 2 ( k - 1 ) .K9Gdeg(vi)<2(k1)

Marzio De Biasi
источник
G2(k1) by construction, so if A contain one vertex, it must contain at least 2(k1)/2=k1 neighbours (and the same applies to all vertices of A), so |A|k. The "minimum size" k can be achieved only if A is a clique of size k.
Marzio De Biasi
@WillardZhan: I added another condition to the starting clique problem (but it should remains NPC) ... I'm still checking it (not entirerly convinced its correct).
Marzio De Biasi
1
Yes, now it works perfectly (though it should be k in the expression of t). Maybe I shall delete my comments?
Willard Zhan
@WillardZhan: I think it's correct, because in that paragraph I'm referring to the reduction from Clique [instance (G,k)] to Clique+constraint max(deg(vi))2(k1) [instance (G,k)]. t is the number of the nodes (clique) to add to G to get the new instance of Clique that stastisfies the constraint.
Marzio De Biasi