Combien de coupes de bord disjointes un DAG doit avoir?

10

La question suivante est liée à l'optimalité de l' algorithme de programmation dynamique Bellman-Ford - plus court (voir cet article pour une connexion). En outre, une réponse positive impliquerait que la taille minimale d'un programme de branchement non déterministe monotone pour le problème STCONN est . stΘ(n3)

Soit un DAG (graphe acyclique dirigé) avec un nœud source et un nœud cible . A - coupe est un ensemble d'arêtes, dont la suppression détruit toutes - chemins de longueur ; nous supposons qu'il existe des chemins dans . Notez que les chemins - courts n'ont pas besoin d' être détruits.GstkstkGst

Question: Est - ce que doit avoir au moins (environ) coupes disjointes ? Gk k

S'il n'y a pas de - chemins plus courts que , la réponse est OUI, car nous avons le fait min-max connu suivant (un double du théorème de Menger ) attribué à Robacker . Une coupe - est une coupe pour (détruit tous chemins - ).stkt k k = 1 s tstkk=1 st

Réalité: dans tout graphique dirigé, le nombre maximal de coupes - disjointes sur les bords est égal à la longueur minimale d'un chemin - . t s tstst

Notez que cela vaut même si le graphique n'est pas acyclique.

Preuve: Trivialement, le minimum est au moins le maximum, car chaque chemin - coupe chaque coupe - dans un bord. Pour voir l'égalité, soit la longueur du chemin le plus court de à . Soit , pour , et soit l'ensemble des arêtes quittant . Il est clair que les ensembles sont disjoints, car les ensembles sont. Il reste donc à montrer que chaque est un -t s t d ( u ) s u U r = { u : d ( u ) = r } r = 1 , , d ( t ) E r U r E r U r E r s t s t p = ( u 1 , u 2 , , u m )ststd(u)suUr={u:d(u)=r}r=1,,d(t)ErUrErUrErstCouper. Pour le montrer, prenez un chemin - arbitraire avec et . Puisque , la séquence des distances doit atteindre la valeur en commençant à et en augmentant la valeur d'au plus à chaque étape. Si une valeur est diminuée, alors nous devons atteindre la valeur cette dernière. Donc, il doit y avoir un où un saut de à se produit, signifiant le bordstp=(u1,u2,,um)u m = t d ( u i + 1 ) d ( u i ) + 1 d ( u 1 ) , , d ( u m ) d ( u m ) = d ( t ) d ( u 1 ) = d ( s ) = 0 1 d (u1=sum=td(ui+1)d(ui)+1d(u1),,d(um)d(um)=d(t)d(u1)=d(s)=01d ( u i ) j d ( u j ) = r d ( u j + 1 ) = r + 1 ( u j , u j + 1 ) E rd(ui)d(ui)jd(uj)=rd(uj+1)=r+1(uj,uj+1) appartient à , comme souhaité. QED Er

Mais que se passe-t-il s'il existe également des chemins plus courts (que )? Un indice / référence? k


JT Robacker, Min-Max Theorems on Shortest Chains and Disjoint Cuts of a Network, Research Memorandum RM-1660, The RAND Corporation, Santa Monica, Californie, [12 janvier] 1956.
EDIT (un jour plus tard): Via une courte et très belle argumentation, David Eppstein répondu à la question ci - dessus d' origine négative : la complète DAG (un tournoi transitif ) ne peut pas avoir plus de quatre disjoints -cuts! En fait, il prouve le fait structurel intéressant suivant , pour about . Une coupe est pure si elle ne contient pas d'arêtes incidentes à ou à . k k Tnkk stnst

Chaque pure dans contient un chemin de longueur . T n kkTnk

Cela implique en particulier que tous les deux coupures pures doivent se croiser! Mais il y a peut-être encore beaucoup de coupes pures qui ne se chevauchent pas «trop». D'où une question détendue (les conséquences pour STCONN seraient les mêmes ):kkk

Question 2: Si chaque coupe pure a des bords , le graphique doit-il avoir environ des bords ? M Ω ( k M )kMΩ(kM)

Le lien avec la complexité de STCONN vient du résultat d'Erdős et Gallai qu'il faut supprimer tous les bords ( sauf de (non dirigé) afin de détruire tous les chemins de longueur . K m k(k1)m/2Kmk


EDIT 2: J'ai maintenant posé la question 2 à mathoverflow .

Stasys
la source

Réponses:

9

Réponse courte: non.

Soit un DAG complet (tournoi transitif) sur sommets avec et sa source et son puits, et soit . Observez qu'il peut y avoir au plus quatre coupes disjointes contenant plus de tham arêtes incidentes à ou plus de arêtes incidentes à . Donc, s'il doit y avoir de nombreuses coupes disjointes, nous pouvons supposer qu'il existe une coupe qui ne contient pas un grand nombre d'arêtes incidentes à et .n s t k = Gnst n/3sn/3tCstk=n/3n/3sn/3tCst

Maintenant , nous le sous - graphe complet induit dans par l'ensemble des sommets tels que les bords et ne appartiennent à . Le nombre de sommets dans est au moins , car sinon toucherait trop d'arêtes incidentes à ou . Cependant, ne peut pas contenir un -path, parce que si un tel chemin existait , il pourrait être concaténée avec et pour former un long chemin dans . Par conséquent, la superposition le plus long chemin deG x s x x t C X n / 3 C s t X C k s t G C X C k ( n / 3 ) / k = k X C C C P kXGxsxxtCXn/3CstXCkstGCXC a moins de couches, et a une couche contenant plus de sommets. Comme il s'agit d'une couche de la couche de chemin la plus longue, elle est indépendante dans , et donc complète en , donc contient un chemin travers les sommets de cette couche, de longueur . Cette voie doit être disjointe de toutes les autres coupes.k(n/3)/k=kXCCCPk

Chaque coupe qui n'est pas doit contenir soit l'arête de jusqu'au début du chemin soit l'arête de la fin du chemin vers , sinon elle ne bloquerait pas le chemin - - . Donc, si existe, il peut y avoir au plus trois coupes disjointes. Et si n'existe pas (c'est-à-dire si toutes les coupes couvrent plus de bords incidents à ou à ) il peut y avoir au plus quatre coupes disjointes. Quoi qu'il en soit, c'est beaucoup moins que coupures.s P P t s P t C C n / 3 s t kCsPPtsPtCCn/3stk

David Eppstein
la source
@ David: Argument intéressant (même si je ne l'ai pas encore tout à fait compris: pourquoi C doit avoir un k-chemin). Mais où l'argument échoue (il devrait) si tous les st chemins sont longs, de longueur au moins k?
Stasys
1
@Stasys: G est un tournoi, la preuve utilise ce fait, donc imo c'est pourquoi il échouerait.
domotorp
@domotorp: merci, en effet j'ai raté le mot "complet". Je ne trouve pas encore de faille, mais ce serait un fait plutôt contre-intuitif: même s'il y a beaucoup de k-path dans un tournoi acyclique, nous ne pouvons pas sélectionner de nombreux systèmes disjoints de leurs représentants (bords).
Stasys
@David: En fait, pour avoir les conséquences mentionnées, nous pouvons admettre que les coupes ne sont que "presque disjointes", c'est-à-dire qu'elles peuvent partager des arêtes incidentes à s ou t (nous n'avons que 2n ces arêtes spéciales). Un véritable objectif est de montrer que G doit avoir environ kN arêtes, si nous savons que chaque coupe k "pure" (sans ces arêtes spéciales) doit avoir N arêtes. Votre argument (très agréable, comme je le vois maintenant) peut-il être modifié pour cette situation ("presque disjointe")?
Stasys
2
Si vous autorisez les coupes à partager les arêtes incidentes à s ou t, alors pourquoi ne pouvez-vous pas faire en sorte que toutes les coupes se composent exactement de l'ensemble d'arêtes incidentes à s? D'un autre côté, mon argument montre que (avec son choix de et ) il ne peut y avoir qu'une seule coupe pure. kGk
David Eppstein