gpt4 book ai didi

algorithm - 给定一台重量最大的电梯和重量为 x_i 的 n 个人,找出所需的最少乘车次数

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:42:48 24 4
gpt4 key购买 nike

input:
max_weight = 550
n = 4
x_i = [120, 175, 250, 150]

output:
2
// [[250, 175, 120], [150]]

我的初步印象是,这看起来与动态编程硬币找零/背包问题非常相似,但它不是硬币找零(这将要求最少数量的权重来获得精确数量),而且它不是背包(重量没有值,就像我可以拥有超过 1 个背包)。

这个问题有通用名称/解决方案吗?

最佳答案

这实际上是一个(1D) Bin Packing problem :

In the bin packing problem, objects of different volumes must be packed into a finite number of bins or containers each of volume V in a way that minimizes the number of bins used. In computational complexity theory, it is a combinatorial NP-hard problem.

在这里,人物在物体和游乐设施的垃圾箱上贴图。就像装箱问题一样,我们希望尽量减少“使用”的乘车次数,并且每个人占据一定的“体积”(那个人的重量)。

如文章所述,装箱问题是 NP-hard 问题。我们可以使用动态规划(但它仍然有 - 最坏情况 - 指数时间)。

论文A New Algorithm for Optimal Bin Packing Richard E. Korf 讨论了一种算法来准确地解决这个问题。它的工作原理是首先使用启发式方法计算下限,然后使用分支定界迭代地推导出比启发式更好的解决方案,直到达到下限,或者再也找不到解决方案。

关于algorithm - 给定一台重量最大的电梯和重量为 x_i 的 n 个人,找出所需的最少乘车次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45573685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com