Une extension classique du problème du débit maximal est le problème du "débit maximal dans le temps": on vous donne un digraphe, dont deux nœuds sont distingués comme source et puits, où chaque arc a deux paramètres, une capacité par -unité et un délai. Vous avez également un horizon de temps . L'objectif est de calculer un débit au fil du temps qui obtient le montant maximum de matériel de la source vers le puits par le temps . Un débit de valeur maximale peut être calculé en temps polynomial par une réduction classique astucieuse au débit max à coût min.T
Je suis intéressé par une extension de ce modèle où les arêtes ont un troisième paramètre "durée de vie". Si un arc a une durée de vie , et est le premier moment auquel un flux positif est envoyé à travers l'arc, alors nous détruisons l'arc au temps . Vous pouvez penser à cela comme aux plates-formes de Super Mario Brothers qui tombent / sont détruites peu de temps après avoir marché dessus, ou vous pouvez les considérer comme des batteries nécessaires pour alimenter les bords, qui ne peuvent pas être éteintes après leur allumage . ( Modifier :) Le problème de décision est, lorsqu'on lui donne également une borne inférieure de valeur de flux , si l'on peut planifier un flux respectant à la fois la borne supérieure d'horizon temporel et la borne inférieure de valeur de flux.
Jusqu'à présent, je peux voir que ce problème est fortement NP-difficile (via 3 partitions). Mais, je ne sais pas vraiment si c'est en NP: y a-t-il une garantie d'une manière d'exprimer une solution de manière compacte? Dans la version classique, un type spécial d'écoulement optimal est utilisé pour contourner ce problème.
Remarque: le modèle ci-dessus est un peu sous-spécifié, car vous pouvez autoriser ou interdire le stockage de flux aux nœuds, et vous pouvez avoir un modèle temporel discret ou continu. La résolution de la question pour l'un de ces modèles serait excellente.
Réponses:
Cela fait longtemps mais je suis sûr que ce problème est en P.
J'ai écrit ma thèse de doctorat à ce sujet en 1995. Voir "Algorithmes de flux de réseaux dynamiques efficaces" par Bruce Hoppe soumis au département de Cornell CS. En ligne à http://dspace.library.cornell.edu/bitstream/1813/7181/1/95-1524.pdf
Voir Chapitre 8 "Extensions" section 8.1 sur les "bords mortels"
la source
EDIT: la réponse est FAUX. J'ai fait l'hypothèse (idiote) implicite que lorsqu'un flux de chemin commence au temps s et se termine au temps t et passe par le bord e, il bloque le bord e pendant cette durée. Cependant, ce n'est pas vrai. Voir *.
Remarque: cette approche est peut-être inutilement compliquée ou incorrecte. Bien que j'aie essayé de le vérifier et de l'écrire attentivement - je n'y ai pas passé énormément de temps.
En supposant que le «stockage» n'est pas autorisé, par exemple, le flux doit être transféré immédiatement. Soit le nombre d'arêtes et la longueur d'entrée. Je n'ai pas précisé de temps continu ou discret, car je ne l'ai pas pris en considération. Cela devrait fonctionner pour une pensée discrète, pour une continuité, j'en suis sûr.m N
Ensuite, nous pouvons décrire la solution comme un ensemble de "chemins-flux" de la source au puits. Un flux de chemin est un quadruple qui se compose des éléments suivants: Un chemin simple de la source au puits; Heure de début du trajet-flux ; Quantité de flux à travers le chemin ; Débit .(P,s,a,r) P s a r
Soit une solution donnée par un ensemble d'écoulements. Nous pouvons vérifier si la solution donnée par ces trajets est correcte dans le polynôme temporel danset :F |F| N
Maintenant, nous avons besoin de « juste » pour montrer que le nombre de flux chemin est polynomiale en .N
Pour une solution donnée, nous pouvons déterminer le moment où un flux a traversé un bord et quand le bord a été détruit. Convertissez cela en un problème avec une solution équivalente: il y a des limites strictes sur chaque bord quand il peut être utilisé et quand il ne l'est pas - une heure de début et de fin. Soit l'ensemble de tous ces temps.{t1,...,tk}
Considérons une solution non compacte et (initialement) un ensemble vide de flux de chemin. L'idée est que nous trouvons de manière itérative un chemin-flux dans la solution non compacte, le supprimons et le stockons dans notre ensemble de chemins-flux.
Trouvez les flux de chemin qui commencent et se terminent entre et , mais ne se terminent pas entre et tels que . Soit l'ensemble des flux de chemin entre et avec les propriétés décrites ci-dessus.ti tj i<j tp tq [tp,tq]⊆[ti,tj] Fi,j tj tj
Supposons que nous avons déjà supprimé tous les flux de chemin pour tous les intervalles plus petits que . Trouvez avec gourmandise les flux qui commencent et se terminent en[i,j] [ti,tj] [ti+1,tj−1] |Fs,t|≤m
la source
D'après ce que je comprends, vous ne devriez stocker qu'un seul nombre par arc, représentant l'instant auquel le flux commence à être envoyé à travers l'arc. Cela suppose qu'après cela, l'arc est rendu inutilisable. Si, dans le cas contraire, l'arc peut être réutilisé après avoir cessé d'être utilisé, il devrait avoir des solutions arbitrairement proches des solutions au débit maximal au fil du temps (car le débit pourrait cesser d'être envoyé pendant une durée arbitrairement petite, puis recommencer à être pompé à nouveau ).
la source