Thiết kế và đánh giá thuật toán

231 834 1
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

Tài liệu Giáo trình "Thiết kế và đánh giá thuật tóan" bậc cao học khoa công nghệ thông tin dành cho các bạn đang theo học hay nghiên cứu chuyên đề về tóan học.

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; }}} [...]... 6 6 Chương 1: Giới thiệu về thuật Chương 1: Giới thiệu về thuật toán toán I. I. Khái niệm thuật toán Khái niệm thuật toán II. II. Một số ví dụ Một số ví dụ III. III. Đánh giá thuật tốn trong trường hợp Đánh giá thuật toán trong trường hợp xấu nhất theo trung bình xấu nhất theo trung bình IV. 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... Master Theorem The Master Theorem Cho a≥1 b>1 hằng số, hàm số f(n) Cho a≥1 b>1 hằng số, hàm số f(n) T(n) được định nghĩa: T(n) được định nghĩa: T(n) = aT(n/b) + f(n), T(n) = aT(n/b) + f(n), Khi đó định lý sẽ cho biết giới hạn tiệm cận Khi đó định lý sẽ cho biết giới hạn tiệm cận của T(n) của T(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... element; value: information element; left child, right child: * binarytreenode; left child, right child: * binarytreenode; } } a b c d e f 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)... {… return r; } function(A) {… return r; } 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: 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)... return S; S; else else return return “không có nghiệm”; “khơng có nghiệm”; } } 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 24 24 Đồ thị Đồ thị type type adjgraph = adjgraph = structure structure { { value[1 n]:... n/4 + 3 (n/16 + 3T(n/64)) ≤ ≤ n + 3n/4 + 9n/16 + … n + 3n/4 + 9n/16 + … 10 10 Thuật toán xếp chèn vào Thuật toán xếp chèn vào Insertion-Sort (A) { Insertion-Sort (A) { for for j = 2 j = 2 to to length (A) length (A) do do { { 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... lại, đối tượng mới này xếp vào cuối tập + Ngược lại, đối tượng mới này xếp vào cuối tập + Kiểm tra xem tập mới có là một giải pháp + Kiểm tra xem tập mới có là một giải pháp 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 3 Chương 3 : Phương...42 42 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 < 2 then then return return n; n; else return else return f(n-1) + f(n-2); f(n-1) + f(n-2); } }... hiệu O: Ký hiệu O: O(g(n)) = {f(n): tồn tại hằng số c N để: O(g(n)) = {f(n): tồn tại hằng số c N để: 0 ≤ f(n)< c g(n) với mọi n ≥ N} 0 ≤ f(n)< c g(n) với mọi n ≥ N} Đây là một quan hệ thứ tự: phản xứng, “phi Đây là một quan hệ thứ tự: phản xứng, “phi đối xứng” bắc cầu. đối xứng” bắc cầu. 9 9 Sắp xếp chèn vào Sắp xếp chèn vào 5 5 2 2 4 6 1 3 4 6 1 3 2 2 5 5 4 4 6 1 3 6... của T(n) của T(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 hóa Lập chương trình Viết thuật toán 39 39 Phương pháp tính dần từng bước Phương pháp tính dần từng bước Ví dụ T(n) = 3T(n/4)+n Ví dụ T(n) = 3T(n/4)+n T(n) = n+ 3 T(n/4) T(n) . 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. >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

Ngày đăng: 04/10/2012, 10:48

Từ khóa liên quan

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

Tài liệu liên quan