Как называется следующий вариант обложки набора?
Для заданного набора S, набора C подмножеств S и целого положительного числа K существуют ли K наборов в C, так что каждая пара элементов S лежит в одном из выбранных подмножеств.
Примечание. Нетрудно понять, что эта проблема является NP-полной: учитывая нормальную проблему покрытия множества (S, C, K), сделайте три копии S, скажем S ', S' 'и S' '', затем создайте свои подмножества как S '' ', | S | подмножества вида {a '} U {x в S' '| x! = a} U {a '' '}, | S | подмножества вида {a ''} U {x в S '| x! = a} U {a '' '}, {a', a '' | в C_i}. Тогда мы можем решить проблему покрытия множеств с K подмножествами, если только мы можем решить проблему покрытия пар с помощью K + 1 + 2 | S | подмножества.
Это обобщается на тройки и т. Д. Я хотел бы иметь возможность не тратить половину страницы, доказывая это, и это, вероятно, не достаточно очевидно, чтобы отклонить как тривиальный. Конечно, достаточно полезно, чтобы кто-то это доказал, но я понятия не имею, кто и где.
Кроме того, есть ли хорошее место для поиска результатов NP-полноты, которых нет в Garey и Johnson?
Похоже, вы обобщаете набор покрытия для рассмотрения не только элементов S, но и каждого подмножества размера-M S. Мы можем сформулировать проблему в более общем виде:
«Учитывая набор S, набор C подмножеств S и положительное целое число m, каково наименьшее количество элементов C, такое, что каждое подмножество размера M в S лежит в одном из выбранных элементов C?»
Это на самом деле кажется мне довольно очевидным обобщением набора покрытий, и вам не нужно тратить время на доказательство NP-завершения за одну строчку. В конце концов, выбор m = 1 восстанавливает исходную проблему покрытия набора. Возможно, эта более общая формулировка достаточно хороша для ваших целей, чтобы избежать необходимости вдаваться в детали?
Ваш вопрос об обновленном наборе результатов NP-полноты является хорошим и заслуживает отдельного вопроса. Crescenzi и Kann собрали полезный сборник онлайн здесь .
Во-вторых, оно вряд ли распространено, но Руководство по разработке алгоритмов Стивена Скиены часто является полезным первым шагом для решения большого количества проблем и частично доступно в Интернете .
источник