0% found this document useful (0 votes)
380 views7 pages

Decomposition Techniques: Click To Edit Master Subtitle Style

There are several techniques for decomposing a task into subtasks, including recursive decomposition, data decomposition, exploratory decomposition, and speculative decomposition. Recursive decomposition breaks a problem down into independent subproblems using a divide-and-conquer approach. These subproblems are then further decomposed recursively until a base case is reached. Quicksort and finding the minimum value in a list are examples of problems that can be decomposed recursively.

Uploaded by

Harkamal Singh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
380 views7 pages

Decomposition Techniques: Click To Edit Master Subtitle Style

There are several techniques for decomposing a task into subtasks, including recursive decomposition, data decomposition, exploratory decomposition, and speculative decomposition. Recursive decomposition breaks a problem down into independent subproblems using a divide-and-conquer approach. These subproblems are then further decomposed recursively until a base case is reached. Quicksort and finding the minimum value in a list are examples of problems that can be decomposed recursively.

Uploaded by

Harkamal Singh
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 7

So how does one decompose a task into various subtasks?

While there is no single recipe that works for all problems, we present a set of commonly used techniques that apply to broad classes of problems. These include: Recursive decomposition Data decomposition Click to edit Master subtitle style Exploratory decomposition Speculative decomposition

Decomposition Techniques

4/26/12

Recursive Decomposition
Recursive decomposition is a method for inducing concurrency in problems that can be solved using the divide-and-conquer strategy. In this technique, a problem is solved by first dividing it into a set of independent subproblems. Each one of these subproblems is solved by recursively applying a similar division into smaller
4/26/12

Recursive Decomposition

Generally suited to problems that are solved using the divide-and-conquer strategy. A given problem is first decomposed into a set of sub-problems. These sub-problems are recursively decomposed further until a desired 4/26/12

Recursive Decomposition: Example algorithm on which we A classic example of a divide-and-conquer


can apply recursive decomposition is Quicksort.

In this example, once the list has been partitioned around the pivot, each sublist can be processed concurrently (i.e., each sublist represents an independent subtask). This can be repeated recursively. 4/26/12

Recursive Decomposition: Example


The problem of finding the minimum number in a given list (or indeed any other associative operation such as sum, AND, etc.) can be fashioned as a divide-and-conquer algorithm. The following algorithm illustrates this. We first start with a simple serial loop for computing the minimum entry in a given list: 1. procedure SERIAL_MIN (A, n) 2. begin 3. min = A[0]; 4. for i := 1 to n 1 do 5. if (A[i] < min) min := A[i];
4/26/12 endfor; 6.

Recursive Decomposition: Example

We can rewrite the loop as follows: 1. procedure RECURSIVE_MIN (A, n) 2. begin 3. if ( n = 1 ) then 4. min := A [0] ; 5. else 6. lmin := RECURSIVE_MIN ( A, n/2 ); 7. rmin := RECURSIVE_MIN ( &(A[n/2]), n - n/2 ); 8. if (lmin < rmin) then 9. min := lmin; 10. else 11. min := rmin; 12. endelse; 13. endelse; 14. return min; 15. end RECURSIVE_MIN
4/26/12

Recursive Decomposition: Example

The code in the previous foil can be decomposed naturally using a recursive decomposition strategy. We illustrate this with the following example of finding the minimum number in the set {4, 9, 1, 7, 8, 11, 2, 12}. The task dependency graph associated with this computation is as follows:

4/26/12

You might also like