Bài giảng Thiết kế và đánh giá thuật toán - Tham ăn - Lê Nguyên Khôi

Tóm tắt Bài giảng Thiết kế và đánh giá thuật toán - Tham ăn - Lê Nguyên Khôi: ...lời giải  Tham ăn  Thiết kế trên xuống (top-down design) 1. Xác định phương án lời giải 2. Sau đó giải bài toán nhỏ 6 Trả Tiền Thừa – Lập Trình Động  Giải bài toán nhỏ  Có sử dụng loại xu xxx hay không (co/không)  Số tiền trả tăng dần từ 0  Thiết kế bảng 2 chiều  Gần tương tự bài t...E wi 10 20 30 40 50 ti 20 30 66 40 50 10 Bài Toán Ba Lô – Tham Ăn N = 5, M = 100 i A B C D E wi 10 20 30 40 50 ti 20 30 66 40 50 Tham ăn theo cân nặng (wi) Xi 1 1 1 1 0  = 156 11 Bài Toán Ba Lô – Tham Ăn N = 5, M = 100 i A B C D E wi 10 20 30 40 50 ti 20 30 66 40 50 Tham ăn theo g... BX Kim Mã Ngã tư Sở 5 7 11 15 ĐHQG Cầu Giấy BX Kim Mã Ngã tư Sở Đồ Thị – Ví Dụ liên thông không liên thông 17 Đồ Thị – Biểu Diễn  Biểu diễn  = ( , , với  1, 2, ,  , là ma trận !"1 . . , 1 . . $ ! %, &  '1 nếu %, & ∈ 0 nếu %, & ∉ 18   lưu trữ Bài Toán Cây ...

pdf25 trang | Chia sẻ: havih72 | Lượt xem: 232 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Thiết kế và đánh giá thuật toán - Tham ăn - Lê Nguyên Khôi, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Thiết Kế & Đánh Giá Thuật Toán
Tham Ăn
TS. Lê Nguyên Khôi
Trường Đại Học Công Nghệ - ĐHQGHN
Nội Dung
 Bài toán
 Trả tiền thừa
 Ba lô
 Chiến lược tham ăn
 Cây bao trùm nhỏ nhất
 Thuật toán Prim
 Thuật toán Kruskal
1
Bài Toán Trả Tiền Thừa
 Các loại đồng xu 100c, 25c, 10c, 5c, 1c
 Với khoản tiền cần trả lại, sao cho số
lượng đồng xu là ít nhất.
 Ví dụ: trả lại 189c
 189 xu 1c => 189
 18 xu 10c, 1 xu 5c, 4 xu 1c => 23
2
Bài Toán Trả Tiền Thừa
 Số lượng đồng xu trả lại là ít nhất?
 Ý tưởng:
 Sử dụng lần lượt các đồng xu có mệnh giá từ
lớn nhất đến nhỏ nhất
 Hy vọng số lượng đồng xu là ít nhất
 Ví dụ: trả lại 189c
 1 xu 100c, 3 xu 25c, 1 xu 10c, 4 xu 1c => 9
 9 xu đã ít nhất chưa
3
Lập Trình Động – Nhắc Lại
 Thường áp dụng cho bài toán tối ưu
 Xác định được lời giải tối ưu
 Dựa trên lời giải tối ưu các bài toán con
 Có thể phức tạp hóa vấn đề
 Không khả thi với bài toán thực tế
 Không gian tìm kiếm rộng
 Thời gian tìm kiếm lâu
4
Chiến Lược Tham Ăn
 Xác định phương án (lời giải) tốt nhất tại
thời điểm quyết định
 Chọn tối ưu cục bộ (local optimal)
 Hi vọng tìm được tối ưu toàn cục (global 
optimum)
 Có thể tìm được lời giải tối ưu với một số
bài toán
 Hiệu quả trong thực tế
5
Tham Ăn – Lập Trình Động
 Đều áp dụng tìm lời giải tối ưu
 Lập trình động
 Thiết kế dưới lên (bottom-up design)
1. Giải bài toán nhỏ
2. Sau đó xác định phương án lời giải
 Tham ăn
 Thiết kế trên xuống (top-down design)
1. Xác định phương án lời giải
2. Sau đó giải bài toán nhỏ
6
Trả Tiền Thừa – Lập Trình Động
 Giải bài toán nhỏ
 Có sử dụng loại xu xxx hay không (co/không)
 Số tiền trả tăng dần từ 0
 Thiết kế bảng 2 chiều
 Gần tương tự bài toán ba lô?
7
Trả Tiền Thừa – Tham Ăn
 Các loại đồng xu 100c, 25c, 10c, 1c
 Với khoản tiền cần trả lại, sao cho số
lượng đồng xu là ít nhất.
 Ví dụ: trả lại 133c
 Kỹ thuật tham ăn?
1 xu 100c, 1 xu 25c, 8 xu 1c => 10
 1 xu 100c, 3 xu 10c, 3 xu 1c => 7
 Tham ăn có thể không cho lời giải tối ưu
8
Bài Toán Ba Lô
 Nhặt đầy đồ vật vào ba lô sao cho tối ưu
 Điều kiện khối lượng ba lô
Mục tiêu tối ưu lợi nhuận
 Bài toán:
 Có N đồ vật, với khối lượng wi và giá trị ti
 Khối lượng ba lô không vượt quá M
 Xác định tập đồ vật để tổng giá trị lớn nhất
 Sử dụng kỹ thuật tham ăn
9
Bài Toán Ba Lô – Tham Ăn
N = 5, M = 100
i A B C D E
wi 10 20 30 40 50
ti 20 30 66 40 50
10
Bài Toán Ba Lô – Tham Ăn
N = 5, M = 100
i A B C D E
wi 10 20 30 40 50
ti 20 30 66 40 50
Tham ăn theo cân nặng (wi)
Xi 1 1 1 1 0
 = 156
11
Bài Toán Ba Lô – Tham Ăn
N = 5, M = 100
i A B C D E
wi 10 20 30 40 50
ti 20 30 66 40 50
Tham ăn theo giá trị (ti)
Xi 0 1 1 0 1
 = 146
12
Bài Toán Ba Lô – Tham Ăn
N = 5, M = 100
i A B C D E
wi 10 20 30 40 50
ti 20 30 66 40 50
Tham ăn theo tỉ trọng (ti / wi)
Xi 1 1 1 1 0
 = 156
13
Đồ Thị – Định Nghĩa
Đồ thị có hướng  = (	, ) bao gồm
 Tập 	 các đỉnh
 Tập  ⊆ 	 × 	 cạnh
 Đồ thị vô hướng
 Cặp cạnh không có thứ tự ,  = (, )
 Đồ thị định hướng
 Cặp cạnh có thứ tự ,  ≠ , 
Cả hai trường hợp,  = (	).
Nếu  liên thông,  ≥ 	 − 1,
⟹ log  =  log 	
14
Đồ Thị – Ví Dụ
vô hướng định hướng
15
ĐHQG
Cầu Giấy
BX Kim Mã
Ngã tư Sở
ĐHQG
Cầu Giấy
BX Kim Mã
Ngã tư Sở
Đồ Thị – Ví Dụ
trọng số không trọng số
16
ĐHQG
Cầu Giấy
BX Kim Mã
Ngã tư Sở
5 7
11 15
ĐHQG
Cầu Giấy
BX Kim Mã
Ngã tư Sở
Đồ Thị – Ví Dụ
liên thông không liên thông
17
Đồ Thị – Biểu Diễn
 Biểu diễn  = (	, , với 	  	 1, 2,  ,  , là ma 
trận !"1	. . , 1	. . $
! %, &  '1	nếu	 %, & ∈ 	0	nếu	 %, & ∉ 
18
 	
lưu trữ
Bài Toán Cây Bao Trùm Nhỏ Nhất
 Input: Đồ thị liên thông, vô hướng
  (	, ) có trọng số .: 	 → ℝ
 Output: Cây bao trùm 2 – một cây kết nối
tất cả các đỉnh với trọng số nhỏ nhất
. 2 =  .(, )
3,4 ∈5
19
Cây Bao Trùm Nhỏ Nhất – Ví Dụ
 Input:
20
Cây Bao Trùm Nhỏ Nhất – Ví Dụ
 Output
21
Cấu Trúc Con Tối Ưu
Xóa một cạnh bất kỳ (, ) 	∈ 2. Thì, cây 2
được chia thành 2 cây con 26 và 2
Định lý. Cây con T6 là cây bao trùm nhỏ
nhất của 6 = (	6, 6), 6 là đồ thị con của bao gồm các đỉnh của 26
	6 = đỉnh của 26
6 = 8, 9 ∈ : 8, 9 ∈ 	6
Tương tự với 2
22
Thuật Toán Prim
:: tập các đỉnh kề các cạnh trong tập cạnh 2
Ban đầu tập : chứa một đỉnh tuỳ chọn của 
đồ thị , còn 2 rỗng.
Tại mỗi bước lặp:
1. Chọn (, ) ngắn nhất,  ∈ :,  ∈ 	 − :
2. Thêm đỉnh  vào tập đỉnh :
3. Thêm cạnh (, ) vào tập cạnh 2.
Tiếp tục phát triển cây 2 cho tới khi : = 	, ta 
nhận được 2 là cây bao trùm
23
Thuật Toán Kruskal
Tập 2 các cạnh được xây dựng dần từng
bước xuất phát từ 2 rỗng.
Tại mỗi bước cạnh (, ) được chọn thêm
vào 2 là cạnh ngắn nhất trong các cạnh
còn lại và không tạo thành chu trình với các
cạnh đã có trong 2.
24

File đính kèm:

  • pdfbai_giang_thiet_ke_va_danh_gia_thuat_toan_tham_an_le_nguyen.pdf