Quelle est cette variante du problème de la couverture définie?


12

L' entrée est un univers et une famille de sous - ensembles de U , par exemple, F2 U . Nous supposons que les sous - ensembles de F peuvent couvrir U , c. -à- E F E = U .UUF2UFUEFE=U

Une séquence de recouvrement incrémentielle est une séquence de sous-ensembles dans , disons A = { E 1 , E 2 , , E | A | } , qui satisfaitFA={E1,E2,,E|A|}

1) ,EA,EF

2) chaque nouveau venu a une nouvelle contribution, c'est-à-dire, , i - 1 j = 1 E ii j = 1 E i ;i>1j=1i1Eij=1iEi

Le problème est de trouver une séquence de recouvrement incrémentielle de longueur maximale (c'est-à-dire avec un maximum ). Notez qu'une séquence de longueur maximale doit finalement couvrir U , à savoir, E A E = U .|A|UEAE=U

J'ai essayé de trouver un algorithme ou un algorithme approximatif pour trouver la séquence de recouvrement incrémentielle la plus longue. Je me demandais juste ce que cette variante de problème de couverture d'ensemble connue sous le nom. Je vous remercie!


Vous avez besoin de votre famille de sous-ensembles pour couvrir l'univers U ? Parce qu'alors, bien sûr, vous pouvez poser un problème de couverture d'ensemble plus difficile, car vous recherchez une couverture d'ensemble avec des propriétés supplémentaires. En d'autres termes, la couverture réglée se réduit à votre problème. Sur le wiki de set cover se trouvent également les résultats d'inapproximabilité pour set cover. AU
Harry

1
Juste une observation (trop petite pour être une réponse): lorsque vos sous-ensembles sont de taille deux, ce que vous recherchez est essentiellement une forêt étendue.
David Eppstein

Probablement pas nouveau pour le PO, mais voici quelques observations. (1) La valeur optimale est toujours au plus | U |. Si la valeur optimale est égale à | U | ou non peut être décidé efficacement par l'algorithme gourmand qui essaie de minimiser le nombre d'éléments couverts. (2) Le même algorithme gourmand fonctionne également si tous les ensembles de F sont de taille deux, voir le commentaire de David Eppstein. (3) Le même algorithme gourmand ne fonctionne pas en général (soupir). Un contre-exemple: F = {{1,2,3}, {1,4,5,6}, {2,4,5,6}, {3,4,5,6}}.
Tsuyoshi Ito

1
Le problème ne ressemble pas du tout à un problème de couverture d'ensemble ... Plus comme un hybride entre l'appariement et l'appariement induit dans les graphiques bipartites. Une bonne reformulation équivalente est qu'une famille est mauvaise si aucun élément n'est couvert par exactement un ensemble dans la famille. Le problème est de trouver une plus grande sous-famille de F telle que A n'ait pas de mauvaise sous-famille. AFA
daniello

1
@Neal Young n'est pas mauvais car b est couvert par exactement un ensemble (à savoir { a , b } ). Fb{a,b}
daniello

Réponses:


4

Ici, je montre que le problème est NP-complet.

Nous convertissons un CNF en une instance de votre problème comme suit. Supposons que les variables du CNF sont x i et les clauses sont m C j , où n < m . Soit U = i ( A iB iZ i ) où tous les ensembles de l'union sont complètement disjoints. En fait, A i = { a i , jx iC j } { a in xim Cjn<mU=i(AiBiZi)et B i ={ b i , j x i C j }{ b i , 0 }, tandis que Z i est tout ensemble de cardinaliték=2n+1. Notons égalementZ=i Z i et fixons pour chaque Z i une famille croissante de longueurk à l'intérieur, notée Z i ,Ai={ai,jxiCj}{ai,0}Bi={bi,jxiCj}{bi,0}Zik=2n+1Z=iZiZik pourl=1 ..k. Pour chaque variable x i , on ajoute2kensembles à F , chaque ensemble de la forme A i Z i , l et B i Z i , l . Pour chaque clause C j , nous ajoutons un ensemble à F , qui contientZ, et pour chaqueélément x i C j { a i , j }Zi,ll=1..kxi2kFAiZi,lBiZi,lCjFZxiCj{ai,j}et pour chaque élément { b i , j } .x¯iCj{bi,j}

Supposons que la formule soit satisfaisable et corrige une affectation satisfaisante. Ensuite, choisissez les ensembles de la forme A iZ i , l ou B iZ i , l , selon que x i est vrai ou non. Ce sont n k ensembles incrémentaux. Ajoutez maintenant les m ensembles correspondant aux clauses. Celles-ci continuent également d'augmenter la taille, car les clauses sont satisfaisables. Enfin, nous pouvons même ajouter k plusieurs ensembles (une pour chaque variable) pour faire la couverture de séquence U .kAiZi,lBiZi,lxinkmkU

Supposons maintenant que ensembles soient placés dans une séquence incrémentale. Notez qu'au plus k + 1 ensembles correspondant à x i peuvent être sélectionnés pour chaque x i . Ainsi, s'il n'y a pas d'ensembles de clauses dans la séquence incrémentale, au plus n ( k + 1 ) peut être sélectionné, ce qui est trop peu. Notez que dès qu'un ensemble de clauses est sélectionné, nous pouvons sélectionner au plus deux ensembles correspondant à chaque x i , soit un total d'au plus 2 n ensembles. Par conséquent, nous devons choisir au moinsn(k+1)+mk+1xixin(k+1)xi2n ensembles de variables avant de sélectionner un ensemble de clauses. Mais comme nous pouvons choisir au plus k + 1 pour chaque x i , cela signifie que pour chacun, nous avons choisi au moins 1 , comme k = 2 n + 1 . Cela détermine la "valeur" de la variable, nous ne pouvons donc choisir que des clauses "vraies".n(k1)k+1xi1k=2n+1

Mise à jour: modification de la valeur de de n à 2 n + 1, comme l'a souligné Marzio.kn2n+1


1
Une clarification: j'ai rapidement vérifié la construction pour la formule insatisfaisante ( n = k = 1 , m = 2 ) mais il semble que nous pouvons construire une séquence de n ( k + 1 ) + m = 4 de de plus en plus des ensembles de F . Je fais probablement une erreur: avons-nous F = { { a 1 , 0 , a 1 , 1 , a 1x1¬x1n=k=1,m=2n(k+1)+m=4F? F={{a1,0,a1,1,a1,2,z1},{b1,0,b1,1,b1,2,z1},{a1,1,z1},{b1,2,z1}}
Marzio De Biasi

Connaissant vous et moi-même, je suis sûr que l'erreur est la mienne ... Je pense que nous devrions obtenir F={{a1,0,a1,1,z1},{b1,0,b1,2,z1},{a1,1,z1},{b1,2,z1}}, mais bien sûr, c'est toujours un problème. OK, je vois où j'ai fait l'erreur, je la corrige en une minute, merci!
domotorp

Ok, je vais y jeter un œil demain! Juste une note, pouvez-vous écrire (dans un commentaire) ce qu'est pour x i¬ x i et quelle est la "valeur cible" pour la longueur de la séquence de recouvrement (est-ce k)? Parce que, dans la réponse modifiée, vous définissez d'abord k = 2 n + 1 , puis vous parlez de n ( k + 1 ) + m = 2 n 2 + 2 n + m ensembles sont mis dans une séquence incrémentale ; est-ce correct (je n'ai pas encore essayé la réduction)?Fxi¬xik=2n+1n(k+1)+m=2n2+2n+m
Marzio De Biasi

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}}

n(k+1)+m=65

0

ABAXBX

E1,,EmBEiBEi

A


C'est un problème assez naturel ....


Rappel rapide: Dans le problème de regroupement des ensembles, étant donné une famille d'ensembles, trouvez le sous-ensemble maximal d'ensembles, qui respectent une contrainte supplémentaire (par exemple, aucun élément n'est couvert plus de 10 fois, etc.).


Cette réponse prouve-t-elle seulement que la question est naturelle, ou y a-t-il autre chose que vous prétendez également?
domotorp

C'est le dire d'une manière plus simple. Non?
Sariel Har-Peled

Oui, je suis d'accord avec ça.
domotorp
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.