Download presentation
Presentation is loading. Please wait.
Published byRhoda Jones Modified over 9 years ago
1
Nattee Niparnan Dept. of Computer Engineering, Chulalongkorn University
2
The Course Midterm 40% Final 40% Something else 20% Quiz 10% Lab 10%
3
Yes, we have labs This year, we introduce lab You will be required to participate in “online” activities Writing code (in C language) Teacher and TA will help you
4
Topics Analysis Asymptotic notation Big O analysis NP-Complete Design Divide and Conquer Dynamic Programming Graph Algorithm Greedy Algorithm Search There will be labs for each of these topics
5
Books : Required Algorithms, S. Dasgupta, C. Papadimitriou and U. Vazirani, McGraw-Hill, 2008
6
Books : Supplemental การวิเคราะห์และออกแบบอัลกอริทึม, สมชาย ประสิทธิ์จู ตระกูล, NECTEC, 2544 Data Structure & Algorithm Analysis, Mark Allen Weiss. Introduction to Algorithms 2nd edition, T. Cormen, C. Leiserson, R. Rivest, C. Stein, MIT Press & McGraw- Hill, 2001. Introduction to Algorithms: A Creative Approach, Udi Manber.
7
Web Webboard http://www.cp.eng.chula.ac.th/webboard/viewforum.ph p?f=18 Lab http://www.nattee.net/teaching/ You can also find my slides there
8
Chapter 0
9
What is an algorithm?
10
What is Problem? A task with precise description of admissible input and the “property” of the desired output E.g., GCD Given two positive integers (input) Determine GCD of the given integers (express the property of the desired output) GCD is well defined
11
Problem Instance Determining GCD is a problem How many actual problems? GCD of 1,2 ? GCD of 234,42? ??? Problem instance A problem with a specific input E.g., find a GCD of 42 and 14
12
Purpose of this class “how to design an algorithm for given problems” Analysis Synthesis emphasized…. Correctness For any instances, it must produce appropriate output Efficient!!
13
Calculating Fibonacci Sequence Fibonacci sequence 1,1,2,3,5,7,8,13,21,34,55,89,144,233,377,610,987,1597,2584
14
The Problem Input: a positive number N Output: F n (the n th Fibonacci Number) Example instances Ex. 1: N = 10 Ex. 2: N = 15 Ex. 3: N = 0 N = -4 is not an instances of this problem!!!
15
Approach 1 Array based DP (linear) 11235813213455
16
Approach 2 Recursive (exponential) F(9) F(8)F(7) F(6) F(5) … …
17
Approach 3 Divide and Conquer (logarithmic)
18
Approach 3 Find exponential Divide and Conquer (logarithmic)
19
Approach 4 Closed form solution (constant) Golden Ratio
20
Conclusion Difference Design Difference Performance This class emphasizes on designing “efficient algorithm”
21
Algorithm Again It is the essence of the computation
22
Side Note on Algorithm Named after a Persian mathematician “Muhammad ibn Musa Khwarizmi” Wrote book on linear equation Introduce number 0
23
Analysis part
24
Asymptotic Notation Measurement of “efficiency” of algorithms How to compare two algorithms How to predict behavior of the algorithm
25
Big O analysis How to determine Big O of some code Recurrent Relation
26
NP-Complete What computer could solve Efficiently Inefficiently The difference between “Efficiency” and “Inefficiency”
27
Synthesis part
28
Divide and Conquer Solve a problem instance by dividing into smaller instance Based on induction
29
Dynamic Programming Reduce redundancy computation For the case when there are several overlapping subproblem
30
Greedy Algorithm Solve the problem by doing the best for the current step Proof of correctness
31
Graph Algorithm Algorithm related to graph structure Shortest Path Minimal Spanning Tree
32
Search Solve the problem by enumeration Systematical enumeration Performance improvement
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.