Deuxième plus petit

13

Sait-on quelque chose sur la deuxième plus petite coupe - t dans un réseau de flux? Ou, plus généralement, à propos de ce problème:st

Entrée: Un réseau et un nombre k , tous en binaire. Sortie: A k e plus petit s - t coupé.Nk
kst

Une ème plus petite coupe s - t ( S , T ) est toute coupe s - t , de sorte qu'il existe exactement k - 1 s - t coupes dont les capacitéskst(S,T)stk1 st

  • sont différents par paire et
  • vraiment plus petit que la capacité de .(S,T)

Je voudrais savoir comment cela peut être calculé et si cela peut être fait efficacement comme pour le cas .k=1

Oliver Witt
la source
Vous pouvez trouver la deuxième plus petite coupe en ajoutant poids à tous les bords de la plus petite coupe, puis en calculant la nouvelle plus petite coupe. Cela fonctionne probablement tant que k est encodé en unaire (et certainement pour k constant). ϵkk
Yuval Filmus
2
Je ne vois pas comment ça aide. Imaginez un réseau de chemins composé des trois nœuds , v , t uniquement avec les deux bords ( s , v ) et ( v , t ) . De plus, que les capacités soient c ( s , v ) = 1 et c ( v , t ) = 2 . De toute évidence, les coupes min-coupe ( s , v ) et les deuxièmes plus petites coupes ( v ,svt(s,v)(v,t)c(s,v)=1c(v,t)=2(s,v) . L'augmentation des capacités, comme vous l'avez décrit, donnerait à nouveau ( s , v ) une coupe minimale avec une capacité 1 + ϵ . Comment puis-je en déduire la deuxième plus petite coupe? (v,t)(s,v)1+ϵ
Oliver Witt du
L'ajout d'une borne inférieure sur le plafond de coupe est une inégalité linéaire, il suffit d'ajouter un epsilon plus grand que le plafond de min et d'exécuter LP. Vous pouvez le répéter k fois pour obtenir ce que vous voulez. Cela peut probablement être refondu en tant que modification sur le réseau, mais je ne l'ai pas résolu.
Kaveh
Je vois comment cela fonctionne si est en encodage unaire. Et si c'est binaire? Dans ce cas, la modification du réseau ne peut pas être effectuée en k itérations. kk
Oliver Witt
1
Je doute qu'il existe une solution simple si k est binaire. Nous pouvons vérifier s'il y a une coupe de capuchon c comme je l'ai décrit. Il me semble que c'est essentiellement compter le nombre de c possible, pourrait être fourni pour se rapporter au comptage du nombre de correspondances et probablement # P-complet. (Ce n'est que mon intuition, pas un argument.)
Kaveh

Réponses:

7

La deuxième plus petite coupure, et plus généralement les plus petites coupures, se trouvent dans le polynôme temporel en k et la taille du réseau. Voir:kk

HW Hamacher. Un algorithme pour trouver les k meilleures coupes dans un réseau. Oper. Res. Lett. 1 (5): 186–189, 1982, doi: 10.1016 / 0167-6377 (82) 90037-2 .(Kn4)k

HW Hamacher, J.-C. Picard et M. Queyranne. Sur la recherche des meilleures coupes dans un réseau. Oper. Res. Lett. 2 (6): 303-305, 1984, doi: 10.1016 / 0167-6377 (84) 90083-X .K

HW Hamacher et M. Queyranne. meilleures solutions aux problèmes d'optimisation combinatoire. Ann. Oper. Res. 4 (1–4): 123–143, 1985,doi: 10.1007 / BF02022039.K

David Eppstein
la source
Ne permettent-ils pas des poids égaux parmi les premiers ? La question semble se poser sur le k- ème poids le plus petit qui, comme le suggère Kaveh, sent plus comme un problème # P-complet. kk
András Salamon
Je le comprends également: des poids égaux sont autorisés. Cela ne semble pas répondre à la question. Néanmoins, je n'étais pas au courant de ces papiers, merci pour cela.
Oliver Witt
1
La question est mal formulée, car elle demande une chose (la ème plus petite coupe), puis ajoute plus tard une restriction qui transforme la question en autre chose (la k ème plus petit poids de coupe distinct). Je suis d'accord que la version à poids distinct du problème est susceptible d'être complète. kk
David Eppstein