Presentation is loading. Please wait.

Presentation is loading. Please wait.

Nattee Niparnan Dept. of Computer Engineering, Chulalongkorn University.

Similar presentations


Presentation on theme: "Nattee Niparnan Dept. of Computer Engineering, Chulalongkorn University."— Presentation transcript:

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


Download ppt "Nattee Niparnan Dept. of Computer Engineering, Chulalongkorn University."

Similar presentations


Ads by Google