1 / 56

Comparison Networks

Comparison Networks. Sorting Sorting binary values Sorting arbitrary numbers Implementing symmetric functions. Mergesort(array[1,…,n] of Integers): begin Mergesort(array[1,…,n/2]); Mergesort(array[n/2+1,…,n]); Merge(array[1,…,n/2], array[n/2+1,…,n]); end.

Download Presentation

Comparison Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Comparison Networks Sorting • Sorting binary values • Sorting arbitrary numbers • Implementing symmetric functions

  2. Mergesort(array[1,…,n] of Integers): begin Mergesort(array[1,…,n/2]); Mergesort(array[n/2+1,…,n]); Merge(array[1,…,n/2], array[n/2+1,…,n]); end comparisons required to merge two arrays of size m/2 comparisons to sort n elements Sorting Algorithms Example Order of comparisons not fixed in advance. Not readily implementable in hardware.

  3. C A D Sorting Network B B C A D Sorting Networks Order of comparisons fixed in advance. Readily implementable in hardware.

  4. sorted Sorting Networks (binary values) inputs outputs 1 0 0 0 0 0 Sorting Network 1 0 0 1 0 1 1 1 1 1

  5. Comparator (2-sorter) outputs inputs min(x, y) x C max(x, y) y

  6. Comparator (2-sorter) AON Implementation outputs inputs x min(x, y) max(x, y) y

  7. Comparator (2-sorter) outputs inputs min(x, y) x max(x, y) y

  8. 1 0 0 0 0 1 0 0 width n 1 0 1 1 0 1 1 1 depth d Comparison Network

  9. 1 0 0 0 0 1 0 0 1 0 1 1 0 1 1 1 d stages Comparison Network n / 2 comparisons per stage

  10. Sorting Network Any ideas?

  11. Sorting Network . . . n 1 . . . . . . n Sorting Network inputs outputs

  12. Insertion Sort Network inputs outputs depth2n 3

  13. Batcher Sorting Network Next Lecture

  14. Sorting Arbitrary Numbers outputs inputs min(x, y) x max(x, y) y x, y can be values from any linearly ordered set, e.g., integers, reals, etc.

  15. Comparison function: 1 if X > Y, C(X,Y) = 0 otherwise. Integer Comparator X, Y: integers represented as m-bit binary strings. Idea: use C(X,Y) to select the min and the max of X and Y.

  16. C(X, Y) C(X, Y) Integer Comparator X min(X, Y) Y C(X, Y) X C(X, Y) max(X, Y) Y

  17. 2 2 2 9 9 6 6 2 6 9 9 6 Sorting Arbitrary Numbers sorted

  18. 1 1 1 1 5 4 4 5 4 5 5 4 Sorting Arbitrary Numbers sorted

  19. 3 3 3 3 7 0 0 7 0 7 7 0 Sorting Arbitrary Numbers not sorted How can we verify if a network sorts all possible input sequences?

  20. inputs outputs Sorting Arbitrary Numbers Try all possible 0/1 sequences.

  21. inputs outputs 0 0 0 0 0 0 0 0 0 0 0 0 Sorting Arbitrary Numbers 000 000 Try all possible 0/1 sequences.

  22. 0 0 0 0 0 0 0 0 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 Try all possible 0/1 sequences.

  23. 0 0 0 0 1 0 0 1 0 1 1 0 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 Try all possible 0/1 sequences.

  24. 0 0 0 0 1 1 1 1 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 Try all possible 0/1 sequences.

  25. 0 0 0 1 1 0 0 0 0 1 1 0 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 Try all possible 0/1 sequences.

  26. 0 0 0 1 1 1 1 0 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 Try all possible 0/1 sequences.

  27. 1 1 1 1 1 0 0 1 0 1 1 0 not sorted! Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 110 101 Try all possible 0/1 sequences.

  28. 1 1 1 1 1 1 1 1 1 1 1 1 not sorted! Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 110 101 111 111 Try all possible 0/1 sequences.

  29. Sorting Arbitrary Numbers

  30. inputs outputs Sorting Arbitrary Numbers Try all possible 0/1 sequences.

  31. inputs outputs 0 0 0 0 0 0 0 0 0 0 0 0 Sorting Arbitrary Numbers 000 000 Try all possible 0/1 sequences.

  32. 0 0 0 0 0 0 0 0 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 Try all possible 0/1 sequences.

  33. 0 0 0 0 1 1 0 1 0 0 1 0 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 Try all possible 0/1 sequences.

  34. 0 0 0 0 1 1 1 1 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 Try all possible 0/1 sequences.

  35. 0 0 0 1 1 1 0 0 0 0 1 0 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 Try all possible 0/1 sequences.

  36. 0 0 0 1 1 1 1 0 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 Try all possible 0/1 sequences.

  37. 1 0 0 1 1 1 1 1 0 1 1 0 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 110 011 Try all possible 0/1 sequences.

  38. 1 1 1 1 1 1 1 1 1 1 1 1 Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 110 011 111 111 Try all possible 0/1 sequences.

  39. Sorting Arbitrary Numbers inputs outputs 000 000 001 001 010 001 011 011 100 001 101 011 110 011 111 111 all sorted! Try all possible 0/1 sequences.

  40. Zero-One Principle If a comparison network sorts all possible sequences of 0’s and 1’s correctly, then it sorts all sequences ofarbitrary numbers correctly.

  41. Lemma Given For a monotonically increasing function f,

  42. Lemma Given For a monotonically increasing function f,

  43. Proof: Lemma

  44. Proof: Lemma

  45. Proof: Lemma f is monotonically increasing:

  46. Proof: Lemma f is monotonically increasing:

  47. Proof: Lemma f is monotonically increasing:

  48. Generalization Given

  49. Generalization For a monotonically increasing function f, (by induction)

  50. Suppose a) the network sorts all sequences of 0’s and 1’s, b) there exists a sequence that it doesn’t sort, i.e., such that but is placed before in the output. Define 0 if f (x) = 1 otherwise Proof: Zero-One Principle

More Related