Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
1,03 MB
Nội dung
CHƯƠNG Thuật Tốn Thuật Giải Nội Dung • • • • • THUẬT TOÁN CÁC PHƯƠNG PHÁP BIỂU DIỄN THUẬT TOÁN ĐỘ PHỨC TẠP CỦA THUẬT TOÁN PHÂN LOẠI VẤN ĐỀ THUẬT GIẢI NNL – Khoa Toán Tin ĐHKHTN Thuật Tốn • Một thuật tốn (hay giải thuật) thủ tục để giải toán hay vấn đề, cách thực thi dãy hữu hạn thao tác • Thuật tốn thực cơng việc tính tốn, xử lý liệu, suy luận logic tự động… • Ví dụ: Tính ước số chung lớn số nguyên NNL – Khoa Toán Tin ĐHKHTN Đặc trưng thuật tốn • Tính xác: Các bước thực thi phải phát biểu xác, chặt chẽ • Tính nhất: Kết bước định nghĩa cách phụ thuộc vào nhập liệu kết bước trước • Tính hữu hạn: Thuật tốn ngừng sau hữu hạn thị lệnh thực • Nhập liệu: – thuật tốn nhận nhập liệu (có thể trống) NNL – Khoa Tốn Tin ĐHKHTN Đặc trưng thuật tốn • Nhập liệu: – thuật tốn nhận nhập liệu (có thể trống) • Xuất liệu – thuật tốn tạo xuất liệu • Tính tổng qt – thuật tốn vận dụng cho tập hợp nhập liệu NNL – Khoa Toán Tin ĐHKHTN Các phương pháp biểu diễn thuật tốn • Bằng ngơn ngữ tự nhiên • Bằng lưu đồ (flowchart) • Bằng mã giả (pseudo code) NNL – Khoa Toán Tin ĐHKHTN Các phương pháp biểu diễn thuật toán • Bằng ngôn ngữ tự nhiên – Dùng ngôn ngữ thường ngày để liệt kê bước thuật toán – Dài dịng, nhập nhằng khó hiểu – Khơng thể rõ cấu trúc thuật tốn – Khơng có quy tắc cố định – Có thể viết thụt lùi vào bên phải để phân cấp cho dễ đọc NNL – Khoa Toán Tin ĐHKHTN Các phương pháp biểu diễn thuật tốn • Bằng lưu đồ (flowchart) – Xử dụng ký hiệu đồ hoạ có ý nghĩa để biểu diễn thành phần thuật toán – Dễ đọc, dễ hiểu – Thấy trình xử lý, phân cấp thuật tốn Nhờ thấy cấu trúc thuật tốn NNL – Khoa Toán Tin ĐHKHTN Biểu diễn thuật toán lưu đồ Biểu tượng Ý nghĩa Nhập Xử lý Xuất Quyết định CT Đầu cuối Đường Biểu diễn lưu đồ (tt) • Chọn lựa theo điều kiện đó: – Biểu diễn hình thoi, bên chứa biểu thức điều kiện – Ví dụ: thao tác "nếu X > Y thực thao tác in X, ngược lại thực thao tác in Y" thao tác chọn lựa Biểu diễn lưu đồ (tt) • Điểm nối (connector) Ví dụ: Thuật tốn tính USCLN số NNL – Khoa Tốn Tin ĐHKHTN 17 Độ phức tạp thuật tốn • Độ phức tạp thuật tốn hàm đánh giá tính hiệu thuật tốn • Để đánh giá hiệu thuật tốn, xét số phép tính phải thực thực thuật tốn • Thơng thường số phép tính thực phụ thuộc vào cỡ toán, tức độ lớn đầu vào NNL – Khoa Toán Tin ĐHKHTN 18 Độ phức tạp thuật tốn • Độ phức tạp thuật toán hàm phụ thuộc đầu vào Tuy nhiên ứng dụng thực tiễn, khơng cần biết xác hàm mà cần biết ước lượng đủ tốt chúng • Để ước lượng độ phức tạp thuật toán ta thường dùng khái niệm bậc O-lớn bậc Θ (bậc Theta) NNL – Khoa Toán Tin ĐHKHTN 19 Độ phức tạp thuật tốn • Gọi n kích thước toán, R(n) tổng tài nguyên cần dung, giả sử tìm hàm g(n) có số C cho: R(n) ≤ C.g(n) Thì ta nói thuật tốn có độ phức tạp O(g(n)) NNL – Khoa Toán Tin ĐHKHTN 20 Độ phức tạp thuật tốn • • • • • O(1): Độ phức tạp số O(n): Độ phức tạp tuyến tính O(P(n)): Độ phức tạp đa thức O(logn): Độ phức tạp logarit O(2n): Độ phức tạp hàm mũ NNL – Khoa Toán Tin ĐHKHTN 21 Độ phức tạp thuật tốn • Gọi n kích thước tốn, R(n) tổng tài nguyên cần dung, giả sử tìm hàm h(n) số C1, c2 cho: C1.h(n) ≤ R(n) ≤ C2.h(n) Thì ta nói thuật tốn có độ phức tạp (h(n)) NNL – Khoa Tốn Tin ĐHKHTN 22 Thuật giải • Có nhiều tốn chưa tìm cách giải theo kiểu thuật tốn khơng biết có tồn thuật tốn hay khơng • Có nhiều tốn có thuật tốn để giải khơng chấp nhận thời gian giải theo thuật tốn q lớn điều kiện cho thuật tốn khó đáp ứng NNL – Khoa Tốn Tin ĐHKHTN 23 Thuật giải • Có tốn giải theo cách giải vi phạm thuật toán chấp nhận • Tính thuật tốn khơng cịn bắt buộc số cách giải toán, cách giải gần NNL – Khoa Tốn Tin ĐHKHTN 24 Thuật giải • Trong thực tiễn có nhiều trường hợp người ta chấp nhận cách giải thường cho kết tốt phức tạp hiệu • Khái niệm thuật toán mở rộng gọi thuật giải • Thuật giải thường dùng nhiều trí tuệ nhân tạo NNL – Khoa Tốn Tin ĐHKHTN 25 Tóm tắt • Một thuật tốn dãy hữu hạn thao tác cần thực thi để đến lời giải cho toán hay vấn đề • Thuật tốn phải có tính xác, tính nhất, tính hữu hạn, tính tổng qt • Ta biểu diễn thuật tốn ngơn ngữ tự nhiên, mã giả lưu đồ NNL – Khoa Tốn Tin ĐHKHTN 26 Tóm tắt • Độ phức tạp thuật tốn hàm theo kích thước tốn, cho biết tính hiệu thực tốn • Độ phức tạp thuật tốn ký hiệu O(h(n)) (h(n)) • Thuật giải khái niệm thuật toán mở rộng để đến lời giải chấp nhận có độ phức tạp tốt (nhiều) so với thuật toán (nếu tồn tại) NNL – Khoa Toán Tin ĐHKHTN 27 Một số ví dụ • Biểu diễn thuật tốn tính ước số chung lớn số nguyên dương • Biểu diễn thuật tốn giải phương trình bậc • Biểu diễn thuật tốn tính giá trị lớn dãy số thực • Biểu diễn thuật tốn tính bậc hai số thực A với sai số không epsilon (Xem tập) NNL – Khoa Tốn Tin ĐHKHTN 28 Các ví dụ • Viết thuật tốn tìm tổng bình phương dãy Xác định độ phức tạp thuật tốn • Viết thuật tốn tìm giá trị phần tử lớn dãy số thực Xác định độ phức tạp thuật tốn • Viết thuật tốn Euclide tìm ước số chung lớn số nguyên • Viết thuật tốn tính gần giá trị sin(x) NNL – Khoa Toán Tin ĐHKHTN 29 NNL – Khoa Toán Tin ĐHKHTN 30 ... biết ước lượng đủ tốt chúng • Để ước lượng độ phức tạp thuật toán ta thường dùng khái niệm bậc O-lớn bậc Θ (bậc Theta) NNL – Khoa Toán Tin ĐHKHTN 19 Độ phức tạp thuật tốn • Gọi n kích thước toán,