Any implement of MOEA/D algorithm basing on DEAP?

436 views
Skip to first unread message

Jianfeng Chen

unread,
Apr 21, 2016, 6:23:20 AM4/21/16
to deap-users
Do we have any implement of MOEA/D (cited in follows) algorithm basing on the DEAP module?

Zhang, Qingfu, and Hui Li. "MOEA/D: A multiobjective evolutionary algorithm based on decomposition." Evolutionary Computation, IEEE Transactions on11.6 (2007): 712-731.

François-Michel De Rainville

unread,
Jul 16, 2016, 8:13:54 AM7/16/16
to deap-users
No, MOEA/D is not implemented. If you wish to contribute it we will gladly review it.

2016-04-20 23:39 GMT-04:00 Jianfeng Chen <jch...@ncsu.edu>:
Do we have any implement of MOEA/D (cited in follows) algorithm basing on the DEAP module?

Zhang, Qingfu, and Hui Li. "MOEA/D: A multiobjective evolutionary algorithm based on decomposition." Evolutionary Computation, IEEE Transactions on11.6 (2007): 712-731.

--
You received this message because you are subscribed to the Google Groups "deap-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to deap-users+...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Manuel Belmadani

unread,
Sep 27, 2016, 7:06:04 AM9/27/16
to deap-users
Hi Jianfeng,

I started working on an implementation recently. Actually, I simply ported the implementation from the JMetal Java metaheuristic framework  (http://jmetal.sourceforge.net/). It seems to work, as in the solutions appear converge properly, though not as well as NSGA-IIr or NSGA-II (from what I could observe.) It's also not the most pythonic code since I mostly ported from Java directly. Anyways, you download it from here:


Only major thing missing is being able to compute the weight vectors on the fly. So far, it only works for 2 or 3 objectives, otherwise it requires a weight file specific to your population size and number of objectives. The paper wasn't very specific on how to generate the weight vectors (other than they are uniformly distributed for each objective) and I didn't want to misinterpret the function either, so I didn't try yet. The JMetal version has support to generate the weight vectors for 2 objectives, and the Java implementation of  MOEA/D from the author's website (http://dces.essex.ac.uk/staff/qzhang/moead/moead-java-source.zip) has one for 3 objectives which I added.  

There's a modified example of the DEAP sample knapsack problem you can use to test. You can run python knapsack.py SEED for a given random number SEED, or python knapsack.py SEED 3 to try a 3-objective version of the problem.

Have fun with it, and let me know if you figure out how to generate weight vectors for >3 objective problems.
Reply all
Reply to author
Forward
0 new messages