Supposons que nous ayons un graphique pondéré non orienté (avec des poids non négatifs). Supposons que tous les chemins les plus courts dans G soient uniques. Supposons que nous ayons ces chemins (séquences d'arêtes non pondérées), mais ne connaissons pas lui-même. Pouvons-nous produire un qui aurait donné ces chemins comme étant les plus courts en temps polynomial? La version la plus faible: peut-on décider en temps polynomial si un tel existe?
La condition nécessaire évidente est la suivante: pour chaque paire de chemins, leur intersection est aussi un chemin. Cette condition est-elle suffisante?
Réponses:
Je suis juste tombé sur cette vieille question tout en effectuant une recherche éclairée, et il se trouve que j'ai récemment obtenu des réponses dans cet article que je pourrais aussi bien partager. J'espère que la combinaison de la nécromancie des threads et de l'autopromotion est pardonnable.
La réponse est oui aux deux. L'algorithme de Mohammad fonctionne certainement, mais il existe une méthode plus rapide et plus directe qui évite d'avoir à exécuter des oracles de séparation cubiques. Soit un graphe pondéré non orienté auxiliaire, où le poids de chaque bord est un entier indiquant combien des chemins pris en entrée contiennent ce bord. Maintenant, considérons l'instance de flux multiservices à capacité de bord sur (interprétant les poids de bord comme des capacités) dans laquelle l'objectif est de pousser simultanément 1 unité de flux entre chaque paire de nœuds. De toute évidence, cette instance de flux MC peut être satisfaite en poussant le flux de manière naturelle le long des chemins donnés en entrée. En fait, on peut prouver que notreH=(V,E,w′) e∈E (n2) H (n2) les chemins sont les chemins les plus courts uniques dans certains si et seulement si c'est le moyen unique de satisfaire l'instance de flux MC. Nous pouvons tester l'unicité en mettant en place un LP dont les contraintes sont les habituelles pour la faisabilité du flux MC plus une certaine fonction objective soigneusement choisie, et les poids de bord d'un satisfaisant peuvent être extraits du dual de ce LP.G G
Cette condition est parfois appelée "cohérence" (un ensemble de chemins est cohérent si l'intersection de deux est un sous-chemin de chacun). Il résulte de ce qui précède que la cohérence n'est pas suffisante. L'un des deux contre-exemples liés le plus petit est le système à code couleur suivant de quatre chemins sur six nœuds:
En d'autres termes, il n'y a aucun moyen d'attribuer des poids aux 8 bords illustrés ici afin que ces quatre chemins soient simultanément le chemin le plus court unique entre leurs extrémités. Cependant, n'importe quelle paire d'entre eux se croisent sur un seul nœud, ils sont donc cohérents (même si nous les remplissons avec quelques chemins supplémentaires de la bonne manière pour au total). Il existe une infinité de contre-exemples comme celui-ci; voir l'article pour une caractérisation.(n2)
Trois autres commentaires rapides sur tout cela:
la source
Vous pouvez écrire le problème en LP, n'est-ce pas? Pour deux sommets u, v et tout chemin P de u à v, le poids de P est supérieur ou égal au poids du chemin le plus court donné entre u et v. Ce sont toutes des inégalités linéaires, et même s'il existe exponentiellement nombreux, le problème de séparation est en P (c'est juste un problème de chemin le plus court toutes paires). Ainsi, vous pouvez utiliser l'algorithme Ellipsoid pour le résoudre.
la source