This action might not be possible to undo. Are you sure you want to continue?

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

Each one of these subproblems is solved by recursively applying a similar division into smaller 4/26/12 . a problem is solved by first dividing it into a set of independent subproblems.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.

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

. once the list has been partitioned around the pivot. This can be repeated recursively.e.Recursive Decomposition: Example algorithm on which we A classic example of a divide-and-conquer can apply recursive decomposition is Quicksort. In this example. each sublist can be processed concurrently (i. 4/26/12 . each sublist represents an independent subtask).

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

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

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

Sign up to vote on this title

UsefulNot useful- algorithm-details.txt
- Algorithm Design
- 4701 15 Rule Based Systems
- DAA Assignment # 1
- Lossy Me Paper
- lecture-12.pptx
- ADA N Queens
- Harmful Dogmas in Fault Tolerant Distributed Computing
- DynProg Knapsack
- Scheduling 7 and sequencing
- Critical.doc
- March New Sumit Tt
- distributed systems
- greedy
- alg
- 17 Stirling Numbers of Second Type
- The Steps in Developing a Dynamic Programming Algorithm
- Algorithm Strategies
- Lamport Mutual Solved
- Distributed Mutual Xclusion Algorithms
- Lesson 25
- Search List
- ch07
- module_ii
- eliana01
- 001
- Clarke Wright
- Finding Core Members in Virtual Communities
- Lecture 23
- Cube Solution
- Decomposition Techniques

Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

We've moved you to where you read on your other device.

Get the full title to continue

Get the full title to continue reading from where you left off, or restart the preview.

scribd