# Parallel optimization/Genetic algorithm/Genetic programming

**URL:** https://discourse.julialang.org/t/parallel-optimization-genetic-algorithm-genetic-programming/36805
**Category:** Optimization (Mathematical)
**Tags:** parallel
**Created:** [March 31, 2020, 5:55pm UTC](https://discourse.julialang.org/t/parallel-optimization-genetic-algorithm-genetic-programming/36805 "2020-03-31T17:55:02Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![Neurovium](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/neurovium/32/1535_2.png) [@Neurovium](https://discourse.julialang.org/u/Neurovium)
#### Post date: [March 31, 2020, 5:55pm UTC](https://discourse.julialang.org/t/parallel-optimization-genetic-algorithm-genetic-programming/36805/1 "2020-03-31T17:55:02Z")

</div>

Hi,

I was planning to fully port a project to Julia. Checking the evolutionary optimization packages in Julia, I came across a few. It seems that the most mature one, Wallace ([GitHub - ChrisTimperley/Wallace.jl: High-performance evolutionary computation in Julia.](https://github.com/ChrisTimperley/Wallace.jl)), which had GA (genetic algorithm) and GP (genetic programming) is not maintained since early julia versions. The other ones, that I came across, have limited documentation so making it hard to know if they are retired or not:  
[GitHub - wildart/Evolutionary.jl: Evolutionary & genetic algorithms for Julia](https://github.com/wildart/Evolutionary.jl) [GitHub - WestleyArgentum/GeneticAlgorithms.jl: A lightweight framework for writing genetic algorithms in Julia](https://github.com/WestleyArgentum/GeneticAlgorithms.jl)

Does anyone have an experience with these (or other candidates for GA and GP)? Are there any parallel (CPU) or GPU implementations of GA/GP (and in general multiobjective optimization )? something like this:

> **[Minimizing an Expensive Optimization Problem Using Parallel Computing...](https://www.mathworks.com/help/optim/ug/minimizing-an-expensive-optimization-problem-using-parallel-computing-toolbox.html;jsessionid=b20ed001132d9a87f2075634ae4e)**
>
> Example showing the effectiveness of parallel computing in two solvers: fmincon and ga.

Thanks  
Nima

---

<div class="post-metadata">

### Author: ![tbeason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbeason/32/15898_2.png) [@tbeason](https://discourse.julialang.org/u/tbeason)
#### Post date: [March 31, 2020, 6:29pm UTC](https://discourse.julialang.org/t/parallel-optimization-genetic-algorithm-genetic-programming/36805/2 "2020-03-31T18:29:47Z")

</div>

[https://github.com/robertfeldt/BlackBoxOptim.jl](https://github.com/robertfeldt/BlackBoxOptim.jl) might be worth a look.

Also Evolutionary.jl seems to be actively developed. Several commits within the last month.

---

<div class="post-metadata">

### Author: ![Neurovium](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/neurovium/32/1535_2.png) [@Neurovium](https://discourse.julialang.org/u/Neurovium)
#### Post date: [March 31, 2020, 10:08pm UTC](https://discourse.julialang.org/t/parallel-optimization-genetic-algorithm-genetic-programming/36805/3 "2020-03-31T22:08:18Z")

</div>

Thanks,

I checked BlackBoxOptim.jl… unfortunately, it has neither GA or GP (it has evolutionary strategy and differential evo which are evolutionary algorithms but not the same as genetic algorithm); though it seems to be designed for multi-objective optim. Also, I noticed that it has “build failure”.

Evolutionary.jl has zero documentation and no example. Have you seen doc/example elsewhere?

any other suggestions?  
Thanks

---

<div class="post-metadata">

### Author: ![leethargo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/leethargo/32/6004_2.png) [@leethargo](https://discourse.julialang.org/u/leethargo)
#### Post date: [April 1, 2020, 6:02am UTC](https://discourse.julialang.org/t/parallel-optimization-genetic-algorithm-genetic-programming/36805/4 "2020-04-01T06:02:23Z")

</div>

> [@Neurovium](#):
>
> Evolutionary.jl has zero documentation and no example. Have you seen doc/example elsewhere?

[https://evolutionaryjl.readthedocs.io/en/stable/](https://evolutionaryjl.readthedocs.io/en/stable/)

EDIT: Sorry, I didn’t look closely. There is this generated doc, but there is not much content…

---

<div class="post-metadata">

### Author: ![compleat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/compleat/32/8958_2.png) [@compleat](https://discourse.julialang.org/u/compleat)
#### Post date: [June 21, 2020, 10:18pm UTC](https://discourse.julialang.org/t/parallel-optimization-genetic-algorithm-genetic-programming/36805/5 "2020-06-21T22:18:41Z")

</div>

Hi All, I, too, am trying to find a GA optimiser for Julia, and I think Evolutionary.jl is in the works, but I tried using it and (IMO) it doesn’t work yet (except for some toy examples). However, the author seems responsive to feedback and seems to be actively working on it.

Oddly, I have managed to get BlackBoxOptim to do GA’s using trickery (e.g. limiting continuous variables to [0,1] and then rounding for binary) but that’s all I have found. Surely someone out there has a better idea?

I saw something in sklearn which I know Julia has, but I don’t know to use it.  
Perhaps there is another package that has GA that has been ported from python?

Thanks for any ideas

[Update - since this post, the Author of Evolutionary has updated the package and provided additional documentation, and I have indeed gotten the algorithms to work usefully on examples in both GA and CMAES - Thank you Art!]
