最近為了解決一個關於有條件限制的排列組合問題,所以用了簡單的暴力解決
但是後來遇到更龐大的問題就會超出記憶體了,
有試過用基因演算法也能得到解,但想用別的方式試試看
這邊敘述一下我想解決的問題
例如:有50個位於不同地點的工廠(有x,y座標),
每個工廠各有不同的出貨量(50個廠總產量約4500),
今天有兩台大卡車去載貨(每台可以載3000)
以下就是我的問題
1.將50廠分成2大群(給2台卡車),每群總和最多3000
列出滿足條件的組合(數字不重複,組合也不重複)
例如: 1-2-3-4跟1-3-2-4是屬於同一種(組合重複);也不可以1-2-2-3(數字重複)
2.依據座標計算組合裡的總距離 (也就是卡車載完群裡所有工廠的距離)
我目前的想法是將兩個問題分成2個小程式
第一題 讓一個小矩陣中存2個數值 共50個矩陣 [編號 出貨量]
之後用nchoosek和randperm來求全部組合並算總出貨量
但問題在於不知道該50取幾當一群來計算總數,也難以檢查是否有組合重複,就卡住了..
第二題算簡單,只要第一題有解,套入距離公式後就能很快得到
以上問題還麻煩本版的高手們指教幫助了
附上部分資料的圖片http://imgur.com/XLLl1ik