1. Trang chủ
  2. » Adult

Tin học:Thuật toán tham lam - Nguyễn Ngọc Huy

14 17 1

Đ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 14
Dung lượng 84,12 KB

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

Nội dung

như tên gọi cua nó, đó là luôn luôn làm một sự lựa chọn tốt nhất tại thời điểm hiện tại.. Điều này có nghĩa rằng, sự.[r]

Trang 1

Thuật toán tham lam (Greedy algorithms)

Giáo viên: Nguyễn Ngọc Huy Trường TH&THCS Bùi Dục Tài

Trang 2

 Gọi là thuật toán tham

lam nhưng thực chất tham lam không được gọi là

thuật toán, mà nó là một

kỹ thuật, một phương pháp

để ta tiến hành giải một

bài toán lập trình.

Trang 3

Vậy thì thuật toán tham lam là gì?

Trang 4

Một thuật toán tham lam,

như tên gọi cua nó, đó là luôn luôn làm một sự lựa chọn tốt nhất tại thời điểm hiện tại

Điều này có nghĩa rằng, sự

lựa chọn tốt nhất ở mỗi bước

sẽ dẫn tới lời giải tối ưu nhất

Trang 5

Vậy bạn chọn lựa tối ưu hóa bằng cách nào?

Trang 6

Giả sử bạn có một hàm cần

để tối ưu hóa (hoặc cực đại

hóa, hoặc cực tiểu hóa hàm

đó) Một thuật toán tham lam

sẽ thực hiện các lựa chọn

tham lam ở mỗi bước để đảm bảo rằng hàm đã cho là tối

ưu Thuật toán tham lam chỉ

có một lần tính toán lời giải

tối ưu với mục đích nó không bao giờ trở lại và đảo ngược

quyết định

Trang 7

Thuật toán tham lam có một vài sự thuận lợi

 1/ Khá dễ để tiến hành

một thuật toán tham lam cho một bài toán

 2/ Phân tích thời gian

chạy của thuật toán

tham lam sẽ dễ dàng hơn

Trang 8

Khó khăn

 Khó khăn của tham lam là bạn rất vất vả để hiểu chính xác vấn

đề Thậm chí với giải thuật chính xác rồi, cũng rất khó khăn để

chứng minh tại sao nó đúng

Chứng minh một giải thuật tham lam là đúng có cảm giác là cả

một nghệ thuật hơn là một khoa học, vì nó đòi hỏi rất nhiều sự

sáng tạo

Trang 9

Lưu ý: Hầu như các giải

thuật tham lam đều không

chính xác Và không phải lúc nào cũng cho kết quả đúng.

Trang 10

Tạo ra một Giải thuật

tham lam như thế nào?

Trang 11

 Bài toán: Là một  người bận rộn, bạn có đúng T thời gian để làm một vài thứ thú vị và bạn muốn làm nhiều thứ nhất có

thể.

Trang 12

Tổ chức dữ liệu – yêu cầu

Cho một mảng A gồm các số

có kiểu int, trong đó mỗi

phần tử biểu thị thời gian

hoàn thiện thứ đó Hãy tính

toán số thứ bạn có thể làm

với thời gian giới hạn

Trang 13

 Nhận định:

Đây là một bài toán tham lam

đơn giản Ở mỗi bước, ta phải

chọn lựa tham lam bằng cách

chọn các công việc có thời gian hoàn thành ít nhất ở  đây ta có hai biến là thời gian hiện tại

(currentTime) và số công việc (number of Things)

Trang 14

Thuật toán – Kỹ thuật

 Sắp xếp mảng A theo chiều không giảm

 Chọn lựa mỗi công việc để làm

 Cộng thời gian để hoàn thành vào biến current time

 Công một tới số lượng công việc

 Lặp lại điều này trong khi biến

currenttimem nhỏ hơn hoặc bằng T

Ngày đăng: 25/02/2021, 10:31

TỪ KHÓA LIÊN QUAN

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

w