EDIT: a resposta está errada. Fiz a suposição (boba) implícita de que quando um fluxo de caminho começa no tempo se termina no tempo te passa pela borda e, ele bloqueia a borda e por esse período. No entanto, isso não é verdade. Vejo *.
Nota: Talvez essa abordagem seja desnecessariamente complicada ou incorreta. Embora eu tenha tentado verificar e anotá-la com cuidado - não gastei muito tempo nele.
Assumindo que 'empilhamento' não é permitido, por exemplo, o fluxo deve ser transferido imediatamente. Seja o número de arestas e o comprimento de entrada. Não especifiquei tempo contínuo ou discreto, pois não o levei em consideração. Deveria funcionar para um pensamento discreto, para contínuo, tenho certeza.mN
Em seguida, podemos descrever a solução como um conjunto de "caminhos-fluxos" da origem para a pia. Um fluxo de caminho é um quádruplo que consiste no seguinte: Um caminho simples da fonte para a pia; Hora de início do caminho-fluxo ; Quantidade de fluxo através do caminho ; Taxa de transferência .( P, s , a , r )Psumar
Deixe uma solução ser dada por um conjunto de fluxos de caminho. Podemos verificar se a solução dada por esses fluxos de caminho está correta no polinômio no tempo eme :F| F|N
- Para cada extremidade e um momento do tempo , some a taxa de taxa de transferência de todos os fluxos de caminho que passam por no tempo . Todo fluxo de caminho tem um horário de início e fim, portanto, precisamos considerar apenas os momentos em que um fluxo de caminho começa ou termina (entre esses momentos, nada muda com relação aos fluxos de caminho que ultrapassam a margem .etete
- Para cada caminho de fluxo, podemos verificar se tudo o que de fluxo chega na pia antes do tempo .T
- Para todas as arestas, podemos verificar se um fluxo de caminho passa após ter sido destruído ou não.
- O limite inferior do fluxo , podemos simplesmente verificar, adicionando as quantidades de fluxo dos caminhos de fluxo.B
Agora, nós 'apenas' necessidade de mostrar que o número de caminho-flui é polinomial em .N
Para uma determinada solução, podemos determinar o tempo em que algum fluxo passou por uma borda e quando a borda foi destruída. Converta isso em um problema com uma solução equivalente: há limites rígidos em cada extremidade quando ela pode ser usada e quando não - um horário de início e de término. Vamos denotar o conjunto de todos esses momentos.{ t1 1, . . . , tk}
Considere alguma solução não compacta e (inicialmente) um conjunto vazio de fluxos de caminho. A idéia é que, iterativamente, encontremos um caminho de fluxo na solução não compacta, removamos e armazenemos em nosso conjunto de caminhos de fluxo.
Encontre fluxos de caminhos que começam e terminam entre e , mas não terminam entre e modo que . Deixe denotar o conjunto de fluxos de caminho entre e com as propriedades conforme descrito acima.tEutjeu < jtptq[ tp, tq] ⊆ [ tEu, tj]Fi , jtjtj
Suponha que já removemos todos os fluxos de caminho por intervalos menores que . Encontre avidamente fluxos de caminhos que começam e terminam em[ i , j ][ tEu, tj] . Quando encontrarmos um, remova esse fluxo da solução e ajuste as taxas de transferência dos vértices de acordo com a quantidade de fluxo enviada da fonte para a fonte também. Para esse fluxo de caminho, maximizamos a taxa de transferência. Isso significa que, pelo menos em uma borda, atingimos sua taxa máxima de transferência ou, após a remoção desse fluxo de caminho, não há mais fluxo sobre essa borda. Observe que isso vale para o período [ ti + 1, tj - 1]. Nos dois casos, não há mais fluxo passando por essa margem e podemos concluir que .| Fs , t| ≤m
(*) Por que a afirmação anterior é verdadeira? Bem, todos os outros caminhos de fluxo em começam antes de t i + 1 e terminam após t j - 1 . Portanto, eles devem se sobrepor no tempo em que usam uma certa aresta. Como a taxa de transferência é maximizada para o fluxo do caminho, deve haver uma borda em que seja estanque.FtEu, tjti + 1tj - 1
Daí resulta que para alguma constante c e a alegação de que está em NP segue.∑i , j ∈ [ k ]| Fi , j| ≤c m3c