You are on page 1of 15

Trí tuệ nhân tạo

NHÓM 4
Page

THÀNH VIÊN

1 Lê Hoàng Khánh Trân

2 Hồ Ngọc Yến Nhi

3 Lê Văn Luân

4 Lê Duy Phụng
Knapsack problem
I. Giới thiệu
Knapsack problem - bài toán cái túi, là một trong những bài
toán tối ưu hóa tổ hợp tiêu biểu trong trong lý thuyết đồ thị
và khoa học máy tính
Bắt nguồn từ công trình nghiên cứu của nhà toán học
người Mỹ Tobias Dantzig
Công trình nghiên cứu này xét đến tình huống mà một
người có trong tay chiếc ba lô chỉ chứa được một khối lượng
đồ đạc nhất định và người này phải tìm ra giải pháp để tối
ưu hóa tổng giá trị của những món đồ được chọn bỏ vào
trong ba lô
Knapsack problem
Ứng dụng
TIẾT KIỆM TÀI NGUYÊN NHẤT ĐỂ HỆ THỐNG MẬT MÃ KNAPSACK
LỰA CHỌN DANH MỤC ĐẦU TƯ
CẮT GỌT NGUYÊN LIỆU THÔ (KNAPSACK CRYPTOSYSTEMS)
Knapsack problem
Ví dụ minh họa

1.Input:

Giới hạn sức chứa: 101

2.Output:
Đóng gói các món đồ để tổng giá trị của chúng là lớn nhất
có thể trong giới hạn sức chứa của chiếc ba lô
Một số hướng tiếp cận
giải quyết bài toán

Quy hoạch động (Dynamic Programming)

Đệ quy

Giải thuật quay lui (Backtracking)

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

Giải thuật Minimax, Simulated Annealing,…


Simulated Annealing
Page

Giới thiệu
Simulated Annealing là một thuật
toán tối ưu hóa toàn cục dựa trên
việc mô phỏng quá trình nung
chảy kim loại (annealing)
Simulated Annealing
Page

Cách thức hoạt động

Simulated Annealing bắt đầu với một


nhiệt độ cao (ban đầu lấy từ hàm năng
lượng của giải pháp) và thực hiện các
bước thay đổi ngẫu nhiên cho giải pháp
hiện tại để tìm giải pháp mới tốt hơn
Được điều khiển bởi một hàm lượng giác
(objective function) và một tham số nhiệt
độ
Các bước cơ bản của thuật toán
Simulated Annealing
CHỌN MỘT GIÁ TRỊ BAN ĐẦU NGẪU NHIÊN CHO BIẾN TỐI ƯU HÓA. ĐÂY
1. Khởi tạo giá trị ban đầu LÀ GIÁ TRỊ BẮT ĐẦU CỦA QUÁ TRÌNH TỐI ƯU HÓA

TÌM KIẾM CÁC GIÁ TRỊ LÂN CẬN CỦA GIÁ TRỊ HIỆN TẠI, CÁC GIÁ TRỊ NÀY CÓ
2. Tìm kiếm lân cận THỂ ĐƯỢC TẠO RA BẰNG CÁCH THAY ĐỔI MỘT HOẶC NHIỀU THÔNG SỐ CỦA
GIÁ TRỊ HIỆN TẠI

3. Tính toán giá trị mục tiêu TÍNH TOÁN GIÁ TRỊ MỤC TIÊU CỦA CÁC GIÁ TRỊ LÂN CẬN TÌM ĐƯỢC TRONG
BƯỚC 2. ĐÂY LÀ GIÁ TRỊ MÀ CHÚNG TA MUỐN TỐI ƯU HÓA

SO SÁNH GIÁ TRỊ MỤC TIÊU CỦA GIÁ TRỊ HIỆN TẠI VÀ GIÁ TRỊ MỤC TIÊU CỦA

4. So sánh giá trị GIÁ TRỊ LÂN CẬN TÌM ĐƯỢC TRONG BƯỚC 2. NẾU GIÁ TRỊ MỤC TIÊU CỦA
GIÁ TRỊ LÂN CẬN TỐT HƠN GIÁ TRỊ MỤC TIÊU CỦA GIÁ TRỊ HIỆN TẠI, TA
CHỌN GIÁ TRỊ LÂN CẬN NÀY LÀM GIÁ TRỊ HIỆN TẠI

XÁC ĐỊNH DỰA TRÊN MỘT XÁC SUẤT ĐƯỢC TÍNH TOÁN TỪ NHIỆT ĐỘ
5. Chấp nhận giá trị xấu hơn HIỆN TẠI VÀ SỰ KHÁC BIỆT GIỮA GIÁ TRỊ MỤC TIÊU CỦA GIÁ TRỊ HIỆN TẠI
VÀ GIÁ TRỊ MỤC TIÊU CỦA GIÁ TRỊ LÂN CẬN

6. Giảm nhiệt độ SAU MỖI VÒNG LẶP, GIẢM NHIỆT ĐỘ ĐỂ GIẢM DẦN KHẢ NĂNG CHẤP
NHẬN GIÁ TRỊ XẤU HƠN

7. Lặp lại TỤC LẶP LẠI CÁC BƯỚC NÀY CHO ĐẾN KHI ĐÁP ÁN TỐI ƯU ĐƯỢC TÌM
THẤY HOẶC ĐÁP ÁN KHÔNG THAY ĐỔI SAU MỘT SỐ LẦN LẶP
Knapsack problem

1.Input:

Giới hạn trọng lượng: 101

2.Output:
Tổng giá trị lớn nhất có thể của các món đồ được
chọn và số thứ tự của các món đồ được chọn
Ứng dụng giải thuật simulated

annealing vào bài toán cái túi


Các bước:
1. Khởi tạo một giải pháp ngẫu nhiên bằng cách chọn một số lượng vật phẩm
để bỏ vào túi.
2. Tính toán giá trị tổng của các vật phẩm trong giải pháp và kiểm tra xem
tổng trọng lượng của chúng có nhỏ hơn hoặc bằng trọng lượng tối đa của
túi hay không. Nếu không, ta sẽ phải bỏ bớt một số vật phẩm để giảm
trọng lượng.
3. Áp dụng giải thuật simulated annealing để tìm ra giải pháp tối ưu cho bài
toán.
4. Lặp lại các bước 2 và 3 cho đến khi đạt được giải pháp tối ưu hoặc đạt
được điều kiện dừng.
Độ phức tạp của thuật toán

simulated annealing

Độ phức tạp thời gian trung bình O(kn). Trong đó k là số lần lặp

của thuật toán, n là kích thước không gian tìm kiếm


Đô phức tạp có thể thay đổi tùy thuộc cách cài đặt và thông số của

thuật toán
Ưu điểm và nhược điểm của
thuật toán simulated annealing
Ưu điểm:

1. Tìm được giá trị tối ưu toàn cục: trong không gian tìm kiếm rộng và phức tạp
2. Giải quyết được các bài toán tối ưu không khả thi: giải quyết các bài toán tối
ưu không khả thi bằng các phương pháp tìm kiếm cục bộ thông thường
3. Không rơi vào các cực tiểu cục bộ: bằng cách sử dụng quá trình chấp nhận giá
trị xấu để tìm kiếm khắp không gian tìm kiếm
4. Độ linh hoạt và dễ thực hiện
Ưu điểm và nhược điểm của
thuật toán simulated annealing

Nhược điểm:
1. Tốn nhiều thời gian tính toán: đặc biệt là khi kích thước của không gian tìm kiếm
lớn
2. Không thể chắc chắn tìm được giá trị tối ưu: chỉ có khả năng xấp xỉ giá trị tối ưu
3. Điều chỉnh tham số khó khăn: các tham số của thuật toán Simulated Annealing
cần được điều chỉnh một cách hợp lý
Thank
You!

You might also like