+ All Categories
Home > Documents > Decode the line below into English (hint: use Google or...

Decode the line below into English (hint: use Google or...

Date post: 01-Nov-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
42
Warm up Decode the line below into English (hint: use Google or Wolfram Alpha) 1 ·· ·-·· ·· -·- · ·- ·-·· --· --- ·-· ·· - ···· -- ··· Fall 2019
Transcript
Page 1: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Warm upDecode the line below into English

(hint: use Google or Wolfram Alpha)

1·· ·-·· ·· -·- · ·- ·-·· --· --- ·-· ·· - ···· -- ···

Fall 2019

Page 2: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Warm upDecode the line below into English

(hint: use Google or Wolfram Alpha)

2·· ·-·· ·· -·- · ·- ·-·· --· --- ·-· ·· - ···· -- ···

Fall 2019

Page 3: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Today’s Keywords

• Greedy Algorithms• Exchange Argument• Choice Function• Prefix-free code• Compression• Huffman Code

5

Page 4: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

CLRS Readings

• Chapter 16

6

Page 5: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Homeworks

• HW6 Due Tuesday, November 5 @ 11pm– Written (use latex)– DP and Greedy

• HW10A also due Tuesday, November 5 @ 11pm– No late submissions allowed

• HW4 and HW5 grades coming later this week

7

Page 6: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Greedy Algorithms

• Require Optimal Substructure– Solution to larger problem contains the solution to a smaller one– Only one subproblem to consider!

• Idea:1. Identify a greedy choice property• How to make a choice guaranteed to be included in some optimal solution

2. Repeatedly apply the choice property until no subproblems remain

8

Page 7: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Exchange argument

• Shows correctness of a greedy algorithm• Idea:– Show exchanging an item from an arbitrary optimal solution with

your greedy choice makes the new solution no worse– How to show my sandwich is at least as good as yours:• Show: “I can remove any item from your sandwich, and it would be no worse

by replacing it with the same item from my sandwich”

9

Page 8: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Sam Morse

• Engineerand artist

10

Page 9: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Message Encoding• Problem: need to electronically send a message

to two people at a distance.• Channel for message is binary (either on or off)

11

!

Page 10: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

How can we do it?

• Take the message, send it over character-by-character with an encoding

12

wiggle, wiggle, wiggle like a gypsy queenwiggle, wiggle, wiggle all dressed in green a: 2

d: 2e: 13g: 14i: 8k: 1l: 9n: 3p: 1q: 1r: 2s: 3u: 1w: 6y: 2

Character Frequency

000000010010001101000101011001111000100110101011110011011110

Encoding

Page 11: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

How efficient is this?

Each character requires 4 bitsℓ# = 4

13

wiggle wiggle wiggle like a gypsy queenwiggle wiggle wiggle all dressed in green

Cost of encoding:

& ', )# = *#+,-,#./- #

ℓ#)# = 68 ⋅ 4 = 272

Better Solution: Allow for different characters to have different-size encodings(high frequency → short code)

a: 2d: 2e: 13g: 14i: 8k: 1l: 9n: 3p: 1q: 1r: 2s: 3u: 1w: 6y: 2

Character Frequency

000000010010001101000101011001111000100110101011110011011110

Encoding

Page 12: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

More efficient coding

14

& ', )# = *#+,-,#./- #

ℓ#)#

When this is big

Make this small

Codeword Size

Char

acte

r Fre

quen

cy

Page 13: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Morse Code

15Codeword Size

Char

acte

r Fre

quen

cy

Page 14: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Problem with Morse Code

16

Decode:A A

ET ETR TEN T

Ambiguous Decoding

Page 15: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Prefix-Free Code

• A prefix-free code is codeword table ' such that for any two characters 56, 57, if 56 ≠ 57then 59:;(56) is not a prefix of 59:;(57)

17

geliw…

010110111011110…

1111011100011010w i gg l e

Page 16: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Binary Trees = Prefix-free Codes

• I can represent any prefix-free code as a binary tree• I can create a prefix-free code from any binary tree

18

geliw…

010110111011110…

g

e

l

i

w

0

0

0

0

0

1

1

1

1

g e l i w

geliw…

000110110111…

0

0 00

1

11

1

Page 17: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Goal: Shortest Prefix-Free Encoding

• Input: A set of character frequencies {)#}• Output: A prefix-free code ' which minimizes

& ', )# = *#+,-,#./- #

ℓ#)#

19

Huffman Coding!!

Page 18: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Greedy Algorithms

• Require Optimal Substructure– Solution to larger problem contains the solution to a smaller one– Only one subproblem to consider!

• Idea:1. Identify a greedy choice property• How to make a choice guaranteed to be included in some optimal solution

2. Repeatedly apply the choice property until no subproblems remain

20

Page 19: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Huffman Algorithm

• Choose the least frequent pair, combine into a subtree

21

G:14 E:13 L:9 I:8 W:6 N:3 S:3 A:2 D:2 R:2 Y:2 K:1 P:1 Q:1 U:1

Page 20: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Huffman Algorithm

• Choose the least frequent pair, combine into a subtree

22

G:14 E:13 L:9 I:8 W:6 N:3 S:3 A:2 D:2 R:2 Y:2 K:1 P:1

Q:1 U:1

20 1

Subproblem of size @ − 1!

Page 21: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Huffman Algorithm

• Choose the least frequent pair, combine into a subtree

23

G:14 E:13 L:9 I:8 W:6 N:3 S:3 A:2 D:2 R:2 Y:2

Q:1 U:1

20 1

K:1 P:1

20 1

Page 22: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Huffman Algorithm

• Choose the least frequent pair, combine into a subtree

24

G:14 E:13 L:9 I:8 W:6 N:3 S:3 A:2 D:2 R:2 Y:2

Q:1 U:1

20 1

K:1 P:1

20 1

40 1

Page 23: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Huffman Algorithm

• Choose the least frequent pair, combine into a subtree

25

G:14 E:13 L:9 I:8 W:6 N:3 S:3 A:2 D:2

Q:1 U:1

20 1

K:1 P:1

20 1

40 1

R:2 Y:2

40 1

Page 24: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Huffman Algorithm

• Choose the least frequent pair, combine into a subtree

26

G:14 E:13 L:9 I:8 W:6 N:3 S:3

Q:1 U:1

20 1

K:1 P:1

20 1

40 1

R:2 Y:2

40 1

A:2 D:2

40 1

Page 25: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Huffman Algorithm

• Choose the least frequent pair, combine into a subtree

27

G:14 E:13 L:9 I:8 W:6

Q:1 U:1

20 1

K:1 P:1

20 1

40 1

R:2 Y:2

40 1

A:2 D:2

40 1

N:3 S:3

60 1

Page 26: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Huffman Algorithm• Choose the least frequent pair,

combine into a subtree

28

G:14 E:13

270 1

L:9 I:8

170 1

Q:1 U:1

20 1

K:1 P:1

20 1

40 1

N:3 S:3

60 1

10

0 1

W:6

R:2 Y:2

40 1

A:2 D:2

40 1

80 1

14

0 1

240 1

410 1

680 1

Page 27: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Exchange argument

• Shows correctness of a greedy algorithm• Idea:– Show exchanging an item from an arbitrary optimal solution with

your greedy choice makes the new solution no worse– How to show my sandwich is at least as good as yours:• Show: “I can remove any item from your sandwich, and it would be no worse

by replacing it with the same item from my sandwich”

29

Page 28: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Showing Huffman is Optimal

• Overview:– Show that there is an optimal tree in which the least frequent

characters are siblings• Exchange argument

– Show that making them siblings and solving the new smaller sub-problem results in an optimal solution• Proof by contradiction

30

Page 29: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Showing Huffman is Optimal

• First Step: Show any optimal tree is “full” (each node has either 0 or 2 children)

31

W

R Y

0 1

0

0 1

W

R Y

10

0 1' '′

'′ is a “better” tree than ', because all codes in red subtree are shorter in '′, without creating any longer codes

Page 30: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Huffman Exchange Argument• Claim: if 56, 57 are the least-frequent characters, then there is

an optimal prefix-free code s.t. 56, 57 are siblings– i.e. codes for 56, 57 are the same length and differ only by their last

bit

3256

'DE.

57

Case 1: Consider some optimal tree 'DE.. If 56, 57 are siblings in this tree, then claim holds

Page 31: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Huffman Exchange Argument

33

57

F

56

'DE.

G

Case 2: Consider some optimal tree 'DE., in which 56, 57 are not siblings

Let F, G be the two characters of lowest depth that are siblings (Why must they exist?)

Idea: show that swapping 56 with F does not increase cost of the tree. Similar for 57 and GAssume: )#6 ≤ ), and )#7 ≤ )I

• Claim: if 56, 57 are the least-frequent characters, then there is an optimal prefix-free code s.t. 56, 57 are siblings– i.e. codes for 56, 57 are the same length and differ only by their last

bit

Page 32: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Case 2: 56, 57 are not siblings in 'DE.

34

57

F

56

'DE.

G

• Claim: the least-frequent characters (56, 57), are siblings in some optimal treeF, G = lowest-depth siblingsIdea: show that swapping 56 with F does not increase cost of the tree.Assume: )#6 ≤ ),

57

56

F

'′

G

& 'DE. = J + )#6ℓ#6 + ),ℓ, & '′ = J + )#6ℓ, + ),ℓ#6

Page 33: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Case 2: 56, 57 are not siblings in 'DE.

35

F, G = lowest-depth siblingsIdea: show that swapping 56 with F does not increase cost of the tree.Assume: )#6 ≤ ),

& 'DE. = J + )#6ℓ#6 + ),ℓ, & '′ = J + )#6ℓ, + ),ℓ#6

& 'DE. − & 'L = J + )#6ℓ#6 + ),ℓ, − (J + )#6ℓ, + ),ℓ#6)

= )#6ℓ#6 + ),ℓ, − )#6ℓ, − ),ℓ#6= )#6(ℓ#6 − ℓ,) + ),(ℓ, − ℓ#6)

= (),−)#6)(ℓ, − ℓ#6)

≥ 0 ⇒ '′ optimal

• Claim: the least-frequent characters (56, 57), are siblings in some optimal tree

Page 34: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Case 2: 56, 57 are not siblings in 'DE.

36

57

F

56

'DE.

G

F, G = lowest-depth siblingsIdea: show that swapping 56 with F does not increase cost of the tree.Assume: )#6 ≤ ),

57

56

F

'′

G

& 'DE. = J + )#6ℓ#6 + ),ℓ, & '′ = J + )#6ℓ, + ),ℓ#6

& 'DE. − & 'L = (),−)#6)(ℓ, − ℓ#6)≥ 0 ≥ 0

& 'DE. − & 'L ≥ 0

'′ is also optimal!

• Claim: the least-frequent characters (56, 57), are siblings in some optimal tree

Page 35: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Case 2:Repeat to swap 57, G!

37

57

56

F

'′

G

F, G = lowest-depth siblingsIdea: show that swapping 57 with G does not increase cost of the tree.Assume: )#7 ≤ )I

G

56

F

'′′

57

& '′ = J + )#7ℓ#7 + )IℓI & '′′ = J + )#7ℓI + )Iℓ#7

& '′ − & 'LL = ()I−)#7)(ℓI − ℓ#7)≥ 0 ≥ 0

& '′ − & 'LL ≥ 0

'′′ is also optimal! Claim holds!

• Claim: the least-frequent characters (56, 57), are siblings in some optimal tree

Page 36: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Showing Huffman is Optimal

• Overview:– Show that there is an optimal tree in which the least frequent

characters are siblings• Exchange argument

– Show that making them siblings and solving the new smaller sub-problem results in an optimal solution• Proof by contradiction

38

Page 37: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Finishing the Proof

• Show Optimal Substructure– Show treating 56, 57 as a new “combined” character gives optimal

solution

39

Why does solving this smaller problem:

Give an optimal solution to this?:56 57

56 57

P

Page 38: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Optimal Substructure

• Claim: An optimal solution for Q involves finding an optimal solution for Q′, then adding 56, 57 as children to P

40

56 57

56 57

P

Q′

Q

Page 39: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Optimal Substructure• Claim: An optimal solution for Q involves finding an optimal

solution for Q′, then adding 56, 57 as children to P

41

'

56

P

57

'′

P

If this is optimal Then this is optimal

)R = )#6 + )#7

& 'L = & ' − )#6 − )#7

ℓ#6 = ℓR + 1ℓ#7 = ℓR + 1

Page 40: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Optimal Substructure

42

'

56

P

57

Suppose ' is not optimalLet S be a lower-cost tree

& S < &(')

56

S

57

Toward contradiction

• Claim: An optimal solution for Q involves finding an optimal solution for Q′, then adding 56, 57 as children to P

Page 41: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Optimal Substructure

43

S′

P

& S < &(')

56

S

57

& S′ = & S − )#6 − )#7< & ' − )#6 − )#7= & '′

Contradicts optimality of '′, so ' is optimal!

• Claim: An optimal solution for Q involves finding an optimal solution for Q′, then adding 56, 57 as children to P

Page 42: Decode the line below into English (hint: use Google or ...jh2jf/courses/fall2019/cs4102/lectures/... · (hint: use Google or Wolfram Alpha) ... 1.Identify a greedy choice property

Optimal Substructure

• Claim: An optimal solution for Q involves finding an optimal solution for Q′, then adding 56, 57 as children to P

44

56 57

56 57

P

Q′

Q

S′

P

'′P

'

56

P

57

56

S

57

>>Contradiction!


Recommended