Questa è la prima volta che leggo degli algoritmi di ritardo polinomiale, quindi non sono sicuro al 100% della mia risposta, ma penso che qualcosa come il seguente dovrebbe funzionare.
Scegli alcune convenzioni per rappresentare i percorsi che hanno un ordinamento totale naturale definito su di esso. (Un esempio potrebbe essere solo quello di elencare i vertici del percorso e ordinarli lessicograficamente). Scegli la tua struttura di dati D preferita sul posto che supporta la ricerca logaritmica e inseriscila (ad esempio un albero rosso-nero). Lascia che G sia il tuo grafico<Dsol
Definire un algoritmo :F
:F( s , t , G ,*D )
(qui ∗ D indica un riferimento a una struttura dati inplace D )*DD
- esegui il tuo algoritmo poly-time per restituire una coppia di percorsi edge-disjoint con P < Q da s a t .( P, Q )P< QSt
Se non è in D .( P, Q )D
2.1. Inserisci in D (ed esegui l'output se supponi di eseguire l'output durante l'esecuzione dell'algoritmo).( P, Q )D
u v ∈ E( P∪ Q )F( s , t , G - { u v } ,*D )
Ds , t ∈ V( G )s < ts ≠ tF( s , t , G , ∗ D )
PSPA CEPSPA CE