2012-04-09 33 views
1

我正在創建一個自定義網上商店(在PHP中),這是一個有點複雜(對我來說)的運輸模塊;API /庫來計算最佳運輸包裝

在期望的裝運程序中,存在(當前)兩個外部「運輸箱/集裝箱」,其每個可以包含不同的物品/產品組合。有一個很大,一個很小,而小一個顯然更便宜。物品/產品(目前)分爲「內盒」的三個維度。

我在找一個API /類,在其中我可以輸入外箱的尺寸,然後輸入內箱(或者說產品)的數量和尺寸。然後應計算外箱及其內容/包裝訂單的最佳組合,從而需要最小數量的箱子。不用說,我預計外箱,內箱和它們的尺寸在未來很可能會發生變化。

這是否存在?

回答

1

這是着名的Packing problem的一個實例,其中大部分是NP-hard。要找到解決這些問題的最佳解決方案可能是非常困難或不可能的,因此您應該瞄準一個足夠好的解決方案,而不是最佳的解決方案之一。

您應該查看與您的問題非常相似的Bin packing problem,區別在於您有兩個不同的容器。

+0

哎呀,在我的頭上。我會仔細閱讀這些內容,並希望找到一些解決方案。 – strikernl 2012-04-09 10:45:55

1

當你試圖找出並實施一個bin-packing算法來制定一個最佳解決方案時,讓其中一個打包者記錄下一個訂單中最頻繁項目組合的查找表。根據您告訴我們您只有2種尺寸的外箱和3種尺寸的內箱,您的包裝工可以在我寫這個答案的時候完成查找表。

現在,由於您是一名軟件開發人員,因此開發代碼以閱讀查找表並在打包新項目組合時尋求幫助。在查找表中存儲這些新組合,以及如何打包它們。隨着業務的發展,開發查詢表。

這種方法利用了人類在解決合理數量物體的3D打包問題方面的卓越技能。您不需要一個最佳的解決方案,只需要一個足夠好的解決方案,您的客戶就不會經常查詢包裝數量 - 您將成本轉嫁給客戶不是嗎?

+1

雖然這聽起來很合理,但是將要訂購的物品的數量和類型可以並且會變化很大(即理論上可能有任何數量和內箱物品的組合)。這只是我們衆多客戶之一(網店老闆);當需求出現時,我們沒有時間/人力根據每位客戶/訂單更新查找表。此外,計算必須對最終用戶(客戶需求)「生效」。這會阻止未知組合的訂單流程。但是,如果一切都失敗了,那麼可以考慮一下。感謝您的輸入! – strikernl 2012-04-09 15:25:16