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

Chuong 5 thuat toan va do phuc tap thuat toan

13 84 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 223 KB

Nội dung

Thuật toán, còn gọi là giải thuật, là một tập hợp hữu hạn hay một dãy các quy tắc chặt chẽ của các chỉ thị, phương cách hay 1 trình tự các thao tác trên một đối tượng cụ thể được xác định và định nghĩa rõ ràng cho việc hoàn tất một số sự việc từ một trạng thái ban đầu cho trước; khi các chỉ thị này được áp dụng triệt để thì sẽ dẫn đến kết quả sau cùng như đã dự đoán trước. Nói cách khác, thuật toán là một bộ các quy tắc hay quy trình cụ thể nhằm giải quyết một vấn đề nào đó trong một số bước hữu hạn, hoặc nhằm cung cấp một kết quả từ một tập hợp của các dữ kiện đưa vào.

Chương Thuật toán độ phức tạp thuật toán 5.1 Tổng quan thuật toán  Thuật toán dãy bước, bước mơ tả xác phép toán hành động cần thực để giải vấn đề  Thuật tốn tìm ước số chung lớn hai số nguyên Input: m, n nguyên dương Output: g, ước chung lớn m n Bước 1: tìm r, phần dư phép chia m cho n Bước 2: Nếu r = g := n dừng thuật tốn Ngược lại, (r 0) m := n; n := r; Quay lại bước 5.2 Các đặc trưng thuật toán  Input Là giá trị cần đưa vào (có thể rỗng) cần thực thuật tốn  Output Là giá trị có quan hệ hoàn toàn xác định với liệu vào kết thực thuật toán  Tính xác định Mỗi bước thuật tốn cần phải mơ tả cách xác  Tính khả thi Các phép toán bước thuật toán phải đủ đơn giản  Tính dừng Thuật tốn phải dừng sau hữu hạn bước ứng với liệu thõa mãn điều kiện liệu vào 5.3 Đặc tả thuật toán  Đặc tả thuật toán cần đặc điểm sau : Các đối tượng phương tiện thuật toán cần sử dụng (nhập) Điều kiện ràng buộc (nếu có) đối tượng phương tiện Các sản phẩm ,kết (xuất) Các yêu cầu sản phẩm, kết Thường xuất dạng quan hệ kết đối tượng, phương tiện sử dụng 5.3 Các vấn đề liên quan đến thuật toán  Thiết kế thuật toán: Tức làm để tìm thuật tốn cho tốn đặt  Tính đắn thuật tốn:Ta cần phải chứng minh thuật toán làm phải cho kết với liệu vào hợp lệ  Phân tích thuật tốn: Tức việc đánh giá độ phức tạp thuật toán 5.4 Độ phức tạp thuật toán  Độ phức tạp thuật toán:là lượng thời gian nhớ cần thiết để thực thuật toán Chúng ta quan tâm đến: - Thời gian tối thiểu để thực - Thời gian tối đa để thực thuật toán - Thời gian trung bình thực thuật tốn 5.4 Độ phức tạp thuật tốn  Tính hiệu quả: Thông thường ta dựa vào hai tiêu chuẩn sau: - Thuật toán đơn giản, dễ hiểu, dễ cài đặt - Thuật toán sử dụng tiết kiệm nguồn tài nguyên máy tính chạy nhanh được:   Dung lượng khơng gian nhớ cần thiết để lưu trữ liệu vào, kết tính tốn trung gian kết thuật toán Thời gian cần thiết để thực thuật toán (thời gian chạy) 5.4 Độ phức tạp thuật tốn  Có hai cách để đánh giá thời gian thực thuật toán: - Phương pháp thử nghiệm:    Các liệu vào Chương trình dịch Tốc độ thực phép tốn máy tính - Phương pháp lý thuyết: cỡ liệu vào 5.4 Độ phức tạp thuật tốn Bài tốn tháp Hà Nội Ta tính số lần thực việc chuyển đĩa từ cọc sang cọc khác (không đặt đĩa to lên đĩa nhỏ) để chuyển từ cọc A sang cọc B Gọi số F(n), ta có: F(1) = 1; F(n) = 2F(n-1) + 1; với n > Một cách quy nạp, ta có F(n) = 2n-1 Với n = 64 ta có F(n) = 264 – lần chuyển, giả sử lần chuyển giây, ta có 5*1011 năm thực 5.4 Độ phức tạp thuật toán 10 5.5 Quy tắc đánh giá thời gian thuật toán  Qui tắc tổng Nếu T1(n) = O(f1(n)) T2(n) = O(f2(n)) T1(n) + T2(n) = O(max{f1(n),f2(n)})  Thời gian thực lệnh đơn: gán (không chưa lời gọi hàm), đọc, viết, goto O(1)  Thời gian thực câu lênh phức xác định qua câu lệnh thành phần  Lệnh if Ví dụ if E then S1 else S2 Và giả sử thời gian thực lện S1 S2 O(f1(n)) O(f2(n)) Khi thời gian thực lệnh if O(max{f1(n),f2(n)}) 11 5.5 Quy tắc đánh giá thời gian thuật toán  Lệnh case Được đánh lệnh if  Lệnh while Ví dụ: while E S Giả sử thời gian thực lệnh S O(f(n)) Và giả sử g(n) số tối đa lần thực lệnh S Thì thời gian thực lệnh while là: O(f(n))g(n)  Lệnh repeat Được đánh lệnh while  Lệnh for Được đánh lệnh repeat, while 12 13 ... Với n = 64 ta có F(n) = 264 – lần chuyển, giả sử lần chuyển giây, ta có 5* 1011 năm thực 5. 4 Độ phức tạp thuật toán 10 5. 5 Quy tắc đánh giá thời gian thuật toán  Qui tắc tổng Nếu T1(n) = O(f1(n))... sử thời gian thực lện S1 S2 O(f1(n)) O(f2(n)) Khi thời gian thực lệnh if O(max{f1(n),f2(n)}) 11 5. 5 Quy tắc đánh giá thời gian thuật toán  Lệnh case Được đánh lệnh if  Lệnh while Ví dụ: while... giản  Tính dừng Thuật tốn phải dừng sau hữu hạn bước ứng với liệu thõa mãn điều kiện liệu vào 5. 3 Đặc tả thuật toán  Đặc tả thuật toán cần đặc điểm sau : Các đối tượng phương tiện thuật toán

Ngày đăng: 11/01/2020, 21:50

TỪ KHÓA LIÊN QUAN

w