Quelle est la difficulté du problème Set Cover si le nombre d'éléments est limité par une fonction (par exemple, ) où est la taille de l'instance de problème. Officiellement,
Soit et où et . Est-il difficile de décider du problème suivantS i ⊆ U m = O ( log n )
Et si ?
Tout résultat basé sur des conjectures bien connues (par exemple, Unique Games, ETH) est bon.
Edit 1: Une motivation pour ce problème est de savoir quand le problème devient difficile à mesure que augmente. Clairement, le problème est dans P si et NP-dur si . Quel est le seuil de dureté NP du problème?
Edit 2: Il existe un algorithme trivial pour le décider dans le temps (qui énumère tous les sous-ensembles de taille de ). Par conséquent, le problème n'est pas NP-dur si car ETH implique qu'il n'y a pas d'algorithme dans le temps pour tout NP-dur problème (où est la taille du problème NP-difficile).
la source
Réponses:
Lorsque , vous pouvez utiliser la programmation dynamique pour trouver l'optimum en temps polynomial. Le tableau contient des cellules d'une valeur booléenne T ℓ , X pour chaque ℓ ∈ { 0 , ... , k } et X ⊆ U , ce qui indique s'il y a ℓ ensembles qui couvrent les éléments de X .m=O(logn) Tℓ,X ℓ∈{0,…,k} X⊆U ℓ X
Lorsque , disonsm≤C √m=O(n−−√) , le problème reste NP-difficile. Étant donné une instance de SET-COVER, ajoutezmnouveaux élémentsx1,…,xmet(2C - 1 m)2nouveaux ensembles, composés de sous-ensembles non vides des nouveaux éléments, y compris{x1,…,xm}(lorsquemest assez grand,(2C - 1 m)2<2m). Augmentez égalementkm≤Cn−−√ m x1,…,xm (2C−1m)2 {x1,…,xm} m (2C−1m)2<2m k par un. Les nouveaux sont m ′ = 2 m et n ′ = n + ( 2 C - 1 m ) 2 ≥ ( C - 1 m ′ ) 2 .m,n m′=2m n′=n+(2C−1m)2≥(C−1m′)2
la source
Le cas de est en n O ( c ) temps comme noté par Yuval, mais notez aussi pour k = O ( 1 ) que vous pouvez résoudre le problème en O ( n k ⋅ m ) temps (temps polynomial) en une recherche exhaustive. En supposant l'hypothèse de temps exponentiel fort (que CNF-SAT sur les formules avec N variables et clauses O ( N ) nécessite au moins 2 N - o ( N )m=clogn nO(c) k=O(1) O(nk⋅m) N O(N) 2N−o(N) temps), ces deux bornes sont la "limite" de ce à quoi on peut s’attendre en temps polynomial, dans le sens suivant.
Dans mon article SODA'10 avec Mihai Patrascu, nous étudions le problème essentiellement isomorphe de trouver un ensemble dominant de taille dans un graphe arbitraire à n nœuds, montrant que si l'ensemble k- dominateur peut être résolu en n k - ε temps pour certains k ≥ 2 et ε > 0 , il existe alors un algorithme temporel 2 N ( 1 - ε / 2 ) p o l y ( M ) pour CNF-SAT sur N variables et Mk n k nk−ε k≥2 ε>0 2N(1−ε/2)poly(M) N M clauses.
En notant la relation entre les voisinages de sommets dans une instance d'ensemble dominante et les ensembles dans une instance de couverture d'ensemble, et en inspectant la réduction, vous constaterez que cette réduction montre également la résolution de -Set Cover avec n ensembles sur un univers de taille m dans n k - Le temps ε ⋅ f ( m ) implique un algorithme CNF-SAT pour les formules CNF avec M clauses et N variables s'exécutant dans 2 N ( 1 - ε / 2 ) ⋅ f ( M )k n m nk−ε⋅f(m) M N 2N(1−ε/2)⋅f(M) temps. Pour réfuter l'ETH fort, il suffit de résoudre CNF-SAT dans le cas où . Par conséquent, un algorithme pour votre problème fonctionnant en n k - ε ⋅ 2 m / α ( m ) dans le temps pour une fonction non bornée α ( m ) produirait un nouvel algorithme SAT surprenant.M=O(N) nk−ε⋅2m/α(m) α(m)
la source