- 博客(0)
- 资源 (3)
- 收藏
- 关注
MATLAB下蚁群算法的MEX版
蚁群算法作为一种需要多次迭代的算法, 在MATLAB下以.m脚本运行的效率是很慢的, MATLAB中for循环的低效率大家也体会到过吧. 但是MathWorks聪明在他们提供了C++/FORTRAN --- MATLAB接口,你可以通过少量的MX API调用以完成"外包装"便可以将C++程序"移植"到MATLAB中运行, 并且效率毫不打折. 这里我将网上流传最广的MATLAB蚁群算法代码写成了C++形式, 除了在细节的地方做了优化之外又加入了并行处理机制, 所以不要惊讶在这个函数运行时你的CPU占用率飚到了100%, 那说明你的N个处理器内核同时在工作. 除此之外, 我又编写了两个改进版本: 基于精英策略的蚁群算法以及最大最小蚁群算法, 他们也是以MEX DLL的形式提供. 在DLL之上我又用.m函数加了一层浅层Wrapper, 以排查传参错误以及绘制路径图像. 总的来说, 这套"等效"MEX程序的效率比起MATLAB原版程序要快300倍左右.如果你需要一份高效的MATLAB蚁群算法, Yours is here. 但是我不提供该MEX DLL的C++源代码, 因此你也就没法改算法了. 需要的话就邮件联系我好了.
2010-05-26
C++ GUI Programming with Qt4
发一本QT的吧.QT是一款优秀的C++ GUI类库, 使用它你可以编写出跨平台的桌面(视窗)应用程序. 不过QT的跨平台与Java不同. Java是一次编译, 随处运行; 而QT则是一次编写, 随处编译. 出于QT使用了C++产生本地化机器代码, 没有依赖于类似于托管的技术, 也算是一个Amazing的GUI类库了. 并且QT的语法简洁, 开发迅速, 是跨平台开发桌面程序的极佳选择. Google Earth与大名鼎鼎的Photoshop就是使用QT开发的. QT在其宣传页上打出的标语是:Code less, create more, deploy everywhere!可见其优势所在.
2010-02-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人