Un'estensione classica del problema del flusso massimo è il problema del "flusso massimo nel tempo": ti viene dato un digrafo, due nodi dei quali si distinguono come sorgente e pozzo, dove ogni arco ha due parametri, una capacità per -unit-time e un ritardo. Vi sono inoltre dato un orizzonte temporale . L'obiettivo è quello di calcolare un flusso nel tempo che ottiene la massima quantità di materiale dalla sorgente al lavandino dal tempo T . Un flusso di valore massimo può essere calcolato in tempo polinomiale mediante una intelligente riduzione classica al flusso massimo a costo minimo.
Sono interessato a un'estensione di questo modello in cui i bordi hanno un terzo parametro "durata". Se un arco ha una durata di vita , e t è il primo momento in cui viene inviato un flusso positivo attraverso l'arco, allora distruggiamo l'arco nel tempo t + ℓ . Puoi pensare a questo come alle piattaforme di Super Mario Brothers che cadono / vengono distrutte poco dopo averle calpestate, oppure puoi considerarle come batterie necessarie per alimentare i bordi, che non possono essere spente dopo l'accensione . ( Modifica :) Il problema decisionale è, quando viene anche dato un valore di flusso limite inferiore B , se si può programmare un flusso che soddisfi sia il limite superiore dell'orizzonte temporale sia il valore inferiore del flusso.
Finora posso vedere che questo problema è fortemente NP-difficile (tramite 3 partizioni). Ma in realtà non so se si trova in NP: esiste una garanzia su come esprimere una soluzione in modo compatto? Nella versione classica, viene utilizzato un tipo speciale di flusso ottimale per aggirare questo problema.
Nota: il modello sopra è un po 'sotto specificato, poiché è possibile consentire o impedire lo stoccaggio del flusso sui nodi e si può avere un modello temporale discreto o continuo. Risolvere la domanda per uno di questi modelli sarebbe eccellente.