1
CS4102 Algorithms Fall 2020 Warm up Simplify: 1 + 2 + 3 + + ( 1) - - PowerPoint PPT Presentation
CS4102 Algorithms Fall 2020 Warm up Simplify: 1 + 2 + 3 + + ( 1) - - PowerPoint PPT Presentation
CS4102 Algorithms Fall 2020 Warm up Simplify: 1 + 2 + 3 + + ( 1) + = 1 + 1 1 + 2 + 3 + + ( 1) + = 2 + 1 2 Matrix Multiplication 1 2 3 2 4 6 4 5 6 8 10 12 7 8 9
2
1 + 2 + 3 + β― + (π β 1) + π =
π + 1 π
π π + 1 2
Matrix Multiplication
3
1 2 3 4 5 6 7 8 9 Γ 2 4 6 8 10 12 14 16 18 = 60 72 84 132 162 192 204 252 300 = 2 + 16 + 42 4 + 20 + 48 6 + 24 + 54 β β β β β β Run time? π(π3) π π
Matrix Multiplication D&C
4
Multiply π Γ π matrices (π΅ and πΆ)
π΅ = π1 π2 π3 π4 π5 π6 π7 π8 π9 π10 π11 π12 π13 π14 π15 π16 πΆ = π1 π2 π3 π4 π5 π6 π7 π8 π9 π10 π11 π12 π13 π14 π15 π16
Divide:
Matrix Multiplication D&C
5
Multiply π Γ π matrices (π΅ and πΆ)
π΅ = π1 π2 π3 π4 π5 π6 π7 π8 π9 π10 π11 π12 π13 π14 π15 π16
π΅1,1 π΅1,2 π΅2,1 π΅2,2
π΅πΆ = π΅1,1πΆ1,1 + π΅1,2πΆ2,1 π΅1,1πΆ1,2 + π΅1,2πΆ2,2 π΅2,1πΆ1,1 + π΅2,2πΆ2,1 π΅2,1πΆ1,2 + π΅2,2πΆ2,2 πΆ = π1 π2 π3 π4 π5 π6 π7 π8 π9 π10 π11 π12 π13 π14 π15 π16
πΆ1,1 πΆ1,2 πΆ2,1 πΆ2,2 Run time? π π = 8π π 2 + 4 π 2
2
Cost of additions
Combine:
Matrix Multiplication D&C
6
π π = 8π π 2 + 4 π 2
2
π π = 8π π 2 + Ξ(π2) π = 8, π = 2, π π = π2 πlogπ π = πlog2 8 = π3 Case 1! π π = Ξ(π3) We can do betterβ¦
Matrix Multiplication D&C
7
Multiply π Γ π matrices (π΅ and πΆ)
π΅ = π1 π2 π3 π4 π5 π6 π7 π8 π9 π10 π11 π12 π13 π14 π15 π16
π΅1,1 π΅1,2 π΅2,1 π΅2,2
π΅πΆ = π΅1,1πΆ1,1 + π΅1,2πΆ2,1 π΅1,1πΆ1,2 + π΅1,2πΆ2,2 π΅2,1πΆ1,1 + π΅2,2πΆ2,1 π΅2,1πΆ1,2 + π΅2,2πΆ2,2 πΆ = π1 π2 π3 π4 π5 π6 π7 π8 π9 π10 π11 π12 π13 π14 π15 π16
πΆ1,1 πΆ1,2 πΆ2,1 πΆ2,2 Idea: Use a Karatsuba-like technique on this
Strassenβs Algorithm
8
Multiply π Γ π matrices (π΅ and πΆ)
π΅ = π1 π2 π3 π4 π5 π6 π7 π8 π9 π10 π11 π12 π13 π14 π15 π16
π΅1,1 π΅1,2 π΅2,1 π΅2,2
πΆ = π1 π2 π3 π4 π5 π6 π7 π8 π9 π10 π11 π12 π13 π14 π15 π16
πΆ1,1 πΆ1,2 πΆ2,1 πΆ2,2 Calculate:
π 1 = π΅1,1 + π΅2,2 (πΆ1,1 + πΆ2,2) π 2 = π΅2,1 + π΅2,2 πΆ1,1 π 3 = π΅1,1(πΆ1,2 β πΆ2,2) π 4 = π΅2,2(πΆ2,1 β πΆ1,1) π 6 = π΅2,1 β π΅1,1 (πΆ1,1 + πΆ1,2) π 5 = π΅1,1 + π΅1,2 πΆ2,2 π 7 = π΅1,2 β π΅2,2 (πΆ2,1 + πΆ2,2)
π΅1,1πΆ1,1 + π΅1,2πΆ2,1 π΅1,1πΆ1,2 + π΅1,2πΆ2,2 π΅2,1πΆ1,1 + π΅2,2πΆ2,1 π΅2,1πΆ1,2 + π΅2,2πΆ2,2 π 1 + π 4 β π 5 + π 7 π 3 + π 5 π 2 + π 4 π 1 β π 2 + π 3 + π 6
Find π΅πΆ:
Number Mults.: 7 Number Adds.: 18 π π = 7π π 2 + 9 2 π2
Strassenβs Algorithm
9
π π = 7π π 2 + 9 2 π2 π = 7, π = 2, π π = 9 2 π2 πlogπ π = πlog2 7 β π2.807 Case 1! π π = Ξ πlog2 7 β Ξ(π2.807)
10
π3 πlog2 7
Strassenβs Algorithm
Is this the fastest?
11
Best possible is unknown May not even exist!
Recurrence Solving Techniques
12
Tree Guess/Check βCookbookβ Substitution
?
Observation
- Divide: πΈ(π) time,
- Conquer: recurse on small problems, size π‘
- Combine: C(π) time
- Recurrence:
π π = πΈ π + π(π‘) + π·(π)
- Many D&C recurrences are of form:
π π = ππ π π + π(π)
13
Master Theorem
- Case 1: if π π = π(πlogπ π βπ) for some constant π > 0, then
π π = Ξ(πlogπ π)
- Case 2: if π π = Ξ(πlogπ π), then π π = Ξ(πlogπ π log π)
- Case 3: if π π = Ξ©(πlogπ π+π) for some constant π > 0, and if
ππ
π π
β€ ππ(π) for some constant π < 1 and all sufficiently large π, then π π = Ξ(π π )
14
π π = ππ π π + π(π)
Substitution Method
- Idea: take a βdifficultβ recurrence, re-express it such that one
- f our other methods applies.
- Example:
15
π π = 2π π + log2 π
Tree method
16
π
π π = 2π( π) + log2 π
π π
π π π π
β¦ β¦ β¦ β¦
2 2 2 β¦ 2 2 2
log2 π 1 2 log2 π 1 2 log2 π 1 4 log2 π 1 4 log2 π 1 4 log2 π 1 4 log2 π 1 1 1 1 1 1
log2 π log2 π log2 π log2 π + + + + + + + + +
log2 log2 π
π π = π(log2 π β log2 log2 π)
log2 π1/2 = 1 2 log2 π
Substitution Method
17
π π = 2π π + log2 π Let π = 2π, i.e. π = log2 π Let π π = 2π
π 2
+ π π 2π = 2π 2
π 2
+ π Rewrite in terms of exponent! Case 2! Let π π = Ξ(π log π) Substitute Back Let T π = Ξ(log π log log π) π π = 2π π1/2 + log2 π
I donβt like the Β½ in the exponent Now the variable is in the exponent on both sides! S will operate exactly as T, just redefined in terms of the exponent π π = π(2π)
Tree method
18
π
π π = 2π( π) + log2 π
π π
π π π π
β¦ β¦ β¦ β¦
2 2 2 β¦ 2 2 2
log2 π 1 2 log2 π 1 2 log2 π 1 4 log2 π 1 4 log2 π 1 4 log2 π 1 4 log2 π 1 1 1 1 1 1
log2 π log2 π log2 π log2 π + + + + + + + + +
log2 log2 π
π = 2π π 2π = 2π 2
π 2
+ π
2π 2π/2 2π/2 2π/4 2π/4 2π/4 2π/4
Tree method
19
2π
π 2π = 2π(2π/2) + π
2π/2 2π/2 2π/4 2π/4 2π/4 2π/4
β¦ β¦ β¦ β¦
21 21 21 β¦ 21 21 21
π π 2 π 2 π 4 π 4 π 4 π 4 1 1 1 1 1 1
π π π π + + + + + + + + +
log2π
π = 2π
Tree method
20
π π/2 π/2 π/4 π/4 π/4 π/4
β¦ β¦ β¦ β¦
1 1 1 β¦ 1 1 1
π π 2 π 2 π 4 π 4 π 4 π 4 1 1 1 1 1 1
π π π π + + + + + + + + +
log2π