Tải bản đầy đủ (.pdf) (79 trang)

Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trường ĐH Văn Lang

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.51 MB, 79 trang )

KHOA CÔNG NGHỆ THÔNG TIN

CẤU TRÚC DỮ LIỆU & GIẢI
(Data Structure and Algorithm)
THUẬT
CHƯƠNG 1: GIỚI THIỆU VÀ ĐÁNH GIÁ GIẢI THUẬT
GVGD:

HỌC KỲ I – NĂM HỌC 2020-2021
KHÓA 25T-IT


01. MỘT SỐ NHÓM GIẢI THUẬT CƠ BẢN
02. CÁC VẤN ĐỀ PHÂN TÍCH GIẢI THUẬT

NỘI DUNG

03. CẤU TRÚC NGƠN NGỮ MÁY TÍNH
04. GIỚI THIỆU PHÂN TÍCH GIẢI THUẬT


MỘT SỐ NHÓM GIẢI THUẬT PHỔ BIẾN
1.
2.
3.
4.
5.
6.

GIẢI THUẬT BRUTE FORCE ( VÉT CẠN)
GIẢI THUẬT CHIA ĐỂ TRỊ


GIẢI THUẬT QUY HOẠCH ĐỘNG
GIẢI THUẬT GREEDY ( THAM LAM)
GIẢI THUẬT HEURISTIC
GIẢI THUẬT XÁC SUẤT

KHOA CÔNG NGHỆ THÔNG TIN

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

3


1. GIẢI THUẬT BRUTE FORCE ( VÉT CẠN)
• Giải thuật áp dụng giải quyết những vấn đề mang tính xâu chuỗi ( tăng dần)
cần xem xét tất cả các trường hợp xảy ra.
• Ví dụ: Tìm giá trị M trong một danh sách chưa có thứ tự L

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

KHOA CƠNG NGHỆ THÔNG TIN

4


1. GIẢI THUẬT BRUTE FORCE ( VÉT CẠN)
• Ưu điểm lớn nhất của giải thuật này là đơn giản.

• Dể dàng chứng minh sự đúng đắn: bằng cách phân tích hết không gian
nghiệm, nên nếu tồn tại một đáp án thì chắc chắn giải thuật sẽ tìm thấy.
• Thơng thường trong thực tế giải thuật này thường được dùng để tìm giải
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

thuật hiệu quả hơn.
• Cần bao nhiêu phép so sánh cần để tìm giá trị M trong danh sách L trong
trường hợp xấu nhất?

KHOA CÔNG NGHỆ THÔNG TIN

5


2. GIẢI THUẬT CHIA ĐỂ TRỊ
• Giải thuật chia để trị bao gồm:
• Chia nhỏ vấn đề thành những vấn đề nhỏ giống nhau.
• Tiếp tục tìm đáp án trong những khơng gian nhỏ.
• Cuối cùng kết hợp các đáp án riêng lẻ thành một đáp án lớn cho vấn đề
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

chính.
• Cơng cụ chính thường dùng cho giải pháp chia để trị là đệ quy:
• Vấn đề chính được giảm thành một trường hợp cơ sở đơn giản nhất.
• Một trường hợp cơ sở được giải quyết, sau đó những vấn đề đơn giản
hơn có thể giải quyết.

KHOA CƠNG NGHỆ THÔNG TIN

6


2. GIẢI THUẬT CHIA ĐỂ TRỊ (ví dụ)
• Hãy tìm một người tên N trong danh sách L được sắp xếp theo bảng chữ cái:

• Giải thuật chia để trị sẽ thực hiện như sau:

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

• Nếu danh sách L chỉ có một phần tử sẽ được so sánh và trả về kết quả.
• Cịn lại chia danh sách thành hai phần LeftHalf và RightHalf.
▪ Nếu N lớn hơn phần tử cuối cùng của LeftHalf lặp lại q trình với
RightHalf.
▪ Cịn lại thì lặp lại q trình trên LeftHalf.
KHOA CƠNG NGHỆ THÔNG TIN

7


2. GIẢI THUẬT CHIA ĐỂ TRỊ (ví dụ)

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com


KHOA CƠNG NGHỆ THÔNG TIN

8


3. GIẢI THUẬT QUY HOẠCH ĐỘNG
• Giải thuật thực hiện như sau:
▪ Chia vấn đề thành những vấn đề con.
▪ Giải quyết các vấn đề con và nhớ kết quả của nó.
▪ Kết hợp thành đáp án cho vấn đề chính.

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

• Giải thuật phù hợp với các bài tốn cần sử dụng nhiều lần vấn đề con khi
tính tốn giải pháp cho vấn đề chính.

KHOA CƠNG NGHỆ THƠNG TIN

9


3. GIẢI THUẬT QUY HOẠCH ĐỘNG
• Giải thuật thực hiện như sau:
▪ Chia vấn đề thành những vấn đề con.
▪ Giải quyết các vấn đề con và nhớ kết quả của nó.
▪ Kết hợp thành đáp án cho vấn đề chính.

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!


ibaotu.com

• Giải thuật phù hợp với các bài tốn cần sử dụng nhiều lần vấn đề con khi
tính tốn giải pháp cho vấn đề chính.

KHOA CƠNG NGHỆ THƠNG TIN

10


3. GIẢI THUẬT QUY HOẠCH ĐỘNG
tính số Fibonacci
• Đầu tiên, nếu dùng giải thuật brute-force để tính tốn chuỗi số Fibonacci, giá
trị Fib(n) sẽ phụ thuộc vào tất cả giá trị phía trước Fib(n-1), Fib(n-2),
Fib(n-3)…

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

KHOA CƠNG NGHỆ THƠNG TIN

11


3. GIẢI THUẬT QUY HOẠCH ĐỘNG
tính số Fibonacci
• Đối với trường hợp này chúng ta dùng giải
thuật quy hoach động để nhớ các giá trị phụ.

• Trước khi tính tốn một giá trị, giải thuật kiểm

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

tra đáp án đã được ghi nhận (nhớ) chưa?
• Nếu rồi sẽ dùng giá trị lưu, cịn chưa sẽ tính
tốn và nhớ lại.

KHOA CƠNG NGHỆ THÔNG TIN

12


3. GIẢI THUẬT QUY HOẠCH ĐỘNG
tính số Fibonacci
• Việc nhớ yêu cầu dùng một cấu trúc dữ liệu giúp dễ dàng tìm kiếm.
• Để nhận ra lợi ích từ việc ghi lại các giá trị và tra cứu các giá trị được
tính tốn trước, điều quan trọng là để các cấu trúc dữ liệu này hoạt động
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

hiệu quả
• Việc lựa chọn cấu trúc dữ liệu sẽ tác động đến hiệu quả tổng thể của các giải
pháp
• Cấu trúc dữ liệu sẽ được đề cập sau trong phần mơn học…

KHOA CƠNG NGHỆ THÔNG TIN


13


4. GIẢI THUẬT THAM LAM
• Bài tốn u cầu tìm kết quả tốt nhất từ một tập hợp các khả năng, ví dụ:
tuyến đường rẻ nhất, khoảng cách ngắn nhất, số đồng xu ít nhất.
• Chiến lược tham lam: Ở mỗi bước, hãy thực hiện lựa chọn tối ưu cục bộ và
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

hy vọng đạt được giải pháp tối ưu toàn cục.

KHOA CÔNG NGHỆ THÔNG TIN

14


4. GIẢI THUẬT THAM LAM
• Vấn đề tối ưu hóa là một vấn đề mà đề bài cần tìm, nhưng khơng chỉ là một giải
pháp mà cịn là giải pháp khả thi tốt nhất.
• Các thuật tốn tham lam thường hoạt động đủ tốt để tối ưu hóa vấn đề.
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

• Các thuật toán tham lam hoạt động bằng cách xác định giải pháp cho một vấn đề
nhỏ trung gian
• Bạn xác định giải pháp tốt nhất có thể cho vấn đề trung gian, khơng tính đến kết

quả tương lai
• Chiến lược là bằng cách chọn mức tối ưu cục bộ tại mỗi bước, để đạt được mức
tối ưu toàn cục.
KHOA CÔNG NGHỆ THÔNG TIN

15


4. GIẢI THUẬT THAM LAM – ví dụ
• Giả sử rằng chúng tôi muốn đổi một số số tiền thành số lượng tối thiểu đồng xu gồm
penny (0.01USD), nickel(0.05USD), dime(0.1USD) và quarter(0.25USD)
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

• Chúng ta cần tìm A(Pennies) + B(Nickles) + C(Dimes) + D(Quarters) = số tiền cần
đổi …như vậy tổng của : A+B+C+D là số đồng xu nhỏ nhất có thể.

KHOA CÔNG NGHỆ THÔNG TIN

16


4. GIẢI THUẬT THAM LAM – ví dụ
• Chiến lược tham lam hoạt động như sau:
• Bắt đầu với đồng quarter(0.25) và sử dụng càng nhiều xu càng tốt mà khơng
vượt q số tiền u cầu.

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!


ibaotu.com

• Nếu khơng đạt được tổng tiền, thì tiếp tục sử dụng càng nhiều xu dimes(.10)
càng tốt mà khơng vượt q số tiền u cầu.
• Nếu khơng đạt được tổng số, thì tiếp tục sử dụng như nhiều xu niken (0.05) có
thể mà khơng vượt q số tiền u cầu.
• Nếu khơng đạt được tổng số, thì tiếp tục sử dụng như nhiều xu penny (0.01) cần
thiết để đạt được số tiền yêu cầu.
KHOA CÔNG NGHỆ THÔNG TIN

17


4. GIẢI THUẬT THAM LAM – ví dụ

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

KHOA CƠNG NGHỆ THÔNG TIN

18


4. GIẢI THUẬT THAM LAM – phân tích
• Giải thuật có vấn đề thú vị như cần tối ưu hóa đủ cho hầu hết các trường hợp và vấn
đề có thể giải quyết thơng qua tối ưu hóa các bài tốn con.
• Dễ hiểu và dễ phát triển thuật tốn khả thi.

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!


ibaotu.com

• Có thể khó để cho thấy nó hoạt động, khi nó hoạt động và tại sao nó hoạt động…
• Bản chất của mọi bằng chứng thuật tốn tham lam là để cho thấy rằng giải pháp
tổng thể tốt nhất có thể là đạt được thơng qua tối ưu hóa các vấn đề phụ

KHOA CƠNG NGHỆ THƠNG TIN

19


4. GIẢI THUẬT THAM LAM – phân tích
• Trong một số trường hợp, các thuật tốn tham lam sẽ khơng mang lại giải pháp tối
ưu
• Trong một số trường hợp, nó có thể mang lại câu trả lời chưa tốt.
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

• Trong một số trường hợp, giải thuật không trả lời được.
• Xét lại ví dụ trước, hãy tưởng tượng các xu chúng ta có là 0,25, 0,10 và 0,04 xu
• Bằng trực giác, chúng ta có thể đổi được 0,41 xu tiền lẻ thành 1x 0,25 + 4x0,04
• Thuật tốn tham lam sẽ thất bại hoàn toàn – cần đổi với 0,39 hoặc 0,43 xu, như nó
sẽ đã cam kết sử dụng một xu

KHOA CÔNG NGHỆ THÔNG TIN

20



GIẢI THUẬT XÁC XUẤT
• Đơi khi việc tìm kiếm các giải pháp tối ưu mất nhiều chi phí và chúng ta sẵn sàng
dùng một giải pháp "đủ tốt" cho một nhóm các bài tốn.
• Có một số thuật tốn các kỹ thuật để tạo ra các giải pháp:
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

• Heuristic
• Xác suất,… chúng ta sẽ khám phá một số trong số này trong các slide sau
• Khái niệm "tính đúng đắn" cho những thuật tốn sẽ khác!

KHOA CƠNG NGHỆ THƠNG TIN

21



• Chúng ta tiếp tục một số phương pháp tiếp cận thuật tốn sau:
• thuật tốn heuristic
• thuật tốn xác suất

感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

• Đây là những thuật tốn hồn hảo cho một thế giới khơng hồn hảo!

KHOA CƠNG NGHỆ THƠNG TIN


22


5. GIẢI THUẬT HEURISTIC
• Thuật tốn - Quy tắc hoặc giải pháp, thủ tục cụ thể để đảm bảo cung cấp câu trả lời
đúng nếu theo trình tự đos.
• Heuristic - Quy tắc ngón tay cái hoặc chiến lược khơng chính thức, hoạt động theo
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

một số hồn cảnh, nhưng khơng đảm bảo mang lại câu trả lời đúng, giống như kinh
nghiệm, hay thói quen.

KHOA CƠNG NGHỆ THƠNG TIN

23


5. GIẢI THUẬT HEURISTIC
• Thuật tốn - Quy tắc hoặc giải pháp, thủ tục cụ thể để đảm bảo cung cấp câu trả lời
đúng nếu theo trình tự đó.
• Heuristic - Quy tắc ngón tay cái hoặc chiến lược khơng chính thức, hoạt động theo
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

một số hồn cảnh, nhưng khơng đảm bảo mang lại câu trả lời đúng, giống như kinh
nghiệm, hay thói quen.


KHOA CƠNG NGHỆ THƠNG TIN

24


5. GIẢI THUẬT HEURISTIC
• Các thuật tốn heuristic được bắt nguồn từ một sự kết hợp giữa kinh nghiệm, trực
giác và được biết đến một cách chính thức. Các thuật tốn heuristic:
• Có thể đưa ra một giải pháp chấp nhận được cho một vấn đề (hoặc lớp vấn đề)
trong nhiều tình huống thực tế
感谢您下载包图网平台上提供的PPT作品,为了您和包图网以及原创作者的利益,请勿复制、传播、销售,否则将承担法律责任!包图网将对作品进行维权,按照传播下载次数进行十倍的索取赔偿!

ibaotu.com

• Được sử dụng nhưng khơng có bằng chứng chính thức về tính đúng đắn hoặc sự
tối ưu
• Đưa ra các câu trả lời đúng, nhưng thường khơng tính tốn giải pháp tối ưu hoặc
sử dụng tài ngun một cách tối ưu.
• Các thuật tốn Heuristic được sử dụng khi khơng có giải pháp tối ưu, bị hạn chế về
thời gian, nguồn lực hoặc theo bất kỳ hồn cảnh nào đó.
KHOA CƠNG NGHỆ THƠNG TIN

25


×