tel aviv universityzwick/adv-alg-2015/sorting-networks.pdf · the aks sorting networks...

33
Sorting Networks Uri Zwick Tel Aviv University May 2015

Upload: others

Post on 23-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Sorting Networks

Uri ZwickTel Aviv University

May 2015

Page 2: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Comparators

𝑥

𝑦

min(𝑥, 𝑦)

max(𝑥, 𝑦)

Can we use comparators to

build efficient sorting networks?

𝑥

𝑦

min(𝑥, 𝑦)

max(𝑥, 𝑦)

Page 3: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Comparator networks

A comparator network is a

network composed of comparators.

There are 𝑛 input wires,

each feeding a single comparator.

Each output of a comparator is either

an output wire, or feeds a single comparator.

The network must be acyclic.

Number of output wires must also be 𝑛.

Page 4: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

“Standard form”

Exercise: Show that any comparator network

is equivalent to a network in standard form.

Page 5: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

A simple sorting network

5 comparators

3 levels

Page 6: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Insertion sort

𝑆𝑜𝑟𝑡(𝑛)

Page 7: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Selection/bubble sort

𝑆𝑜𝑟𝑡(𝑛)

Page 8: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Selection/bubble Sort

Size = 𝑛 𝑛−1

2Depth = 2𝑛 − 1

Page 9: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Exercise: Any sorting network that only compares

adjacent lines must be of size at least 𝑛 𝑛−1

2

Exercise: Prove that the network on the next slide,

whose depth is 𝑛, is a sorting network

Page 10: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Odd-Even Transposition Sort

Size = 𝑛 𝑛−1

2Depth = 𝑛

Page 11: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

The 0-1 principle

Theorem:

If a network sort all 0-1 inputs,

then it sort all inputs

Page 12: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

The 0-1 principle

Lemma:

Let 𝑓 be a monotone non-decreasing function. Then,

if a network maps 𝑥1, 𝑥2, . . , 𝑥𝑛 to 𝑦1, 𝑦2, . . , 𝑦𝑛,

then it maps 𝑓(𝑥1), 𝑓(𝑥2), . . , 𝑓(𝑥𝑛) to

𝑓(𝑦1), 𝑓(𝑦2), . . , 𝑓(𝑦𝑛)

Proof:

By induction on the number of comparisons using

𝑓 min 𝑎, 𝑏 = min(𝑓 𝑎 , 𝑓 𝑏 )𝑓 max 𝑎, 𝑏 = max(𝑓 𝑎 , 𝑓 𝑏 )

Page 13: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

The 0-1 principle

Suppose that a network is not a sorting network.

Proof:

It then maps some 𝑥1, 𝑥2, . . , 𝑥𝑛 to 𝑦1, 𝑦2, . . , 𝑦𝑛,

where 𝑦𝑖 > 𝑦𝑖+1, for some 1 ≤ 𝑖 < 𝑛.

Let 𝑓 𝑥 = 1, iff 𝑥 ≥ 𝑦𝑖, 0 otherwise.

The network maps 𝑓(𝑥1), 𝑓(𝑥2), . . , 𝑓(𝑥𝑛) to

𝑓(𝑦1), … , 𝑓(𝑦𝑖) = 1, 𝑓 𝑦𝑖+1 = 0 , . . . , 𝑓(𝑦𝑛)

Thus, the network does not sort all 0-1 inputs.

Page 14: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Sorting by merging

𝑆𝑜𝑟𝑡(𝑛)

𝑆𝑜𝑟𝑡(𝑚)

𝑀𝑒𝑟𝑔𝑒(𝑛,𝑚)

Page 15: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Batcher’s odd-even merge

𝑀(𝑛

2,𝑚

2)

𝑀(𝑛

2,𝑚

2)

𝑛

𝑚

Page 16: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Batcher’s odd-even merge

𝑀(𝑛

2,𝑚

2)

𝑀(𝑛

2,𝑚

2)

𝑛

𝑚

Page 17: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Batcher’s odd-even merge

To merge 𝑎1, 𝑎2, . . , 𝑎𝑛 with 𝑏1, 𝑏2, . . , 𝑏𝑚:

Split 𝑎1, 𝑎2, . . , 𝑎𝑛 into 𝑎1, 𝑎3, … and 𝑎2, 𝑎4, …

Split 𝑏1, 𝑏2, . . , 𝑏𝑚 into 𝑏1, 𝑏3, … and 𝑏2, 𝑏4, …

Merge odd-indexed items to create 𝑜1, 𝑜2, …

Merge even-indexed items to create 𝑒1, 𝑒2, …

Compare/swap (𝑒1, 𝑜2), (𝑒2, 𝑜3), …

Does it really work?

Page 18: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Batcher’s odd-even merge

𝑀(1,1)

𝑀(2,2)

Page 19: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Batcher’s odd-even merge - 𝑀(4,4)

Page 20: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Batcher’s odd-even merge - 𝑀(4,4)

Page 21: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Odd-even merge → Odd-even sort

Page 22: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Batcher’s odd-even merge

Suppose that 𝑎1, 𝑎2, . . , 𝑎𝑛 starts with 𝑛0 0’s

and that 𝑏1, 𝑏2, . . , 𝑏𝑚 starts with 𝑚0 0’s.

Then 𝑜1, 𝑜2, … starts with 𝑛0

2+

𝑚0

20’s,

and 𝑒1, 𝑒2, … starts 𝑛0

2+

𝑚0

20’s.

The difference is either 0,1 or 2!

Proof using the 0-1 principle.

There is a problem only if difference is 2

and last level of comparators fixes it.

Page 23: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Batcher’s odd-even merge

0 0 0 0 0 1 1 1

0 0 0 0 0 1 1 1

𝑒𝑜

0 0 0 0 1 1 1 1

0 0 0 0 0 1 1 1

𝑒𝑜

0 0 0 1 1 1 1 1

0 0 0 0 0 1 1 1

𝑒𝑜

Page 24: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Batcher’s odd-even merge

Exercise: Justify the use of the 0-1 principle.

Exercise: Prove the correctness of the

odd-even merging network directly

without relying on the 0-1 principle.

Page 25: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Batcher’s odd-even mergeSize – number of comparators

𝑀 𝑛, 0 = 𝑀 0,𝑚 = 0

𝑀 𝑛, 𝑛 = 2𝑀𝑛

2,𝑛

2+ (𝑛 − 1)

𝑀 2𝑘 , 2𝑘 = 𝑘2𝑘 + 1

𝑀 𝑛, 𝑛 = 𝑛 lg 𝑛 +𝑂(𝑛)

𝑀 1,1 = 1

𝑀 𝑛,𝑚 = 𝑀𝑛

2,𝑚

2+𝑀

𝑛

2,𝑚

2+

𝑛 +𝑚 − 1

2

No better merging networks are known for any 𝑛,𝑚!

Are the odd-even merge networks optimal?

Page 26: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Bitonic sequences

A sequence is bitonic iff it is a

cyclic shift of a strict bitonic sequence

8 6 4 1 2 5 7 9

4 1 2 5 7 9 8 6

A sequence is strict bitonic iff it is a

concatenation of a decreasing sequence

and an increasing sequence

1 4 2 3

Page 27: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

A Bitonic sorter

A (strict) bitonic sorter is a network that

sorts every (strict) bitonic sequence.

If 𝑎1, 𝑎2, . . , 𝑎𝑛 and 𝑏1, 𝑏2, . . , 𝑏𝑚 are sorted,

then 𝑎𝑛, 𝑎𝑛−1, . . , 𝑎1, 𝑏1, 𝑏2, . . , 𝑏𝑚, is bitonic.

Thus, a strict bitonic sorter

can serve as a merging network

Page 28: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Batcher’s bitonic sorter

𝐵𝑛

2𝐵𝑛

2

𝑛

Is this different from odd-even merge?

Page 29: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

A strict binary bitonic sequence – 1𝑘0ℓ1𝑛−𝑘−ℓ

The odd and even subsequences are also

strict binary bitonic sequences.

Simple proof using the 0-1 principle.

The difference between the number of 0’s

in the two sorted sequences is one of −1,0,1.

Batcher’s bitonic sorter

By induction they are sorted correctly.

Final level of comparators fixes the problem.

Page 30: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Exercise: Show that the difference

between the number of 0’s in the odd

and even subsequences of 1𝑘0ℓ1𝑛−𝑘−ℓ is

𝑘 + ℓ

2−

𝑘 + ℓ

2−

𝑘

2−

𝑘

2

Batcher’s bitonic sorter

Note: We do not need this exact formula

in the proof given in the previous slide.

Seeing that the difference is −1,0,1 is immediate.

Page 31: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Very regular structure!

When 𝑛 = 2𝑘, there

are 𝑘 levels with 𝑛

2comparators each.

Lines 𝑖 and 𝑗 are

compared at level ℓ iff

they differ only in the

ℓ-th most significant bit

Batcher’s bitonic sorter for n=2𝑘

Page 32: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

Batcher’s bitonic sorter for n=2𝑘

Alternative recursive

definition for 𝑛 = 2𝑘

Sorts general

bitonic sequences

Page 33: Tel Aviv Universityzwick/Adv-Alg-2015/Sorting-Networks.pdf · The AKS sorting networks [Ajtai-Komlós-Szemerédi(1983)] There are sorting networks of 𝑂 :log ;depth, and hence 𝑂

The AKS sorting networks[Ajtai-Komlós-Szemerédi (1983)]

There are sorting networks of 𝑂(log 𝑛) depth,

and hence 𝑂(𝑛 log 𝑛) size.

The construction is fairly complicated.

The constant factors are very large.