Est-ce que Logical Min-Cut NP-Complete?


24

Définition du problème Logical Min Cut (LMC)

Supposons que est un digraphe non pondéré, et sont deux sommets de , et est accessible à partir de . Le problème LMC étudie comment rendre inaccessible à partir de en supprimant certaines arêtes de respectant les contraintes suivantes:s t V t s t s GG=(V,E)stVtstsG

  1. Le nombre de bords supprimés doit être minimal.
  2. Nous ne pouvons pas supprimer tous les bords de sortie d'un sommet de (c'est-à-dire qu'aucun sommet avec des bords sortants ne peut avoir tous ses bords sortants supprimés).G

Cette deuxième contrainte est appelée suppression logique. Nous recherchons donc une suppression logique et minimale de certains bords de telle sorte que soit inaccessible à partir de .t sGts

Tentatives de solution

Si nous ignorons la contrainte de suppression logique du problème LMC, ce sera le problème de coupe minimale dans le digraphe non pondéré , il sera donc résolu polynomialement (théorème de coupe minimale de débit maximal).G

Si nous ignorons la contrainte de suppression minimale du problème LMC, elle sera de nouveau solvable polynomialement dans un DAG: trouver un sommet tel que soit accessible depuis et ne soit pas accessible depuis . Considérons alors un chemin qui est un chemin arbitraire de à . Considérons maintenant le chemin comme un sous-graphe de : la réponse sera chaque bord de sortie du sous-graphe . Il est évident que le sommet peut être trouvé par DFS dans en temps polynomial. Malheureusement, cet algorithme ne fonctionne pas en généralk s t k p s k p G p k GkkstkpskpGpkG pour un graphe dirigé arbitraire.

J'ai essayé de résoudre le problème LMC par une technique de programmation dynamique mais le nombre d'états requis pour résoudre le problème est devenu exponentiel. De plus, j'ai essayé de réduire certains problèmes NP-Complete tels que 3-SAT, max2Sat, max-cut et clique au problème LMC que je n'ai pas réussi à trouver de réduction.

Personnellement, je pense que le problème LMC est NP-complet même si est un DAG binaire (c'est-à-dire un DAG où aucun nœud n'a un degré supérieur à 2).G

Des questions

  1. Le problème LMC est-il NP-complet dans un digraphe arbitraire ? (question principale)G
  2. Le problème LMC est-il NP-Complete dans un DAG arbitraire ?G
  3. Le problème LMC est-il NP-Complete dans un DAG binaire arbitraire ?G

Je suis sûr que le problème est dans si votre graphique est plus guidées . Serait-ce une réponse suffisante à votre question? P
Alex ten Brink

@SaeedAmiri: trouvez un raccourci pour et t . S'il déconnecte un sommet, ce sommet doit être s ou t . Si c'est les deux, il n'y a pas de coupure minimale. Supposons que t soit le sommet déconnecté et ( t , v ) l'arête. Retirez ce bord et effectuez une coupe minimale sur s et v récursivement. ststt(t,v)sv
Alex ten Brink

Par une simple observation, on peut conclure que si le problème suivant est NP-Complete, le problème LMC sera également NP-Complete (je ne suis pas sûr que l'inverse soit vrai). Supposons que est un digraphe. Comment on peut avoir un raccourci sur G (partition V à S et T st le nombre d'arêtes de S à T est minimal) et il n'existe pas de sommet v appartenant à V st la tête de chaque arête de sortie de v appartient à T (le bord de sortie est de S àG=(V,E)GVSTSTvVvTS ). T
amirv


2
Amirv, pour le problème avec juste la contrainte (2), l'algorithme que vous proposez, si je comprends bien, n'est pas tout à fait correct. Il peut y avoir une solution même si, pour tous les nœuds v, il existe un chemin de s à v et un chemin de v à t. Considérons le graphique avec V = { s , t , a } et E = { ( s , t ) , ( s , a ) , ( a , s ) } .G=(V,E)V={s,t,a}E={(s,t),(s,a),(a,s)}
Neal Young

Réponses:


1

Soit G = (V, E) un DAG pondéré, s et t deux sommets de G, et LSTMC = (G, s, t) une instance du problème logique de st min-cut. Il est évident que le problème LSTMC est NP. Maintenant, nous devons montrer que le LSTMC est NP-Hard. Nous réduisons le problème de l'ensemble de frappe au problème LSTMC. Soit S = {s1, s2, ..., sn} les ensembles donnés et {a1, a2, ..., am} l'union de tous les ensembles. Etant donné le nombre k1, le problème de décision du problème d'ensemble frappant indique s'il existe un ensemble A avec des éléments k1 tels que chaque élément de S (chaque ensemble si st i = 1..n) contient au moins un élément de A. Nous dénoter le problème d'ensemble de frappe comme HS (S). Nous construisons le DAG G 'pondéré à partir de l'ensemble S par l'algorithme HS2LSTMC. Cet algorithme considère s comme le sommet source du DAG G '. Pour chaque ensemble si de HS st i = 1..n, l'algorithme considère le sommet correspondant, si, et ajoute un bord avec un poids infini de s à chaque si. Ensuite, pour chaque élément aj de l'union des ensembles d'entrée st j = 1..m, l'algorithme considère le sommet correspondant, aj, et ajoute un bord avec un poids nul de chaque si à n'importe quel aj st aj ∈si dans HS. Enfin, l'algorithme considère deux sommets finaux appelés t et k, et ajoute deux arêtes de chaque aj st j = 1..m aux deux sommets finaux. Il est clair que G 'peut être réalisé en temps polynomial.

Maintenant, nous devons démontrer que HS (S) a une réponse avec k1 éléments si et seulement si LSTMC = (G ′, s, t) a une réponse avec des arêtes logiquement supprimées de telle sorte que la somme des poids des arêtes supprimées soit k1.

Par souci de simplicité, nous effectuons cette partie de la preuve, en fournissant un exemple:

Dans la figure suivante, supposons que S = {s1, s2, s3} tel que s1 = {1, 2, 3}, s2 = {1, 4} et s3 = {2, 5}. La figure 2 montre le DAG G 'pondéré du problème LSTMC correspondant au problème d'ensemble de frappes HS (S). Dans cet exemple, l'ensemble A, à savoir l'union de tous les éléments de S, est A = {1, 2, 3, 4, 5}. Nous avons | S | = 3 et | A | = 5. Cet exemple montre comment une instance arbitraire du problème de l'ensemble de frappe peut être résolue à l'aide d'une instance spécifique du problème de st min-cut logique dans un DAG pondéré. Si nous calculons une réponse à LSTMC = (G ′, s, t) et considérons les bords supprimés de la réponse qui sont sous la forme de (aj, t) appelés E1 (1 ≤ j ≤ m), alors l'ensemble de queue de E1 est une réponse à HS (S). Une réponse au problème LSTMC est l'ensemble de bords E1 = {(s1, 2), (s1, 3), (s2, 4), (s3, 5), (1, t), (2, t)}. Ainsi, l'ensemble de queue du sous-ensemble E2 = {(1, t), (2,

Réduction


0

Voici (une tentative) un algorithme polynomial pour le arbitraire binaire LMC DAG .G

Cela répond à la question n ° 3. (Désolé pour l'écriture désordonnée à l'avance. :))

Pour commencer, jeter « pour toujours » tout sommet pas accessible de . Nous ne nous en soucions pas, car ils ne font partie d'aucun chemin s - t .sst

Ensuite, définissez les sous-DAG et B , initialement vides. Alors, pour tous les sommets v G - { s , t } ,ABvG{s,t}

Testez s'il existe un chemin de à t . Si oui, ajoutez v à A . Sinon, ajoutez - v à B .vtvAvB

Soit les arêtes de et B celles induites par les sommets de chaque ensemble (pour l'instant, ignorez toutes les arêtes de s à A , de A à t et de A à B ; notez également qu'il n'y a pas d'arêtes de B à t par construction).ABsAAtABBt

Ensuite, calculer la fermeture transitive de . A savoir, nous sommes intéressés à trouver une série de sommets { a * } qui sont les « feuilles » de la sous-DAG A .A{a}A

Fixer un tel . Observer qu'il doit y avoir un bord dirigé depuis un * à t . C'est parce que, par construction, (i) il y a un chemin s - t à travers un , (ii) il n'y a pas de chemin de a à B , et (iii) puisque A est lui-même un DAG et a est une feuille de A , il n'y a pas de chemin entre a et un autre sommet de A vers t .aatstaaBAaAaAt

Maintenant, il doit également y avoir une arête dirigée de chaque sommet dans vers un sommet dans B , ou certains des { a } ont une arête unique vers t . Dans les deux cas, nous sommes autorisés à supprimer toute une *t bord.{a}B{a}tat

Si = 1, alors soit nous devons supprimer l'arête de l'unique a t , soit il y a un sommet plus tôt dans le chemin s - t contenant un qui a deux chemins vers t - un à travers un et un directement. Dans le cas où celui-ci pourrait tenir, nous enregistrons un t et procédons "à reculons goulûment" (détails ci-dessous).|{a}|atstataat

Si > 1, alors nous devons soit supprimer toutes les arêtes de { a } t , soit il y a un certain nombre d'arêtes k < | { a } | plus tôt dans la fermeture transitive de A qui déconnecte tous les chemins de s à travers le { a } à t .|{a}|{a}tk<|{a}|As{a}t

C'est là que nous utilisons le fait que le graphe est un DAG binaire.G

Considérons l'ensemble des prédécesseurs de . Étant donné que chacun de ces sommets a au plus deux degrés, il existe exactement trois cas:{a}

Cas 1. prédécesseur A a un hors-bord à un sommet dans et un hors-bord à un sommet en B .{a}B

Dans ce cas, peu importe que nous supprimions l'arête du prédécesseur au sommet dans ou l'arête du sommet dans { a } à t . Par conséquent, nous pouvons «ignorer» ce sommet (et vérifier si le chemin vers l'arrière fusionne avec le chemin d'un autre sommet dans { a } ).{a}{a}t{a}

Cas 2. Un prédécesseur a un bord extérieur à un sommet dans et un autre prédécesseur de { a } .{a}{a}

Dans ce cas, nous devons soit supprimer les deux bords de à t , soit supprimer un seul bord antérieur du chemin de s au prédécesseur qui déconnecte les deux chemins.{a}ts

Cas 3. Un prédécesseur a un bord extérieur à deux sommets dans .{a}

Ceci est identique au cas 2. Peu importe que nous supprimions l'une des arêtes de ce prédécesseur et les autres arêtes correspondantes de à t , ou les deux arêtes de { a } à t . Nous voulons juste savoir si nous pouvons déconnecter le chemin de s par ce prédécesseur à t avec un seul bord plus tôt dans le chemin de s au prédécesseur.{a}t{a}tsts

Au total, alors que nous parcourons les prédécesseurs dans la fermeture transitive de , nous pouvons goulûment suivre les choix «les meilleurs jusqu'à présent». Autrement dit, à chaque étape, nous avons un choix évident qui implique la suppression d'un certain nombre d'arêtes, mais nous voulons attendre de voir si une meilleure option est disponible. Une fois qu'une meilleure option est trouvée, nous pouvons «oublier» l'option précédente. Par conséquent, un choix gourmand à chaque couche de prédécesseurs suffit (tant que nous attendons la fin pour nous engager dans n'importe quel choix).A

Par conséquent, avec une mémorisation de base, les complexités temporelles et spatiales de ce processus semblent être au plus . Cela laisse de côté le fait que, alors que nous pouvons identifier localement / avidement quand nous avons trouvé un «choix moins cher», il est a priori peu clair quels bords précédemment enregistrés à supprimer. Par conséquent, nous enregistrons l'ordre dans lequel nous vérifions les bords au fur et à mesure. Après avoir trouvé une meilleure option, nous répétons la recherche jusqu'à ce point afin de trouver les bords précédemment enregistrés à supprimer. La complexité temporelle totale de cette étape est O ( | E | 2 ) et la complexité spatiale O ( | E | )O(|E|)O(|E|2)O(|E|).

Au total, la complexité temporelle est pour l'initialisation, plus O ( | V | 3 ) pour la fermeture transitive, plus O ( | E | 2 ) pour la recherche. Le temps total est O ( | V | 2 + | E | | V | + | V | 3O(|V|(|V|+|E|))O(|V|3)O(|E|2) .O(|V|2+|E||V|+|V|3+|E|2)=O(|V|3+|E|2)

À la fin du processus, nous obtenons l'ensemble minimal d'arêtes requis pour déconnecter de t tout en préservant au moins un bord extérieur de chaque sommet du graphique (ou nous découvrons qu'une solution est impossible en cours de route et abandonnons).st


Je ne reçois pas la déclaration suivante: "[arc] de chaque sommet de à un sommet de B , ou certains des { a } ont un seul bord à t . Dans les deux cas, nous sommes autorisés à supprimer tout ( a , t ) arc. " Si un n'a qu'un seul arc sortant, nous ne sommes pas autorisés à le supprimer par définition! Soit dit en passant, qu'en est-il de la notation { a } ? {a}B{a}t(a,t)a{a}
Pål GD

s{a}aA

2
J'ai finalement réussi à prouver que ce problème est NP-Complete.
amirv

1
@amirv Oh, s'il vous plaît faire part un aperçu de la preuve sous la forme d'une réponse!
Raphael

1
Le problème est NP-Complete, même si le digraphe sous-jacent est un DAG binaire non pondéré.
amirv
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.