Una extensión clásica del problema del flujo máximo es el problema del "flujo máximo en el tiempo": se le da un dígrafo, dos de los cuales se distinguen como la fuente y el sumidero, donde cada arco tiene dos parámetros, una capacidad por -unidad-tiempo y un retraso. También se le dará un horizonte de tiempo . El objetivo es calcular un flujo a través del tiempo que se pone la cantidad máxima de material de la fuente al sumidero por el tiempo . Se puede calcular un flujo de valor máximo en tiempo polinómico mediante una inteligente reducción clásica al flujo mínimo de costo máximo.T
Estoy interesado en una extensión de este modelo donde los bordes tienen un tercer parámetro de "vida útil". Si un arco tiene una vida útil , y es el tiempo más temprano en el que se envía flujo positivo a través del arco, entonces destruimos el arco en el tiempo . Puede pensar en esto como las plataformas en Super Mario Brothers que se caen / se destruyen poco después de pisarlas, o puede pensar en ellas como baterías necesarias para alimentar los bordes, que no se pueden apagar después de encenderlas . ( Editar :) El problema de decisión es, cuando también se le da un límite inferior de valor de flujo , si uno puede programar un flujo que cumpla tanto el límite superior del horizonte de tiempo como el límite inferior de valor de flujo.t t + ℓ B
Hasta ahora puedo ver que este problema es fuertemente NP-hard (a través de 3 particiones). Pero, en realidad no sé si está en NP: ¿hay alguna garantía de una forma de expresar una solución de forma compacta? En la versión clásica, se utiliza algún tipo especial de flujo óptimo para sortear este problema.
Nota: el modelo anterior está un poco poco especificado, ya que puede permitir o no permitir el almacenamiento de flujo en los nodos, y puede tener un modelo de tiempo discreto o continuo. Resolver la pregunta para cualquiera de estos modelos sería excelente.