Quelle est la complexité de ce problème de couverture?


24

Edit: j'ai d'abord mal formulé ma contrainte (2), elle est maintenant corrigée. J'ai également ajouté plus d'informations et d'exemples.

Avec certains collègues, étudiant une autre question algorithmique, nous avons pu réduire notre problème au problème intéressant suivant, mais nous n'avons pas pu résoudre la question de sa complexité. Le problème est le suivant.

Instance: un entier , un entier et un ensemble de paires de l'ensemble .k < n S = { { s 1 , t 1 } , , { s n , t n } } n { 1 , , n }nk<nS={{s1,t1},,{sn,tn}}n{1,,n}

Question: Existe - t-il un ensemble de taille tel que pour chaque élément de : (1) si , l'intervalle est inclus dans un intervalle défini par une paire dans , et (2) au moins l'un de , appartient à une paire de ? (2) appartient à une paire de .k i { 1 , , n } i < n [ i , i + 1 ] [ s i , t i ] S i i + 1 S i S SSki{1,,n}
i<n[i,i+1][si,ti]S
ii+1S
iS

Exemple
L'ensemble est une solution réalisable (en supposant que est pair): la paire assure la condition (1), tandis que toutes les autres paires assurent la condition (2).n { 1 , n }{{i,i+1} | i  is odd}{1,n}n{1,n}

Remarques
(I) Puisque chaque paire contient exactement deux éléments, pour remplir la condition (2), nous avons besoin d'au moins paires. BTW cela implique une approximation 2 triviale en renvoyant le entier , puisque nous supposons . S| S| nn2S|S|n

(II) Une autre façon de voir le problème est de considérer une échelle à n étapes (comme celle ci-dessous ), avec un ensemble S de n cycles de l'échelle. Chaque pas de l'échelle correspond à un élément et chaque bord latéral est un intervalle [i,i+1] . Un cycle comprenant les étapes s,t correspond exactement à une paire {s,t} : il couvre tous les intervalles consécutifs entre s et t , et il s'arrête à la fois s et t .
La question est alors de savoir s'il existe un ensemble SS de kcycles dont l'union couvre tous les bords de l'échelle (y compris les bords de marche et les bords latéraux).

(III) Si l'on ne demandait que la condition (1), le problème correspondrait au problème d'ensemble dominant dans un graphe d'intervalles défini à partir des intervalles donnés par les paires de avec de petits intervalles supplémentaires pour chaque dans . Ce problème est classiquement résoluble en temps linéaire (voir par exemple ici ). De même, si l'on demandait simplement la condition (2), cela pourrait être réduit au problème de couverture de bord (les sommets sont les éléments, les bords sont les paires), qui est également résolu en temps polynomial par une approche de correspondance maximale.S [ i + ϵ , i + 1 - ϵ ] i { 1 , , n - 1 }[si,ti]S[i+ϵ,i+1ϵ]i{1,,n1}


Donc ma question est dans le titre:

Ce problème est-il en P? Est-il NP-complet?

Toute référence à un problème similaire est la bienvenue.


1
Cela pourrait être quelque part entre les deux ... qui sait que cela ne peut pas être équivalent, disons, à l'isomorphisme du graphe? :)
Tsuyoshi Ito

Bien sûr, c'est aussi une option ... Mais en fait, je sens que ça "sent" en P - peut-être parce que j'espère que ce sera :)
Florent Foucaud

Pourquoi une solution réalisable doit-elle avoir une taille ? Pourriez-vous, s'il vous plaît, expliquer pourquoi l'ensemble de paires { } n'est pas réalisable. [1,n-1],[2,n]n2[1,n1],[2,n]
hbm

@hbm: la solution que vous proposez ne remplit pas la condition (2) (même avec la contrainte d'avant ma mise à jour). J'ai inclus plus d'explications maintenant, j'espère que c'est plus clair.
Florent Foucaud

Et k = n / 2? Pouvons-nous résoudre le problème pour ce cas particulier?
domotorp

Réponses:


8

Bien que cela ne résout pas la question que vous posez, certains des commentaires précédents considèrent les algorithmes d'approximation. FWIW, je pense qu'un PTAS (schéma d'approximation poly-temps) est possible en utilisant la programmation dynamique. Voici l'idée.

Étant donné n'importe quelle instance et , créez une solution comme suit. Marquez chaque ( 1 / ϵ ) ième sommet. Pour chaque sommet i marqué , parmi toutes les arêtes ( j , k ) qui "s'étendent" i (c'est-à-dire qui satisfont à la contrainte (1) pour i ), choisissez une arête qui minimise j et une qui minimise maximise k . Ajoutez ces 2 ϵ n bords à la solution.ϵ>0(1/ϵ)i(j,k)iijk2ϵn

2nϵO(ϵOPT)

1/ϵ

1/ϵ1/ϵ1/ϵ1/ϵ2

i(Ci,Ci+1)Fi(Ci,Ci+1)SCiSCi+121/ϵ2=O(1)

D1,D2,..,Dki|Di|+Fi(Di,Di+1)Fi|Di|+Fi(Di,Di+1)DiiDi+1i+1O(21/ϵ2n)O(n)ϵ


1
Agréable. et bienvenue dans cstheory!
Suresh Venkat

1+ϵk=4/ϵOPTn/22n/kϵOPT
Florent Foucaud
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.