Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
433 KB
Nội dung
08/14/14 (c)2001-2003, Michae l P. Frank 1 Module #6 – Orders of Growth University of Florida Dept. of Computer & Information Science & Engineering COT 3100 Applications of Discrete Structures Dr. Michael P. Frank Slides for a Course Based on the Text Slides for a Course Based on the Text Discrete Mathematics & Its Applications Discrete Mathematics & Its Applications (5 (5 th th Edition) Edition) by Kenneth H. Rosen by Kenneth H. Rosen 08/14/14 (c)2001-2003, Michae l P. Frank 2 Module #6 – Orders of Growth Module #6: Cấp độ tăng - Orders of Growth Rosen 5 Rosen 5 th th ed., §2.2 ed., §2.2 ~22 slides, ~1 lecture ~22 slides, ~1 lecture 08/14/14 (c)2001-2003, Michae l P. Frank 3 Module #6 – Orders of Growth Cấp độ tăng (§1.8) • Đối với các hàm số, ta thường cần phải biết Đối với các hàm số, ta thường cần phải biết độ đo thô xem hàm tăng nhanh như thế nào độ đo thô xem hàm tăng nhanh như thế nào . . • N N ếu ếu f f ( ( x x ) t ) t ăng nhanh hơn ăng nhanh hơn g g ( ( x x ), th ), th ì ì f f ( ( x x ) lu ) lu ôn ôn sẽ trở nên lớn hơn sẽ trở nên lớn hơn g g ( ( x x ) ) đối với những giá trị đối với những giá trị của x đủ lớn của x đủ lớn . . • C C ấp độ tăng hữu ích trong công nghệ khi ấp độ tăng hữu ích trong công nghệ khi chỉ ra một thiết kế này tốt hơn thiết kế khác. chỉ ra một thiết kế này tốt hơn thiết kế khác. 08/14/14 (c)2001-2003, Michae l P. Frank 4 Module #6 – Orders of Growth Cấp độ tăng - Động lực (Motivation) • Gi Gi ả sử bạn thiết kế ả sử bạn thiết kế web site web site để xử lý số liệu của để xử lý số liệu của người sử dụng người sử dụng (nh (nh ư các bản ghi tài chính ư các bản ghi tài chính ). ). • Gi Gi ả sử chương trình ả sử chương trình A trong CSDL d A trong CSDL d ùng ùng f f A A ( ( n n )=30 )=30 n+ n+ 8 microseconds 8 microseconds để xử lý bất kỳ để xử lý bất kỳ n n b b ản ản ghi nào ghi nào , trong khi , trong khi đó chương trình đó chương trình B d B d ùng ùng f f B B ( ( n n )= )= n n 2 2 +1 microseconds +1 microseconds để xử lý để xử lý n n b b ản ghi ản ghi . . • B B ạn chọn chương trình nào ạn chọn chương trình nào , khi b , khi b ạn muốn hỗ trợ ạn muốn hỗ trợ một triệu khách hàng một triệu khách hàng ? ? 08/14/14 (c)2001-2003, Michae l P. Frank 5 Module #6 – Orders of Growth Hình dung cấp độ tăng - Visualizing Orders of Growth • Trên đồ thị, khi Trên đồ thị, khi bạn đi sang phải, bạn đi sang phải, hàm tăng nhanh hàm tăng nhanh hơn luôn nhất hơn luôn nhất định sẽ trở nên định sẽ trở nên lớn hơn lớn hơn hàm kia hàm kia f A (n)=30n+8 Increasing n → f B (n)=n 2 +1 Value of function → 08/14/14 (c)2001-2003, Michae l P. Frank 6 Module #6 – Orders of Growth Khái niệm cấp độ tăng Concept of order of growth • Ta n Ta n ói ói f f A A ( ( n n )=30 )=30 n+ n+ 8 8 là (nhiều nhất) là (nhiều nhất) cấp cấp n n , hoặc , hoặc O( O( n n ) ) . . – Cái đó tối đa là VCL ngang cấp với Cái đó tối đa là VCL ngang cấp với n n . . • f f B B ( ( n n )= )= n n 2 2 +1 +1 là cấp là cấp n n 2 2 , hoặc , hoặc O( O( n n 2 2 ) ) . . – Cái đó tối đa là VCL ngang cấp Cái đó tối đa là VCL ngang cấp n n 2 2 . . • Bất cứ hàm nào mà cấp sát nhất của nó là O( Bất cứ hàm nào mà cấp sát nhất của nó là O( n n 2 2 ) ) cũng sẽ tăng nhanh hơn mọi hàm cấp O( cũng sẽ tăng nhanh hơn mọi hàm cấp O( n n ). ). – Sau này ta sẽ dùng Sau này ta sẽ dùng Θ Θ để biểu diễn chính xác cấp để biểu diễn chính xác cấp . . • Đối với số lớn người sử dụng, hàm cấp chính xác Đối với số lớn người sử dụng, hàm cấp chính xác n n 2 2 sẽ dùng nhiều thời gian hơn hàm tuyến tính. sẽ dùng nhiều thời gian hơn hàm tuyến tính. 08/14/14 (c)2001-2003, Michae l P. Frank 7 Module #6 – Orders of Growth Định nghĩa: O(g), tối đa cấp g G/s G/s g g là một hàm bất kỳ là một hàm bất kỳ R R → → R R . . • ĐN “tối đa cấp ĐN “tối đa cấp g g ”, viết là O( ”, viết là O( g g ), là hàm: ), là hàm: { { f f : : R R → → R | R | ∃ ∃ c c , , k k : : ∀ ∀ x x > > k k : : f f ( ( x x ) ) ≤ ≤ cg cg ( ( x x )} )} . . – “ “ Bắt đầu từ một Bắt đầu từ một k nào đó k nào đó , hàm , hàm f f bị chặn bởi bị chặn bởi hằng số hằng số c c lần lần g g (tức là (tức là , tỷ lệ với g , tỷ lệ với g ).” ).” • “ “ f f là tối đa cấp là tối đa cấp g g ”, hoặc ”, hoặc “f “f là O( là O( g g ) ) ”, ”, hoặc hoặc “ “ f f =O( =O( g g )” tất cả đều có nghĩa là )” tất cả đều có nghĩa là f f ∈ ∈ O( O( g g ). ). • Thông thường chữ “tối đa” bị bỏ qua. Thông thường chữ “tối đa” bị bỏ qua. 08/14/14 (c)2001-2003, Michae l P. Frank 8 Module #6 – Orders of Growth Các tham số trong định nghĩa • Lưu ý Lưu ý f f là O( là O( g g ) khi tồn tạo bất kỳ giá trị ) khi tồn tạo bất kỳ giá trị c c và và k k mà thoả mãn định nghĩa. mà thoả mãn định nghĩa. • Nhưng: Các giá trị Nhưng: Các giá trị c c , , k cụ thể mà làm cho khẳng k cụ thể mà làm cho khẳng định trên đúng không là duy nhất định trên đúng không là duy nhất : : mọi giá trị của mọi giá trị của c, k lớn hơn đều thỏa mãn. c, k lớn hơn đều thỏa mãn. • Ban không cần phải tìm các giá trị nhỏ nhất của Ban không cần phải tìm các giá trị nhỏ nhất của c c và và k k thỏa mãn. (Thực tế trong một số trường hợp thỏa mãn. (Thực tế trong một số trường hợp sẽ không có giá trị nhỏ nhất!) sẽ không có giá trị nhỏ nhất!) However, you should prove that the values you choose do work. 08/14/14 (c)2001-2003, Michae l P. Frank 9 Module #6 – Orders of Growth “Big-O” Proof Examples • Show that 30 Show that 30 n n +8 is O( +8 is O( n n ). ). – Show Show ∃ ∃ c c , , k k : : ∀ ∀ n n > > k k : : 30 30 n n +8 +8 ≤ ≤ cn cn . . • Let Let c= c= 31, 31, k k =8. Assume =8. Assume n n > > k k =8. Then =8. Then cn cn = 31 = 31 n n = 30 = 30 n n + + n n > 30 > 30 n n +8, so 30 +8, so 30 n n +8 < +8 < cn cn . . • Show that Show that n n 2 2 +1 is O( +1 is O( n n 2 2 ). ). – Show Show ∃ ∃ c c , , k k : : ∀ ∀ n n > > k k : : n n 2 2 +1 +1 ≤ ≤ cn cn 2 2 . . • Let Let c c =2, =2, k k =1. Assume =1. Assume n n >1. Then >1. Then cn cn 2 2 = 2 = 2 n n 2 2 = = n n 2 2 + + n n 2 2 > > n n 2 2 +1, or +1, or n n 2 2 +1< +1< cn cn 2 2 . . 08/14/14 (c)2001-2003, Michae l P. Frank 10 Module #6 – Orders of Growth • Nhận thấy 30 Nhận thấy 30 n n +8 không +8 không nhỏ hơn nhỏ hơn n n ở đâu cả ở đâu cả ( ( n n >0). >0). • Nó không phải Nó không phải nhỏ hơn 31 nhỏ hơn 31 n n ở mọi nơi ở mọi nơi . . • Nhưng nó nhỏ Nhưng nó nhỏ hơn 31 hơn 31 n n ở mọi nơi ở mọi nơi bên phải bên phải n n =8 =8 . . n>k=8 → Ví dụ Big-O example bằng đồ thị Increasing n → Value of function → n 30n+8 cn = 31n 30n+8 ∈O(n) [...]... #6 – Orders of Growth Giải • Log log n, log n, n log n, n, n (log n)2, n2, 2n, n! • VD: – – – – nsin n ∈ O(n), nhưng n.sin n ∉ Ω(n) n/sin n ∈ O(n2), nhưng n/sin n ∉ Ω(n2) n/3 + 100 ∈ Θ (n); 1000n + 50 n1/2 ∈ Θ(n) n log n + n2 ∈Θ (n2); n/log n + n ∈ Θ (n) ; 2n + n9 ∈ Θ (2n) 08/14/14 (c)2001-2003, Michae 26 Module #6 – Orders of Growth Cho cặp hàm xét quan hệ 08/14/14 (c)2001-2003, Michae 27 Module #6. .. (c)2001-2003, Michae 27 Module #6 – Orders of Growth 08/14/14 (c)2001-2003, Michae 28 Module #6 – Orders of Growth 08/14/14 (c)2001-2003, Michae 29 Module #6 – Orders of Growth 08/14/14 (c)2001-2003, Michae 30 Module #6 – Orders of Growth Cho cặp hàm,chúng có quan hệ nào? 08/14/14 (c)2001-2003, Michae 31 Module #6 – Orders of Growth ~ là quan hệ VCL tương đương 08/14/14 (c)2001-2003, Michae 32 ... (c)2001-2003, Michae)) 16 Module #6 – Orders of Growth Định nghĩa: Θ(g), chính xác cấp g • Nếu f∈O(g) và g∈O(f), thì ta nói “g và f là cùng cấp” hoặc “f là (chính xác) cấp g” và viết f∈Θ(g) • Định nghĩa khác tương đương: Θ(g) ≡ {f:R→R | ∃c1c2k>0 ∀x>k: |c1g(x)|≤|f(x)|≤|c2g(x)| } – “Bắt đầu từ điểm k nào đó, f(x) kẹp giữa hai hàm tỷ lệ của g(x).” 08/14/14 (c)2001-2003, Michae 17 Module #6 – Orders of Growth... (c)2001-2003, Michae 20 Module #6 – Orders of Growth Quan hệ giữa các quan hệ Relations Between the Relations • Quan hệ tập con giữa các tập cấp độ tăng O( f ) R→R Ω( f ) •f o( f ) 08/14/14 Θ( f ) ω( f ) (c)2001-2003, Michae 21 Module #6 – Orders of Growth Tại sao o(f)⊂O(x)−Θ(x) • Đây là hàm mà là O(x), nhưng không là o(x) và không là Θ(x): 08/14/14 (c)2001-2003, Michae 22 Module #6 – Orders of Growth Sắp... cuối được gọi là cấp nhỏ hơn chặt so với Θ(f) 08/14/14 (c)2001-2003, Michae 18 Module #6 – Orders of Growth Θ example • Determine whether: n ? ∑ i ∈ Θ( n 2 ) • Quick solution: i =1 n ∑ i = n(n − 1) / 2 i =1 = n ⋅ Θ( n ) / 2 = n ⋅ Θ( n ) = Θ( n ) 2 08/14/14 (c)2001-2003, Michae 19 Module #6 – Orders of Growth Các quan hệ cấp độ khác Other Order-of-Growth Relations ∀ Ω(g) = {f... Michae 12 Module #6 – Orders of Growth Tiếp tục về cấp độ tăng (§1.8) • Đối với mọi g:R→R, “nhiều nhất cấp độ g”, O(g) ≡ {f:R→R | ∃ c,k ∀x>k |f(x)| ≤ |cg(x)|} – Thông thường, người ta xét các hàm dương và có thể bỏ qua dấu trị tuyệt đối • “f∈O(g)” thường được viết “f là O(g)” hoặc “f=O(g)” – Dạng sau cùng cho phép mở rộng định nghĩa tổng quát hơn 08/14/14 (c)2001-2003, Michae 13 Module #6 – Orders of... … 08/14/14 (c)2001-2003, Michae 23 Module #6 – Orders of Growth Tóm tắt: cấp độ tăng Review: Orders of Growth (§1.8) Định nghĩa các tập cấp độ tăng, ∀g:R→R • O(g) :≡ {f | ∃ c>0 ∃k ∀x>k |f(x)| < |cg(x)|} • o(g) :≡ {f | ∀ c>0 ∃k ∀x>k |f(x)| < |cg(x)|} ∀ Ω(g) :≡ {f | g∈O(f)} ∀ ω(g) :≡ {f | g∈o(f)} ∀ Θ(g) :≡ O(g) ∩ Ω(g) 08/14/14 (c)2001-2003, Michae 24 Module #6 – Orders of Growth Ví dụ • Sắp xếp cấp độ... (c)2001-2003, Michae 14 Module #6 – Orders of Growth Các phưong trình về cấp độ tăng Order of Growth Equations • G/s E1 và E2 là các biểu thức cấp độ tăng tương ứng với các tập hàm S và T • Khi đó “phương trình” E1=E2 có nghĩa là ∀f∈S, ∃g∈T : f=g hoặc đơn giản S⊆T • Ví dụ: x2 + O(x) = O(x2) nghĩa là ∀f∈O(x): ∃g∈O(x2): x2+f(x)=g(x) 08/14/14 (c)2001-2003, Michae 15 Module #6 – Orders of Growth Một số điều...Module #6 – Orders of Growth Các ghi chú có ích về Big O • Big O, như một quan hệ có tính bắc cầu: f∈O(g) ∧ g∈O(h) → f∈O(h) • O không thay đổi khi nhân thừa số hằng số, lấy căn hoặc logarit ∀ f (in ω(1)) & hằng số a,b∈R, với b≥0, af, f 1-b, và (logb f)a tất cả đều là O(f) • Tổng các hàm: Nếu g∈O(f) và h∈O(f), thì g+h∈O(f) 08/14/14 (c)2001-2003, Michae 11 Module #6 – Orders of Growth Thêm . Kenneth H. Rosen by Kenneth H. Rosen 08/14/14 (c)2001-2003, Michae l P. Frank 2 Module #6 – Orders of Growth Module #6: Cấp độ tăng - Orders of Growth Rosen 5 Rosen 5 th th ed., §2.2 ed., §2.2 ~22. f A (n)=30n+8 Increasing n → f B (n)=n 2 +1 Value of function → 08/14/14 (c)2001-2003, Michae l P. Frank 6 Module #6 – Orders of Growth Khái niệm cấp độ tăng Concept of order of growth • Ta n Ta n ói ói . ): x x 2 2 + + f f ( ( x x )= )= g g ( ( x x ) ) 08/14/14 (c)2001-2003, Michae l P. Frank 16 Module #6 – Orders of Growth Một số điều có ích về Big O Useful Facts about Big O ∀ ∀ ∀ f,g f,g