2009-07-23 62 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

運氣的!
曼努埃爾

相關問題