Ví dụ về một bài toán xếp ba lô giới hạn 1 chiều: chọn các hộp nào để tổng giá trị các hộp trong ba lô là lớn nhất mà tổng khối lượng dưới 15 kg? Bài toán đa chiều có thể xét đến khối lượng riêng và kích thước của các hộp, đó là [[bài toán xếp vali điển hình (packing problem).
(Lời giải là chọn tất cả các hộp trừ hộp xanh lục.)]]
Bài toán xếp ba lô (còn được biết đến với tên gọi 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 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.
Nội dung
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.
Dạng bài toán quyết định của bài toán xếp ba lô là câu hỏi "có thể đạt được một giá trị ít nhất là bao nhiêu theo phát biểu của bài toán".
Ta có n loại đồ vật, x1 tới xn. Mỗi đồ vật xj có một giá trị pj và một khối lượng wj. Khối lượng tối đa mà ta có thể mang trong ba lô là C.
Bài xếp ba lô dạng 0-1
Hạn chế số đồ vật thuộc mỗi loại là 0 (không được chọn) và 1 (được chọn).
:Bài xếp ba lô 0-1 có thể được phát biểu bằng toán học như sau:
:Cực đại hóa
:sao cho
Bài xếp ba lô bị chặn hạn chế số đồ vật không được vượt quá một lượng nào đó.
:Bài xếp ba lô bị chặn có thể được phát biểu bằng toán học như sau:
:Cực đại hóa
:
:sao cho
Bài xếp ba lô không bị chặn không có một hạn chế nào về số lượng đồ vật.
Trường hợp đặc biệt
Bài toán với các tính chất:
- là một bài toán quyết định
- là một bài toán 0/1
- với mỗi đồ vật, chi phí bằng giá trị: C = V
Lưu ý rằng trong trường hợp đặc biệt này, bài toán tương đương với:
:Cho một tập các số nguyên, tồn tại hay không một tập con có tổng đúng bằng C?
Hoặc nếu đồ vật được phép có chi phí âm và C được chọn bằng 0, bài toán có dạng:
:Cho trước một tập các số nguyên, tồn tại hay không một tập con có tổng đúng bằng 0?
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 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.
Bài xếp ba lô dạng phân số
Với mỗi loại, có thể chọn một phần của nó (ví dụ: 1Kg bơ có thể được cắt ra thành nhiều phần để bỏ vào ba lô)
Cách giải bằng quy hoạch động
Bài toán xếp ba lô có thể được giải trong thời gian giả-đa thức bằng quy hoạch động. Dưới đây là lời giải quy hoạch động cho bài toán xếp ba lô không bị chặn.
Gọi các chi phí là c1,..., cn và các giá trị tương ứng là v1,..., vn. Ta cần cực đại hóa tổng giá trị với điều kiện tổng chi phí không vượt quá C. Khi đó, với mỗi i ≤ C, đặt A(i) là giá trị lớn nhất có thể đạt được với tổng chi phí không vượt quá i. Rõ ràng, A(C) là đáp số của bài toán.
Định nghĩa A(i) một cách đệ quy như sau:
- A(0) = 0
- A(i) = max { vj + A(i − cj),_A(i) | cj ≤ _i'' }
Ở đây, giá trị lớn nhất của tập rỗng được lấy bằng 0. Tính dần các kết quả từ A(0) tới A(C), ta sẽ được lời giải. Do việc tính mỗi A(i) đòi hỏi xem xét n đồ vật (tất cả các giá trị này đã được tính từ trước), và có C giá trị của các A(i) cần tính, nên thời gian chạy của lời giải quy hoạch động là O(nC).
Điều này không mâu thuẫn với thực tế rằng bài toán xếp ba lô là NP-đầy đủ, do C, không như n, không thuộc mức đa thức theo độ dài của đầu vào cho bài toán. Độ dài đầu vào bài toán tỉ lệ thuận với số bit trong C, chứ không tỉ lệ với chính C.
Một giải pháp quy hoạch động tương tự cho bài toán xếp ba lô 0-1 cũng chạy trong thời gian giả-đa thức. Cũng như trên, gọi các chi phí là c1,..., cn và các giá trị tương ứng là v1,..., vn. Ta cần cực đại hóa tổng giá trị với điều kiện tổng chi phí không vượt quá C. Định nghĩa một hàm đệ quy A(i, j) là giá trị lớn nhất có thể đạt được với chi phí không vượt quá j và sử dụng các đồ vật trong khoảng từ x1 tới xi.
A(i,j) được định nghĩa đệ quy như sau:
- f[i][j]:= giá trị lớn nhất có thể lấy được;
- v[i]:= là giá trị của đồ vật thứ i;
- w[i]:=trọng lượng của đồ vật thứ i
- NOTES: Đây là bài toán không giới hạn đồ vật
- _f[i][j]=max(f[i-1][j],v[i]+f[i][j-w[i]]) // khi đã lấy vật thứ i thì có thể lấy thêm nữa nên ta có f[i][j-w[i]]:= đã trừ đi trọng lượng của đồ vật thứ i và vẫn có thể lấy thêm được nữa // i là đồ vật không giới hạn_
- A(0, j) = 0
- A(i, 0) = 0
- A(i, j) = A(i - 1, j) if ci > j
- A(i, j) = max(A(i - 1, j), vi + A(i - 1, j - ci)) if ci ≤ j
Để có lời giải, ta tính A(n, C). Để làm điều này, ta có thể dùng 1 bảng để lưu các tính toán trước đó. Cách giải này do đó sẽ chạy trong thời gian O(nC) và không gian O(nC), tuy ta có thể giảm độ phức tạp không gian xuống O(C) bằng một số sửa đổi nhỏ.
Thuật toán tham lam
Martello và Toth (1990) đã đưa ra một thuật toán gần đúng kiểu tham lam (greedy approximation algorithm) để giải bài toán xếp ba lô. Giải thuật này sắp xếp các đồ vật theo thứ tự giảm dần về giá trị, sau đó theo thứ tự đó xếp các đồ vật vào ba lô cho đến khi không cho thêm được đồ vật nào vào nữa.
👁️
3 | 🔗 | 💖 | ✨ | 🌍 | ⌚
Ví dụ về một bài toán xếp ba lô giới hạn 1 chiều: chọn các hộp nào để tổng giá trị các hộp trong ba lô là lớn nhất mà tổng khối lượng dưới 15 kg?
Trong khoa học máy tính và toán học, **bài toán tối ưu hóa** là bài toán tìm kiếm _lời giải tốt nhất _trong tất cả các lời giải khả thi. Bài toán tối ưu hóa
Bài này nói về từ điển các chủ đề trong toán học. ## 0-9 * -0 * 0 * 6174 ## A * AES * ARCH * ARMA * Ada Lovelace * Adrien-Marie Legendre *
Trong khoa học máy tính và vận trù học, **thuật toán xấp xỉ** là các thuật toán tìm lời giải xấp xỉ cho các bài toán tối ưu hóa. Thuật toán xấp xỉ thường được
Trong lý thuyết độ phức tạp tính toán, lớp **NP-đầy đủ** là một lớp các bài toán quyết định. Một bài toán _L_ là NP-đầy đủ nếu nó nằm trong lớp NP (lời giải cho
Trong ngành khoa học máy tính, **quy hoạch động** (tiếng Anh: _dynamic programming_) là một phương pháp giảm thời gian chạy của các thuật toán thể hiện các tính chất của các bài toán con
Túi Tã hỗ trợ tổ chức tốt hơn các nhu yếu phẩm cho béĐi du lịch cùng em bé đòi hỏi phải mang theo nhiều loại vật dụng để giữ cho bé thoải mái và
Túi Tã hỗ trợ tổ chức tốt hơn các nhu yếu phẩm cho béĐi du lịch cùng em bé đòi hỏi phải mang theo nhiều loại vật dụng để giữ cho bé thoải mái và
**NP-khó** là một tập hợp các bài toán trong lý thuyết độ phức tạp tính toán "ít nhất là khó ngang bất kì bài toán nào trong NP". Một bài toán _H_ là NP-khó khi
"**S&M**" là một bài hát của nữ ca sĩ người Barbados Rihanna nằm trong album phòng thu thứ năm _Loud_ (2010) của cô, được phát hành làm đĩa đơn thứ tư của album vào ngày
"**Butter**" là một bài hát của nhóm nhạc nam Hàn Quốc BTS. Bài hát được phát hành dưới dạng đĩa đơn kỹ thuật số vào ngày 21 tháng 5 năm 2021 thông qua Big Hit
"**Man Down**" là một bài hát của nữ ca sĩ người Barbados Rihanna nằm trong album phòng thu thứ năm của cô, _Loud_ (2010). Bài hát này được sáng tác bởi Shontelle cùng bộ đôi
Bài viết này là **danh sách các thuật toán** cùng một mô tả ngắn cho mỗi thuật toán. ## Thuật toán tổ hợp ### Thuật toán tổ hợp tổng quát * Thuật toán Brent: tìm
**Bà Rịa – Vũng Tàu** (viết tắt **BRVT**) là một tỉnh cũ ven biển thuộc vùng Đông Nam Bộ, Việt Nam. Ngày 12 tháng 6 năm 2025, Quốc hội thông qua Nghị quyết số 202/2025/QH15
"**Stay**" (viết hoa toàn bộ nếu theo cách điệu) là một bài hát của rapper kiêm ca sĩ người Úc Kid Laroi và ca sĩ người Canada Justin Bieber. Bài hát được phát hành thông
Tập tin:Pack of playing cards whitebg.jpg **Bộ bài Tây** (ở miền Bắc Việt Nam còn gọi là **tú lơ khơ** hoặc bộ **tú**) - bao gồm có 54 lá bài (có bộ bài chỉ có
"**The Monster**" là bài hát của nghệ sĩ hiphop người Mỹ Eminem có sự kết hợp với nghệ sĩ thu âm người Barbados, Rihanna, được trích từ album phòng thu thứ 8 của anh ấy
"**Slow**" là bài hát của nữ ca sĩ người Úc Kylie Minogue. Bài hát phát hành dưới dạng đĩa đơn đầu tiên bởi hãng thu âm Parlophone, trích từ album phòng thu thứ 9 _Body
"**Right Now**" là một bài hát của nghệ sĩ thu âm người Barbados Rihanna, được trích từ album phòng thu thứ 7 của cô ấy, Unapologetic (2012). Bài hát có sự góp mặt của DJ
"**Anti-Hero**" là một bài hát của nữ ca sĩ kiêm sáng tác âm nhạc người Mỹ Taylor Swift trích từ album phòng thu thứ 10 của cô, _Midnights_ (2022). Nó được phát hành trên các
"**Black Swan**" là một bài hát của nhóm nhạc nam Hàn Quốc BTS trong album phòng thu tiếng Hàn thứ tư của nhóm, _Map of the Soul: 7_ (2020). Bài hát được viết bởi RM,
Một đòn đá thẳng trong võ Tân Khánh Bà Trà đang được các môn sinh luyện tập. **Tân Khánh Bà Trà** hay **Bà Trà - Tân Khánh** hay **Võ Lâm Tân Khánh Bà Trà** (người
"**She Wolf**" là một bài hát thuộc thể loại nhạc latin - pop của nữ ca sĩ - nhạc sĩ người Colombia Shakira trích từ album phòng thu tiếng Anh thứ ba cùng tên của
Các đoàn [[chèo, nhà hát chèo Việt Nam]] **Đoàn Chèo Yên Bái** (tồn tại: 1962 - 2005) nguyên là đơn vị hoạt động nghệ thuật, hiện nay đã được sáp nhập vào Đoàn Nghệ thuật
"**Blue & Grey**" là một bài hát của nhóm nhạc nam Hàn Quốc BTS trong album phòng thu tiếng Hàn thứ năm của nhóm, _Be_ (2020). Bài hát được viết bởi V, Suga, RM, J-Hope,
**Cuộc xâm lược Ba Lan 1939** – được người Ba Lan gọi là **Chiến dịch tháng Chín** (_Kampania wrześniowa_), **Chiến tranh vệ quốc năm 1939** (_Wojna obronna 1939 roku_); người Đức gọi là **Chiến dịch
_Cuốn [[The Compendious Book on Calculation by Completion and Balancing_]] Từ _toán học_ có nghĩa là "khoa học, tri thức hoặc học tập". Ngày nay, thuật ngữ "toán học" chỉ một bộ phận cụ thể
"**Stan**" là đĩa đơn thứ ba trích từ album _The Marshall Mathers LP_ được thu âm vào năm 1999 của rapper người Mỹ Eminem và có sự xuất hiện của nữ ca sĩ người Anh
**Ba Lan**, quốc hiệu là **Cộng hòa Ba Lan**, là một quốc gia có chủ quyền ở Trung Âu, tiếp giáp với Đức, Slovakia, Cộng hòa Séc, Ukraina, Belarus, Litva, Nga và biển Baltic; diện
"**Judas**" là đĩa đơn chính thức thứ hai trích từ album phòng thu thứ hai mang tên _Born This Way_ của nữ ca sĩ - nhạc sĩ người Mỹ Lady Gaga. Cũng giống như ca
"**Seven**" (viết cách điệu bằng chữ thường) là một bài hát của nữ ca sĩ kiêm nhạc sĩ sáng tác bài hát người Mỹ Taylor Swift nằm trong album phòng thu thứ tám của cô,
"**My Universe**" là một bài hát tiếng Anh và tiếng Hàn của ban nhạc rock Anh Coldplay và nhóm nhạc pop Hàn Quốc BTS, được phát hành vào ngày 24 tháng 9 năm 2021, thông
**Yên Bái** trước đây là thành phố tỉnh lỵ của tỉnh Yên Bái cũ, Việt Nam. Từ 01/07/2025, thành phố chính thức kết thúc hoạt động và được tổ chức thành các phường thuộc tỉnh
phải|nhỏ|250x250px|[[Pallet và các lá bài]] **Baccarat** hay **baccara** (; ) là một trò chơi bài chơi tại Casino. Baccarat là cách phát âm tiếng Pháp của Người Ý cho từ "Số 0". Đây là một
Trong giáo dục, **Tư duy tính toán** hay **Tư duy máy tính** (Computational Thinking - CT) là một tập hợp các phương pháp giải quyết vấn đề liên quan đến việc diễn đạt các vấn
**Logic toán** là một ngành con của toán học có liên hệ gần gũi với cơ sở toán học, khoa học máy tính lý thuyết, logic triết học. Ngành này bao gồm hai phần: nghiên
"**Dance the Night Away**" là bài hát được thu âm bởi nhóm nhạc nữ Hàn Quốc Twice, là đĩa đơn tiếng Hàn thứ hai của nhóm trong năm 2018 và là đĩa đơn dẫn đường
[[Siêu máy tính song song hàng loạt Blue Gene/P của IBM]] **Tính toán song song** (tiếng Anh: _Parallel computing_), là một hình thức tính toán trong đó nhiều phép tính và tiến trình được thực
Trong lý thuyết độ phức tạp tính toán, **NP** là viết tắt của "nondeterministic polynomial time" (thuật toán bất định trong thời gian đa thức). Cụ thể hơn, **NP** là tập hợp các bài toán
Gấp tiện lợi Giường gấp cho bé sơ sinh màn chống muỗi cho bé mùa hè cho trẻ em Giường nôi ngủ đuổi muỗi lưới màn chống muỗi Mông CổChi tiết:Nó có thể tránh xa
Gấp tiện lợi Giường gấp cho bé sơ sinh màn chống muỗi cho bé mùa hè cho trẻ em Giường nôi ngủ đuổi muỗi lưới màn chống muỗi Mông CổChi tiết:Nó có thể tránh xa
Gấp tiện lợi Giường gấp cho bé sơ sinh màn chống muỗi cho bé mùa hè cho trẻ em Giường nôi ngủ đuổi muỗi lưới màn chống muỗi Mông CổChi tiết:Nó có thể tránh xa
"**Love Story**" là một bài hát của nữ ca sĩ kiêm nhạc sĩ sáng tác bài hát người Mỹ Taylor Swift, được hãng đĩa Big Machine Records phát hành làm đĩa đơn mở đường cho
"**Born This Way**" (tạm dịch: _Sinh ra như thế_) là một ca khúc chủ đề và cũng là đĩa đơn đầu tiên trích từ album phòng thu thứ hai cùng tên của nữ ca sĩ
"**Dynamite**" là một bài hát của nhóm nhạc nam Hàn Quốc BTS, được phát hành vào ngày 21 tháng 8 năm 2020, thông qua Big Hit Entertainment và Sony Music Entertainment. Nó là bài hát
"**Imagine**" là một ca khúc do nam ca sĩ kiêm sáng tác nhạc người Anh John Lennon thể hiện. Đây là đĩa đơn bán chạy nhất trong sự nghiệp solo của ông, lời bài hát
"**City of Angels**" là một bài hát của ban nhạc rock người Mỹ Thirty Seconds to Mars trích từ album phòng thu thứ tư _Love, Lust, Faith and Dreams_. Ca khúc do giọng ca chính
"**Applause**" (tạm dịch là _Hoan hô_) là một bài hát của ca sĩ - nhạc sĩ thu âm người Mỹ Lady Gaga, trích từ album phòng thu thứ ba "Artpop" (2013). Bài hát được sáng
"**Problem**" là ca khúc được thu âm bởi nữ ca sĩ người Mỹ Ariana Grande, hợp tác cùng nữ rapper Úc, Iggy Azalea. Bài hát được phát hành bởi Republic Records vào ngày 28 tháng
**Yên Bái** là một tỉnh cũ thuộc vùng trung du và miền núi Bắc Bộ. Phía bắc giáp tỉnh Hà Giang và tỉnh Lào Cai, phía nam giáp tỉnh Sơn La, phía đông giáp tỉnh