The.Algorithm.Design.Manual.Springer-Verlag.1998
The.Algorithm.Design.Manual.Springer-Verlag.1998 The.Algorithm.Design.Manual.Springer-Verlag.1998
War Story: Hard Against the Clock like. Next: Approximation Algorithms Up: Intractable Problems and Approximations Previous: The Art of Proving Algorithms Mon Jun 2 23:33:50 EDT 1997 file:///E|/BOOK/BOOK3/NODE118.HTM (4 of 4) [19/1/2003 1:29:56]
Approximation Algorithms Next: Approximating Vertex Cover Up: Intractable Problems and Approximations Previous: War Story: Hard Against Approximation Algorithms For the practical person, demonstrating that a problem is NP-complete is never the end of the line. Presumably, there was a reason why you wanted to solve it in the first place. That reason for wanting the solve it will not have gone away on being told that there is no polynomial-time algorithm. You still seek a program that solves the problem of interest. All you know is that you won't find one that quickly solves the problem to optimality in the worst case. You still have the following options: ● Algorithms fast in the average case - Examples of such algorithms include backtracking algorithms with substantial pruning. ● Heuristics - Heuristic methods like simulated annealing or greedy approaches can be used to find a solution with no requirement that it be the best one. ● Approximation algorithms - The theory of NP-completeness does not stipulate that it is hard to get close to the answer, only that it is hard to get the optimal answer. With clever, problem-specific heuristics, we can often get provably close to the optimal answer. Approximation algorithms return solutions with a guarantee attached, namely that the optimal solution can never be much better than this given solution. Thus you can never go too far wrong in using an approximation algorithm. No matter what your input instance is and how lucky you are, you are doomed to do all right. Further, approximation algorithms realizing provably good bounds often are conceptually simple, very fast, and easy to program. One thing that is usually not clear, however, is how well the solution from an approximation algorithm compares to what you might get from a heuristic that gives you no guarantees. The answer could be worse or it could be better. Leaving your money in a savings account in a bank guarantees you 3% interest without risk. Still, you likely will do much better putting your money in stocks than in the bank, even though performance is not guaranteed. One way to get the best of approximation algorithms and heuristics is to run both of them on the problem instance and pick the solution giving the better answer. This way, you get a solution that comes with a guarantee and a second chance to do even better. When it comes to heuristics for hard problems, sometimes you can have it both ways. file:///E|/BOOK/BOOK3/NODE119.HTM (1 of 2) [19/1/2003 1:29:57]
- Page 283 and 284: Heuristic Methods Mon Jun 2 23:33:5
- Page 285 and 286: Simulated Annealing Return S then u
- Page 287 and 288: Traveling Salesman Problem Next: Ma
- Page 289 and 290: Independent Set Next: Circuit Board
- Page 291 and 292: Neural Networks Next: Genetic Algor
- Page 293 and 294: Genetic Algorithms Next: War Story:
- Page 295 and 296: War Story: Annealing Arrays Next: P
- Page 297 and 298: War Story: Annealing Arrays optimal
- Page 299 and 300: Parallel Algorithms Next: War Story
- Page 301 and 302: War Story: Going Nowhere Fast Next:
- Page 303 and 304: Exercises Next: Implementation Chal
- Page 305 and 306: Problems and Reductions Next: Simpl
- Page 307 and 308: Simple Reductions Next: Hamiltonian
- Page 309 and 310: Hamiltonian Cycles Next: Independen
- Page 311 and 312: Independent Set and Vertex Cover pr
- Page 313 and 314: Clique and Independent Set These la
- Page 315 and 316: Satisfiability Mon Jun 2 23:33:50 E
- Page 317 and 318: The Theory of NP-Completeness Next:
- Page 319 and 320: 3-Satisfiability where for , , , an
- Page 321 and 322: Integer Programming Next: Vertex Co
- Page 323 and 324: Integer Programming possible IP ins
- Page 325 and 326: Vertex Cover reduction for the 3-SA
- Page 327 and 328: Other NP-Complete Problems hard. Th
- Page 329 and 330: The Art of Proving Hardness easiest
- Page 331 and 332: War Story: Hard Against the Clock N
- Page 333: War Story: Hard Against the Clock I
- Page 337 and 338: Approximating Vertex Cover Next: Th
- Page 339 and 340: The Euclidean Traveling Salesman Ne
- Page 341 and 342: The Euclidean Traveling Salesman Ne
- Page 343 and 344: Exercises 1. Prove that the low deg
- Page 345 and 346: Data Structures Next: Dictionaries
- Page 347 and 348: Dictionaries Next: Priority Queues
- Page 349 and 350: Dictionaries use a function that ma
- Page 351 and 352: Dictionaries Implementation-oriente
- Page 353 and 354: Priority Queues ● Besides access
- Page 355 and 356: Priority Queues Fibonacci heaps [FT
- Page 357 and 358: Suffix Trees and Arrays Figure: A t
- Page 359 and 360: Suffix Trees and Arrays [GBY91]. Se
- Page 361 and 362: Graph Data Structures algorithms).
- Page 363 and 364: Graph Data Structures including the
- Page 365 and 366: Set Data Structures Next: Kd-Trees
- Page 367 and 368: Set Data Structures parent pointers
- Page 369 and 370: Kd-Trees Next: Numerical Problems U
- Page 371 and 372: Kd-Trees about p. Say we are lookin
- Page 373 and 374: Numerical Problems Next: Solving Li
- Page 375 and 376: Numerical Problems Mon Jun 2 23:33:
- Page 377 and 378: Solving Linear Equations algorithm
- Page 379 and 380: Solving Linear Equations Matrix inv
- Page 381 and 382: Bandwidth Reduction images near eac
- Page 383 and 384: Matrix Multiplication Next: Determi
Approximation <strong>Algorithm</strong>s<br />
Next: Approximating Vertex Cover Up: Intractable Problems and Approximations Previous: War Story:<br />
Hard Against<br />
Approximation <strong>Algorithm</strong>s<br />
For the practical person, demonstrating that a problem is NP-complete is never the end of the line.<br />
Presumably, there was a reason why you wanted to solve it in the first place. That reason for wanting the<br />
solve it will not have gone away on being told that there is no polynomial-time algorithm. You still seek<br />
a program that solves the problem of interest. All you know is that you won't find one that quickly solves<br />
the problem to optimality in the worst case. You still have the following options:<br />
● <strong>Algorithm</strong>s fast in the average case - Examples of such algorithms include backtracking<br />
algorithms with substantial pruning.<br />
● Heuristics - Heuristic methods like simulated annealing or greedy approaches can be used to find<br />
a solution with no requirement that it be the best one.<br />
● Approximation algorithms - <strong>The</strong> theory of NP-completeness does not stipulate that it is hard to get<br />
close to the answer, only that it is hard to get the optimal answer. With clever, problem-specific<br />
heuristics, we can often get provably close to the optimal answer.<br />
Approximation algorithms return solutions with a guarantee attached, namely that the optimal solution<br />
can never be much better than this given solution. Thus you can never go too far wrong in using an<br />
approximation algorithm. No matter what your input instance is and how lucky you are, you are doomed<br />
to do all right. Further, approximation algorithms realizing provably good bounds often are conceptually<br />
simple, very fast, and easy to program.<br />
One thing that is usually not clear, however, is how well the solution from an approximation algorithm<br />
compares to what you might get from a heuristic that gives you no guarantees. <strong>The</strong> answer could be<br />
worse or it could be better. Leaving your money in a savings account in a bank guarantees you 3%<br />
interest without risk. Still, you likely will do much better putting your money in stocks than in the bank,<br />
even though performance is not guaranteed.<br />
One way to get the best of approximation algorithms and heuristics is to run both of them on the problem<br />
instance and pick the solution giving the better answer. This way, you get a solution that comes with a<br />
guarantee and a second chance to do even better. When it comes to heuristics for hard problems,<br />
sometimes you can have it both ways.<br />
file:///E|/BOOK/BOOK3/NODE119.HTM (1 of 2) [19/1/2003 1:29:57]