English 中文(简体)
尽量减少颜色:纳普法算法的变化?
原标题:Minimizing colors: a variation of the knapsack algorithm?

我在努力实施一个项目时,会解决这个问题,我将在问题的真正领域之外再谈这个问题(我相信,我可以谈论烟火和形状的解冻,但会使理解更加复杂化)。 I m 寻求一种(可能大致)算法解决。

我有n 大小的集装箱和m>m大小不等的物体 不同颜色(物体可以多结,因此物体的颜色确实是一组物体)。

我的目的是把所有物体装入集装箱内(即已经知道可能的话),这样每集装箱的彩色种类就会减少到最低限度。 由于“各种颜色被减至最低”,我指的是每个集装箱不同颜色的数量少之又少。

例如。 我有2个大小的集装箱和4个物体,其颜色为{红}、{红、绿色}、{蓝色}、{蓝色、绿色}。 1. 导言 最好的解决办法是[参数}、{红、绿色}]、[参数}、{蓝色、绿色}],其总量为2+2=4。 更糟糕的解决办法是[{red},{blue}], [{red, Green},{blue, Green}],其总品种为2+3=5。

My guess is that the problem is NP hard, since it sounds more difficult than the knapsack problem: the value of objects is transformed in a negative value which moreover depends on the other objects inside the same container. But I have no good idea as how to tackle the problem for an approximate solution, which would be more than welcome anyway.

最佳回答

Bin-packing or Knapsack?

这一问题似乎与bin- Packing problem相比更为常见。 在knapsack problem中,你只有一个千分之七来填充,但你的能力不得超过。 你们必须这样做,同时尽量扩大你选择列入的项目的全部价值。 在此,你不必使用所有物品。

然而,在双包装问题上,你各自拥有多个双双双双双双双双双双双双双双双双双管。 你们有兴趣在把每个项目都纳入其中的同时,尽量减少双目。 你们还必须尊重每个双管齐下的能力限制。 与Kanapsack不同,在这里,你必须使用所有物品。

就你而言,你也努力尽量减少双目,只有两倍以下。 你们也想利用所有物体。 你对能力限制说了很多,但我也认为你也必须尊重这一点。 迄今为止,它似乎非常像双包装问题。 您还有一个额外制约因素:将每个集装箱的彩色数量减少到最低限度。

NP-hard?

现在,我开始与大家分享一下,看上去是法国的硬派——它触及了双包装的所有内容和一个额外的制约因素。 减少双包装应易于表明,使用所有有色红字标的事例。 我们只需要表明,国家警察中的问题——即我们能够核实结果。 你们来到这里,我们在那里找到非正式证据!

Greedy Heuristic I

这里有可帮助的贪.。

代表: 不是使用套件,而是考虑长度的比照顺序:k,其中k是你拥有的不同颜色。 因此,你说有3个肤色——红色、绿色、蓝色。 你将代表[蓝色]001,[绿色、蓝色]为011,[红]为100等。

  1. 采用比较功能,将项目按其彩色比顺序排列,结果订购了001、010、100、011、110、111。 您可以设计这种比较功能,作为参照顺序及其实际数值的

  2. 请注意,许多物体最有可能共享许多彩色模式(轨道序列)。 这些物体将在分类清单中作为毗连物体显示。

  3. 将相同颜色的毗连物项分配给同一双体。 你将从单一彩色到多彩物品。

  4. 你们继续这样做,直到你们尽了各自的能力。

Greedy Heuristic II

另一种做法是开始按逆向填充双目。 以色体数量最大的物体为起点。 如果能够装配,将毗连物体填入同一件。 当你拿到的颜色较少的物品时,就把这些物品装入已经覆盖了这种颜色的现有两面。

Conclusion

这两种办法都不是最佳的,但很奇怪,我们已经知道吗? 我们只是勾画出一个非正式的证明,问题在于法国国家警察。

亲爱!

问题回答

暂无回答




相关问题
How to add/merge several Big O s into one

If I have an algorithm which is comprised of (let s say) three sub-algorithms, all with different O() characteristics, e.g.: algorithm A: O(n) algorithm B: O(log(n)) algorithm C: O(n log(n)) How do ...

Grokking Timsort

There s a (relatively) new sort on the block called Timsort. It s been used as Python s list.sort, and is now going to be the new Array.sort in Java 7. There s some documentation and a tiny Wikipedia ...

Manually implementing high performance algorithms in .NET

As a learning experience I recently tried implementing Quicksort with 3 way partitioning in C#. Apart from needing to add an extra range check on the left/right variables before the recursive call, ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Enumerating All Minimal Directed Cycles Of A Directed Graph

I have a directed graph and my problem is to enumerate all the minimal (cycles that cannot be constructed as the union of other cycles) directed cycles of this graph. This is different from what the ...

Quick padding of a string in Delphi

I was trying to speed up a certain routine in an application, and my profiler, AQTime, identified one method in particular as a bottleneck. The method has been with us for years, and is part of a "...

热门标签