首页 > TAG信息列表 > knapsack-problem

使用特定规则在Python中生成置换

假设a = [A,B,C,D],每个元素的权重均为w,如果选择则设置为1,否则设置为0.我想按以下顺序生成排列 1,1,1,1 1,1,1,0 1,1,0,1 1,1,0,0 1,0,1,1 1,0,1,0 1,0,0,1 1,0,0,0 0,1,1,1 0,1,1,0 0,1,0,1 0,1,0,0 0,0,1,1 0,0,1,0 0,0,0,1 0,0,0,0 对于项目A,B,C,D …,令w = [1,2,3,4] …,

java-用于输入字符串的背包解决方案

我进行了在线编码测试,问题描述如下.我无法完成问题,但确实对如何提出潜在解决方案发表了一些意见.我想知道解决这个问题的最佳方法.我遇到的主要问题是将给定的输入拆分为字符串,并找到合适的集合将其放入.以下是问题. 您想向您的朋友发送包含不同物品的包裹. 您放入包装中的每件

Java Comparator reversed()方法产生了奇怪的结果

我有一个关于分数背包问题的编程作业.作为解决问题的方法,我们需要按利润/重量比的降序填充项目.我使用自定义比较器对项目进行排序. 检查以下Item类中的profitByWeightComparator: class Item { private int itemNumber; private int profit; private int weight; public

c – 生成列表的电源组

我必须写一个蛮力实现的背包问题.这是伪代码: computeMaxProfit(weight_capacity) max_profit = 0 S = {} // Each element of S is a weight-profit pair. while true if the sum of the weights in S <= weight_capacity if the sum of the prof

java – 针对重量而不是值优化的背包算法

是否有可能修改1-0 Knapsack算法以优化袋中物品的最终总重量作为首选(并将值作为第二选择),保持相同的算法复杂度? 我正在研究this java implementation(在文章的最后). 更具体地说,我正在考虑改变这段代码 if (wt[item-1]<=weight){ V[item][weight]=Math.max (val[item-1]+V[

java – 选择0/1背包中的物品,其中两个物品具有相同的好处|最大化价值并最小化重量

在0/1背包问题中,如果两个项目具有相同的值,如何选择项目.应选择体重较轻的值,如何检查该状况?我使用动态编程有以下功能. static int[] knapsack(int maxWeight, double[] weight, double[] value, int n) { //n = no. if items int i, w; double array[][] = new do

python – 0/1背包几个变量:哪种算法?

我必须使用约束来实现0/1背包问题的解决方案. 在大多数情况下,我的问题很少有变量(~10-20,最多50). 我从大学回忆起,有许多算法在许多情况下比蛮力更好(我想,例如,分支定界算法). 由于我的问题相对较小,我想知道在使用复杂的解决方案而不是蛮力时,效率方面是否有明显的优势. 如果它

javascript – 检测div网格中的间隙

编辑解决方案已被发现! 这是关于它的blog post,这是Github repo! 我正在创建一个由多个大小的框组成的div网格,这些大小设置为高度和宽度 – 但是是动态生成的,因此每次加载页面时都会有不同的网格. 我的问题 – 我尝试使用砌体,但它结束了留下空隙,也尝试了同位素.我目前正在浮动导

php – 连续背包问题和可变大小bin包装问题的组合算法

我正在尝试解决一个问题(在PHP中,但编程语言并不重要). 我有很多人付钱,我有很多人要支付的金额与n人支付的金额相同.我想计算这些人之间最短的汇款路线.可以将付款分开并支付给不同的人.理想的是一个人只进行一两次交易.有人可能会指出我正确的方向或帮助我吗? 一个例子:A人已支付10

c# – 切割库存问题

有谁知道如何使用Knapsack算法实现此问题的算法? 我目前使用的方法广泛使用LINQ和Collections of Collections以及一些词典.对于那些不知道我在说什么的人,请查看The Cutting Stock Problem. 解决方法:正如您在给定链接中所提到的,这个问题实际上是ILP的一个实例,通常是NP-hard. 直

python – 膳食计划算法?

假设我有一个食物数据库,每个都含有一定量的脂肪,碳水化合物和蛋白质.例如,假设我有这个数据库: Item Fat Carbs Protein ================================================ Milk 12 36 8 Chicken 1

python – 背包问题(经典)

所以我必须为课堂解决背包问题.到目前为止,我已经提出了以下建议.我的比较器是确定两个主题中哪一个将是更好选择的函数(通过查看相应的(值,工作)元组). 我决定用低于maxWork的工作迭代可能的主题,并且为了找到哪个主题是任何给定回合的最佳选项,我将我最近的主题与我们尚未使用的

c# – 具有相同权重/值的修改背包/子集和

我正在研究一个必须处理背包/子集和问题的特殊情况的问题.问题如下: 您有一组随机大小递减的包大小,如:{47,35,22,…}.您的值是小部件的数量,如:#widgets = 33. 找到可以构成捆绑包的小部件数量的最少数量的捆绑包.如果没有办法返回等于数量的集合,则返回null. >例1: >捆绑尺寸:46,25,12

python – 按照产品顺序获取列表的每个可能子集的算法,无需构建和排序整个列表(即生成器)

实际上,我有一组具有概率的对象,我想看看它们中的每一个可能的组,按照它们是否可能的假设它们是独立的可能性 – 即按照从的顺序降序子集元素的乘积 – 或者如果概率相同则按长度顺序(使得(1,0.5)在(0.5)之后). 示例:如果我有[1,0.5,0.1]我想要[(),(1),(0.5),(1,0.5),(0.1),(1,0.1),

java – 打印输出0/1 KnapSack(递归蛮力)

public static int KnapSack(int capacity, Item[] items, int numItems) { if (numItems == 0 || capacity == 0) return 0; if (items[numItems-1].weight > capacity) return KnapSack(capacity, items, numItems-1); else { int t