Насколько тяжело эта проблема графа?

У меня есть проблема для решения для приложения для социальных сетей, и это звучит сложно: я не уверен, что его NP-полный или нет. Он пахнет, что он может быть NP-полным, но у меня нет здравого смысла для этих вещей. В любом случае, алгоритм будет для меня намного лучше.

Во всяком случае, ввод представляет собой некоторый график, и то, что я хочу сделать, это разбить узлы на два набора, чтобы ни один из них не содержал треугольник. Если это помогает, я знаю, что этот конкретный граф 3-цветный, хотя я действительно не знаю цвета.

Эвристически, "жадный" алгоритм, похоже, сходится быстро: я просто ищу треугольники в любой части раздела и разбиваю их, когда я их нахожу.

Ответ 1

Решение проблемы проблемы NP-Complete для общих графиков: http://users.soe.ucsc.edu/~optas/papers/G-free-complex.pdf и применимо не только для треугольников.

Конечно, это все равно не помогает решить вопрос для поисковой версии 3-цветных графов и треугольника (версия решения тривиально в P).

Ответ 2

Вот идея, которая может работать. Я сомневаюсь, что это идеальный алгоритм, так что другие люди, пожалуйста, постройте это.

Пройдите через свой график и сначала найдите все треугольники. Я знаю, что это кажется смешным, но, думаю, это будет не слишком плохой класс сложности. Вы можете найти любой треугольник, данный данный node является частью всего лишь следования всем его краям трех прыжков и наблюдения, если вы доберетесь до того места, где вы начали. (Я подозреваю, что есть способ получить все треугольники на графике быстрее, чем просто найти треугольники для каждого node.)

Как только у вас появятся треугольники, вы сможете разбить их так, как вам угодно. По определению, после того, как вы разделите их, больше нет треугольников, поэтому я не думаю, что вам нужно беспокоиться о связях между треугольниками или смежными треугольниками или чем-то ужасным.

Ответ 3

МОЙ ОТВЕТ НЕПРАВИЛЬНО

Я продолжу обсуждение. Пожалуйста, не голосуйте, идея может быть полезной.


Я собираюсь утверждать, что это NP-hard основано на утверждении, что раскраска 3-цветного графика с 4 цветами является NP-hard (On твердость 4-окраски 3-кодообразуемого графа).

Мы даем новое доказательство, показывающее, что NP-сложно окрасить 3-красочный граф, используя только четыре цвета. Этот результат уже известен, но наше доказательство является новым как [...]

Предположим, что мы можем разбить 3-цветный граф на 2 множества A, B, чтобы ни один из них не имел треугольника в полиномиальное время. Тогда мы можем решить 4-окраску следующим образом:

  • набор цветов A с C1, C2 и набор B с C3, C4.
  • каждый набор является 2-цветным, так как он не имеет треугольника < - ЭТО, ГДЕ Я НУЖДАЕТСЯ НЕПРАВИЛЬНО
  • 2-coloring 2-colorable graph является многочленом
  • мы имеем 4-цветный 3-цветной график в полиномиальное время

Благодаря этому сокращению, я утверждаю, что то, что вы делаете, должно быть NP-hard.

Ответ 4

Это невозможно для любого набора с 5 тесно связанными узлами, и я могу доказать это с помощью простого мысленного эксперимента. 5 тесно взаимосвязанных узлов очень распространены в социальных сетях; беглый взгляд на мой профиль facebook, найденный среди моих членов семьи и один среди группы сотрудников.

Под "плотно связанным графом" я имею в виду набор узлов, где узлы имеют соединение со всеми другими node. 5 таких узлов будут выглядеть как звезда в пятиугольнике.

Давайте начнем с набора из 5 двоюродных братьев по имени Энтони, Беатрис, Кристофер, Даниэль и Элизабет. Как кузены, все они связаны друг с другом.

1) Давайте ставим Энтони в Сборнике №1. 2) Возьмем Беатрис в Сборнике №1. 3) Наряду с Кристофером через наш алгоритм... мы не можем поместить его в коллекцию №1, поскольку это сформировало бы треугольник. Мы посадили его в сборник № 2. 4) Вдоль приходит Даниил. Мы не можем поместить его в сборник №1, потому что это сформировало бы треугольник, поэтому мы поместили его в Сборник № 2. 5) Рядом идет Элизабет. Мы не можем поместить ее в Сборник №1, потому что это сформировало бы треугольник с Энтони и Беатрисой. Мы не можем поместить ее в Сборник № 2, потому что это было бы для треугольника с Кристофером и Даниэлем.

Даже если бы мы изменили алгоритм, чтобы поставить Beatruce в Collection # 2, мысленный эксперимент завершается аналогичной проблемой. Переупорядочение людей вызывает ту же проблему. Независимо от того, как вы шагаете по ним, пятый человек не может никуда идти - это вариация принципа "pidgenhole".

Даже если вы ослабили требование спросить: "Каково наименьшее количество графиков, я могу разбить граф на треугольники, я думаю, что это превратится в вариацию проблемы Traveling Salesman без окончательного решения.

Ответ 5

Эта проблема имеет алгоритм O (n ^ 5), я думаю, где n - число вершин.