File Exchange

image thumbnail

Multi-objective Ant Lion Optimizer (MOALO)

version (3.87 MB) by Seyedali Mirjalili
The multi-objective version of the recently proposed Ant Lion Optimizer


Updated 22 May 2018

View License

This submission includes the source codes of the multi-objective version of the recently proposed Ant Lion Optimizer (ALO) called Multi-Objective Ant Lion Optimizer (MOALO). A repository is first employed to store non-dominated Pareto optimal solutions obtained so far. Solutions are then chosen from this repository using a roulette wheel mechanism based on the coverage of solutions as antlions to guide ants towards promising regions of multi-objective search spaces.
The main paper is:
S. Mirjalili, P. Jangir, and S. Saremi, Multi-objective ant lion optimizer: a multi-objective optimization algorithm for solving engineering problems." Applied Intelligence, (2016): 1-17, DOI:

The single-objective ALO source codes can be found here:

If you have no access to the paper, please drop me an email at and I will send you the paper.

All of the source codes and extra information as well as more optimization techniques can be found in my personal website at

I have a number of relevant courses in this area. You can enrol via the following links with 95% discount:

A course on “Optimization Problems and Algorithms: how to understand, formulation, and solve optimization problems”:

A course on “Introduction to Genetic Algorithms: Theory and Applications”

Cite As

Seyedali Mirjalili (2020). Multi-objective Ant Lion Optimizer (MOALO) (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (4)

Maroco Sc

Could you please check this error, while running MALO in solving ZDT2 (an example) :
MALO: Problem.............. : ZDT2 Run.....................: [1]
At the iteration 1 there are 5 non-dominated solutions in the archive
At the iteration 2 there are 1 non-dominated solutions in the archive
Output argument "Archive_X_updated" (and maybe others) not assigned during call to "UpdateArchive".
Error in MALO (line 63)
[Archive_X, Archive_F, Archive_member_no]=UpdateArchive(Archive_X, Archive_F, Ant_Position, Ant_F, Archive_member_no);
Error in MAIN4 (line 196)
[ObjectivesVectors,DecisionVariables] = MALO(f, xrange, options, rr);

Dear Seyedali Mirjalili,

When running the code inside a loop, for several experiments for example, sometimes the following error occurs:

Error in UpdateArchive (line 20)
Archive_X_temp=[Archive_X ; Particles_X'];
Output argument "Archive_X_updated" (and maybe others) not assigned during call to "UpdateArchive".
Error in MOALO (line 218)
[Archive_X, Archive_F, Archive_member_no]=UpdateArchive(Archive_X, Archive_F, Ant_Position, Particles_F, Archive_member_no);

I did not found the reason for this to occur in some functions (for example ZDT1, ZDT2 and ZDT3). How can it be fix?

Thanks in advance.

nima safari

Hi Dear Prof,
I would like thank you for this great contribution of MOALO.m
Just I would like understand about MALO.m, if I have in my Ub and Lb as the vector
ex: ub=[200 50 40 15 10 15];
lb=[50 20 10 12 5 10];
How I can defined in the

lb = data1(:,4);%0
ub = data1(:,5);%1


I garde these instructions as

lb = 0;
ub = 1;

MATLAB Release Compatibility
Created with R2011b
Compatible with any release
Platform Compatibility
Windows macOS Linux