Bài giảng Thiết kế và đánh giá thuật toán

231 1.2K 21
Bài giảng Thiết kế và đánh giá thuật toán

Đ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

Bài giảng Thiết kế và đánh giá thuật toán

11Thiết kế đánh giá Thiết kế đánh giá thuật toánthuật toánCao học, khoa công nghệ thông tinCao học, khoa công nghệ thông tinĐại học quốc gia Hà nội.Đại học quốc gia Hà nội.Phan Thị Hà DươngPhan Thị Hà DươngViện Toán học. Viện Toán học. phan.haduong@gmail.comphan.haduong@gmail.com 22Chương trìnhChương trìnhChương 1Chương 1: Giới thiệu về thuật toán: Giới thiệu về thuật toánChương 2Chương 2: Phân tích tính hiệu quả của thuật : Phân tích tính hiệu quả của thuật toán toán Chương 3Chương 3: Phương pháp “tham lam”: Phương pháp “tham lam”Chương 4Chương 4: Phương pháp “chia để trị”: Phương pháp “chia để trị”Chương 5Chương 5: Phương pháp qui hoạch động: Phương pháp qui hoạch độngChương 6Chương 6: Thuật toán trên đồ thị: Thuật toán trên đồ thịChương 7Chương 7: Phương pháp xác suất: Phương pháp xác suấtChương 8Chương 8: Về độ phức tạp tính toán: Về độ phức tạp tính toán 33Ví dụ: Chương 3: Phương pháp Ví dụ: Chương 3: Phương pháp “tham lam”“tham lam”I.I.Giới thiệu chungGiới thiệu chungII.II.Thuật toán trên đồ thịThuật toán trên đồ thị1)1)Cây bao trùm nhỏ nhấtCây bao trùm nhỏ nhất2)2)Đường đi ngắn nhấtĐường đi ngắn nhấtIII.III.Thuật toán sắp xếp lịch làm việcThuật toán sắp xếp lịch làm việcIV.IV.Thuật toán “heurisitic”Thuật toán “heurisitic”1)1)Tô màu đồ thịTô màu đồ thị2)2)Người đưa hàngNgười đưa hàng 44Sách tham khảoSách tham khảo 55Sách tham khảoSách tham khảo2. 2. Algorithmique - conception et analyseAlgorithmique - conception et analyseG. Brassard and P.Bratley, Masson, Paris , G. Brassard and P.Bratley, Masson, Paris , 198719873. 3. Data structure and algorithmsData structure and algorithmsA. Aho, J. Hopcroft and J. Ullman, Addison A. Aho, J. Hopcroft and J. Ullman, Addison Wesley Publishing CompanyWesley Publishing Company4. 4. Lý thuyết độ phức tạp tính toán.Lý thuyết độ phức tạp tính toán.Phan Đình Diệu.Phan Đình Diệu. 66Chương 1: Giới thiệu về thuật Chương 1: Giới thiệu về thuật toántoánI.I.Khái niệm thuật toánKhái niệm thuật toánII.II.Một số ví dụMột số ví dụIII.III.Đánh giá thuật toán trong trường hợp Đánh giá thuật toán trong trường hợp xấu nhất theo trung bìnhxấu nhất theo trung bìnhIV.IV.Về thuật toán hiệu quảVề thuật toán hiệu quảV.V.Một số bài toán cụ thểMột số bài toán cụ thểVI.VI.Cấu trúc dữ liệu Cấu trúc dữ liệu 77Khái niệm về thuật toánKhái niệm về thuật toánThuật toán:Thuật toán:Dữ kiện vàoKết quả raQuá trình tính toánMột dãy các bước tính toánMột dãy sốDãy số được sắp xếpThuật toán sắp xếp 88Một số từ khóaMột số từ khóaif (điều kiện) then {…} elseif (điều kiện) then {…} elsefor (điều kiện) do {…}for (điều kiện) do {…}while (điều kiện) do {…}while (điều kiện) do {…}procedure (T, a, b) {…}procedure (T, a, b) {…}function(A) {… return r; }function(A) {… return r; } 99Sắp xếp chèn vàoSắp xếp chèn vào5522 4 6 1 3 4 6 1 3225 5 44 6 1 3 6 1 3224 5 4 5 66 1 3 1 3114 54 56 6 11 3 3112 4 5 6 2 4 5 6 331 2 3 4 5 61 2 3 4 5 6 1010Thuật toán xếp chèn vàoThuật toán xếp chèn vàoInsertion-Sort (A) {Insertion-Sort (A) {forfor j = 2 j = 2 toto length (A) length (A) dodo { { k = A[j]; // k = A[j]; // chèn A[j] vào dãy đã sắp A[1 j-1]chèn A[j] vào dãy đã sắp A[1 j-1]j = j-1;j = j-1;while while i > 0 and A[i] > k do {i > 0 and A[i] > k do {A[i+1] = A[i];A[i+1] = A[i];I = i-1; }I = i-1; }A{i+1} = k; }A{i+1} = k; }}} [...]... nghĩa: F(0) = 0, F(1) = 1, và F(0) = 0, F(1) = 1, và F(n) = F(n-1) + F(n-2) với n > 1. F(n) = F(n-1) + F(n-2) với n > 1. Tìm thuật tốn tính số Fibonacci thứ n. Tìm thuật tốn tính số Fibonacci thứ n. 14 14 Đánh giá thuật toán Đánh giá thuật toán Giải quyết một bài tốn. Giải quyết một bài tốn. Vấn đề: Vấn đề: Có nhiều thuật tốn. Chọn thuật tốn nào ? Có nhiều thuật tốn. Chọn thuật tốn nào ? Mơ hình... binarytreenode; } } a b c d e f 7 7 Khái niệm về thuật toán Khái niệm về thuật toán Thuật toán: Thuật tốn: Dữ kiện vào K ế t q u ả r a Q trình tính tốn Một dãy các bước tính tốn Một dãy số D ã y s ố đ ư ợ c s ắ p x ế p Thuật tốn sắp xếp 13 13 Phân tích thuật tốn Merge-Sort Phân tích thuật tốn Merge-Sort Đây là một thuật toán chia để trị. Đây là một thuật toán chia để trị. Chia Chia : : bước 2:... pháp đánh giá Phương pháp đánh giá Phương pháp thực nghiệm Phương pháp thực nghiệm : Lập trình, thử trên các ví : Lập trình, thử trên các ví dụ xem thuật toán nào nhanh. dụ xem thuật toán nào nhanh. Phương pháp lý thuyết Phương pháp lý thuyết : Tính tốn thời gian, bộ nhớ, … : Tính tốn thời gian, bộ nhớ, … cần thiết của mỗi thuât toán dựa theo độ lớn của dữ liệu cần thiết của mỗi thuât toán. .. element; value: information element; neighbours: list; } neighbours: list; } 1 2 4 3 1 1 Thiết kế đánh giá Thiết kế đánh giá thuật tốn thuật tốn Cao học, khoa cơng nghệ thơng tin Cao học, khoa công nghệ thông tin Đại học quốc gia Hà nội. Đại học quốc gia Hà nội. Phan Thị Hà Dương Phan Thị Hà Dương Viện Toán học. Viện Toán học. phan.haduong@gmail.com phan.haduong@gmail.com 25 25 Cây Cây type type ... hóa Lập chương trình Viết thuật toán 18 18 Thời gian chạy trong trường hợp xấu nhất: Thời gian chạy trong trường hợp xấu nhất: là cận trên đối với mọi dữ liệu vào. là cận trên đối với mọi dữ liệu vào. Thời gian chạy trung bình: thường khó phân Thời gian chạy trung bình: thường khó phân tích đánh giá hơn. tích đánh giá hơn. 17 17 Ví dụ Ví dụ Hãy chạy thuật tốn Hãy chạy thuật tốn Insertion-Sort Insertion-Sort Merge-Sort Merge-Sort Đối... xứng” bắc cầu đối xứng” bắc cầu 3 3 Ví dụ: Chương 3: Phương pháp Ví dụ: Chương 3: Phương pháp “tham lam” “tham lam” I. I. Giới thiệu chung Giới thiệu chung II. II. Thuật toán trên đồ thị Thuật toán trên đồ thị 1) 1) Cây bao trùm nhỏ nhất Cây bao trùm nhỏ nhất 2) 2) Đường đi ngắn nhất Đường đi ngắn nhất III. III. Thuật toán sắp xếp lịch làm việc Thuật toán sắp xếp lịch làm việc IV. IV. Thuật. .. trị. Chia Chia : : bước 2: bước 2: θ θ (1) (1) Trị Trị : : bước 3 4: bước 3 4: 2T(n/2) 2T(n/2) Hợp lại Hợp lại : : bước 5: bước 5: θ θ (n) (n) Tổng kết Tổng kết : : T(n) = T(n) = θ θ (1) (1) nếu n=1 nếu n=1 2T(n/2) + 2T(n/2) + θ θ (n) (n) nếu n >1 nếu n >1 20 20 Thuật toán thứ nhất thứ hai Thuật toán thứ nhất thứ hai fontion fontion fib1(n){ fib1(n){ if if n < 2 n... ik +t;} i = ik +t;} t = h^2; t = h^2; h = 2kh+t; h = 2kh+t; k = k^2+t; k = k^2+t; n = n div 2; n = n div 2; } } return return j; j; } } 48 48 Thuật toán sinh Thuật toán sinh Thuật_ toán Tham_lam{ Thuật_ toán Tham_lam{ // // vào: tập hợp C các đối tượng vào: tập hợp C các đối tượng // ra: tập S (giải pháp tối ưu) // ra: tập S (giải pháp tối ưu) S = S = Ø; Ø; while while (! (! solution solution (S)... “heurisitic” Thuật tốn “heurisitic” 1) 1) Tơ màu đồ thị Tơ màu đồ thị 2) 2) Người đưa hàng Người đưa hàng 34 34 Sắp xếp các hàm sau theo quan hệ 0 Sắp xếp các hàm sau theo quan hệ 0 θ θ 2 2 Chương trình Chương trình Chương 1 Chương 1 : Giới thiệu về thuật tốn : Giới thiệu về thuật tốn Chương 2 Chương 2 : Phân tích tính hiệu quả của thuật : Phân tích tính hiệu quả của thuật toán toán Chương... “khơng có nghiệm”; } } 4 4 Sách tham khảo Sách tham khảo 45 45 Giới thiệu chung Giới thiệu chung (greedy algorithms) (greedy algorithms) Các thuật toán tham lam chủ yếu để giải Các thuật toán tham lam chủ yếu để giải quyết các bài toán tối ưu. Ta có: quyết các bài tốn tối ưu. Ta có: - Một tập các đối tượng - Một tập các đối tượng - Một dãy các đối tượng đã lựa chọn - Một dãy các đối tượng đã lựa chọn - . >1 141 4Đánh giá thuật toán ánh giá thuật toánGiải quyết một bài toán. Giải quyết một bài toán. Vấn đề:Vấn đề:Có nhiều thuật toán. Chọn thuật toán nào. 1 1Thiết kế và đánh giá Thiết kế và đánh giá thuật toánthuật toánCao học, khoa công nghệ thông tinCao học, khoa

Ngày đăng: 12/09/2012, 22:56

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan