Lecture #6. Lecture outline Review Go over Homework Set #5 Continue production economic theory.
LECTURE 3: DIVIDE & CONQUER ADVANCED...
Transcript of LECTURE 3: DIVIDE & CONQUER ADVANCED...
![Page 1: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/1.jpg)
ADVANCED ALGORITHMS LECTURE 3: DIVIDE & CONQUER
�1
![Page 2: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/2.jpg)
LECTURE 3
ANNOUNCEMENTS
▸ Homework 0 grading
▸ Homework 1 posted; due on Monday Sep 10, 11:59 PM
▸ Start early! (Post comments/questions on canvas…)
▸ Unless immediate, argue why algorithm is correct
▸ Three steps — algorithm description, proof of correctness, complexity analysis
�2
![Page 3: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/3.jpg)
LECTURE 3
LAST CLASS
�3
▸ Basics of data structures
▸ What data? What operations supported? Time/space complexity
▸ Prefix trees (aka tries)
▸ Connectivity in graphs via depth-first-search (DFS)
▸ Proved using induction on the length of the path
![Page 4: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/4.jpg)
LECTURE 3
TODAY’S CLASS
▸ Divide and conquer
▸ Analysis: recurrences and how to solve them
�4
![Page 5: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/5.jpg)
LECTURE 3
DIVIDE AND CONQUER
�5
![Page 6: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/6.jpg)
LECTURE 3
DIVIDE AND CONQUER
�6
PROBLEM INSTANCE
Divide step
Solve sub-problems
FULL SOLUTIONCombine/“conquer”
![Page 7: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/7.jpg)
LECTURE 3
WHEN AND WHY?
�7
▸ Problem “cleanly” divides into not-too-many sub-problems
▸ Solutions easily (efficiently) combined
▸ Leads to simple, efficient solutions
▸ Analysis easier — correctness by induction, complexity by recurrences
Sometimes difficult to see how D&C can be used…
![Page 8: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/8.jpg)
LECTURE 3
BASIC: SORTING
�8
Basic question: given unsorted array A[0], …, A[n-1], re-order elements in increasing order (produce new array)
▸ Divide step?
▸ Conquer step
35 4 7 98 5 6 10
Find smallestelement
IMAM Aln DT
t 717 Fasort recursively
![Page 9: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/9.jpg)
LECTURE 3
MERGING SORTED LISTS
�9
CyBY's BYE Bz
qfaoi
j is the smallest ett inan
B E Bik's EB the entire arrayu
Shift the array 134 tothe left repeated
qeeach taking time
7 8 9 nk log k5 6 10
![Page 10: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/10.jpg)
LECTURE 3
OVERALL ALGORITHM — MERGE SORT
�10
▸ Divide A[] into k pieces each of size [n/k]
▸ Sort each one recursively
▸ Use merge procedure to create new sorted list
What is the overall time complexity?
Tfn k TLEdnt
rk arrays each takesFCI to sor
01
Let Tcm denote runningtime of procedureon
an instance of size m
![Page 11: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/11.jpg)
LECTURE 3
BASIC “RECURRENCE”
�11
T(n) = k ⋅ T(n /k) + kn + n
T(n) = 2T(n /2) + 3nSetting k=2
Minor: is n divisible by k?
tlnl 4 TT t5n
Goyal come up witha closed form solution
I expticitfnotnik
THE n
![Page 12: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/12.jpg)
LECTURE 3
ASIDE: HOW TO SOLVE RECURRENCES?
�12
▸ No silver bullet!
▸ Guess, prove by induction — sometimes proof gives “feedback”
▸ “Plug and chug” [Lehman, Leighton]
▸ Recurrence treekeep pluggingback
into equation see a
pattern pronebyinduction
![Page 13: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/13.jpg)
LECTURE 3
PLUG AND CHUG
�13
T(n) = 2T(n /2) + 3n
TH I
Ent 2T ET n 3 n t 213 ng t 2T F 3nt3n t 4517
3nt3nt 4 3 1 2T Ig nt3nt3y1851
r steps
r 3N IT Ir 7 3mlogin n 1
Base case Lr t rzlogen
![Page 14: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/14.jpg)
LECTURE 3
RECURRENCE TREE
�14
T nl Lt3n1 n
eternity tinitiation we do
Tt HzTs T u totwafaexha.sn
IT 11 c 3 nn
terms I3N logan n th
![Page 15: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/15.jpg)
LECTURE 3
EXAMPLE 2: MULTIPLYING INTEGERS
�15
Question: given two n digit numbers, how efficiently can we multiply them?
A Az anb
gRftifunenians HTIsee.ee eini I i t
![Page 16: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/16.jpg)
LECTURE 3
DIVIDE AND CONQUER
�16BA
a.az anxbibnLbn500 5 102 X Y Z W
A X 0000,20 4 X ion Y
B Z lo w
A B x t x.I.LII.IoIi 7Oln 0cm
conquer stepis 0h Tfn _4TH101in
![Page 17: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/17.jpg)
LECTURE 3
RUNNING TIME?
�17
TIM 4 TIE c n
11hTfn Acn 4T I Hai
Cnt 41C Z 4T fD Cn then 47T
Cnt 2cn t life It 4T 8i
I negynentientta cn 4ttfITH i He
![Page 18: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/18.jpg)
LECTURE 3
CAN WE DO BETTER?
�18
Reason to hope: we only need to find three quantities:
XZ, (XW + YZ), YW
21
![Page 19: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/19.jpg)
LECTURE 3
CAN WE DO BETTER?
�19
Reason to hope: we only need to find three quantities:
XZ, (XW + YZ), YW
Kartsuba’s observation:
XW + YZ = (X + Y )(W + Z) − XZ − YW
![Page 20: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/20.jpg)
LECTURE 3
OVERALL RUNNING TIME
�20
![Page 21: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/21.jpg)
LECTURE 3
EVEN BETTER?
�21
▸ Can we do linear time?
▸ HW1 — will see something approaching linear
![Page 22: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/22.jpg)
LECTURE 3
COMPUTING THE MEDIAN
�22
Question: given an unsorted list A[0], A[1], …, A[n-1], find the (n/2)th smallest element
Divide and conquer?
![Page 23: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/23.jpg)
LECTURE 3
KEY INSIGHT: “APPROXIMATE MEDIAN” HELPS!
�23
![Page 24: LECTURE 3: DIVIDE & CONQUER ADVANCED ALGORITHMStheory.cs.utah.edu/fall18/algorithms/slides/lecture3.pdf · 2018. 8. 29. · LECTURE 3 ANNOUNCEMENTS Homework 0 grading Homework 1 posted;](https://reader033.fdocuments.net/reader033/viewer/2022051903/5ff45ae6d3b2dc1c39181017/html5/thumbnails/24.jpg)
LECTURE 3
MEDIAN OF MEDIANS IS APPROXIMATE MEDIAN!
�24