Lecture 6 Algorithm Analysis

Slides:



Advertisements
Similar presentations
Theory of Computing Lecture 3 MAS 714 Hartmut Klauck.
Advertisements

Analysis of Algorithms CS 477/677 Linear Sorting Instructor: George Bebis ( Chapter 8 )
Batcher’s merging network Efficient Parallel Algorithms COMP308.
Heiko Schröder, 2003 Parallel Architectures 1 Various communication networks State of the art technology Important aspects of routing schemes Known results.
The main idea of the article is to prove that there exist a tester of monotonicity with query and time complexity.
Lecture 5: Linear Time Sorting Shang-Hua Teng. Sorting Input: Array A[1...n], of elements in arbitrary order; array size n Output: Array A[1...n] of the.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 9 Tuesday, 11/20/01 Parallel Algorithms Chapters 28,
Algorithm Design Techniques: Induction Chapter 5 (Except Section 5.6)
CS 584. Sorting n One of the most common operations n Definition: –Arrange an unordered collection of elements into a monotonically increasing or decreasing.
CS 104 Introduction to Computer Science and Graphics Problems Data Structure & Algorithms (3) Recurrence Relation 11/11 ~ 11/14/2008 Yang Song.
Sorting networks Efficient Parallel Algorithms COMP308.
Advanced Topics in Algorithms and Data Structures Page 1 An overview of lecture 3 A simple parallel algorithm for computing parallel prefix. A parallel.
Sorting Lower Bound Andreas Klappenecker based on slides by Prof. Welch 1.
Bitonic and Merging sorting networks Efficient Parallel Algorithms COMP308.
CSCI-455/552 Introduction to High Performance Computing Lecture 22.
Sorting Networks Uri Zwick Tel Aviv University May 2015.
MergeSort Source: Gibbs & Tamassia. 2 MergeSort MergeSort is a divide and conquer method of sorting.
Cardinality & Sorting Networks. Cardinality constraint Appears in many practical problems: scheduling, timetabling etc’. Also takes place in the Max-Sat.
Unit 1. Sorting and Divide and Conquer. Lecture 1 Introduction to Algorithm and Sorting.
Computer Algorithms Lecture 11 Sorting in Linear Time Ch. 8
1 Parallel Sorting Algorithms. 2 Potential Speedup O(nlogn) optimal sequential sorting algorithm Best we can expect based upon a sequential sorting algorithm.
A Simple Algorithm for Stable Minimum Storage Merging Pok-Son Kim Kookmin University, Department of Mathematics, Seoul , Korea Arne Kutzner Seokyeong.
Parallel and Distributed Algorithms Eric Vidal Reference: R. Johnsonbaugh and M. Schaefer, Algorithms (International Edition) Pearson Education.
Lecture 2 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
Design of Algorithms using Brute Force Approach. Primality Testing (given number is n binary digits)
Lecture 6 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
Comparison Networks Sorting Sorting binary values
Lecture 11 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
Searching and Sorting Recursion, Merge-sort, Divide & Conquer, Bucket sort, Radix sort Lecture 5.
Lecture 4 Sorting Networks. Comparator comparator.
1 Parallel Sorting Algorithm. 2 Bitonic Sequence A bitonic sequence is defined as a list with no more than one LOCAL MAXIMUM and no more than one LOCAL.
“Sorting networks and their applications”, AFIPS Proc. of 1968 Spring Joint Computer Conference, Vol. 32, pp
Comparison Networks Sorting Sorting binary values Sorting arbitrary numbers Implementing symmetric functions.
Sorting. Sorting Sorting is important! Things that would be much more difficult without sorting: –finding a telephone number –looking up a word in the.
Young CS 331 D&A of Algo. Topic: Divide and Conquer1 Divide-and-Conquer General idea: Divide a problem into subprograms of the same kind; solve subprograms.
Lecture 2 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
1 Sorting Networks Sorting.
Sorting: Parallel Compare Exchange Operation A parallel compare-exchange operation. Processes P i and P j send their elements to each other. Process P.
Lecture 5 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
Lecture 2 Algorithm Analysis
Chapter 11 Sorting Acknowledgement: These slides are adapted from slides provided with Data Structures and Algorithms in C++, Goodrich, Tamassia and Mount.
Lecture 4 Sorting Networks
Sorting Networks Characteristics The basic unit: a comparator
Unit 1. Sorting and Divide and Conquer
SORTING NETWORKS.
Lecture 7 Algorithm Analysis
MergeSort Source: Gibbs & Tamassia.
Lecture 5 Algorithm Analysis
Lecture 10 Algorithm Analysis
Rank Aggregation.
Bitonic Sorting and Its Circuit Design
Merge sort merge sort: Repeatedly divides the data in half, sorts each half, and combines the sorted halves into a sorted whole. The algorithm: Divide.
Lecture 5 Algorithm Analysis
Comparison Networks Sorting Sorting binary values
Topic: Divide and Conquer
Richard Anderson Lecture 13 Divide and Conquer
Lecture 7 Algorithm Analysis
Bitonic and Merging sorting networks
Lecture 6 Algorithm Analysis
Divide and Conquer Algorithms Part I
Lecture 7 Algorithm Analysis
Linear-Time Sorting Algorithms
Lecture 5 Algorithm Analysis
Divide-and-Conquer 7 2  9 4   2   4   7
Merge sort merge sort: Repeatedly divides the data in half, sorts each half, and combines the sorted halves into a sorted whole. The algorithm: Divide.
Parallel Sorting Algorithms
Discrete Mathematics CS 2610
Efficient Parallel Algorithms COMP308
Lecture 5 Algorithm Analysis
Presentation transcript:

Lecture 6 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea

Sorting Networks

Sorting Networks Example of Parallel Algorithms Not directly related to our classical “computer models” (e.g. Turing machines, von-Neumann architecture) 2016/10 Algorithm Analysis

Comparator Works in O(1) time. wire Input wires Output wires 2016/10 Algorithm Analysis

Example of Comparison Network Input Output Wires go straight, left to right. Each comparator has inputs/outputs on some pair of wires. 2016/10 Algorithm Analysis

Correctness of Example Network Claim that this comparison network will sort any set of 4 input values: After leftmost comparators, minimum is on either wire 1 (from top) or 3, maximum is on either wire 2 or 4. After next 2 comparators, minimum is on wire 1, maximum on wire 4. Last comparator gets correct values onto wires 2 and 3. 2016/10 Algorithm Analysis

Output depth: max (dx ,dy) + 1 Definition of Depth Depth of some Wire: Input wires of the network have depth 0 Depth of a comparator := depth of its output wire Depth of a Network := maximum depth of a an output wire of the network Input depth: dx Output depth: max (dx ,dy) + 1 Input depth: dy 2016/10 Algorithm Analysis

Depth - Example Depth 1 Depth 2 Depth 3 2016/10 Algorithm Analysis

Selection Sorter Foundation: Bouble-Sort Idea Find the maximum of 5 values: 2016/10 Algorithm Analysis

Selection Sorter (cont.) We extend our idea: Depth: Selection Sorter for 4 elements 2016/10 Algorithm Analysis

Zero-one principle How can we test if a comparison network sorts? We could try all n! permutations of input. But we will see that we need to test only 2n permutations. Theorem (0-1 principle) If a comparison network with n inputs sorts all 2n sequences of 0.s and 1.s, then it sorts all sequences of arbitrary numbers. 2016/10 Algorithm Analysis

Important Lemma Lemma: If a comparison network transforms a = <a1, a2, . . . , an> into b = <b1, b2, . . . , bn>, then for any monotonically increasing function f , it transforms f(a) = <f(a1), f(a2), . . . , f(an)> into f(b) = <f(b1), f(b2), . . . , f(bm)>. 2016/10 Algorithm Analysis

Proof of Lemma Important property: Then use induction on the depth of some wire 2016/10 Algorithm Analysis

Proof of 0-1 principle Suppose that the principle is not true, so that an n-input comparison network sorts all 0-1 sequences, but there is a sequence <a1, a2, . . . , an> such that ai < aj but ai comes after aj in the output. Define the monotonically increasing function 2016/10 Algorithm Analysis

Proof 0-1 principle (cont.) By our lemma proven before: If we give the input <f(a1), f(a2), . . . , f(an)>, then in the output we will have f(ai) after f(aj) But this results in an unsorted 0-1 sequence. A contradiction. 2016/10 Algorithm Analysis

Definition of the notion “bitonic” A sequence is bitonic if it monotonically increases, then monotonically decreases, or it can be circularly shifted to become so. Examples: <1, 3, 7, 4, 2>, <6, 8, 3, 1, 2, 4>, <8, 7, 2, 1, 3, 5> For 0-1 sequences bitonic sequences have the form: 2016/10 Algorithm Analysis

Half Cleaner Comparison network of depth 1 in which input of line i is compared with line i+n/2 for i=1,2,…,n/2 2016/10 Algorithm Analysis

Property of Half Cleaner Lemma: If the input to a half-cleaner is a bitonic 0-1 sequence, then for the output: both the top and bottom half are bitonic, every element in the top half is ≤ every element in the bottom half, and at least one of the halves is clean.all 0.s or all 1.s. Proof: Simple inspection of 8 different cases. 2016/10 Algorithm Analysis

Bitonic Sorter Recursively defined, so we have: 2016/10 Algorithm Analysis

Example for bitonic Sorter 2016/10 Algorithm Analysis

Merging Network Idea: Given 2 sorted sequences, reverse the second one, then concatenate with the first one ⇒ get a bitonic sequence. Example: X = 0011 Y = 0111 YR = 1110 XYR = 00111110 (bitonic) 2016/10 Algorithm Analysis

Merging Network (cont.) How do we reverse Y? We don’t! Instead, we reverse the bottom half of the connections of the first half-cleaner: X X is equal to Y YR Y 2016/10 Algorithm Analysis

Merging Network - Example So we get as Merging Network: 2016/10 Algorithm Analysis

Sorting Network – Construction Principle Using the MergeSort-Idea we can recursively construct a Sorting Network by combining several Merger 2016/10 Algorithm Analysis

Sorting Network - Example Example: n = 8 Sorter Sorter 2016/10 Algorithm Analysis

Sorting Network – Example (cont.) Merger Merger Merger 2016/10 Algorithm Analysis

Sorting Network – Complexity Analysis According to the construction principle for sorting networks we get: 2016/10 Algorithm Analysis