2.3.2.1 Giới thiệu bài toỏn ba lụ (bài toỏn cỏi tỳi)
Bài toỏn ba lụ là một bài toỏn tối ưu húa tổ hợp. Bài toỏn được đặt tờn từ vấn đề chọn những gỡ quan trọng cú thể nhột vừa vào trong một cỏi tỳi (với giới hạn về khối lượng). Cỏc bài toỏn tương tự thường xuất hiện trong thực tế như trong kinh doanh, toỏn tổ hợp, lý thuyết độ phức tạp tớnh toỏn, mật mó học và toỏn ứng dụng.
Cú một số cỏch phỏt biểu khỏc nội dung bài toỏn ba lụ là:
Một kẻ trộm đột nhập vào một cửa hiệu tỡm thấy cú n mặt hàng cú trọng lượng và giỏ trị khỏc nhau, nhưng hắn chỉ mang theo một cỏi tỳi cú sức chứa về trọng lượng tối đa là M. Vậy kẻ trộm nờn bỏ vào ba lụ những mún nào và số lượng bao nhiờu để đạt giỏ trị cao nhất trong khả năng mà hắn cú thể mang đi được.
Hoặc cỏch phỏt biểu khỏc:
Một hành khỏch chỉ được mang theo một vali cú khối lượng hàng hoỏ tối đa là M. Hành khỏch đú đó chuẩn bị ra N đồ vật được đỏnh số từ 1 đến N để chuẩn bị mang theo. Đồ vật thứ i cú trọng lượng là aivà giỏ trị sử dụng là ci
(i = 1, 2, .. N). Yờu cầu: Chỉ ra đồ vật mà hành khỏch đú cần mang theo sao
cho tổng giỏ trị sử dụng là lớn nhất?
Bài toỏn ba lụ thường được giải bằng quy hoạch nguyờn, tuy chưa cú một thuật toỏn thời gian đa thức cho bài toỏn tổng quỏt. Cả bài toỏn ba lụ tổng quỏt và bài toỏn ba lụ 0 - 1 đều là cỏc bài toỏn NP – C và thực tế là một trong 21 bài toỏn NP-C đầy đủ của Karp.
Bài toỏn cú thể giải được bởi một số thuật toỏn như thuật toỏn quay lui, giải thuật di truyền… Tuy nhiờn cỏc phương phỏp này cú nhiều hạn chế.
Việc sử dụng phương phỏp nhỏnh cận giải bài toỏn ba lụ tổng quỏt và bài toỏn ba lụ 0 – 1 được cho là cỏch giải cho kết quả tốt, ớt phức tạp và hiệu quả.
Đõy là một trong những cỏch tỡm lời giải cho cỏc bài toỏn tỡm phương ỏn tối ưu. Nếu chỳng ta vột cạn cỏc phương ỏn của một bài toỏn thỡ tốn rất nhiều thời gian, cũn nếu sử dụng phương phỏp "tham ăn" thỡ phương ỏn tỡm được chưa hẳn là phương ỏn tối ưu. Nhỏnh cận là phương phỏp xõy dựng toàn bộ cõy mà sử dụng giỏ trị cận để hạn chế bớt cỏc nhỏnh của cõy đi để khụng phải xột hết toàn bộ.