如何在Python中创建优化的3D体积包装函数?

16 投票
4 回答
6163 浏览
提问于 2025-04-15 13:06

我接到一个任务,要为一个网上商店系统创建一个运输模块。可能这个任务有点复杂,但我真的想做一个能够找到最优打包方式的模块。因为我都是通过实践学习编程的,所以在这个领域我还没有什么经验——但我会努力的!总之,我可以简单描述一下实际的问题。

当用户在网上商店购买东西时,他们的购物车里可能会有不同尺寸和重量的产品。所以我想把这些产品的列表传给一个函数,让它来决定这些产品应该如何打包成包裹。

  • 包裹的最大长度:100
  • 包裹的最大宽度:50
  • 包裹的最大高度:50
  • 包裹的最大重量:20

每个产品也都有重量、长度、宽度和高度。

因为包裹和产品基本上都是盒子,所以我猜这会比较复杂,因为有很多种方式可以把产品放进包裹里。我的目标不是做出完美的打包功能,但我希望能比单纯地把产品放进包裹直到达到限制要好一些。

现在,我并不指望你们为我完成这个任务,但我想问三个问题。

  1. 哪里可以找到好的在线资源来教我所需的基础知识?
  2. 有没有一些适合使用的原生Python工具?
  3. 我需要注意哪些事项,有哪些陷阱等?

正如我所说,我并不打算让这个功能完美和100%优化,但我希望能做到接近这个目标。我不想让用户觉得运费比实际要高很多。

4 个回答

2

这个问题很适合用单纯形算法或者某种遗传算法来解决。如果你对后者不太了解,我强烈建议你去看看。根据你的问题,我能看出你想要提升这个功能,是因为你希望它能更好地工作,而不是因为别人让你这么做。想象一下,当你告诉他们你用了一种人工智能技术来解决他们的问题时,他们会是什么反应!

虽然有很多简单的算法可以解决你的问题,但这也是一个学习一些进化计算的好机会。这里有一些关于遗传算法的有趣链接[大家可以随意编辑和添加]:

  1. 这些页面介绍了一些遗传算法的基本知识。
  2. 用简单的英语解释遗传算法

祝你好运!
Manuel

6

这就是你常见的 背包问题。你可以在 Rosetta Code 找到很多不同编程语言的解决方案。

5

你有高度、长度和宽度,这让问题变得比简单的背包问题要复杂。这里有一个关于三维背包问题的有趣讨论。

这也是同一组人写的相关论文

撰写回答