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

看板R_Language作者 (Edster)時間9年前 (2016/11/06 12:48), 9年前編輯推噓0(0015)
留言15則, 2人參與, 最新討論串1/1
效能諮詢(我想讓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)) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 58.114.4.176 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1478407711.A.20D.html ※ 編輯: Edster (58.114.4.176), 11/06/2016 12:51:11

11/06 12:52, , 1F
說明一下,平常可能用到的維度是 rows = 10^6, cols = 6.
11/06 12:52, 1F

11/06 18:58, , 2F

11/06 18:59, , 3F
部分邏輯沒實現,因為沒看懂XDD
11/06 18:59, 3F

11/06 18:59, , 4F
m[i] %in% r那段ifelse,我看不出來else的必要
11/06 18:59, 4F

11/06 18:59, , 5F
所以你測試看看你的情況
11/06 18:59, 5F

11/06 19:00, , 6F
我只是把你的8~11行改成我的35行那樣寫法
11/06 19:00, 6F

11/06 19:00, , 7F
速度主要差異在那
11/06 19:00, 7F

11/06 20:56, , 8F
那段只是為了找下一個i, 剛開始寫的時候while停不下來.
11/06 20:56, 8F

11/06 21:00, , 9F
陸陸續續加一堆條件,舊得也沒有重整,成為現在樣子。
11/06 21:00, 9F

11/06 21:05, , 10F
包含矩陣P中不能有NA也是後來使用一陣子才加的條件。
11/06 21:05, 10F

11/06 21:06, , 11F
最讓我感到神奇的是,這段我寫了應該有一個禮拜,佩服C版
11/06 21:06, 11F

11/06 21:25, , 12F
恩恩,我不確定我拿掉那塊會不會出問題
11/06 21:25, 12F

11/06 21:25, , 13F
你自己改成你可以用的就好~~
11/06 21:25, 13F

11/06 21:26, , 14F
主要是兩個迴圈跟重新alocate x,y花太久
11/06 21:26, 14F

11/06 21:26, , 15F
用sweep做到一次比完 在配上rowsums去做any條件就好
11/06 21:26, 15F
文章代碼(AID): #1O7hOV8D (R_Language)
文章代碼(AID): #1O7hOV8D (R_Language)