{"id":14967762,"url":"https://github.com/kostyfisik/jade","last_synced_at":"2025-10-25T21:32:01.605Z","repository":{"id":24160260,"uuid":"27550255","full_name":"kostyfisik/jade","owner":"kostyfisik","description":"C++ implementation of adaptive differential evolution optimization algorithm JADE","archived":false,"fork":false,"pushed_at":"2020-06-03T15:45:24.000Z","size":1041,"stargazers_count":8,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-31T10:51:11.308Z","etag":null,"topics":["adaptive","differential-evolution","jade","mpi","optimization"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kostyfisik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.GPL3","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-12-04T16:53:42.000Z","updated_at":"2024-01-12T13:01:55.000Z","dependencies_parsed_at":"2022-08-22T12:10:17.783Z","dependency_job_id":null,"html_url":"https://github.com/kostyfisik/jade","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostyfisik%2Fjade","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostyfisik%2Fjade/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostyfisik%2Fjade/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kostyfisik%2Fjade/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kostyfisik","download_url":"https://codeload.github.com/kostyfisik/jade/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238212426,"owners_count":19434955,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adaptive","differential-evolution","jade","mpi","optimization"],"created_at":"2024-09-24T13:38:34.200Z","updated_at":"2025-10-25T21:31:56.133Z","avatar_url":"https://github.com/kostyfisik.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"About\n----\n\n\nJADE++ is a high performance C++ implementation of adaptive differential\nevolution optimization algorithm JADE from Jingqiao Zhang and Arthur\nC. Sanderson book 'Adaptive Differential Evolution. A Robust Approach\nto Multimodal Problem Optimization' Springer, 2009.  JADE++ is\ndesigned to run efficiently in parallel on multicore processors,\nmultiprocessor systems, clusters and supercomputers with help of\nMPI. JADE++ has also an option to switch on the impoved\ncross-section rate PMCRADE (after Li et al. in the paper \"Power Mean\nBased Crossover Rate Adaptive Differential Evolution\"). The source\ncode is licened under GPL v3+.\n\nJADE++ needs MPI and Cmake installed to compile and run. It also needs\nC++11 compatible complier.\n\nFeel free to contact me with questions about JADE++ via e-mail\nk.ladutenko@metalab.ifmo.ru!\n\nUsage\n-----\n\nFor Debian/Ubuntu systems single line install with\n\n    # apt-get install openmpi-bin openmpi-doc libopenmpi-dev cmake\n\nand to use LLVM Clang as a compiler\n\n    # apt-get install clang libc++-dev\n\nUse 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.\n\nDownload\n-------\n\nCheckout with the [released version](https://github.com/kostyfisik/jade/releases/tag/1.0), used in papers below!\n\nPapers\n------\n\nThe optimaizer was used to obtain results in the following papers:\n\n1. \"Reduction of scattering using thin all-dielectric shells designed by stochastic optimizer\"\n   Konstantin Ladutenko, Ovidio Peña-Rodríguez, Irina Melchakova, Ilya\n   Yagupov, and Pavel Belov  J. Appl. Phys., vol. 116, pp. 184508,\n   2014 http://dx.doi.org/10.1063/1.4900529\n\n2. \"Superabsorption of light by nanoparticles\" Konstantin Ladutenko,\n   Pavel Belov, Ovidio Peña-Rodríguez, Ali Mirzaei, Andrey\n   E. Miroshnichenko and Ilya V. Shadrivov  Nanoscale, 2015,7,\n   18897-18901 http://dx.doi.org/10.1039/C5NR05468K\n\nSelf-tests\n----------\n\nEdit go.sh to run JADE++ on your number of processes.\n \n    ./go.sh single\n\nnormaly should compile JADE++ and run a single test with Rosenbrock\nfunction (f5). On success it will finish with (almost) zero mean value of\nglobal minima positioned at (1.0, 1.0, ..., 1.0) coordinate.\nhttps://en.wikipedia.org/wiki/Rosenbrock_function\nAll individuals (candidate solutions) are shown as\nevaluated.\n\nThe souce code of this test can be used as a `Hello world` example\nwith 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)\n\n     ./go.sh test\n\nto run optimization of all standard test functions (in 30D and 100D cases), will last much longer.\nExample value of final best fitness function found - mean value (and\nstddev). Ideal value is to be zero and JADE is usually very\nclose to it. However, some functions (like f6 and f8) are really hard\nto opimize.\n\n``` C++\n/// %brief Discontinuous step function\ndouble f6(std::vector\u003cdouble\u003e x) {\n  double sum = 0;\n  for (auto x_i : x) sum += pow2(floor(x_i + 0.5));\n  return sum;\n}\n\ndouble f8(std::vector\u003cdouble\u003e x) {\n  double sum = 0;\n  for (auto x_i : x) sum += -x_i * sin(sqrt(std::abs(x_i)));\n  double D = static_cast\u003cdouble\u003e(x.size()); \n  return sum + D*418.98288727243369;\n}\n```\n\nTest results\n------------\n\nResults from ./go.sh at [revision](\nhttps://github.com/kostyfisik/jade/commit/27ebf553682405e8ee18bcaf66a5a835da21b112\n), the mean value should be as small as possible (global maximum is\nexact zero) See\n[test-jade.cc](https://github.com/kostyfisik/jade/blob/master/src/test-jade.cc)\nfor more details.\n\nWith PMCRADE feature ON (by default):\n\n```\ndim 30, repeats 50\nfunc, gen, mean, (sigma)\n      f1        f2        f3        f4        f5        f6        f7        f8        f9       f10       f11       f12       f13 \n    1500      2000      5000      5000      3000       100      3000      1000      1000       500       500       500       500 \n 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 \n(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)\n\ndim 100, repeats 50\nfunc, gen, mean, (sigma)\n      f1        f2        f3        f4        f5        f6        f7        f8        f9       f10       f11       f12       f13 \n    2000      3000      8000     15000      6000       100      6000      1000      3000       500       500       500       500 \n 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 \n(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)\n```\n\nWith PMCRADE feature OFF:\n\n```\ndim 30, repeats 50\nfunc, gen, mean, (sigma)\n      f1        f2        f3        f4        f5        f6        f7        f8        f9       f10       f11       f12       f13 \n    1500      2000      5000      5000      3000       100      3000      1000      1000       500       500       500       500 \n 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 \n(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)\n\ndim 100, repeats 50\nfunc, gen, mean, (sigma)\n      f1        f2        f3        f4        f5        f6        f7        f8        f9       f10       f11       f12       f13 \n    2000      3000      8000     15000      6000       100      6000      1000      3000       500       500       500       500 \n 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 \n(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)\n\n```\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkostyfisik%2Fjade","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkostyfisik%2Fjade","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkostyfisik%2Fjade/lists"}