04.09.2013 Views

Algorithm Design

Algorithm Design

Algorithm Design

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

530<br />

Chapter 8 NP and Computational Intractability<br />

Notes on the Exercises A number of the exercises illustrate further problems<br />

that emerged as paradigmatic examples early in the development of NPcompleteness;<br />

these include Exercises 5, 26, 29, 31, 38, 39, 40, and 41.<br />

Exercise 33 is based on discussions with Daniel Golovin, and Exercise 34<br />

is based on our work with David Kempe. Exercise 37 is an example of the<br />

class of Bicriteria Shortest-Path problems; its motivating application here was<br />

suggested by Maverick Woo.<br />

A<br />

beyond NP C~ass of Problems<br />

Throughout the book, one of the main issues has been the noti0:n of time as a<br />

computational resource. It was this notion that formed the basis for adopting<br />

polynomial time as our working definition of efficiency; and, implicitly, it<br />

underlies the distinction between T and NT. To some extent, we have also<br />

been concerned with the space (i.e., memory) requirements of algorithms. In<br />

this chapter, we investigate a class of problems defined by treating space as<br />

the fundamental computational resource. In the process, we develop a natural<br />

class of problems that appear to be even harder than 3/~P and co-NT.<br />

9.1 PSPACE<br />

The basic class we study is PSPACE, the set of a!l problems that can be solved<br />

by an algorithm with polynomial space complexity--that is, an algorithm that<br />

uses an amount of space that is polynomial in the size of the input.<br />

We begin by considering the relationship of PSPACE to classes of problems<br />

we have considered earlier. First of all, in polynomial time, an algorithm can<br />

consume only a polynomial amount of space; so we can say<br />

(9.1) ~P _ PSPACE.<br />

But PSPACE is much broader than this. Consider, for example, an algorithm<br />

that just counts from 0 to 2 n- 1 in base-2 notation. It simply needs to<br />

implement an n-bit counter, which it maintains in exactly the same way one<br />

increments an odometer in a car. Thus this algorithm runs for an exponential<br />

amount of time, and then halts; in the process, it has used only a polynomial<br />

amount of space. Although this algorithm is not doing anything particularly

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!