Năm 1978, Ralph C. Merkle và Martin E. Hellman, cả hai kỹ sư điện tại Đại học Stanford, phát triển một khóa công khai cryptosystem dựa trên vấn đề knapsack, một vấn đề tổ chức kỷ niệm trong tổ hợp. Nó có thể được nêu như sau: cho một knapsack của khối lượng S và n các khoản mục khác nhau sách một, một,..., a, mà của các mục có thể fill knapsack? Nói cách khác, đưa ra các số nguyên dương một, một,..., a, gọi là trọng lượng, và một số nguyên dương S, giải quyết LDE S = một x + một x + · · · + một x (9,10) nơi x = 0 hoặc 1. [Lưu ý rằng S là dot, tích các vectơ (một, một,..., một) và (x, x,..., x).] Knapsack vấn đề có thể có không có giải pháp, một giải pháp, hoặc nhiều hơn một giải pháp. Ví dụ, vấn đề knapsack 3 x 1 + 5 x 2 + 9 x 3 + 19 x 4 + 37 x 5 = 45 có một giải pháp (1, 1,0,0, 1), kể từ 3 + 5 + 0 + 0 + 37 = 45. Mặt khác, vấn đề knapsack 3 x 1 + 5 x 2 + 8 x 3 + 13 x 4 21 x 5 = 34 có hai giải pháp; họ là (0,0,0, 1, 1) và (0, 1, 1,0, 1), bởi vì 0 + 0 + 0 + 13 + 21 = 34 = 0 + 5 + 8 + 0 + 21. Nhưng vấn đề 5 x 1 + 14 x 2 + 15 x 3 + 27 x 4 + 11 x 5 = 23 đã không có giải pháp. Giải quyết một vấn đề knapsack thường là một nhiệm vụ rất difficult. Một phương pháp rõ ràng, nhưng chắc chắn không thực tế, là để kiểm tra khả năng 2n khác nhau cho một giải pháp (x, x,..., x), nơi x = 0 hoặc 1, cho đến khi một giải pháp nổi lên hoặc tất cả các trường hợp đã bị kiệt sức. Ngay cả phương pháp nổi tiếng nhất để giải quyết vấn đề đòi hỏi về 2n/2 tính toán hoạt động, vì vậy cho n = 100 giải pháp máy tính trở thành computationally infeasible. Tuy nhiên, vấn đề (9,10) có thể được giải quyết khá dễ dàng nếu trọng lượng có tính chất đặc biệt. Ví dụ, nếu ai = 2, sau đó S = x 1 + 2 x 2 + 2 x 3 + · · · + 2 có một giải pháp (x, x,..., x) nếu (x, x,..., x) = S. Nó cũng là dễ dàng để giải quyết nó nếu một < a, nơi 2 ≤j ≤ n. Một chuỗi với tài sản này được gọi là superincreasing. Ví dụ, xem xét trình tự 3, 5, 9, 19, 37. Bởi vì 3 < 5, 3 + 5 < 9, 3 + 5 + 9 < 19, và 3 + 5 + 9 + 19 < 37, trình tự là superincreasing. Ví dụ sau cho thấy làm thế nào để giải quyết một vấn đề knapsack với trọng lượng superincreasing.
đang được dịch, vui lòng đợi..
