knapsack-problem

    1热度

    2回答

    最近,我试图研究和实现背包问题(我之前几年学习过)。所以我可以理解并且有最佳解决方案的想法,比如背包值是100,并且有一定的权重如40,60,100。那么最佳解决方案将是100或者相当于背包价值。我停留在编程的一部分中,无法弄清楚这是如何实际工作的,尽管使用教程进行递归尝试。让我注释掉,我已经明白: /*A function or method to determine the max numbe

    0热度

    2回答

    我正在处理类似于Bin packing problem的问题。 问题 我有几个垃圾箱。每个箱包含几个具有相同重量的物品(例如1,2,5,10公斤)。每个垃圾箱中的物品数量是不同的。为了达到一定的重量,我必须实施一种算法来计算应该分配的物品的数量,以便在更多操作的过程中,箱体几乎同时是空的。 例 B1具有50项与重量1公斤 B2具有90项与重量2千克 B3具有80项与5千克重量 B4具有50项为10

    0热度

    1回答

    我正在寻找一个解决方案,其中存在多个约束的背包问题。 说我们的背包最大重量为30公斤,我们有一套100件物品,每件都有一个重量,每个都有一个好处。这些对象可能如下所示: { name: 'water bottle', weight: 2, benefit: 5 }, { name: 'potatoes', weight: 10, benefit: 6 } 在最大重量范围内找到具有最高优势的对

    0热度

    1回答

    我已经编写了Java代码来解决Spoj.com上的以下问题,但它给了我“超出时间限制”。我不知道为什么会发生,我已经做了太多的优化。 着名的背包问题。您正在打包海边度假,并且您将只携带一个容量为S的包(1 < = S < = 2000)。您也可以将N(1 < = N < = 2000)项目与您一起带到海边。不幸的是,你不能在背包里装上所有的东西,所以你不得不选择。对于每件商品,您都会得到它的尺寸和

    1热度

    1回答

    如果一直在进行一个项目,我遇到以下情形: 需要从一组M中选择N = 2个框,而M> N的权重总和最好,但有2个限制: 我们无法选择相同的框颜色 我们无法选择相同的方块ID 箱子自带的顶部 最高的权重排序0 我选择(RED1,请分享帮助)与朴素算法开始权重最高RED1,我们无法添加蓝天,因为我们有相同的ID 1,并且不可能添加RED2以及因为我们有红色盒子在10的权重下,我们以11的总权重结束,但如

    0热度

    1回答

    我正在写一个算法,采取背包问题的形式。我试图在给定最大重量(W)的情况下使我的背包的价值(V)最大化。这些渔获物是每个物品(I)只能被选择一次,不论重量的背包只能容纳10件物品,并且有大量物品(500+)。 到目前为止,我的想法是生成背包超重,递归地逐步向后取代一个项目,直到它是< =最大重量。这对于生成最理想的背包不是问题,但是,我真的很想生成以下100个左右的背包。我想我可以通过继续我的递归过

    0热度

    1回答

    据我所知,在0-1背包问题中,只允许0或1个相同变体的对象。把它的价值除以每个重量得到相应的比率,然后把每个比例从最大的开始并放在背包中,直到达到最大允许重量,不是更好吗?它的时间复杂性不会比动态编程解决方案更好,并且明显优于bruteforce?

    2热度

    2回答

    我有一个像后续的变量: var L_s = collection.mutable.Set[collection.mutable.Set[Int]]() ,我想找到的套不同尺寸的结合。 请注意:当我们想要找到大小为k的联合时,L_s中的所有集合将具有相同的大小,即k-1。 截至目前,我做了以下内容: for(i <- L_s){ for (j <- L_s){ if((i.union

    0热度

    1回答

    给定一个(1xN)正权重列表(不一定是整数,即浮点数)和相等成本的等长列表(1xN),我想找到子集与给定总和S完全相加并具有最低成本(权重列表中的子集对应的成本*权重的总和)的权重列表。用Python编写将是最好的(如果可能),因为我对其他语言不太好! 实施例: w = [2.5, 3.0, 1.0, 5.5] # Weight list c = [1.0, 1.5, 2.0, 3.0] # C

    1热度

    1回答

    这里的问题陈述: 我米巧克力棒,整数的长度,并且ñ孩子谁 想要的巧克力整数金额。如果巧克力总需求量为 ,那么孩子的总巧克力数量少于或等于巧克力总数 。您需要编写一个算法,将巧克力分配给 ,方法是对酒吧进行最少次数的切割。 例如,对于中号 = {1,3,7},Ñ = {1,3,4},切口的至少数将是1。 我不没有任何正式的算法经验,任何人都可以给我任何提示,我应该开始阅读,以有效的方式解决这个问题?