Algorithmics for Hard Problems: Introduction to Combinatorial Optimization, Randomization, Approximation, and HeuristicsAlgorithmic design, especially for hard problems, is more essential for success in solving them than any standard improvement of current computer technologies. Because of this, the design of algorithms for solving hard problems is the core of current algorithmic research from the theoretical point of view as weIl as from the practical point of view. There are many general textbooks on algorithmics, and several specialized books devoted to particular approaches such as local search, randomization, approximation algorithms, or heuristics. But there is no textbook that focuses on the design of algorithms for hard computing tasks, and that systematically explains, combines, and compares the main possibilities for attacking hard algorithmic problems. As this topic is fundamental for computer science, this book tries to elose this gap. Another motivation, and probably the main reason for writing this book, is connected to education. The considered area has developed very dynamically in recent years and the research on this topic discovered several profound re sults, new concepts, and new methods. Some of the achieved contributions are so fundamental that one can speak about paradigms which should be ineluded in the education of every computer science student. Unfortunately, this is very far from reality. This is because these paradigms are not sufficiently known in the computer science community, and so they are insufficiently communicated to students and practitioners. |
Contents
Introduction | 1 |
Elementary Fundamentals | 11 |
Deterministic Approaches | 143 |
Copyright | |
6 other sections not shown
Other editions - View all
Common terms and phrases
a₁ algorithm design techniques approximation algorithms approximation ratio assignment branch-and-bound clauses complexity concept consider constraints contains cost Hopt cover problem decision problem define Definition derandomization deterministic algorithm DNA computing edges efficient Exercise exponential feasible solution formula genetic algorithms given graph G greedy Hamiltonian cycle Hamiltonian tour hard problems input instance knapsack problem Las Vegas algorithm Lemma linear equations linear programming local optimum local search matrix MAX-SAT method minimal Monte Carlo algorithm multigraph Neigh neighborhood NP-hard Observe Obviously optimal solution optimization problems output p₁ parameter polynomial polynomial-time algorithm polynomial-time approximation polytope positive integer prime Prob Prob(X problem instances Proof prove pseudo-polynomial-time algorithms PTAS quadratic nonresidue quantum computation random variable randomized algorithm reduction rithm satisfied search algorithm Section sequence simulated annealing solving Step Theorem U₁ V₁ vector vertex cover vertex cover problem vertices w₁ X₁