[討論] 業務邏輯最佳化解

作者: answermangtr (你今天抓了嘛)   2022-12-15 00:40:43
業務的邏輯是這樣的
出貨的計算是以棧板為單位
而可以擺放在同一棧板的物品有一套邏輯
在此基礎下 希望每次將多筆不同物品的訂單
合併棧板 達到節省棧板的目的
目前作法如同填滿罐子的做法
先sort by 數量最多的訂單
一比一比看是要開新棧板還是可以合併舊棧板
時間複雜度N
如同一個瓶子要填滿
可以先依序石頭 沙 水 的邏輯
但這樣還是有可能譬如本來兩筆數量中等的訂單本來可以剛好填滿一個棧板
但依此邏輯可能不會合成一個棧板
即無法達到最佳化
後來還有想到就是兩個迴圈 也是從最大數量開始
當一筆進來的時候 先確定是否可以剛好塞滿一板 沒有的話再分配給其他板或開新板
但這樣就會變時間複雜度就會是N的平方
想問看看 有什麼的辦法可以做得更好嗎(更好是指用最少的板數 節省費用)
作者: fatcat8127 (胖胖貓)   2022-12-15 03:31:00
聽起來是屬於(無限)背包問題,最小化未使用到的空間
作者: answermangtr (你今天抓了嘛)   2022-12-15 17:37:00
看起來是這個方向沒錯 謝謝 我研究看看
作者: xam (聽說)   2022-12-15 23:56:00
第一個狀況會把兩個剛好的分開,但最後總棧板數不會浪費吧

Links booklink

Contact Us: admin [ a t ] ucptt.com