1. Trang chủ
  2. » Công Nghệ Thông Tin

PHÂN TÍCH VÀ THIẾT KẾ GIẢI THUẬT ppt

125 3.2K 23

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • PHÂN TÍCH VÀ THIẾT KẾ GIẢI THUẬT ANALYS AND DESIGN ALGORITHMS

  • Mục tiêu môn học

  • Nội dung môn học

  • Đánh giá kết quả

  • Tài liệu học tập

  • Nhắc nhở một số quy định

  • Trao đổi thông tin

  • Chương 1:

  • Nội dung

  • Thuật ngữ và khái niệm

  • Cấu trúc dữ liệu

  • Slide 12

  • Thuật toán

  • Các đặc trưng của Thuật toán

  • Mối quan hệ của CTDL và thuật toán

  • Các phương pháp biểu diễn giải thuật

  • Slide 17

  • Slide 18

  • Độ phức tạp của thuật toán

  • Thời gian thực hiện thuật toán

  • Slide 21

  • Slide 22

  • Slide 23

  • Slide 24

  • Khung thức của sự phân tích

  • Hai trường hợp phân tích

  • Phân lớp độ phức tạp

  • Các ký hiệu tiệm cận

  • Kí hiệu “O lớn”

  • Kí hiệu omega 

  • Kí hiệu theta (f(n))

  • Ví dụ: Xét hàm T(n) = 27n2 + 2 n - 12

  • Ví dụ: Xét hàm T(n) = 20n2 + 9 n +3

  • Ví dụ: Xét hàm T(n) = 3n.log3n+2

  • TỔNG QUÁT Mọi đa thức P(n) bậc k khi n  tương đương với nk Pk(n) = aknk+...+ ao=  (nk)

  • Luật tổng

  • Slide 37

  • Luật tổng - Tích

  • Thời gian chạy của các lệnh

  •   2. Lệnh lựa chọn

  • 3. Lệnh lặp: for, while, do-while

  • Ví dụ

  • Slide 43

  • Slide 44

  • Slide 45

  • Ví dụ Thuật toán tạo ra ma trận đơn vị A cấp n

  • Các độ phức tạp thường gặp

  • Bảng so sánh các độ phức tạp của thuật toán

  • Thứ tự độ phức tạp của thuật toán

  • Nguyên tắc phân tích độ phức tạp trung bình

  • Phân tích độ phức tạp trung bình (tt.)

  • Chia để trị - Divide and conquer algorithm

  • Khái niệm Chia để trị

  • Sơ đồ chung

  • SƠ ĐỒ TỔNG QUÁT

  • Slide 56

  • Chú ý

  • Ví dụ đơn giản

  • Ví dụ 2: Cặp điểm gần nhất

  • Phân tích các giai đoạn

  • TRỊ : Giải các bài toán con

  • TỔNG HỢP LỜI GIẢI

  • Kỹ thuật CHIA

  • Kỹ thuật TRỊ

  • Kỹ thuật giải bài toán 3

  • Thủ tục trị bài toán con 3

  • Thủ tục chính

  • Dạng khác: Giảm để trị

  • Đệ quy

  • Hệ thức truy hồi

  • Số Fibonacci – Cây đệ quy

  • Fibonacci – Không đệ quy

  • Các phương pháp giải quyết đệ qui

  • Phân tích giải thuật đệ quy: các công thức truy hồi căn bản

  • Phân tích giải thuật đệ quy bằng phương pháp lặp

  • Slide 76

  • Slide 77

  • Slide 78

  • Slide 79

  • Ví dụ 1

  • Phương pháp thay thế

  • Chứng minh bằng Quy nạp toán học

  • Slide 83

  • Slide 84

  • Ví dụ: Binary Search

  • Ví dụ 2

  • Ví dụ 3

  • Thay đổi biến

  • Tip

  • Slide 90

  • Phương pháp cây đệ qui

  • Phương pháp cây đệ quy (recursion tree)

  • Ví dụ

  • Slide 94

  • Slide 95

  • Slide 96

  • Slide 97

  • Slide 98

  • Slide 99

  • Slide 100

  • Slide 101

  • Slide 102

  • Phương pháp master

  • Định lý master

  • Slide 105

  • Ví dụ 1

  • Ví dụ 2

  • Ví dụ 3

  • Nhược điểm của định lý master

  • Ví dụ 4

  • Chiến lược thiết kế giải thuật

  • Chiến lược thiết kế giải thuật (tt.)

  • Vài chuỗi số thông dụng

  • Vài chuỗi số thông dụng (tt.)

  • Logarithms

  • Some Simple Summation Formulas

  • Một số công cụ toán

  • Slide 118

  • Slide 119

  • Slide 120

  • Slide 121

  • Các ví dụ

  • Slide 123

  • Slide 124

  • Đọc và tìm hiểu thêm

Nội dung

1 PHÂN TÍCH VÀ THIẾT KẾ GIẢI THUẬT ANALYS AND DESIGN ALGORITHMS 1 2 Mục tiêu môn học  Cung c p ki n th c và k năng trong ấ ế ứ ỹ vi c phân tích đ ph c t p tính toán ệ ộ ứ ạ c a gi i thu t.ủ ả ậ  Tìm hi u các chi n thu t thi t k gi i ể ế ậ ế ế ả thu tậ 2 3 Nội dung môn học 3 TT Nội dung Số tiết Phân bổ thời gian Ghi chú Lý thuyết Bài Tập Tự học 1 Các khái niệm căn bản về phân tích độ phức tạp giải thuật 6 6 0 10 2 Phân tích độ phức tạp của một số giải thuật sắp thứ tự và tìm kiếm 8 8 3 20 3 Phân tích độ phức tạp của một số giải thuật trên cấu trúc dữ liệu 9 9 3 20 4 Phân tích độ phức tạp của một số giải thuật đồ thị 5 5 3 20 5 Các chiến lược thiết kế giải thuật 8 8 3 15 6 Vấn đề NP-đầy đủ 9 9 3 20 TỔNG 60 60 0 105 4 Đánh giá kết quả 1. Kiểm tra giữa kỳ: Tự luận  Điểm Kiểm tra giữa kỳ < 4  không được thi kết thúc môn  học lại 2. Kiểm tra cuối kỳ: Tự luận 3. Bài tập lớn: làm các bài tập 4. Điểm Đề tài < 4  không được thi kết thúc môn  học lại 5. Thi kết thúc môn: Tự luận 6. Kiểm tra thường kỳ 4 5 Tài liệu học tập  Giáo trình:  [1] Cormen, T. H., Leiserson, C. E, and Rivest, Introduction to Algorithms, The MIT Press, 1997.  Tham khảo:  [2] Sedgewick, Algorithms in C++, Addison- Wesley, 1998  [3] Weiss, M.A, Data Structures and Algorithm Analysis in C , The Benjamin/Cummings Publishing, 1993 5 6 Nhắc nhở một số quy định  Đi học đúng giờ  Đeo thẻ SV  Không để chuông điện thoại reo trong giờ học  Không nghe điện thoại, nhắn tin trong giờ học  Không nói chuyện riêng, làm ồn khi nghe giảng  Mang đầy đủ tài liệu học tập của môn học (khi học LT và TH): giáo trình, bài tập, tập chép bài (hoặc slide bài giảng), usb để lưu bài tập  Phải làm bài tập ở nhà  Nếu vi phạm: Nhắc nhở chung  Bị mời ra khỏi lớp  Xóa tên khỏi môn học 6 7 Trao đổi thông tin Địa chỉ mail: • Kimchi_12041972@yahoo.com Địa chỉ download tài liệu: • http://my.opera.com/LinhChi10/blog/ 8 CÁC KHÁI NIỆM CĂN BẢN VỀ PHÂN TÍCH ĐỘ PHỨC TẠP GIẢI THUẬT Chương 1: 8 9 Nội dung  Thuật ngữ và Khái Niệm  Các định nghĩa về độ phức tạp  Kỹ thuật chia-để-trị và giải thuật đệ quy  Phương trình truy hồi và cách giải phương trình truy hồi  Vài thí dụ minh hoạ về phân tích độ phức tạp giải thuật 9  10 Thuật ngữ và khái niệm  Cấu trúc dữ liệu  Thuật toán  Độ phức tạp của thuật toán 10  [...]... false Thuật ngữ và khái niệm 18 Cấu trúc dữ liệu  Thuật toán   Độ phức tạp của thuật toán (algorithm complexity)  Độ phức tạp của thuật toán 19  Độ phức tạp của giải thuật là chi phí về tài nguyên của hệ thống (chủ yếu là thời gian, bộ nhớ, CPU, đường truyền) cần thiết để thực hiện giải thuật  Phân tích giải thuật (Analyzing of Algorithm) là quá trình tìm ra những đánh giá về tài nguyên cần thiết. .. nhất(best-case)của giải thuật Thời gian nhiều nhất để thực hiện giải thuật với mọi kích thước đầu vào n được gọi là thời gian chạy xấu nhất (worst-case) của giải thuật Thời gian trung bình để thực hiện giải thuật với mọi kích thước đầu vào n được gọi là thời gian chạy trung bình (average case) của giải thuật Độ phức tạp thời gian của thuật toán 22       Ví dụ Đánh giá độ phức tạp về thời gian của giải thuật. .. trong giải thuật sắp thứ tự Tổng số thao tác trừu tượng thường tùy thuộc vào một vài đại lượng ♦ Bước 3: thực hiện phân tích toán học để tìm ra các giá trị trung bình và giá trị xấu nhất của các đại lượng quan trọng Hai trường hợp phân tích 26 • Thường thì không khó để tìm ra cận trên của thời gian tính toán của một giải thuật • Nhưng phân tích trường hợp trung bình thường đòi hỏi một sự phân tích. .. thực hiện giải thuật Thời gian thực hiện thuật toán 20 Độ phức tạp về thời gian của giải thuật:  Được qui về đếm số lệnh cần thực thi của giải thuật  Đó là một hàm T(n) phụ thuộc vào kích thước n của input  Coi như có một máy trừu tượng (abstract machine) để thực hiện giải thuật Độ phức tạp thời gian của thuật toán 21    Thời gian tối thiểu để thực hiện giải thuật với mọi kích thước đầu vào n gọi... Mảng (Array) Danh sách liên kết (Linked List) Ngăn xếp (Stack) Hàng đợi (Queue) Cây (Tree) …  (1) the logical arrangement of data elements, combined with  (2) the set of operations we need to access the elements Thuật ngữ và khái niệm 12 Cấu trúc dữ liệu   Thuật toán  Độ phức tạp của thuật toán  Thuật toán 13  Giải thuật hay thuật toán là dãy các thao tác xác định nhằm giải một bài toán nào đó... n} Khung thức của sự phân tích 25 ♦ Bước 1: Đặc trưng hóa dữ liệu nhập và quyết định kiểu phân tích thích hợp Thông thường, ta tập trung vào việc Chứng minh rằng thời gian tính toán luôn nhỏ hơn một “cận trên” (upper bound), hay Dẫn xuất ra thời gian chạy trung bình đối với một dữ liệu nhập ngẫu nhiên ♦ Bước 2: nhận dạng thao tác trừu tượng (abstract operation) mà giải thuật dựa vào đó làm việc Thí... S Các đặc trưng của Thuật toán 14      INPUT: Có các bộ dữ liệu đầu vào thuộc một tập hợp dữ liệu nào đó OUTPUT: Xuất dữ liệu đầu ra theo yêu cầu của bài toán Tính xác định: Mỗi bước của thuật toán hoàn toàn xác định, được mô tả chính xác và cho kết quả xác định Tính dừng: Thuật toán phải kết thúc sau hữu hạn bước Tính phổ dụng: Thuật toán áp dụng được cho mọi bộ dữ liệu đầu vào thuộc tập hợp dữ... phân tích toán học cầu kỳ, phức tạp • Về nguyên tắc, một giải thuật có thể được phân tích đến một mức độ chính xác rất chi li Nhưng trong thực tế, chúng ta thường chỉ tính ước lượng (estimating) mà thôi • Tóm lại, chúng ta tìm kiếm một ước lượng thô về thời gian tính toán của một giải thuật (nhằm mục Phân lớp độ phức tạp 27 Hầu hết các giải thuật thường có một thông số chính, N, số mẫu dữ liệu nhập... ai= x 3 then return true 4 return false Độ phức tạp thời gian của thuật toán 23 Giải:  Gọi α, β và γ là thời gian thực hiện của phép gán, phép so sánh và trả về của giải thuật  Trường hợp tốt nhất: Nếu a1= x, thìT(n) = α+β+ γ  Trường hợp xấu nhất : Nếu x ∉{a1, a2, , an} thì T(n) = (n+1)α+ nβ+ γ Độ phức tạp thời gian của thuật toán 24 Giải:  Trường hợp trung bình:  Tồn tại i, ai = x, thìT(n) = f(i)... hệ của CTDL và thuật toán 15 CTDL + Thuật toán = Chương trình Các phương pháp biểu diễn giải thuật 16     Diễn đạt bằng ngôn ngữ tự nhiên Biểu diễn bằng sơ đồ khối Biểu diễn bằng Giả mã, thông thường dùng ngôn ngữ tựa PASCAL; Ngôn ngữ lập trình cấp cao (High programming languages) như Pascal, C/C++ vv Các phương pháp biểu diễn giải thuật 17 Ví dụ: Tìm x trong dãy a1, a2, , an  Đầu vào: Số x, dãy . kiếm 8 8 3 20 3 Phân tích độ phức tạp của một số giải thuật trên cấu trúc dữ liệu 9 9 3 20 4 Phân tích độ phức tạp của một số giải thuật đồ thị 5 5 3 20 5 Các chiến lược thiết kế giải thuật 8 8 3. VỀ PHÂN TÍCH ĐỘ PHỨC TẠP GIẢI THUẬT Chương 1: 8 9 Nội dung  Thuật ngữ và Khái Niệm  Các định nghĩa về độ phức tạp  Kỹ thuật chia-để-trị và giải thuật đệ quy  Phương trình truy hồi và. elements. 11 12  Cấu trúc dữ liệu  Thuật toán  Độ phức tạp của thuật toán 12  Thuật ngữ và khái niệm 13 Thuật toán  Giải thuật hay thuật toán là dãy các thao tác xác Giải thuật hay thuật toán là dãy các

Ngày đăng: 25/07/2014, 16:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w