cs 222, autumn 2019jiangli/teaching/cs222/files/... · algorithm definitions 2 “ an algorithm is...
TRANSCRIPT
![Page 1: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/1.jpg)
CS 222, AUTUMN 2019
ALGORITHM DESIGN AND ANALYSIS
LI JIANG
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING
![Page 2: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/2.jpg)
Algorithm definitions
2
“ An algorithm is a finite, definite, effective procedure,
with some input and some output. ”
— Donald Knuth
“ A procedure for solving a mathematical problem (as of finding
the greatest common divisor) in a finite number of steps that
frequently involves repetition of an operation. ” — webster.com
How do you put the elephant into the refrigerator? — An false example
- Step 1: open the refrigerator;
- Step 2: get the elephant into it;
- Step 3: close the refrigerator;
![Page 3: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/3.jpg)
Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd
ed., Ch. 1 ©2012
Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved. 3
What is an algorithm?
An algorithm is a sequence of unambiguous instructions for solving a
problem, i.e., for obtaining a required output for any legitimate input in a
finite amount of time.
“computer”
problem
algorithm
input output
![Page 4: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/4.jpg)
Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd
ed., Ch. 1 ©2012
Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved. 4
Euclid’s Algorithm
Problem: Find gcd(m,n), the greatest common divisor of two nonnegative, not
both zero integers m and n
Examples: gcd(60,24) = 12, gcd(60,0) = 60, gcd(0,0) = ?
Euclid’s algorithm is based on repeated application of equality
gcd(m,n) = gcd(n, m mod n)
until the second number becomes 0, which makes the problem
trivial.
Example: gcd(60,24) = gcd(24,12) = gcd(12,0) = 12
![Page 5: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/5.jpg)
Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd
ed., Ch. 1 ©2012
Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved. 5
Two descriptions of Euclid’s algorithm
Step 1 If n = 0, return m and stop; otherwise go to Step 2
Step 2 Divide m by n and assign the value of the remainder to r
Step 3 Assign the value of n to m and the value of r to n. Go to
Step 1.
while n ≠ 0 do
r ← m mod n
m← n
n ← r
return m
![Page 6: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/6.jpg)
Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd
ed., Ch. 1 ©2012
Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved. 6
Other methods for computing gcd(m,n)
Consecutive integer checking algorithm
Step 1 Assign the value of min{m,n} to t
Step 2 Divide m by t. If the remainder is 0, go to Step 3;
otherwise, go to Step 4
Step 3 Divide n by t. If the remainder is 0, return t and stop;
otherwise, go to Step 4
Step 4 Decrease t by 1 and go to Step 2
![Page 7: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/7.jpg)
Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd
ed., Ch. 1 ©2012
Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved. 7
Other methods for gcd(m,n) [cont.]
Middle-school procedure
Step 1 Find the prime factorization of m
Step 2 Find the prime factorization of n
Step 3 Find all the common prime factors
Step 4 Compute the product of all the common prime factors
and return it as gcd(m,n)
Is this an algorithm?
How can we get this ?
![Page 8: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/8.jpg)
Levitin “Introduction to the Design & Analysis of Algorithms,” 3rd
ed., Ch. 1 ©2012
Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved. 8
Sieve of Eratosthenes
Input: Integer n ≥ 2
Output: List of primes less than or equal to n
for p ← 2 to n do A[p] ← p
for p ← 2 to n do
if A[p] 0 //p hasn’t been previously eliminated from the list
j ← p* p
while j ≤ n do
A[j] ← 0 //mark element as eliminated
j ← j + p
Example: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
![Page 9: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/9.jpg)
Algorithm etymology
Etymology. [Knuth, TAOCP]
・Algorism = process of doing arithmetic using Arabic numerals.
・A misperception: algiros [painful] + arithmos [number].
・True origin: Abu 'Abd Allah Muhammad ibn Musa al-Khwarizm
was a famous 9th century Persian textbook author who wrote
Kitāb al-jabr wa'l-muqābala, which evolved into today's high
school algebra text.
9
• introduced decimal system
• adopted use of 0
• formal method for solving quadratic equations by
completing the square
• doing geometry
![Page 10: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/10.jpg)
11
Why study algorithms?
Theoretical importance
・the core of computer science
Practical importance
・A practitioner’s toolkit of known algorithms
・Framework for designing and analyzing algorithms for new problems
・Algorithm ruled Wallet street -> Hollywood -> CIA …
![Page 11: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/11.jpg)
Why study algorithms?
Romantism
Andrew Booker @ Bristol Andrew Sutherland @ MIT
- by《The Hitchhiker‘s Guide to the Galaxy》(3)
Life, the Universe, and Everything
Except 9n±4, all natural numbers < 100 can be written the sum of cubes of three integers: X^3 + Y^3 + Z^3 = K
A new theorem:
![Page 12: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/12.jpg)
Algorithms/Data structure vs. CS 222
Implementation and consumption of classic algorithms.
・Stacks and queues.
・Sorting.
・Searching.
・Graph algorithms.
・String processing.
Emphasizes critical thinking, problem-solving, and code.
13
private static void sort(double[] a, int lo, int
hi)
{
if (hi <= lo) return;
int lt = lo, gt = hi;
int i = lo;
while (i <= gt)
{
if (a[i] < a[lo]) exch(a, lt++, i++);
else if (a[i] > a[lo]) exch(a, i, gt--);
else i++;
}
sort(a, lo, lt - 1);
sort(a, gt + 1, hi);
}
![Page 13: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/13.jpg)
Design and analysis of algorithms
Design and analysis of algorithms.
・Greedy.
・Divide-and-conquer.
・Dynamic programming.
・Network flow.
・Randomized algorithms.
・Intractability.
・Coping with intractability.
・Data structures.
Emphasizes critical thinking, problem-solving, and rigorous analysis.
14
broad algorithmic themes and design principles
* we also address fundamental barriers that prevent design of efficient algorithms
![Page 14: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/14.jpg)
• This course provides paradigmatic problems and approaches
Internet. Web search, packet routing, distributed file sharing, ...
Biology. Human genome project, protein folding, …
Computers. Circuit layout, databases, caching, networking, compilers, …
Computer graphics. Movies, video games, virtual reality, …
Security. Cell phones, e-commerce, voting machines, …
Multimedia. MP3, JPG, DivX, HDTV, face recognition, …
Social networks. Recommendations, news feeds, advertisements, …
Physics. N-body simulation, particle collision simulation, …
⋮
We emphasize algorithms and techniques that are useful in practice.
15
![Page 15: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/15.jpg)
Applications
Wide range of applications.
・Caching.
・Compilers.
・Databases.
・Scheduling.
・Networking.
・Data analysis.
・Signal processing.
・Operations research.
・Scientific computing.
・Artificial intelligence.
・Computational biology.
・. . .
We emphasize algorithms and techniques that are useful in practice.
16
![Page 16: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/16.jpg)
Administrative stuff
Lectures. [Li Jiang, [email protected]]
・ Tue, 14:00-15:40; Thu, 10:00-11:40, 东上院 201
・Attendance is required.
・No electronic devices except to aid in learning.
・Office Hour: Thursday afternoon, 13:00 – 15:00 SEIEE-3-521;
・Anytime with appointment
Precept. [Xingyi Wang, [email protected]] [Yilong Zhao, [email protected]]
・Office hour/tutorial: TBA.
・Preceptor works out problems.
・Attendance is recommended.
Prerequisites. Programming Language, Data Structure, Discrete M.
17
viewing lecture slides
taking notes
precept begins
this week
![Page 17: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/17.jpg)
Course website
・Syllabus.
・Office hours.
・Problem sets.
・Lecture slides.
・Electronic submission.
・...
18
TBA
![Page 18: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/18.jpg)
Textbook
Required reading. Algorithm Design by Jon Kleinberg and Éva Tardos.
Addison-Wesley 2005, ISBN 978-0321295354.
19
![Page 19: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/19.jpg)
Grades
Problem sets.
・"Weekly" problem sets, due via electronic submission.
・Graded for correctness, clarity, conciseness, rigor, and efficiency.
・Use template for writing solutions.
Course grades.
・Primarily based on problem sets.
・Staff discretion used to adjust borderline cases.
・“Weekly" problem sets, due Tuesday 14:00 in class. 20%
・Class participation, staff discretion for borderline cases. 5%
・Final exams. 50%
・Course project.25%
20
problem set is due
In class Monday
![Page 20: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/20.jpg)
Collaboration
Collaboration policy. [see syllabus for full details; ask if unsure]
・Course materials (textbook, slides, handouts) are always permitted.
・No external resources, e.g., can't Google for solutions.
"Collaboration permitted" problem sets.
・You may discuss ideas with classmates.
・You must write up solutions on your own, in your own words.
"No collaboration" problem sets.
・You may discuss ideas with course staff.
21
![Page 21: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/21.jpg)
Reference
Algorithm:
・ T. Cormen, C. Leiserson, R. Rivest, C. Stein, Introduction to Algorithms, MIT Press,
2009
・ S. Dasgupta, C. Papadimitriou, U. Vazirani, Algorithm, McGraw-Hill, 2007.
・ J. Kleinberg, and E. Tardos, Algorithm Design, Pearson-Addison Wesley, 2005.
・Henming Zou, The Way of Algorithms, China Machine Press, 2010.
Computational Complexity:
・Theory of Computational Complexity, by Ding-Zhu Du, and Ker-I Ko, published by
John Wiley & Sons, Inc., 2000.
・Computational Complexity: A Modern Approach, by Sanjeev Arora and Boaz Barak,
Cambridge University Press, 2006.
Approximation:
・D.P. Williamson and D.B. Shmoys, The Design of Approximation Algorithms, 2011.
・D.Z Du, K-I. Ko, and X.D. Hu, Design and Analysis of Approximation Algorithms,
2012.
![Page 22: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/22.jpg)
Questions?
23
![Page 23: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/23.jpg)
Where to get help?
Textbook. Read the textbook—it's good!
Piazza. Online discussion forum.
・Low latency, low bandwidth.
・Mark as private any solution-
revealing questions.
Office hours.
・High bandwidth, high latency.
・Thursday, 13:00-15:00.
24
https://piazza.com/class/j7i92eh9s1q5n0
www.cs.princeton.edu/courses/archive/spring13/cos423
![Page 24: CS 222, AUTUMN 2019jiangli/teaching/CS222/files/... · Algorithm definitions 2 “ An algorithm is a finite, definite, effective procedure, with some input and some output. —Donald](https://reader034.vdocument.in/reader034/viewer/2022042404/5f1bd73f2796a137d61a21b6/html5/thumbnails/24.jpg)
Where to get help?
Wechat Discussion group
• High bandwidth, low latency
• Q & A
• Announcement