2009-07-23 89 views
16

所以我已经被赋予了创建网店系统的发货模块的任务。这可能有点矫枉过正,但我​​真的很想创建一个能够找出如何以最优化的方式打包地块的软件。通过简单的学习编程学习编程,这是一个我不了解的领域 - 但是!无论如何,我只能简单描述一下实际问题。如何在python中创建一个优化的包装函数?

因此,当用户在网上商店购物时,他们会在购物车中放置x种尺寸和重量可变的产品。所以我想把这个产品列表给这个功能,让它弄清楚这些产品应该如何包装在包裹里。包裹的

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

每个产品的重,长度,宽度和高度。

由于包裹和产品基本上是盒子,我猜这会比较复杂,因为将产品放入包裹的方式有多种。我的目标不是要制造完美的包装功能,但我希望做一些更好的事情,而不仅仅是将产品放入包裹,直到达到限制。

现在,我不指望你们为我做这件事,但我想问的是三件事。

  1. 我在哪里可以找到很好的在线资源,能够教会我需要的基础知识?
  2. 是否有一些本地python工具可以很好的使用?
  3. 什么,我需要知道的一些指点,陷阱等

就像我说的,我不打算为这是完美的,100%进行了优化,但我想的东西落得这将接近。如果用户觉得发送费用会比实际费用高很多,我会讨厌。

+0

哇 - 你必须解决一个背包问题的一天工作?我羡慕你:-) – 2009-07-25 09:37:18

回答

6

这就是你的典型knapsack problem。针对不同语言的许多解决方案可在Rosetta Code找到。

+0

这不是吗?背包问题指定您有一个x大小的容器,并且您需要适应项目以最大化项目属性y的总和。 googletorp想要的是如何以最有效的方式包装它,包括物品放置。 – Yacoby 2009-07-23 09:03:10

+0

这是一个有趣的阅读,但它不会完全解决我所看到的,因为它只看量。鉴于7种产品是51x26x26,我只能将其中一种放入包裹中,但使用体积计算,全部7种都可以放入一个包裹中。 – googletorp 2009-07-23 09:24:57

2

这似乎是一个很好的问题应用the simplex algorithm或某种genetic algorithm。如果您从未听说过后者,我强烈建议您阅读它们。正如我从你的问题中看到的那样,你正在做这种改进,因为你喜欢让事情最佳化,而不是因为你被告知要这样做。想象一下,当你告诉他们你应用了人工智能技术来解决他们的问题!

有许多直接的算法可以解决您的问题,但这可能是学习一些进化计算的好机会。 约遗传算法[大家好,随意编辑和添加一些有趣的链接:

  1. These pages introduce some fundamentals of genetic algorithms.
  2. Genetic Algorithms in Plain English

运气的!
曼努埃尔

相关问题