Algorithm Design, 1st edition

  • Jon Kleinberg, 
  • Eva Tardos

Choose the option that's right for you

$9.99 / mo

4-month term, pay monthly or pay $39.96

Enjoy these features

  • Up to 2 devices
  • Discounted tutor access
  • Exclusive offers

$14.99 / mo

4-month term, pay monthly or pay $59.96

Enjoy these features

  • Up to 2 devices
  • Discounted tutor access
  • Exclusive offers

Learn more, spend less

  • Learn anytime, anywhere

    Get the app to access your eTextbook whenever you need it

  • Make it your own

    Your notes. Your highlights. Your eTextbook

  • Find it fast

    Quickly navigate your eTextbook with search

  • Stay organized

    Access all your eTextbooks in one place

  • Access all your eTextbooks in one place

    Keep learning with auto-renew

Overview

Algorithm Design introduces you to algorithms and the real-world problems that motivate them. You'll learn a range of design and analysis techniques for problems that arise in computing applications. You'll also come to understand the algorithm design process and recognize the role of algorithms in computer science.

Published by Pearson (July 14th 2021) - Copyright © 2006

ISBN-13: 9780137546350

Subject: General Engineering

Category: Engineering Math

Table of contents

Table of Contents

Algorithm Design

Jon Kleinberg and Eva Tardos

  1. Introduction: Some Representative Problems
    • 1.1 A First Problem: Stable Matching
    • 1.2 Five Representative Problems
    • Solved Exercises
    • Excercises
    • Notes and Further Reading
  2. Basics of Algorithms Analysis
    • 2.1 Computational Tractability
    • 2.2 Asymptotic Order of Growth Notation
    • 2.3 Implementing the Stable Matching Algorithm using Lists and Arrays
    • 2.4 A Survey of Common Running Times
    • 2.5 A More Complex Data Structure: Priority Queues
    • Solved Exercises
    • Exercises
    • Notes and Further Reading
  3. Graphs
    • 3.1 Basic Definitions and Applications
    • 3.2 Graph Connectivity and Graph Traversal
    • 3.3 Implementing Graph Traversal using Queues and Stacks
    • 3.4 Testing Bipartiteness: An Application of Breadth-First Search
    • 3.5 Connectivity in Directed Graphs
    • 3.6 Directed Acyclic Graphs and Topological Ordering
    • Solved Exercises
    • Exercises
    • Notes and Further Reading
  4. Greedy Algorithms
    • 4.1 Interval Scheduling: The Greedy Algorithm Stays Ahead
    • 4.2 Scheduling to Minimize Lateness: An Exchange Argument
    • 4.3 Optimal Caching: A More Complex Exchange Argument
    • 4.4 Shortest Paths in a Graph
    • 4.5 The Minimum Spanning Tree Problem
    • 4.6 Implementing Kruskal's Algorithm: The Union-Find Data Structure
    • 4.7 Clustering
    • 4.8 Huffman Codes and the Problem of Data Compression
    • *4.9 Minimum-Cost Arborescences: A Multi-Phase Greedy Algorithm
    • Solved Exercises
    • Excercises
    • Notes and Further Reading
  5. Divide and Conquer
    • 5.1 A First Recurrence: The Mergesort Algorithm
    • 5.2 Further Recurrence Relations
    • 5.3 Counting Inversions
    • 5.4 Finding the Closest Pair of Points
    • 5.5 Integer Multiplication
    • 5.6 Convolutions and The Fast Fourier Transform
    • Solved Exercises
    • Exercises
    • Notes and Further Reading
  6. Dynamic Programming
    • 6.1 Weighted Interval Scheduling: A Recursive Procedure
    • 6.2 Weighted Interval Scheduling: Iterating over Sub-Problems
    • 6.3 Segmented Least Squares: Multi-way Choices
    • 6.4 Subset Sums and Knapsacks: Adding a Variable
    • 6.5 RNA Secondary Structure: Dynamic Programming Over Intervals
    • 6.6 Sequence Alignment
    • 6.7 Sequence Alignment in Linear Space
    • 6.8 Shortest Paths in a Graph
    • 6.9 Shortest Paths and Distance Vector Protocols
    • *6.10 Negative Cycles in a Graph
    • Solved Exercises
    • Exercises
    • Notes and Further Reading
  7. Network Flow
    • 7.1 The Maximum Flow Problem and the Ford-Fulkerson Algorithm
    • 7.2 Maximum Flows and Minimum Cuts in a Network
    • 7.3 Choosing Good Augmenting Paths
    • *7.4 The Preflow-Push Maximum Flow Algorithm
    • 7.5 A First Application: The Bipartite Matching Problem
    • 7.6 Disjoint Paths in Directed and Undirected Graphs
    • 7.7 Extensions to the Maximum Flow Problem
    • 7.8 Survey Design
    • 7.9 Airline Scheduling
    • 7.10 Image Segmentation
    • 7.11 Project Selection
    • 7.12 Baseball Elimination
    • *7.13 A Further Direction: Adding Costs to the Matching Problem
    • Solved Exercises
    • Exercises
    • Notes and Further Reading
  8. NP and Computational Intractability
    • 8.1 Polynomial-Time Reductions
    • 8.2 Reductions via "Gadgets": The Satisfiability Problem
    • 8.3 Efficient Certification and the Definition of NP
    • 8.4 NP-Complete Problems
    • 8.5 Sequencing Problems
    • 8.6 Partitioning Problems
    • 8.7 Graph Coloring
    • 8.8 Numerical Problems
    • 8.9 Co-NP and the Asymmetry of NP
    • 8.10 A Partial Taxonomy of Hard Problems
    • Solved Exercises
    • Exercises
    • Notes and Further Reading
  9. PSPACE: A Class of Problems Beyond NP
    • 9.1 PSPACE
    • 9.2 Some Hard Problems in PSPACE
    • 9.3 Solving Quantified Problems and Games in Polynomial Space
    • 9.4 Solving the Planning Problem in Polynomial Space
    • 9.5 Proving Problems PSPACE-Complete
    • Solved Exercises
    • Exercises
    • Notes and Further Reading
  10. Extending the Limits of Tractability
    • 10.1 Finding Small Vertex Covers
    • 10.2 Solving NP-Hard Problem on Trees
    • 10.3 Coloring a Set of Circular Arcs
    • *10.4 Tree Decompositions of Graphs
    • *10.5 Constructing a Tree Decomposition
    • Solved Exercises
    • Exercises
    • Notes and Further Reading
  11. Approximation Algorithms
    • 11.1 Greedy Algorithms and Bounds on the Optimum: A Load Balancing Problem
    • 11.2 The Center Selection Problem
    • 11.3 Set Cover: A General Greedy Heuristic
    • 11.4 The Pricing Method: Vertex Cover
    • 11.5 Maximization via the Pricing method: The Disjoint Paths Problem
    • 11.6 Linear Programming and Rounding: An Application to Vertex Cover
    • *11.7 Load Balancing Revisited: A More Advanced LP Application
    • 11.8 Arbitrarily Good Approximations: the Knapsack Problem
    • Solved Exercises
    • Exercises
    • Notes and Further Reading
  12. Local Search
    • 12.1 The Landscape of an Optimization Problem
    • 12.2 The Metropolis Algorithm and Simulated Annealing
    • 12.3 An Application of Local Search to Hopfield Neural Networks
    • 12.4 Maximum Cut Approximation via Local Search
    • 12.5 Choosing a Neighbor Relation
    • *12.6 Classification via Local Search
    • 12.7 Best-Response Dynamics and Nash Equilibria
    • Solved Exercises
    • Exercises
    • Notes and Further Reading
  13. Randomized Algorithms
    • 13.1 A First Application: Contention Resolution
    • 13.2 Finding the Global Minimum Cut
    • 13.3 Random Variables and their Expectations
    • 13.4 A Randomized Approximation Algorithm for MAX 3-SAT
    • 13.5 Randomized Divide-and-Conquer: Median-Finding and Quicksort
    • 13.6 Hashing: A Randomized Implementation of Dictionaries
    • 13.7 Finding the Closest Pair of Points: A Randomized Approach
    • 13.8 Randomized Caching
    • 13.9 Chernoff Bounds
    • 13.10 Load Balancing
    • *13.11 Packet Routing
    • 13.12 Background: Some Basic Probability Definitions
    • Solved Exercises
    • Exercises
    • Notes and Further Reading

Epilogue: Algorithms that Run Forever

References

Index

Your questions answered

Introducing Pearson+. Reimagined learning, designed for you. Choose from one eTextbook or over 1,500 eTextbooks and study tools, all in one place, for one low monthly subscription. A new way to buy books that fits your budget. Make the most of your study time with offline access, enhanced search, notes and flashcards — to get organized, get the work done quicker and get results. Plus, with the app, put textbooks in your pocket and learn wherever. It's time to upgrade the textbook and simplify learning, so you can have time to live too.

Pearson eTextbook is an easy-to-use digital textbook available from Pearson+. Make it your own by adding notes and highlights. Download the Pearson+ mobile app to learn on the go, even offline. Listen on the go with our new audiobook feature, available for most titles.

When you choose a plan, you're signing up for a 4-month 'term'. You can opt to make a one-time payment for the initial 4-month term or pay monthly. If you opt for monthly payments, we will charge your payment method each month until your 4-month term has ended. You can turn on auto-renew in My account at any time to continue your subscription before your 4-month term has ended.

When you purchase a Pearson+ subscription, it will last 4 months. Before your initial 4-month term ends, you can extend your subscription by turning auto-renew on in My account.

If you turn auto-renew on, we’ll automatically renew your subscription and charge you every month until you turn off auto-renew. If you made a one-time payment for your initial 4-month term, you’ll now pay monthly.

To avoid the next payment charge, make sure you turn auto renewal off 1 day before the auto renewal date. You can subscribe again after auto-renew has been turned off by purchasing another Pearson+ subscription. We use your credit card to renew your subscription automatically. To make sure your learning is uninterrupted, please check your card details before your first monthly payment.

With a Multi Pearson+ subscription plan, you can download up to 10 titles on the Pearson+ app from My list on each of your authorized devices every month.

When you're using your Multi Pearson+ subscription plan in a browser, you can select and read from as many titles as you like.