Khác biệt giữa bản sửa đổi của “Bài toán xếp ba lô”

Nội dung được xóa Nội dung được thêm vào
Addbot (thảo luận | đóng góp)
n Bot: Di chuyển 19 liên kết ngôn ngữ đến Wikidata tại d:q864457 Addbot
TuHan-Bot (thảo luận | đóng góp)
n Robot: Sửa đổi hướng
Dòng 2:
<small>(Lời giải là chọn tất cả các hộp trừ hộp xanh lục.)</small>]]
 
'''Bài toán xếp ba lô''' (một số sách ghi là '''bài toán cái túi''') 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 khối lượng) để mang theo trong một chuyến đi. Các bài toán tương tự thường xuất hiện trong kinh doanh, [[toán học tổ hợp|toán tổ hợp]], [[lý thuyết độ phức tạp tính toán]], [[mật mã học]] và [[toán học ứng dụng|toán ứng dụng]].
 
Nội dung bài toán
Dòng 36:
Trường hợp đặc biệt này được gọi là [[bài toán tổng các tập con]] (''subset sum problem''). Với một số lý do, trong ngành [[mật mã học]], người ta thường dùng cụm từ "bài toán xếp ba lô" khi thực ra đang có ý nói về "bài toán tổng con".
 
Bài toán xếp ba lô thường được giải bằng [[quy hoạch động]], 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 xếp ba lô tổng quát và bài toán tổng con đều là các bài [[NP-khó]], và điều này dẫn đến các cố gắng sử dụng tổng con làm cơ sở cho các hệ thống [[mật mã hóa khóa công khai]], chẳng hạn [[Merkle-Hellman]]. Các cố gắng này thường dùng [[nhóm (toánđại họcsố)|nhóm]] thay vì các số nguyên. Merkle-Hellman và một số thuật toán tương tự khác đã bị phá, do các bài toán tổng con cụ thể mà họ tạo ra thực ra lại giải được bằng các thuật toán thời gian đa thức.
 
Phiên bản bài toán quyết định của bài xếp ba lô được mô tả ở trên là [[NP-đầy đủ]] và trong thực tế là một trong [[21 bài toán NP-đầy đủ của Karp]].