У цій статті Вікіпедії про проблему Кліка в теорії графів на початку зазначається, що проблема пошуку кліки розміром K у графі G є NP-повною:
Кліки також вивчалися в інформатиці: пошук того, чи є в графіку кліка заданого розміру (проблема клики), не є повною, але, незважаючи на цей результат твердості, було вивчено багато алгоритмів пошуку кліків.
Але в цій іншій статті Вікіпедії про проблему Клика в CS йдеться про те, що вирішення проблеми для фіксованого розміру k є проблемою в P, вона може бути жорстоко вимушена в поліноміальний час.
Алгоритм грубої сили для перевірки того, чи містить графік G k-вершину, і знайти будь-яку таку кліку, яку він містить, слід вивчити кожен підграф з принаймні k вершинами і перевірити, чи утворює він кліку. Цей алгоритм потребує часу O (n ^ kk ^ 2): для перевірки є підграграфи O (n ^ k), кожен з яких має ребра O (k ^ 2), наявність яких у G потрібно перевірити. Таким чином, проблема може бути вирішена в поліноміальний час, коли k є фіксованою постійною. Однак, коли k є частиною вхідних даних до задачі, час є експоненціальним.
Щось тут мені не вистачає? Може бути різниця у формулюванні проблеми? І що означає останнє речення, що "Коли k є частиною входу до проблеми, проте час є експоненціальним". Чому існує різниця, коли k є частиною входу до проблеми?
Моя ідея полягає в тому, щоб знайти графіку розміру k у графі G, це те, що ми спочатку вибираємо підмножину розміру k вузлів від G, і перевіряємо, чи всі вони пов'язані з іншими k вузлами, що можна робити в постійному режимі час. І повторюйте це, поки у нас не з’явиться кліка розміром k. Кількість наборів k вузлів, які ми можемо вибрати з G, дорівнює n! / к! * (нк) !.