Vấn đề Knapsack

Tác Giả: Randy Alexander
Ngày Sáng TạO: 23 Tháng Tư 2021
CậP NhậT Ngày Tháng: 26 Tháng Sáu 2024
Anonim
0/1 Knapsack Problem Dynamic Programming
Băng Hình: 0/1 Knapsack Problem Dynamic Programming

NộI Dung

Định nghĩa - Vấn đề Knapsack có nghĩa là gì?

Vấn đề về chiếc ba lô là một vấn đề tối ưu hóa được sử dụng để minh họa cả vấn đề và giải pháp. Nó lấy tên của nó từ một kịch bản trong đó người ta bị hạn chế về số lượng vật phẩm có thể được đặt bên trong một chiếc ba lô có kích thước cố định. Đưa ra một tập hợp các vật phẩm có trọng lượng và giá trị cụ thể, mục đích là để có được càng nhiều giá trị vào chiếc ba lô càng tốt với sự hạn chế về trọng lượng của chiếc ba lô.


Giới thiệu về Microsoft Azure và Microsoft Cloud | Trong suốt hướng dẫn này, bạn sẽ tìm hiểu về điện toán đám mây là gì và Microsoft Azure có thể giúp bạn di chuyển và điều hành doanh nghiệp của bạn từ đám mây như thế nào.

Techopedia giải thích vấn đề Knapsack

Vấn đề về chiếc ba lô là một ví dụ về vấn đề tối ưu hóa tổ hợp, một chủ đề trong toán học và khoa học máy tính về việc tìm kiếm đối tượng tối ưu giữa một tập hợp các đối tượng. Đây là một vấn đề đã được nghiên cứu trong hơn một thế kỷ và là một vấn đề ví dụ thường được sử dụng trong tối ưu hóa tổ hợp, trong đó cần có một đối tượng tối ưu hoặc giải pháp hữu hạn trong đó không thể tìm kiếm toàn diện. Vấn đề có thể được tìm thấy các kịch bản trong thế giới thực như phân bổ nguồn lực trong các hạn chế tài chính hoặc thậm chí trong việc lựa chọn các khoản đầu tư và danh mục đầu tư. Nó cũng có thể được tìm thấy trong các lĩnh vực như toán học ứng dụng, lý thuyết phức tạp, mật mã, tổ hợp và khoa học máy tính. Nó dễ dàng là vấn đề quan trọng nhất trong hậu cần.


Trong bài toán về chiếc ba lô, các vật phẩm đã cho có tối thiểu hai thuộc tính - một giá trị vật phẩm, ảnh hưởng đến tầm quan trọng của nó và trọng lượng hoặc khối lượng vật phẩm, đó là khía cạnh giới hạn của nó. Vì không thể tìm kiếm toàn diện, người ta có thể chia các vấn đề thành các vấn đề nhỏ hơn và chạy theo cách đệ quy. Đây được gọi là một cấu trúc phụ tối ưu. Điều này chỉ liên quan đến một mặt hàng tại một thời điểm và trọng lượng hiện tại vẫn có sẵn trong ba lô. Người giải quyết vấn đề chỉ cần quyết định có lấy vật phẩm hay không dựa trên trọng lượng vẫn có thể được chấp nhận. Tuy nhiên, nếu đó là một chương trình, việc tính toán lại không độc lập và sẽ gây ra vấn đề. Đây là nơi các kỹ thuật lập trình động có thể được áp dụng. Các giải pháp cho từng vấn đề phụ được lưu trữ để việc tính toán chỉ cần xảy ra một lần.