The Traveling Salesman Problem

Download Report

Transcript The Traveling Salesman Problem

Case Studies:
Bin Packing &
The Traveling Salesman Problem
David S. Johnson
AT&T Labs – Research
© 2010 AT&T Intellectual Property. All rights reserved. AT&T and the AT&T logo are trademarks of AT&T Intellectual Property.
Applications
Packing commercials into station breaks
Packing files onto floppy disks (CDs, DVDs, etc.)
Packing MP3 songs onto CDs
Packing IP packets into frames, SONET time
slots, etc.
• Packing telemetry data into fixed size packets
•
•
•
•
Standard Drawback: Bin Packing is NP-complete
NP-Hardness
• Means that optimal packings cannot be constructed in
worst-case polynomial time unless P = NP.
• In which case, all other NP-hard problems can also be
solved in polynomial time:
–
–
–
–
Satisfiability
Clique
Graph coloring
Etc.
• See M.R. Garey & D.S.Johnson, Computers and
Intractability: A Guide to the Theory of NPCompleteness, W.H.Freeman, 1979.
Standard Approach to Coping
with NP-Hardness:
• Approximation Algorithms
– Run quickly (polynomial-time for theory,
low-order polynomial time for practice)
– Obtain solutions that are guaranteed to be
close to optimal

First Fit (FF):
Decreasing,
Put eachBest
item Fit
in the
Decreasing
first bin with
(FFD,BFD):
enough space
Start by reordering the items by non-increasing size.
Best Fit (BF): Put each item in the bin that will hold it with
the least space left over
Worst-Case Bounds
• Theorem [Ullman, 1971][Johnson et al.,1974].
For all lists L,
BF(L), FF(L) ≤ (17/10)OPT(L) + 3.
• Theorem [Johnson, 1973]. For all lists L,
BFD(L), FFD(L) ≤ (11/9)OPT(L) + 4.
(Note 1: 11/9 = 1.222222…)
(Note 2: These bounds are asymptotically tight.)
Lower Bounds: FF and BF
½-
½-
½+
OPT: N bins
½+
½-
FF, BF:
N/2 bins
+
N bins
= 1.5 OPT
Lower Bounds: FF and BF
1/6 - 2
1/6 - 2
1/6 - 2
1/3 + 
1/6 - 2
1/3 + 
1/6 - 2
½+
1/2 + 
1/6 - 2
1/3 + 
1/6 - 2
OPT: N bins
FF, BF:
N/6 bins + N/2 bins + N bins
= 5/3 OPT
Lower Bounds: FF and BF
1/7 + 
1/43 + ,
1/1806 + ,
etc.
1/3 + 
FF, BF = N(1 + 1/2 + 1/6 + 1/42 + 1/1805 + … )
1/2 + 
OPT: N bins
 (1.691..) OPT
Jeff Ullman’s Idea
1/6 + 
1/3 + 
1/2 + 
OPT: N bins
FF, BF = N (1 + 1/2 + 1/5) = (17/10) OPT
Key modification:
Replace some 1/3 +’s & 1/6+’s
with 1/3-i & 1/6+i, and some
with 1/3+i & 1/6-i,
with i increasing from bin to bin.
(Actually yields FF, BF ≥ (17/10)OPT - 2
See References for details.)
Lower Bounds: FFD and BFD
1/4-2
1/4-2
1/4+
1/4-2
½+
1/4+2
1/4-2
1/4+2
3n bins
OPT = 9n
1/4-2
1/4+
1/4-2
½+
1/4+
1/4+2
6n bins
1/4+
6n bins
2n bins
1/4-2
3n bins
FFD, BFD = 11n
Asymptotic Worst-Case Ratios
• RN(A) = max{A(I)/OPT(I): OPT(I) = N}
• R(A) = max{RN(A): N > 0}
– absolute worst-case ratio
• R∞(A) = limsupN∞RN(A)
– asymptotic worst-case ratio
• Theorem: R∞(FF) = R∞(BF) = 17/10.
• Theorem: R∞(FFD) = R∞(BFD) = 11/9.
Why Asymptotics?
• Partition Problem: Given a set X of
numbers xi, can they be partitioned into
two subsets with the sums (xXx)/2?
• This problem is NP-hard, and is
equivalent to the special case of bin
packing in which we ask if OPT = 2.
• Hence, assuming P  NP, no polynomialtime bin packing algorithm can have R(A)
< 3/2.
Online Algorithms
• We have no control over the order in which items
arrive.
• Each time an item arrives, we must assign it to a bin
before knowing anything about what comes later.
• Examples: FF and BF
• Simplest example: Next Fit (NF)
– Start with an empty bin
– If the next item to be packed does not fit in the current bin,
put it in a new bin, which now becomes the “current” bin.
Problem 1: Prove R∞(NF) = 2.
Best Possible Online Algorithms
• Theorem [van Vliet, 1996]. For any online bin packing
algorithm A, R∞(A) ≥ 1.54.
• Theorem [Richey, 1991]. There exist polynomial-time
online algorithms A with R∞(A) ≤ 1.59.
• Drawback: Improving the worst-case behavior of
online algorithms tends to guarantee that their
average-case behavior will not be much better.
• FF and BF are much better on average than they are
in the worst case.
Best Possible Offline Algorithm?
• Theorem [Karmarkar & Karp, 1982]. There is a
polynomial-time (offline) bin packing algorithm KK
that guarantees
KK(L) ≤ OPT(L) + log2(OPT(L)) .
• Corollary. R∞(KK) = 1.
• Drawback: Whereas FFD and BFD can be
implemented to run in time O(NlogN), the best bound
we have on the running time of KK is O(N8log3N).
• Still open: Is there a polynomial-time bin packing
algorithm A that guarantees A(L) ≤ OPT(L) + c for
any fixed constant c?
The Traveling Salesman Problem
Given:
Set of cities {c1,c2,…,cN }.
For each pair of cities {ci,cj}, a distance d(ci,cj).
Find:
Permutation π : {1,2,...,N}  {1,2,...,N} that minimizes
N1
 d(c
i1
π(i)
, cπ(i1) )  d(cπ(N) , cπ(1) )
Implementing Best Fit
• Put the unfilled bins in a binary search tree,
ordered by the size of their unused space
(choosing a data structure that implements
inserts and deletes in time O(logN)).
Bin
Index
Bin with smaller gap
Gap
Size
Bin with larger gap
Implementing Best Fit
• When an item x arrives, the initial “current node” is
the root of the tree.
• While the item x is not yet packed,
– If x fits in the current node’s gap
•
If x fits in the gap of the node’s left child, let that node
become the current node.
• Otherwise, pack x in the current node’s bin, and reinsert that
bin into the tree with its new gap.
– Otherwise,
• If the current node has a right child, let that become the
current node.
• Otherwise, pack x in a new bin, and add that to the tree.
Implementing First Fit
• New tree data structure:
– The bins of the packing are the leaves, in their original order.
– Each node contains the maximum gap in bins under it.
1.00
.99
1.00
.56
.41
.11
.99
.56
.41
.56
.37
.82
.82
.03
.77
.99
.50
.26
.99
.26
.77
.17
.77
.44
1.00
1.00
●●●
To Be Continued…
• Next time: Average-Case Behavior
• For now: On to the TSP!