Как называется этот вариант задачи о покрытии множества?


12

Input вселенная и семейство подмножеств , скажем, . Будем считать , что подмножества можно покрыть , то есть, .U F2 U F U E F E = UUUF2UFUEFE=U

Инкрементный последовательность покрытие представляет собой последовательность подмножеств , скажем, , что удовлетворяетA = { E 1 , E 2 , , E | A | }FA={E1,E2,,E|A|}

1) EA,EF ,

2) у каждого новичка есть новый вклад, т. Е. \ Forall i>1 , j=1i1Eij=1iEi ;

Проблема состоит в том, чтобы найти инкрементную покрывающую последовательность максимальной длины (т. Е. С максимальной |A| ). Следует отметить , что последовательность максимальной длины должна в конечном итоге покрыть U , то есть, EAE=U .

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


Вам требуется, чтобы ваше семейство подмножеств покрывало юниверс ? Потому что тогда, конечно, у вас может возникнуть более сложная проблема с набором обложек, поскольку вы ищете набор обложек с дополнительными свойствами. Другими словами, установка покрытия сводится к вашей проблеме. В вики набора покрытий также результаты innapproximability для покрытия набора. UAU
Гарри

1
Просто замечание (слишком маленькое, чтобы превратить его в ответ): когда ваши подмножества имеют размер два, то, что вы ищете, это, по сути, охватывающий лес.
Дэвид Эппштейн

Вероятно, не новичок в ОП, но вот несколько замечаний. (1) Оптимальное значение всегда не более | U |. Является ли оптимальное значение равным | U | или нет, может быть эффективно решено жадным алгоритмом, который пытается минимизировать количество покрываемых элементов. (2) Тот же жадный алгоритм также работает, если все множества в F имеют размер два, см. Комментарий Дэвида Эппштейна. (3) Тот же самый жадный алгоритм не работает вообще (вздох). Контрпример: F = {{1,2,3}, {1,4,5,6}, {2,4,5,6}, {3,4,5,6}}.
Цуёси Ито

1
Проблема на самом деле совсем не похожа на проблему покрытия множеств ... Больше похоже на гибрид между сопоставлением и индуцированным сопоставлением в двудольных графах. Хорошая эквивалентная переформулировка состоит в том, что семья плохая, если ни один элемент не покрыт ровно одним набором в семье. Проблема состоит в том, чтобы найти наибольшее подсемейство из такое, что не имеет плохого подсемейства. F AAFA
Даниелло

1
@Neal Young неплох, потому что покрывается ровно одним множеством (а именно ). b { a , b }Fb{a,b}
Даниелло

Ответы:


4

Здесь я показываю, что проблема является NP-полной.

Мы конвертируем CNF в экземпляр вашей проблемы следующим образом. Предположим, что переменными CNF являются , а предложения - , где . Пусть где все множества в объединении полностью не пересекаются. Фактически, и , в то время как - это любое множество элементов . Также обозначим и зафиксируем для каждого растущее семейство длины внутри него, обозначаемое дляx i m C j n < m U = i ( A iB iZ i ) A i = { a i , jx iC j } { a i , 0 } B i = { b i , jx iC j } n xim Cjn<mU=i(AiBiZi)Ai={ai,jxiCj}{ai,0}Z i k = 2 n + 1 Z = i Z i Z i k Z i , l l = 1 .. k x i 2 k F A iZ i , l B iZ i , l C j F Z x iC j { aBi={bi,jxiCj}{bi,0}Zik=2n+1Z=iZiZikZi,ll=1..k . Для каждой переменной мы добавляем наборов в , каждый набор вида и . Для каждого предложения мы добавляем один набор в , который содержит , и для каждого элемента и для каждого элемента .xi2kFAiZi,lBiZi,lCjFZxiCj ˉ х я С J { Ь I , J }{ai,j}x¯iCj{bi,j}

Предположим, что формула выполнима и исправим удовлетворяющее присваивание. Затем выберите наборов в форме или , в зависимости от того, является ли истинным или нет. Это инкрементальных множеств. Теперь добавьте наборов, соответствующих пунктам. Они также продолжают увеличивать размер, поскольку пункты являются выполнимыми. Наконец, мы можем даже добавить больше наборов ( по одному для каждой переменной) , чтобы сделать последовательность крышку .A iZ i , l B iZ i , l x i n k m k UkAiZi,lBiZi,lxinkmkU

Теперь предположим, что наборов расположены в последовательной последовательности. Обратите внимание , что в большинстве устанавливает соответствующие могут быть выбраны для каждого . Таким образом, если в добавочной последовательности нет наборов предложений, можно выбрать не более , что слишком мало. Обратите внимание, что как только набор предложений выбран, мы можем выбрать не более двух наборов, соответствующих каждому , всего не более наборов. Следовательно, нам нужно выбрать как минимум наборов переменных, прежде чем будет выбран любой набор предложений. Но так как мы можем выбрать самое большее для каждого , это означает, что для каждого мы выбрали по крайней мереk + 1 x i x i n ( k + 1 ) x i 2 n n ( k - 1 ) k + 1 x i 1 k = 2 n + 1n(k+1)+mk+1xixin(k+1)xi2nn(k1)k+1xi1 , так как . Это определяет «значение» переменной, поэтому мы можем выбирать только «истинные» предложения.k=2n+1

Обновление: изменено значение с до как указал Марцио.n 2 n + 1kn2n+1


1
Разъяснение: Я быстро проверил строительство для невыполнимой формулы ( ) , но это , кажется , что мы можем построить последовательность из увеличение наборов . Возможно, я ошибаюсь: у нас есть ? n = k = 1 , m = 2 n ( k + 1 ) + m = 4 F F = { { a 1 , 0 , a 1 , 1 , a 1 , 2 , z 1 } , { б 1 , 0 , б 1 , 1 , бx1¬x1n=k=1,m=2n(k+1)+m=4FF={{a1,0,a1,1,a1,2,z1},{b1,0,b1,1,b1,2,z1},{a1,1,z1},{b1,2,z1}}
Марцио Де Биаси,

Зная себя и себя, я уверен, что ошибка моя ... Я думаю, мы должны получить , но, конечно, это все еще проблема. Хорошо, я вижу, где я сделал ошибку, я исправляю ее через минуту, спасибо! F={{a1,0,a1,1,z1},{b1,0,b1,2,z1},{a1,1,z1},{b1,2,z1}}
Domotorp

Хорошо, я посмотрю на это завтра! Просто примечание, вы можете написать (в комментарии), что такое для и каково "целевое значение" для длины последовательности покрытия (это k)? Потому что в модифицированном ответе вы сначала , а затем говорите, что наборов помещаются в возрастающей последовательности ; это правильно (я еще не пробовал сокращение)? x i¬ x i k = 2 n + 1 n ( k + 1 ) + m = 2 n 2 + 2 n + mFxi¬xik=2n+1n(k+1)+m=2n2+2n+m
Марцио Де Биаси

F={{a1,0,a1,1,z1,},{a1,0,a1,1,z1,z2},{a1,0,a1,1,z1,z2,z3},{b1,0,b1,2,z1},{b1,0,b1,2,z1,z2},{b1,0,b1,2,z1,z2,z3},{a1,1,z1,z2,z3},{b1,2,z1,z2,z3}}
domotorp

Я думаю, что это правильно, так как , но у нас есть только последовательных последовательностей. 5n(k+1)+m=65
Домоторп

0

Это проблема упаковки множеств при условии, что для решения для любого подмножества мы имеем, что в всегда есть элемент , который покрывается ровно один раз.BA X B XABAXBX

Доказательство: учитывая решение вашей проблемы, оно сразу же имеет это свойство. В самом деле, если является оптимальным решением вашей задачи, то рассмотрим подмножество этих множеств и предположим, что является последним множеством в этой последовательности, встречающимся в . Из обязательного свойства, что решение является инкрементным, следует, что покрывает элемент, который не охватывает предыдущий набор, что подразумевает указанное выше свойство.E1,,EmE i B E iBEiBEi

Что касается другого направления, то это тоже легко. Начните с решения , найдите элемент, который покрыт ровно один раз, установите его как последний набор в последовательности, удалите этот набор и повторите. QED.A


Это довольно естественная проблема ....


Быстрое напоминание: в задаче упаковки наборов для данного семейства наборов найдите максимальное подмножество наборов, которое соответствует некоторому дополнительному ограничению (скажем, ни один элемент не покрывается более 10 раз и т. Д.)


Является ли этот ответ только доказательством того, что вопрос является естественным, или вы что-то еще утверждаете?
Домоторп

Это проще сказать. Нет?
Сариэль Хар-Пелед

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