งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

1 MAT 231: คณิตศาสตร์ไม่ ต่อเนื่อง (3) Function Growth & Time-Complexity ดร. ธนา สุขวารี ดร. สุรศักดิ์ มังสิงห์ SPU, Computer Science Dept.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "1 MAT 231: คณิตศาสตร์ไม่ ต่อเนื่อง (3) Function Growth & Time-Complexity ดร. ธนา สุขวารี ดร. สุรศักดิ์ มังสิงห์ SPU, Computer Science Dept."— ใบสำเนางานนำเสนอ:

1 1 MAT 231: คณิตศาสตร์ไม่ ต่อเนื่อง (3) Function Growth & Time-Complexity ดร. ธนา สุขวารี ดร. สุรศักดิ์ มังสิงห์ SPU, Computer Science Dept.

2 2 วัตถุประสงค์ เพื่อศึกษาวิธีการวิเคราะห์ ประสิทธิภาพขั้นตอนวิธี เบื้องต้น โดยใช้สัญญลักษ์ Big-Oh แทนการ ประมาณค่าความซับซ้อนด้านเวลา (time complexity) ของขั้นตอนวิธี

3 3 Orders of Growth For functions over numbers, we often need to know a rough measure of how fast a function grows. If f(x) is faster growing than g(x), then f(x) always eventually becomes larger than g(x) in the limit (for large enough values of x). Useful in engineering for showing that one design scales better or worse than another.

4 4 การวัดประสิทธิภาพขั้นตอนวิธี ประสิทธิภาพ -> การใช้ทรัพยากรในระบบ : เวลา (excecution t ime: e-time) หรือ หน่วยความจำ ( memory ) ที่ใช้สำหรับการทำงาน ตามขั้นตอนวิธีจนได้ผลลัพธ์ y 1 =x y 2 = x 2 y 4 =log(x) y 3 =e x data e-time

5 5 ประเภทของฟังก์ชัน (types of functions) Linear function: y = mx+b – y 1 = 2x +1 or y 2 = 0.5x+1 or y 3 =20x-4 Polynomial function: y= a n x n +a n-1 x n a 0 x 0 – degree-2 : y 1 = 5x 2 + 3x +4 – degree-3 : y 2 = 2x 3 -10x 2 Exponential function: y = a x – y= e x Logarithmic function : y= log(x)

6 6 Linear fuctions e-time data y 1 =x y 2 =0.5x +1 x2x2 x1x1 x3x3

7 7 Polynomial fuctions time data y 1 =x 2 y 2 =x 3 y 3 =x 4 xixi t3t3 t2t2 t1t1 y 1 > y 2 > y 3

8 8 ฟังก์ชัน & ค่าความซับซ้อน (Functions ordered & Complexity) Time complexity: –Exponential order> Polynomail order > Linear order > logarithmic order Time complexity (high) -> Algorithm performance(low) How to choose the algorithm’s order for me? expo < polynomail < linear < log avoid best

9 9 Linear order Vs. Polynomial order y 1 =x y 2 = x 2 y 4 =log(x) y 3 =e x data time x 1 x 2 x 3 t3t3 t2t2 t1t1 y 1 better than y 2 where x i > x 2 y 2 better than y 1 where x i < x 2

10 10 Time complexity of MAX () procedure max({a i } : integers) [1] v := a 1 ; [2] for i := 2 to n [3] if a i > v then v := a i ; [4] return v ; 1 n-1 1 (n+1) total execution-time time complexity = n+1 (linear ordered) + +

11 11 Time complexity of Linear search procedure Linear_search (x: integer, {a i }: distinct integers) i := 1 ; while (i  n  x  a i ) i := i + 1; if i  n then location := i else location := 0 ; return location; Time complexity of Linear_search () 1 n 1 1 n+3 time complexity = n+3 (linear ordered) total execution-time + + +

12 12 procedure binary search (x:integer, {a i }: distinct integers) i := 1; j := n ; while i am then i := m+1 else j := m; end if x = a i then location := i else location := 0 return location; Time complexity of Binary_search() log 2 n 1 1 time complexity = 2log 2 n +4 (log ordered)

13 13 n n/2 n/4 n/8 2 1 n + n/2 + n/4 + n/ h n n/2 n/4 n/8 #n = 2 h -1 Time complexity of Binary_search() log 2 n = h.log 2 2 h=log 2 n h

14 14 Linear search Vs. Binary search Linear search Binary search Linear ordered (n+ 3 ) Log. ordered (2log2n +4) time complexity Searching performance Binary search > Linear search

15 15 Definition: Big-Oh, O(f(x)) ให้ f(x) เป็นฟังก์ชัน f: R  R. นิยาม ฟังก์ชัน f(x) จะเขียนอยู่ในรูป O(f(x)) หรือ f(x) = O(f(x)) ก็ต่อเมื่อ { f: R  R |  c,k:  x>k: |f(x)|  c|g(x)| }

16 16 “Big-Oh” Proof Examples Show that 30n+8 is O(n). Show  c,k:  n>k: 30n+8  cn. Let c=31, k=8. Assume n>8. Then cn = 31n = 30n + n > 30n+8, So 30n+8 < cn #

17 17 “Big-Oh” Proof Examples Show that n 2 +1 is O(n 2 ). Show  c,k:  n>k: n 2 +1  cn 2. Let c=2, k=1. Assume n>1. Then cn 2 = 2n 2 = n 2 +n 2 > n 2 +1, So n 2 +1< cn 2 #

18 18 EX-1: Show that n 2 +n+3 is O(n 2 ) Proof: Show  c, k:  n>k: n 2 +n+3  cn 2. assume that  n>= 1, n 2 +n+3 <= 3n 2 +3n 2 +3n 2 = 9n 2 n 2 +n+3 <=9n 2 ; let k=1 and c=9 then n 2 +n+3 = O(n 2 ) #

19 19 EX-2: Show that n is O(n 2 ) Proof: Show  c, k:  n>k: n  cn 2. therefore n = n(n+1)/2 then n = n(n+1)/2 = n 2 /2 + n/2 assume that  n>= 1; n 2 /2 + n/2 <= n 2 /2+n 2 /2 n 2 + n <= n 2 +n 2 = 2n 2 n(n + 1) <= 2n 2 n(n+1)/2 <= n 2 let, k=1 and c=1 then n(n+1)/2 = O(n 2 ) or n = O(n 2 ) #

20 20 EX-3: Show that 3n 3 +6n 2 -4n+2 is O(n 3 ) Proof: Show  c, k:  n>k: 3n 3 +6n 2 -4n+2  cn 2. assume that  n>= 1 3n 3 +6n 2 -4n+2 <= 6n 3 +6n 3 +6n 3 +6n 3 = 24n 3 let k=1 and c=24 then 3n 3 +6n 2 -4n+2 = O(n 3 ) #

21 21 More Big-O facts  c>0, O(cf)=O(f+c)=O(f  c)=O(f) f 1  O(g 1 )  f 2  O(g 2 )  f 1 f 2  O(g 1 g 2 ) f 1 +f 2  O(g 1 +g 2 ) = O(max(g 1,g 2 )) = O(g 1 ) if g 2  O(g 1 ) (Very useful!)

22 22 Computer Time Examples Assume time = 1 ns (10  9 second) per op, problem size = n bits, and #ops is a function of n, as shown. (125 kB) (1.25 bytes)

23 23 1.Use the definition of big-oh to prove that n 2 is O(n 3 ) 2. Use the definition of big-oh to prove that is O(n2). 3.Arrange these functions form poor to best performance: 1.2n 3 +4logn 2 2.5e n +7n n 6 -3n 3 +5logn+n+1 Exercises 3n-8-4n 3 2n-1

24 24 4. Show the Big-Oh of the algorithm that takes a list of integers a1,a2,…,an (n ≥ 2) and finds the second-largest integer in the sequence which had written in the previous chapter. 5. Show the Big-Oh of the algorithm that takes a list of n integers (n ≥1) and finds the average of the largest and smallest integers in the list which had written in the previous chapter. Exercises

25 25 ให้วิเคราะห์ค่าความซับซ้อนของขั้นตอน วิธีใน Quiz-II ในเทอมสัญญลักษณ์ Big-oh (10 นาที ) Quiz -III

26 Guideline Exam 1/2553 1(10) การคำนวณ 1,2 complement 2 ข้อย่อย 2(20) แปลงเลขฐาน 4 ข้อย่อย 3(20) เขียน pseudo code และแสดงผลลัพธ์การ sort 4(20) เขียน pseudo code + ประมาณสัญลักษณ์ Big-Oh 5(10) ประมาณประสิทธิาภาพขั้นตอนวิธีใน สัญลักษณ์ Big-Oh ห้ามใช้เครื่องคิดเลข 26


ดาวน์โหลด ppt 1 MAT 231: คณิตศาสตร์ไม่ ต่อเนื่อง (3) Function Growth & Time-Complexity ดร. ธนา สุขวารี ดร. สุรศักดิ์ มังสิงห์ SPU, Computer Science Dept.

งานนำเสนอที่คล้ายกัน


Ads by Google