Nel caso di capacità intere (o razionali) il numero di iterazioni (numero di cammini aumentanti impiegati) per raggiungere l'ottimo dipende in generale dai valori delle capacità. Pertanto l'algoritmo che ne deriva non è polinomiale ma solamente pseudopolinomiale dato che la ``magnitudo'' di un valore numerico cresce esponenzialmente nel numero di bit impiegati nel rappresentarlo. Ecco un esempio di tale comportamento:
Supponiamo poi che i possibili valori di capacità siano gli interi più un ulteriore simbolo, , rappresentante un valore di capacità infinito, ossia nessun limite all'utilizzo di un dato arco.
Qualora le capacità fossero numeri reali, allora l'algoritmo potrebbe non terminare anche su problemi a valore di flusso massimo limitato. Ciò è posto in evidenza dall'esempio seguente, dove abbiamo deciso di accettare cammini aumentanti che passino piú volte per uno stesso nodo (percorrendo però ogni arco al più una volta).
Osserviamo come in questo caso il valore del flusso computato converga verso il valore ottimo.
Se la nostra definizione di cammini aumentanti non vi convince appieno vi consigliamo il seguente esercizio.
18 Maggio 1998 |
© Dipartimento di Matematica - Università di Trento |