[問題] 大量矩陣求行列式值

看板C_and_CPP作者 (北腿爹爹)時間10年前 (2014/03/13 23:38), 編輯推噓6(608)
留言14則, 7人參與, 最新討論串1/1
各位大大, 小弟目前有個程式問題需要處理, 問題如下 有30組8維向量, 我要從30組中任取八組, 組成一個8x8的矩陣,並且算它的行列式值, 並找出所有組合中最大的, 所以資料量非常大,C30取8... 目前用C寫的暴力法要跑非常久, 矩陣相乘,算行列是值等運算都很花時間 總共要好幾個小時吧... 不知道有沒有比較快的解法呢? 大家可以來討論看看! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.112.226

03/14 06:57, , 1F
幾個小時...應該10秒吧我猜 C30取8也就580萬
03/14 06:57, 1F

03/14 06:58, , 2F
8x8的det大概1ms
03/14 06:58, 2F

03/14 06:59, , 3F
可能是你自己是暴力算det的 用matlab內建的跑看看囉
03/14 06:59, 3F

03/14 12:15, , 4F
10秒? 就算580萬毫秒 也是1.6小時...
03/14 12:15, 4F

03/14 13:17, , 5F
矩陣相乘最快也就n—2點多 你應該嘗試平行化你的code
03/14 13:17, 5F

03/14 13:20, , 6F
或是用一點cache的概念 不然就想非暴力解吧
03/14 13:20, 6F

03/14 13:27, , 7F
去研究一下有什麼數學特性可以 dynamic programing吧
03/14 13:27, 7F

03/14 17:00, , 8F
minor?
03/14 17:00, 8F

03/14 17:01, , 9F
每個行列式當中 重複的部分很多 所以也許可以試試minor?
03/14 17:01, 9F

03/14 23:36, , 10F
感謝各位大大,小弟再去試試!
03/14 23:36, 10F

03/15 15:53, , 11F
拍謝 我的意思是1us
03/15 15:53, 11F

03/18 09:15, , 12F
試試CUDA?
03/18 09:15, 12F

03/18 09:27, , 13F
參考一下 http://goo.gl/wXrnId 應是NP-Hard 但我有沒仔
03/18 09:27, 13F

03/18 09:27, , 14F
細看
03/18 09:27, 14F
文章代碼(AID): #1J8T4BqP (C_and_CPP)