Close
Close Window

Show Source |    | About   «  10.1. Limits to Computing   ::   Contents   ::   10.3. NP-Completeness  »

10.2. Reductions

10.2.1. Reductions

This module introduces an important concept for understanding the relationships between problems, called reduction. Reduction allows us to solve one problem in terms of another. Equally importantly, when we wish to understand the difficulty of a problem, reduction allows us to make relative statements about upper and lower bounds on the cost of a problem (as opposed to an algorithm or program).

Because the concept of a problem is discussed extensively in this chapter, we want notation to simplify problem descriptions. Throughout this chapter, a problem will be defined in terms of a mapping between inputs and outputs, and the name of the problem will be given in all capital letters. Thus, a complete definition of the sorting problem could appear as follows:

SORTING

Input: A sequence of integers x0,x1,x2,,xn1.

Output: A permutation y0,y1,y2,,yn1 of the sequence such that yiyj whenever i<j.

1 / 25 Settings
<<<>

Here is a visual explanation of the Sorting Problem. We Have:

Input: An unsorted array of records: R1, R2, ..., Rn with associated key values: K1, K2, ..., kn.

Created with Raphaël 2.1.2
  1. K10
  2. K21
  3. K32
  4. K43
  5. K54
  6. K65
Sorting
Algorithm
input
Proficient Saving... Error Saving
Server Error
Resubmit

10.2.1.1. Reduction and Finding a Lower Bound

1 / 23 Settings
<<<>

Reductions and Lower Bounds

There is another use for reductions aside from applying an old algorithm to solve a new problem (and thereby establishing an upper bound for the new problem). We can use reductions to prove a lower bound on the cost of a new problem by showing that it could be used as a solution for an old problem with a known lower bound.

Created with Raphaël 2.1.2
Proficient Saving... Error Saving
Server Error
Resubmit

General blackbox reduction

Figure 10.2.1: The general process for reduction shown as a “blackbox” diagram.

10.2.2. Reduction Examples

1 / 23 Settings
<<<>

As an example of reduction, consider the simple problem of multiplying two $n$-digit numbers.

Created with Raphaël 2.1.2
Proficient Saving... Error Saving
Server Error
Resubmit

   «  10.1. Limits to Computing   ::   Contents   ::   10.3. NP-Completeness  »

nsf
Close Window