Re: [問題] 一個關於計算最佳組合的問題

看板Programming作者 (ephesians)時間17年前 (2007/04/23 12:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/6 (看更多)
※ 引述《weijr (Beware of the Monkey)》之銘言: : ※ 引述《ling123 (@@)》之銘言: : : 首先非常感謝你的回答~ : : 板子通常會被區分成100~200個區域 : : 一次會有50~70片~ : : 我們是想運用在當兩個產品組合時~ : : 讓有相同問題的板子盡量放在一起~以減少報廢品 : : 我們現在遇到的問題是~要是以嘗試所有組合來算出最佳解當出發點的話 : : 這樣花的時間難以估計()~也不符合成本效益~ : : 所以想要看看有沒有可能以資料結構或演算法來求最佳解~ : 這是 Maximum Weight Perfect Matching : 你把每個板子看成一個頂點,兩個板子相連一條邊, : 這樣成為一個圖。然後每條邊上賦予一個 Weight=相同的標記數量。 : 你的問題就是要找到一個 Matching 讓標記數量最多。 : 搜尋一下網路或者找一下書,就可以找到不錯的演算法。 以圖的思路解決是不是有些問題呢? 若尋找一個解,代表從0-9這10個節點(板子)尋找一條連通路徑, 使其每二個一組的弧權重總和最大. 那想想看其中一個搜尋例子: 1->2--->3->4--->5->6--->7->8--->9->0 虛線有向弧代表雖然有弧連通,其上也有權重,但因二個一組, 所以虛線部份的權重不能算進來. 另有個想法是,將所有的板子做成配對計分矩陣,每一格儲存non-match數目: 0 1 2 3 4 5 6 7 8 9 0 0 5 2 1 10 25 18 3 5 2 1 0 1 3 20 14 11 9 17 5 2 0 10 9 18 18 20 35 1 3 ... 這個矩陣會對稱,因為(i,j)的non-match與(j,i)的一樣. 於是搜尋空間可縮小於右上半邊,或左下半邊. 在搜尋空間中,做 n/2 rook quiz的解決. 曾經看過用backtracking技巧解決 8 queen quiz, 用類似的方法,可以讓n/2 rook quiz做得快. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.210.54
文章代碼(AID): #16B3OCBR (Programming)
討論串 (同標題文章)
文章代碼(AID): #16B3OCBR (Programming)