[问题] 多维度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