1

有一個容器,例如可以說容量爲「V」。該容器需要填充各種類型的盒子,其中每種盒子具有獨特的大小(體積),例如可以說如何解決機器學習的挑戰?

盒子類型A-具有K的容積 盒子類型B-具有L

現在的問題是,有找出最新的可能被放入容器(包括盒的組合)

爲了簡化這兩種類型的盒的最大數量可以說一個要求,即「W」和「R」是數量,那麼我們得到 (K * W)+(L * R)= V

以及紙箱(箱)如何堆放在容器中。

例如,第一行(我的意思是盒子放置x座標時)應該包含4個「盒子類型A」的盒子(從容器的底部開始)和最上面的兩個堆棧(靠近集裝箱的頂部天花板)和「B型箱子」(通過堆棧我的意思是當箱子彼此疊置時[Z座標明智])。此後,新的一排放置在前一個是完整的,直到整個容器已滿。

問題是什麼是在容器中佈置這些箱子的最佳方式,以便利用容器中的所有(或大部分)空間,並打包最大可能數量的箱子,箱子可以是1或更多(最多在一個容器中約5種類型的盒子)。

該程序應該只是輸入框的類型和細節的輸入,容器和voilà你會得到一個完整的詳細分析。

問題是我沒有觸及機器學習領域或解決這類問題。我將不勝感激,如果我給出了有關使用什麼算法的建議,從哪裏開始學習解決這個問題等,最好的辦法是什麼來解決這個問題,使用任何有用的機器學習庫等。

+0

我要說的是,你需要的容器和盒子的尺寸。如果你只有量,解決方案是微不足道的:使地板1×1和堆疊箱。嘗試填充一種類型,然後通過替換另一種進行優化。 – 2010-08-11 13:09:51

回答

2

此問題是線性優化的一種變體,稱爲整數線性優化link at wikipedia。這個問題通常被稱爲NP-hard,所以大多數解決方案都是迭代的。看到這篇文章的參考文獻進行進一步討論

編輯:我建議看看LPSOLVE其已經提供了LGPL求解庫

+0

謝謝,我認爲這是我在尋找什麼,但是你知道任何好的書或類似於一個不是數學密集的學生學習線性編程嗎? 我在想這本書嗎? http://www.amazon.com/Introduction-Linear-Optimization-Scientific-Computation/dp/1886529191/ref=sr_1_3?ie=UTF8&s=books&qid=1281600302&sr=8-3 – MilindaD 2010-08-12 08:07:08

+0

我不會建議你閱讀因爲它可能需要你多年的時間來獲得所有細節來實現解決方案。我將首先看看lp解決方案,這個解決方案已經有了一些整數編程的例程(不幸的是在文獻中被稱爲) http://lpsolve.sourceforge.net/5.5/ – lurscher 2010-08-12 15:05:59

0

你可能想看看這個問題的答案:

Box stacking problem

+0

我沒有看到任何機器學習在參考 – djna 2010-08-11 10:19:12

+0

@djna - 沒有,但它是可以解決你的問題,而機器學習算法。對不起,如果我誤解了你的問題。 – Paddy 2010-08-11 11:06:42

+0

上的機器語言的事情,我認爲有可能不是這個解決方案的任何預編程的算法,認爲機器語言是唯一的解決方案,但其所有的更好,如果我能解決這個問題,而無需使用任何機器語言概念我會發現它更容易=) – MilindaD 2010-08-12 03:53:31

0

如果你真的是機器學習,而不是預先編程的算法,然後我覺得真的很難。當盒子數量變大時,簡單的試驗和錯誤方法將會非常糟糕。

我想知道是否值得一看編程電腦玩Go的方法。在最終遊戲中特別應用蒙特卡洛方法已經取得了很多進展,這與組裝問題相似。見This reference.

0

純粹用機器學習來解決這個問題是一個壞主意。原因是這是一個確定性的問題,其他形式的AI更適合這一點。但是,如果您唯一的選擇是機器學習,我會考慮使用最小平方誤差梯度來進行優化的強化學習。這是理解機器學習的更簡單方法之一,適用於您的問題,因爲它是確定性的。如果可能的話,使用其他算法來補充機器學習。