是否有一个众所周知的算法来分配卡车的木板?

时间:2015-04-23 07:25:23

标签: algorithm

我必须实现下面描述的算法,我有两个问题:

  • 这个问题是NP-Complete吗?
  • 它是否类似于众所周知的 算法问题?

问题

我有三种长度的木板:10米,8米和5米。

我需要将这些地方从一个地方运到另一个地方。

我可以使用三种类型的卡车,卡车A,卡车B和卡车C.

每辆卡车最多可以装10个木板,但是卡车A可以装载所有类型的木板,而卡车B只能装载8米和5米的木板,卡车C只能装载5米的木板。

每辆卡车都有自己的运输木板价目表:

Truck A
1 plank $50 
2-5 planks $100
6-10 planks $150

Truck B
1 plank $30
2-5 planks $90
6-10 planks $140

Truck C
1 plank $20
2-5 planks $80
6-10 planks $110

算法的目标:找到最便宜的方式来运输某些木板。

实施例: 我有5个10米的木板和1个8米的木板。

有两种可能的分布:

  1. 6卡车A:150美元
  2. 卡车A上的
  3. 5和卡车B上的1:100美元+ 30美元。
  4. 所以选项2是最好的。当我开始为更多木板解决这个问题时,可能的组合数量会增加。

    特定的价格表可以改变,但是它永远都是真的,它永远不会节省金钱来分割相同尺寸的木板而不是需要的更多卡车。

    所以:如果我有20块相同尺寸的木板,解决方案总是:2辆卡车,每10块木板。我不需要尝试使用3辆或更多卡车的组合。

    如果我有21块相同尺寸的木板,我只需要尝试所有涉及3辆卡车的组合。

1 个答案:

答案 0 :(得分:0)

这个问题是bin-packing问题的概括,这使得它成为NP难问题。请参阅此链接:http://en.wikipedia.org/wiki/Bin_packing_problem