Exact algorithms for the minimum latency problem 吳邦一 黃正男 詹富傑 樹德科大 資工系
P2 10 100 6 P1 5 Routing in a network Which is better, P1 or P2?
P2 10 100 6 P1 5 Routing in a network
Routing in a network • System’s aspect • Minimize the total length • Traveling salesperson problem • Customers’ aspect • Minimize the total delay • The minimum latency problem
Complexity and approximability • Polynomial-time solvable • Path, unweighted tree, tree of diameter 3, tree with constant leaves • NP-hard even for weighted tree • Approximation ratios • (STOC 94)144 → 21.5 → 10.8 → 3.59 (FOCS 03)
Our result • Exact algorithms using a technique combining the advantages of both Dynamic Programming and Branch-and-Bound • Experimental results on random and real data
Dynamic programming • Solution space: all permutations • (n-1)! (except the starting node) • Configuration (S,r) of a subtour P • S: the visited node, i.e., V(P) • r: the last node of P • Only one subtour for each configuration is needed, the best one but not the shortest one. • Only O(n2^n) configurations
Dynamic programming Configurations for k visited nodes Configurations for k+1 visited nodes
Branch-and-bound • A tree searching algorithm • A lower bound function for each subtour • A global upper bound for the optimal (a feasible solution) • A subtour with lower bound >= UB is useless subtour P All possible successive nodes extend P by one node
Dynamic programming with pruning Configurations for k visited nodes If lower bound <UB, keep If lower bound >=UB, discard Configurations for k+1 visited nodes
What we need • A global UB • A greedy method • A lower bound function • A series of lower bound functions Bk(P) • Preprocessing time: O(nk+1) • For each subtour: O(kn) time • Trade-off between quality and time • A data structure to store the configurations
Configurations for k visited nodes If lower bound <UB, keep If lower bound >=UB, discard Configurations for k+1 visited nodes How to search a configuration How to search?
In a traditional DP • Encoding each configuration into an integer • Using a BIG array • O(1) for searching but the whole array needs to be scanned. It’s just what we want to avoid • An AVL tree is employed.
Experiments: real dataTSPLIB Perform much better than on random data
Discussion • A good modification for DP and B&B • Using a good data structure such as the AVL tree is very important. • For small j>i, DPP(j) is better than DPP(i) when n is sufficiently large. • Theoretically, we have more precise lower bound functions. But it suffers from a long computation time and therefore has a worse performance. • In fact, we have tried several other lower bound functions. Some of them eliminate much more subtours than B1 but has a worse performance