背包问题

作者: Randy Alexander
创建日期: 23 四月 2021
更新日期: 26 六月 2024
Anonim
0/1背包问题 - 动态规划 0/1 Knapsack Problem - Dynamic Programming
视频: 0/1背包问题 - 动态规划 0/1 Knapsack Problem - Dynamic Programming

内容

定义-背包问题是什么意思?

背包问题是用于说明问题和解决方案的优化问题。它的名称源于一种情况,在这种情况下,可以放置在固定尺寸背包中的物品数量受到限制。给定一组具有特定权重和值的项目,目标是在背包的重量限制下,尽可能多地将其带入背包。


Microsoft Azure和Microsoft Cloud简介在本指南中,您将了解什么是云计算,以及Microsoft Azure如何帮助您从云迁移和运行业务。

技术百科解释了背包问题

背包问题是组合优化问题的一个示例,组合优化问题是数学和计算机科学中有关在一组对象中找到最优对象的主题。这是一个已经研究了一个多世纪的问题,并且是组合优化中的一个常用示例问题,在组合优化中,需要一种不可能穷举搜索的最优对象或有限解。可以在现实世界中发现问题,例如在财务约束甚至选择投资和投资组合中进行资源分配。在应用数学,复杂性理论,密码学,组合学和计算机科学等领域也可以找到它。这很容易成为物流中最重要的问题。

在背包问题中,给定的物料至少具有两个属性-物料的价值会影响其重要性,物料的重量或体积是其局限性。由于不可能进行详尽的搜索,因此可以将问题分解为较小的子问题,然后递归运行。这称为最佳子结构。一次仅处理一项,背包中仍可使用当前重量。问题解决者只需要根据仍然可以接受的重量来决定是否要拿走物品。但是,如果是程序,则重新计算不是独立的,并且会引起问题。在这里可以应用动态编程技术。存储每个子问题的解决方案,以便计算仅需进行一次。