Вход: График G Вывод: несколько независимых множеств, так что принадлежность a node ко всем независимым множествам уникальна. A node поэтому не имеет никаких связей с любым node в своем собственном наборе. Вот пример пути.
Поскольку разъяснение было вызвано здесь еще одним рефрасалом:
Разделите данный граф на множества так, чтобы
-
Я могу сказать node от всех остальных его членством в множествах, например. если node я присутствует только в наборе A, другой node должен присутствовать только в наборе A
если node j присутствует в наборах A и B, тогда никакие другие node не должны присутствовать только в наборах A и B. если членство узлов кодируется битовой схемой, то эти битовые шаблоны имеют расстояние hamming как минимум на один
-
если два узла смежны в графе, они не должны присутствовать в одном наборе, следовательно, это независимый набор
Пример: B не имеет соседних узлов D = > A, A = > D
Решение:
- A B/
- /B D
A имеет битовый шаблон 10 и не имеет соседнего node в своем наборе. B имеет битовый рисунок 11 и не смежный node, D имеет 01 поэтому все узлы располагают расстоянием не менее 1 без смежных узлов = > правильный
Неправильно, поскольку D и A связаны:
- A D B
- /D B
A имеет битовый шаблон 10 и D в своем наборе, они смежны. B имеет битовый шаблон 11 и не смежный node, D имеет 11, как и B, поэтому в этом решении есть две ошибки, и поэтому они не принимаются.
Конечно, это должно быть расширено до большего количества наборов, поскольку число узлов в Графе увеличивается, так как вам нужно как минимум log(n)
sets.
Я уже написал преобразование в MAX-SAT, чтобы использовать для этого сат-решатель. но количество статей просто велико. Более прямой подход был бы приятным. Пока у меня есть приближение, но я хотел бы получить точное решение или, по крайней мере, лучшее приближение.
Я пробовал подход, в котором я использовал рой частиц, чтобы оптимизировать от произвольного решения к лучшему. Однако время работы довольно ужасное, и результаты далеко не велики. Я ищу динамический алгоритм или что-то еще, но я не могу понять, как разделить и преодолеть эту проблему.