About
----
JADE++ is a high performance C++ implementation of adaptive differential
evolution optimization algorithm JADE from Jingqiao Zhang and Arthur
C. Sanderson book 'Adaptive Differential Evolution. A Robust Approach
to Multimodal Problem Optimization' Springer, 2009. JADE++ is
designed to run efficiently in parallel on multicore processors,
multiprocessor systems, clusters and supercomputers with help of
MPI. JADE++ has also an option to switch on the impoved
cross-section rate PMCRADE (after Li et al. in the paper "Power Mean
Based Crossover Rate Adaptive Differential Evolution"). The source
code is licened under GPL v3+.
JADE++ needs MPI and Cmake installed to compile and run. It also needs
C++11 compatible complier.
Feel free to contact me with questions about JADE++ via e-mail
k.ladutenko@metalab.ifmo.ru!
Usage
-----
For Debian/Ubuntu systems single line install with
# apt-get install openmpi-bin openmpi-doc libopenmpi-dev cmake
and to use LLVM Clang as a compiler
# apt-get install clang libc++-dev
Use jade.cc and jade.h as a C++ library directly or add this repository with CMake add_subdirectory() and target_link_libraries() with JADEXX::JADEXX target.
Download
-------
Checkout with the [released version](https://github.com/kostyfisik/jade/releases/tag/1.0), used in papers below!
Papers
------
The optimaizer was used to obtain results in the following papers:
1. "Reduction of scattering using thin all-dielectric shells designed by stochastic optimizer"
Konstantin Ladutenko, Ovidio Peña-Rodríguez, Irina Melchakova, Ilya
Yagupov, and Pavel Belov J. Appl. Phys., vol. 116, pp. 184508,
2014 http://dx.doi.org/10.1063/1.4900529
2. "Superabsorption of light by nanoparticles" Konstantin Ladutenko,
Pavel Belov, Ovidio Peña-Rodríguez, Ali Mirzaei, Andrey
E. Miroshnichenko and Ilya V. Shadrivov Nanoscale, 2015,7,
18897-18901 http://dx.doi.org/10.1039/C5NR05468K
Self-tests
----------
Edit go.sh to run JADE++ on your number of processes.
./go.sh single
normaly should compile JADE++ and run a single test with Rosenbrock
function (f5). On success it will finish with (almost) zero mean value of
global minima positioned at (1.0, 1.0, ..., 1.0) coordinate.
https://en.wikipedia.org/wiki/Rosenbrock_function
All individuals (candidate solutions) are shown as
evaluated.
The souce code of this test can be used as a `Hello world` example
with JADE++, you can find it in file [test-jade-single-function.cc](https://github.com/kostyfisik/jade/blob/master/src/test-jade-single-function.cc)
./go.sh test
to run optimization of all standard test functions (in 30D and 100D cases), will last much longer.
Example value of final best fitness function found - mean value (and
stddev). Ideal value is to be zero and JADE is usually very
close to it. However, some functions (like f6 and f8) are really hard
to opimize.
``` C++
/// %brief Discontinuous step function
double f6(std::vector<double> x) {
double sum = 0;
for (auto x_i : x) sum += pow2(floor(x_i + 0.5));
return sum;
}
double f8(std::vector<double> x) {
double sum = 0;
for (auto x_i : x) sum += -x_i * sin(sqrt(std::abs(x_i)));
double D = static_cast<double>(x.size());
return sum + D*418.98288727243369;
}
```
Test results
------------
Results from ./go.sh at [revision](
https://github.com/kostyfisik/jade/commit/27ebf553682405e8ee18bcaf66a5a835da21b112
), the mean value should be as small as possible (global maximum is
exact zero) See
[test-jade.cc](https://github.com/kostyfisik/jade/blob/master/src/test-jade.cc)
for more details.
With PMCRADE feature ON (by default):
```
dim 30, repeats 50
func, gen, mean, (sigma)
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13
1500 2000 5000 5000 3000 100 3000 1000 1000 500 500 500 500
5.7e-79 5.7e-52 4.1e-93 3.8e-34 1.6e-01 4.3e+00 5.4e-04 -8.0e-13 3.3e-06 7.4e-12 3.5e-04 1.1e-22 1.0e-21
(1.6e-78) (9.8e-52) (1.9e-92) (2.6e-33) (7.8e-01) (1.6e+00) (1.8e-04) (7.8e-12) (4.0e-06) (3.9e-12) (1.7e-03) (2.6e-22) (1.1e-21)
dim 100, repeats 50
func, gen, mean, (sigma)
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13
2000 3000 8000 15000 6000 100 6000 1000 3000 500 500 500 500
1.2e-71 6.5e-46 3.3e-38 2.6e-61 6.4e-01 9.2e+01 8.6e-04 8.8e+03 8.0e-02 1.8e-08 2.2e-14 1.9e-03 6.0e-15
(1.6e-71) (2.5e-45) (4.5e-38) (1.6e-60) (1.5e+00) (1.3e+01) (2.0e-04) (3.7e+02) (5.4e-02) (4.5e-09) (1.4e-14) (7.4e-03) (5.2e-15)
```
With PMCRADE feature OFF:
```
dim 30, repeats 50
func, gen, mean, (sigma)
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13
1500 2000 5000 5000 3000 100 3000 1000 1000 500 500 500 500
1.0e-57 2.8e-23 5.6e-93 8.1e-07 8.0e-02 7.3e+00 6.1e-04 2.4e+00 2.3e-04 4.2e-09 2.8e-13 4.6e-16 2.1e-15
(6.8e-57) (1.3e-22) (2.1e-92) (3.6e-07) (5.6e-01) (1.8e+00) (2.7e-04) (1.7e+01) (1.1e-04) (3.3e-09) (1.9e-12) (8.5e-16) (5.6e-15)
dim 100, repeats 50
func, gen, mean, (sigma)
f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13
2000 3000 8000 15000 6000 100 6000 1000 3000 500 500 500 500
2.4e-66 1.7e-50 4.1e-38 2.4e-02 2.4e-01 1.5e+02 7.3e-04 8.6e+03 3.0e-01 4.6e-07 1.4e-11 1.4e-13 1.7e-11
(1.0e-65) (3.8e-50) (5.9e-38) (4.7e-03) (9.5e-01) (1.8e+01) (1.3e-04) (4.9e+02) (5.2e-02) (1.2e-07) (9.4e-12) (1.1e-13) (4.0e-11)
```
没有合适的资源?快使用搜索试试~ 我知道了~
自适应差分 进化优化算法JADE 的C++实现_C++_代码_下载
共74个文件
cc:30个
txt:15个
sh:8个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 3 下载量 24 浏览量
2022-06-22
07:17:16
上传
评论
收藏 581KB ZIP 举报
温馨提示
JADE++ 是自适应差分进化优化算法 JADE 的高性能 C++ 实现,来自 Jingqiao Zhang 和 Arthur C. Sanderson 的书《自适应差分进化》。A Robust Approach to Multimodal Problem Optimization' Springer,2009。JADE++ 旨在借助 MPI 在多核处理器、多处理器系统、集群和超级计算机上高效并行运行。JADE++ 还有一个选项可以打开改进的横截面率 PMCRADE(在 Li 等人的论文“基于功率均值的交叉率自适应差分进化”中) 更多详情、使用方法,请下载后阅读README.md文件
资源推荐
资源详情
资源评论
收起资源包目录
jade-master.zip (74个子文件)
jade-master
cmake
modules
MacroOutOfSourceBuild.cmake 464B
data
test-rev42.log 1KB
test-rev44-PMCRADE.log 1KB
TiN.txt 2KB
Si.txt 8KB
Au-Ovidio-nm.txt 2KB
Ag.txt 6KB
results
cloak_AK.pdf 383KB
SiO2.txt 2KB
GaAs.txt 3KB
Au.txt 2KB
Au-Ovidio-eV.txt 2KB
LICENSE.GPL3 34KB
go.sh 22KB
push-to-github.sh 139B
deb00-go.sh 98B
prepare-Qabs-overview.py 10KB
src
nmie
nmie.cc 83B
nmie-applied.cc 91B
nmie.h 82B
Au-dispersion.h 8KB
CMakeLists.txt 240B
nmie-applied.h 90B
absorb-Ag-in-glass.cc 8KB
optimize-superscatter-drude.cc 16KB
coating-w-sweep-2layers.cc 12KB
optimize-absorber-TiN.cc 27KB
optimize-absorber-TiN-ch.cc 26KB
optimize-alu.cc 10KB
optimize-absorber-two-band.cc 22KB
optimize-meander-cloak-5layer.cc 19KB
optimize-ideal-bulk.cc 17KB
optimize-feed-cloak.cc 14KB
optimize-meander-cloak-4layer.cc 19KB
tests
test-jade-single-function.cc 3KB
test-jade-feed.cc 5KB
CMakeLists.txt 689B
test-jade.cc 15KB
read-spectra
CMakeLists.txt 240B
read-spectra.h 2KB
read-spectra.cc 6KB
gnuplot-wrapper
gnuplot-wrapper.h 2KB
gnuplot-wrapper.cc 6KB
CMakeLists.txt 240B
optimize-absorber-TiN-bi.cc 23KB
optimize-scatter-Au-SiO2.cc 20KB
optimize-meander-cloak-2layer.cc 18KB
optimize-absorber-TiN-wideband.cc 26KB
size-sweep.cc 8KB
quasi-pec-spectra.cc 4KB
superscatter-drude.cc 9KB
coating-w-sweep.cc 12KB
CMakeLists.txt 7KB
optimize-cloak.cc 15KB
lib
jade.cc 35KB
include
jade.h 10KB
CMakeLists.txt 2KB
optimize-meander-cloak.cc 16KB
optimize-meander-cloak-3layer.cc 18KB
run-with-log.sh 89B
.gitignore 300B
CMakeLists.txt 2KB
README.md 6KB
scripts
prepare-overview.py 3KB
count-loc.sh 71B
prepare-Qabs-overview.py 10KB
do-lint.sh 482B
filter.py 2KB
plot-SiAgSi-overview.py 6KB
cpplint.py 155KB
prepare-filtered-condition.py 3KB
push.sh 169B
pull.sh 94B
.hgignore 61B
共 74 条
- 1
资源评论
- yezhiying_20232024-01-01超赞的资源,感谢资源主分享,大家一起进步!
- weixin_454747832023-12-04非常有用的资源,有一定的参考价值,受益匪浅,值得下载。
- weixin96378540012023-06-11资源有一定的参考价值,与资源描述一致,很实用,能够借鉴的部分挺多的,值得下载。
快撑死的鱼
- 粉丝: 1w+
- 资源: 9156
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功