作者Edster (Edster)
看板R_Language
标题[问题] 多维度pareto最佳化效能
时间Sun Nov 6 12:48:28 2016
效能谘询(我想让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://webptt.com/cn.aspx?n=bbs/R_Language/M.1478407711.A.20D.html
※ 编辑: Edster (58.114.4.176), 11/06/2016 12:51:11
1F:→ Edster: 说明一下,平常可能用到的维度是 rows = 10^6, cols = 6. 11/06 12:52
3F:→ celestialgod: 部分逻辑没实现,因为没看懂XDD 11/06 18:59
4F:→ celestialgod: m[i] %in% r那段ifelse,我看不出来else的必要 11/06 18:59
5F:→ celestialgod: 所以你测试看看你的情况 11/06 18:59
6F:→ celestialgod: 我只是把你的8~11行改成我的35行那样写法 11/06 19:00
7F:→ celestialgod: 速度主要差异在那 11/06 19:00
8F:→ Edster: 那段只是为了找下一个i, 刚开始写的时候while停不下来. 11/06 20:56
9F:→ Edster: 陆陆续续加一堆条件,旧得也没有重整,成为现在样子。 11/06 21:00
10F:→ Edster: 包含矩阵P中不能有NA也是後来使用一阵子才加的条件。 11/06 21:05
11F:→ Edster: 最让我感到神奇的是,这段我写了应该有一个礼拜,佩服C版 11/06 21:06
12F:→ celestialgod: 恩恩,我不确定我拿掉那块会不会出问题 11/06 21:25
13F:→ celestialgod: 你自己改成你可以用的就好~~ 11/06 21:25
14F:→ celestialgod: 主要是两个回圈跟重新alocate x,y花太久 11/06 21:26
15F:→ celestialgod: 用sweep做到一次比完 在配上rowsums去做any条件就好 11/06 21:26