Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text:...
Transcript of Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text:...
![Page 1: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/1.jpg)
Design and Analysis of Algorithms
![Page 2: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/2.jpg)
2
Textbooks
• Required Text: – Cormen, T.H., Leiserson, C.E., Rivest, R.L. & Stein, C. (2009).
Introduction to Algorithms, 3rd Ed. Cambridge, Mass: MIT Press.
![Page 3: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/3.jpg)
3
Assignments
• You will learn best if you try to tackle each problem by yourself initially.
• You are encouraged to discuss the problems and work in groups to overcome roadblocks.
• You are encouraged to team up with a partner and write up a single assignment report (maximum 2 per group).
• Make the reports as concise and organized as possible. Marks may be taken off for excess verbosity or lack of clarity.
• Late assignments are not excepted (except for medical emergencies – please see syllabus).
![Page 4: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/4.jpg)
4
Please ask questions!
Help me know what people are not understanding!
![Page 5: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/5.jpg)
Lecture 1. What is this course about?
![Page 6: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/6.jpg)
6
Course Content
• A list of algorithms. – Learn their code.
– Trace them until you are convinced that they work.
– Implement them.
– Worry about details.
class InsertionSortAlgorithm extends SortAlgorithm {
void sort(int a[]) throws Exception {
for (int i = 1; i < a.length; i++) {
int j = i;
int B = a[i];
while ((j > 0) && (a[j-1] > B)) {
a[j] = a[j-1];
j--; }
a[j] = B;
}}
![Page 7: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/7.jpg)
7
– Knowledge: An up to date grasp of fundamental problems and solutions
– Ability: Principles and techniques that can be adapted to solve new problems
The future belongs to the computer scientist/engineer who has
![Page 8: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/8.jpg)
8
Course Content • A survey of algorithmic design techniques. • Abstract thinking.
• How to develop new algorithms for any problem that may arise.
![Page 9: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/9.jpg)
9
A survey of fundamental ideas and algorithmic design
techniques
For example . . .
![Page 10: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/10.jpg)
10
Mathematical Tools
Input Size
Tim
e
Classifying Functions f(i) = nΘ(n)
Recurrence Relations T(n) = a T(n/b) + f(n)
Summations ∑i=1 f(i).
Time Complexity t(n) = Θ(n2)
![Page 11: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/11.jpg)
11
Iterative Algorithms Loop Invariants
i-1 i
i
0
<preCond> codeA loop <loop-invariant> exit when <exit Cond> codeB codeC <postCond>
9 km
5 km
Code Relay Race One step at a time
![Page 12: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/12.jpg)
12
Recursive Algorithms
?
?
![Page 13: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/13.jpg)
13
Graph Search Algorithms
![Page 14: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/14.jpg)
14
Network Flows
![Page 15: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/15.jpg)
15
Greedy Algorithms
Example: Making Change
![Page 16: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/16.jpg)
16
Dynamic Programing
5 3
4
2 8 4 5 2 3
1 6 5 7 5
3 2 6 4 4
8 5 9 8 2
![Page 17: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/17.jpg)
17
Reduction
=
![Page 18: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/18.jpg)
18
NP-Completeness
![Page 19: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/19.jpg)
Useful Learning Techniques
![Page 20: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/20.jpg)
20
Read Ahead
You are expected to read the lecture notes before the lecture.
This will facilitate more productive discussion during class.
![Page 21: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/21.jpg)
21
Explaining
• We are going to test you on your ability to explain the material.
• One good way to study is to explain the material over and over again to yourself or to each other.
![Page 22: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/22.jpg)
Be Creative
• Ask questions.
• Why is it done this way and not that way?
![Page 23: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/23.jpg)
23
Guesses and Counter Examples
• Guess at potential algorithms for solving a problem.
• Look for input instances for which your algorithm gives the wrong answer.
• Treat it as a game between these two players.
![Page 24: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/24.jpg)
24
Refinement: The best solution comes from a process of repeatedly refining and inventing alternative
solutions
Rudich www.discretemath.com
![Page 25: Design and Analysis of AlgorithmsDesign and Analysis of Algorithms . 2 Textbooks • Required Text: ... • A survey of algorithmic design techniques. • Abstract thinking. • How](https://reader036.fdocuments.in/reader036/viewer/2022062610/61161974e9930720746f19c8/html5/thumbnails/25.jpg)
End