Как генерировать графы с известным оптимальным покрытием вершин


11

Я ищу способ генерации графов, чтобы было известно оптимальное покрытие вершин. Нет ограничений на количество узлов или ребер, только то, что граф полностью связен.

идея состоит в том, чтобы создать граф, который не легко найти оптимальное покрытие вершин, чтобы иметь возможность тестировать различные эвристики на нем

Я нашел статью Arthur, J. & Frendeway, J. Generating задачи коммивояжера с известными оптимальными турами, Journal of Operational Research Society, Vol. 39, No. 2 (Feb., 1988), pp. 153-159 для генерации TSP с известным оптимальным, увы, я не могу получить к нему доступ.

Есть ли известный алгоритм?


6
«Нет никаких ограничений на количество узлов или ребер, только то, что граф полностью связан». Вам нужно больше ограничений, чем это. В противном случае я генерирую множество полных графов и знаю оптимальные покрытия вершин для каждого из них.
Тайсон Уильямс

3
MeMCCCK3

5
Я полагаю, что «сгенерировать случайный двудольный граф и вычислить его покрытие вершин» не считается полезным ответом ...
Дэвид Эппштейн

2
Есть много стратегий для создания «жестких» экземпляров SAT, а также хранилищ архивных «жестких» экземпляров, если вы хотите пойти по этому пути - т.е. преобразовать экземпляр SAT в покрытие вершин. также есть много исследований, изучающих SAT из эмпирической точки зрения, которая естественно переводит на все другие NP полные проблемы, например, точки перехода и т. д., многие ссылаются на все это ...
vzn

2
Даже в более общем смысле, чем полиномиальная временная разрешимость покрытия вершин на графах Конинга, как отметил Дэвид, из области параметризованной сложности известен следующий результат: существует постоянная c, такая что для каждого фиксированного целого числа k существует O (n ^ c) алгоритм времени для проверки того, имеет ли граф покрытие вершин, которое превышает его максимальный размер соответствия не более чем на k. Графы Кенига являются частным случаем, когда k = 0.
Барт Янсен

Ответы:


9

Расширяем комментарий vzn в ответ: стандартное сокращение от CNF-SAT до покрытия вершин довольно просто: создайте вершину для каждого члена (переменную или ее отрицание), соедините каждую переменную с ее отрицанием ребром, сделайте клик для каждого предложения и соедините каждую вершину в клике с вершиной для одного из условий в предложении. Если вы начнете с задачи выполнимости с известным удовлетворяющим присваиванием, это даст вам задачу покрытия вершин с известным оптимальным решением (выберите вершины термина, заданные присваиванием, и в каждом пункте клики выберите все, кроме одной вершины, так, чтобы вершина предложения, которая не выбрана, смежна с вершиной термина, которая выбрана).

Так что теперь вам нужно найти проблемы удовлетворяемости, которые имеют известное удовлетворяющее назначение, но где решение трудно найти. Существует много известных способов генерации трудных проблем выполнимости (например, генерировать случайные экземпляры k-SAT, близкие к порогу выполнимости), но дополнительное требование, чтобы вы знали, что удовлетворяющее назначение ограничивает возможности. Одна вещь, которую вы можете сделать здесь, - это пройти еще один уровень сокращения - от криптографически сложной проблемы, такой как факторизация. Т.е. выберите два больших простых числа p и q, установите булеву схему для умножения p и q на двоичные числа и переведите ее в формулу CNF, в которой есть переменная для каждого входа (p и q) и для каждого промежуточного значения на провод в цепи, пункт для каждого выхода, заставляющий его иметь правильное значение, и пункт для каждого шлюза, заставляющий входы и выходы шлюза быть согласованными друг с другом. Затем переведите эту формулу CNF в покрытие вершин.

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


2

1

Ближайшая ссылка, которую я нашел, была ... На тяжелых примерах приблизительного покрытия вершин Сундаром Вишванатаном. не видел ссылок для просмотра сложных случаев точной проблемы.

Как и в моем комментарии, существует огромный объем исследований в отношении этого соответствующего подхода для SAT, который сводится к покрытию вершин.

Относительно комментариев DE, идея генерации случайных экземпляров и простого выбора тех экземпляров, которые трудны для стандартного алгоритма, кажется мне совершенно разумной, особенно с использованием эмпирического / экспериментального подхода к исследованию [1], это стандартная рабочая процедура для аналогичных исследований в SAT точка перехода. [2]

что, кстати, есть, что сказать, где «трудная» область для любой другой NP-полной задачи [3,4,5], которая примерно относится к критической точке «плотности» 1 с в случайных случаях, указанных в двоичном виде. для покрытия вершин это, вероятно, будет соответствовать плотности ребер.

обратите внимание, что доказательство того, что можно построить набор сложных экземпляров, и только сложные экземпляры, в основном эквивалентно проблеме P vs NP. более формальный анализ этой эквивалентности содержится в статье Натурального доказательства Разборова / Рудича.

[1] экспериментальная алгоритмика

[2] SAT исследование фазовых переходов

[3] Фазовые переходы в сложных задачах NP

[4] Фазовые переходы в NP-полных задачах: вызов вероятности, комбинаторика и информатика. Автор - Мур

[5] Фазовый переход по Уолшу

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.