[問題] 多維度pareto最佳化效能

作者: Edster (Edster)   2016-11-06 12:48:28
效能諮詢(我想讓R 跑更快)
[問題敘述]:
我自己想了一支多維度pareto front / pareto optimize
演算法的部分是自己跟同事想的,沒有參照別人的code,
line 6 資料排序的部分有po過版,是C版幫解決的。
目前發現這隻稍慢,希望速度更快一點, 不知有沒有什麼好的寫法。
如果哪天我把這隻跟其他最佳化的function傳上cran,會放幫忙修改的人的名字的。
[程式範例]:
請見
http://pastebin.com/A3Uh73Dx
P是一個matrix, column 是目標函數
執行範例
MPF(matrix(runif(100),20,5))
作者: Edster (Edster)   2016-11-06 12:52:00
說明一下,平常可能用到的維度是 rows = 10^6, cols = 6.
作者: celestialgod (天)   2016-11-06 18:58:00
http://pastebin.com/u6AsFtQd部分邏輯沒實現,因為沒看懂XDDm[i] %in% r那段ifelse,我看不出來else的必要所以你測試看看你的情況我只是把你的8~11行改成我的35行那樣寫法速度主要差異在那
作者: Edster (Edster)   2016-11-06 20:56:00
那段只是為了找下一個i, 剛開始寫的時候while停不下來.陸陸續續加一堆條件,舊得也沒有重整,成為現在樣子。包含矩陣P中不能有NA也是後來使用一陣子才加的條件。最讓我感到神奇的是,這段我寫了應該有一個禮拜,佩服C版
作者: celestialgod (天)   2016-11-06 21:25:00
恩恩,我不確定我拿掉那塊會不會出問題你自己改成你可以用的就好~~主要是兩個迴圈跟重新alocate x,y花太久用sweep做到一次比完 在配上rowsums去做any條件就好

Links booklink

Contact Us: admin [ a t ] ucptt.com