1. Trang chủ
  2. » Thể loại khác

Thiết Kế & Đánh Giá Thuật Toán. Phân Tích Thuật Toán TS. Lê Nguyên Khôi Trường Đại Học Công Nghệ - ĐHQGHN

31 9 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

Tiêu đề Thiết Kế & Đánh Giá Thuật Toán
Tác giả Lê Nguyên Khôi
Trường học Trường Đại Học Công Nghệ - ĐHQGHN
Định dạng
Số trang 31
Dung lượng 769,06 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Thuật Toán Một thủ tục tính toán được định nghĩa rõ ràng  Một chuỗi các bước tính toán  Nhận một tập các giá trị đầu vào  Trả một tập các giá trị đầu ra  Tính đúng đắn: với tất cả c

Trang 1

Thiết Kế & Đánh Giá Thuật Toán

Phân Tích Thuật Toán

TS Lê Nguyên Khôi Trường Đại Học Công Nghệ - ĐHQGHN

Trang 3

Thuật Toán

 Một thủ tục tính toán được định nghĩa rõ ràng

 Một chuỗi các bước tính toán

 Nhận một tập các giá trị đầu vào

 Trả một tập các giá trị đầu ra

 Tính đúng đắn: với tất cả các tập giá trị đầu

vào, thuật toán đưa ra tập giá trị đầu ra đúng

2

Trang 4

Bài Toán

 Sắp xếp

 Tìm kiếm

 Mạng Internet (định tuyến dữ liệu)

 Thương mại điện tử

 Doanh nghiệp sản xuất

 Đường đi ngắn nhất

 Chuỗi chung dài nhất

 vân vân …

3

Trang 5

 P: thuật toán có thể chạy trong thời gian đa thức

 NP-complete: không thể chạy trong khoảng thời gian hợp lý

 Song song:

 Nhiều phép tính mỗi giây bằng nhiều lõi

4

Trang 6

Phân Tích Thuật Toán

 Phân tích lý thuyết hiệu năng chương trình vàtài nguyên sử dụng

Trang 7

Phân Tích Thuật Toán & Hiệu Năng?

 Thuật toán giúp hiểu khả năng mở rộng

 Hiệu năng xác định ranh giới khả thi hay không

 Thuật toán là ngôn ngữ để giải thích hành vi

của chương trình

 Hiệu năng dùng đánh giá chương trình

 Hiệu năng chương trình khái quát hóa các tàinguyên tính toán sử dụng

6

Trang 8

 Thời gian chạy của thuật toán sắp xếp dãy số?

 Thuật toán tốt nhất (chạy nhanh nhất)?

7

Trang 9

Thuật Toán Sắp Xếp – Thời Gian Chạy

Trang 12

Sắp Xếp Chèn – Tính Đúng Đắn

 Khái niệm tính bất biến (loop invariant):

 Bắt đầu mỗi vòng lặp for dãy con chính

là dãy con ban đầu nhưng đã được sắp xếp.

 Khởi tạo: loop invariant đúng trước khi vòng

for lặp bắt đầu

 Duy trì: loop invariant đúng trước một lần lặp

của vòng for, loop invariant đúng trước lần

lặp tiếp theo

 Kết thúc: tính bất biến giúp chứng minh thuật

toán đúng

11

Trang 13

Chứng Minh Quy Nạp – Induction Proof

Trang 14

Phân Tích Thuật Toán – Giả Định

 Xử lý tuần tự các phép toán

 Các phép toán (thao tác) cơ bản

=, +, -, *, /, %, , , … load, store, copy, …

Trang 15

Phân Tích Thuật Toán – Thời Gian Chạy

vào: dãy đã sắp xếp ≠ dãy chưa sắp xếp

liệu đầu vào: dãy ngắn ≠ dãy dài

xấu nhất)

14

Trang 16

Phân Tích Thuật Toán – Thời Gian Chạy

 Trường hợp xấu nhất: (thông thường)

 = thời gian lâu nhất thuật toán chạy với dữ liệu đầu vào cỡ bất kỳ

 Trường hợp trung bình: (đôi khi)

 = thời gian trung bình thuật toán chạy với tất cả

dữ liệu đầu vào

 Cần giả thiết về hàm phân phối xác xuất cho dữ liệu đầu vào

 Trường hợp tốt nhất: (hiếm)

 Lợi dụng thuật toán chậm chạy nhanh với một số dữ

15

Trang 18

Sắp Xếp Chèn – Phân Tích Thời Gian

Trang 19

Sắp Xếp Chèn – Phân Tích Thời Gian

18

Trang 20

Sắp Xếp Chèn – Phân Tích Thời Gian

 Trường hợp tốt nhất ( ):

 hàm tuyến tính

 Khi mảng đã sắp xếp tăng dần

19

Trang 21

Sắp Xếp Chèn – Phân Tích Thời Gian

 Trường hợp xấu nhất

 hàm bậc hai

 Khi mảng đã sắp xếp giảm dần

20

Trang 23

Bài Tập – Exercise 2.1-4

Cộng 2 số n-bit:

 Cho 2 số nguyên nhị phân n-bit, lưu trong 2

mảng n-phần tử A & B Tổng 2 số này lưu trongmảng n+1-phần tử C dưới dạng nhị phân

 Viết mã giả cho thuật toán cộng 2 số này

 Phân tích độ phức tạp của thuật toán

22

Trang 25

Bài Tập – Exercise 2.2-2

Sắp xếp lựa chọn (selection sort):

 Sắp xếp n số trong mảng A theo cách tìm phần

tử nhỏ nhất của A và đổi chỗ với A[1] Tìm

phần tử nhỏ nhất thứ hai của A và đổi chỗ vớiA[2] Tiếp tục như vậy cho n-1 phần tử đầu tiêncủa A

 Viết mã giả cho thuật toán trên

 Tính bất biến (loop invariant) của thuật toán?

 Tại sao chỉ cần chạy với n-1 phần tử đầu tiên

 Phân tích độ phức tạp của thuật toán (trườnghợp tốt nhất & xấu nhất)

24

Trang 27

Bài Tập – Exercise 2.2-2

SelectionSort

Thời gian chạy:

26

Trang 28

Bài Tập – Problem 2-2

27

Trang 31

Tổng Kết

dữ liệu đầu vào

trường hợp xấu nhất

bậc hai đối với độ lớn dữ liệu đầu vào

30

Ngày đăng: 25/07/2021, 06:51

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w