У чому полягає складність цієї задачі графіка?


16

Давши простий непрямий графік , знайдіть підмножину вершин, таких, щоGA

  1. для будь-якої вершини принаймні половина сусідів також є в , іxAxA

  2. розмір мінімальний.A

Тобто ми шукаємо кластер, в якому принаймні половина сусідства кожної внутрішньої вершини залишається внутрішньою. Очевидне існування такого кластера очевидно, оскільки весь набір вершин завжди має властивість 1. Але наскільки важко знайти найменший (не порожній) такий кластер?V(G)

Чи є стандартна назва цієї проблеми? Що відомо про його складність?


2
Здається, що варіант проблеми Задовільний розділ . Я не знаю, чи відомий ваш варіант і чи доведено це NPC; але, ймовірно, скорочення від k-clique має спрацювати: кожен вузол вихідного графіка до вузлів "зовнішньої кліки" розміром (кожен вузол має свою зовнішню кліку). Тоді ви можете знайти нетривіальне безліч з розміру тоді і тільки тоді , коли -clique існує в вихідному графі (Ви повинні вибрати по крайней мере , вузлу, але ви повинні уникати будь-яку зовнішньої верхівки). Але це лише ідея; якщо у мене буде достатньо часу, я спробую перевірити, чи правильне зменшення. vik+1Ci2(k+1)Akk
Marzio De Biasi

@MarzioDeBiasi Дякую, після деякого пошуку я з’ясував, що проблема задовільних розділів справді пов’язана. Однак у кожному варіанті, який я міг знайти, вони шукають перегородку, а не окремий набір. Незрозуміло, як вони пов'язані. У вашому скороченні, якщо я щось неправильно зрозумів, k кліка вихідного графіка не задовольняє визначенню, оскільки кожен вузол в ньому матиме k1 внутрішніх сусідів, але принаймні k+1 зовнішніх сусідів, завдяки доданому зовнішньому кліки.
Андрас Фараго

2
Я думаю, що ця проблема відома як "оборонний союз"
Даніелло,

1
@daniello: чудово, я шукав в опитуванні IG Yero, JA Rodriguez-Velazquez, "Оборонний альянс у графах: опитування", 2013, але не знайшов слова "половина"; коли у мене буде достатньо часу, я прочитаю його уважно; цілком ймовірно, що проблема ОП відома як alredy!
Марціо Де Біасі

2
Схоже, це сформульовано як "у кожної вершини є принаймні стільки сусідів всередині, як і зовні", що таке саме, як у питанні до округлення, і, можливо, включення / не врахування самої вершини до підрахунку
daniello

Відповіді:


6

Це скорочення від Clique до вашої проблеми.

Почнемо з екземпляром 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

Тож вважаємо, що в , m a x ( d e g ( v i ) ) 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)+1 клика має щонайменше 2 ( k + 1 ) сусідів).Ci2(k+1)

Якщо - ступінь v i , ми з'єднуємо v i з 2 ( k - 1 ) - d e g ( v i ) вузлами C i .deg(vi)vivi2(k1)deg(vi)Ci

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

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

Таким чином, ми можемо побудувати набір мінімального розміру | А | = 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)


@WillardZhan: оскільки кожна вершина має ступінь 2 ( k - 1 ) за побудовою, тому якщо A містить одну вершину, вона повинна містити принаймні 2 ( k - 1 ) / 2 = k - 1 сусідів (і те саме стосується всіх вершин A ), тому | А | k . "Мінімальний розмір" k може бути досягнутий лише в тому випадку, якщо A - клітина розміром k . G2(k1)A2(k1)/2=k1A|A|kkAk
Marzio De Biasi

@WillardZhan: Я додав ще одну умову до стартової проблеми кліку (але вона повинна залишатися NPC) ... Я все ще перевіряю її (не повністю переконаний у її правильності).
Marzio De Biasi

1
Так, зараз він ідеально працює (хоча це має бути у виразі t ). Можливо, я видалю свої коментарі? kt
Віллард Жан

@WillardZhan: Я думаю, що це правильно, тому що в цьому абзаці я маю на увазі скорочення від Clique [instance ] до Clique + обмеження m a x ( d e g ( v i ) ) 2 ( k - 1 ) [екземпляр ( G , k ) ]. t - кількість вузлів (кліки), які потрібно додати до G, щоб отримати новий екземпляр Clique, який визначає обмеження. (G,k)max(deg(vi))2(k1)(G,k)t
Марціо Де Біасі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.