Question About Multiobjective Genetic Algorithm Optimisation
5 views (last 30 days)
Show older comments
Hi,
Firstly i want to explain what i am trying to do:
I am trying to optimize a cellular network by using multiobjective genetic algorithm.
I want to optimise number of base stations , coverage and multi coverage.
my population consist of possible base station locations in X and Y coordinates. which some of them commissioned and others not depending on some constraints.
i want my gene to have lets say 10 possible base station locations with only 5 them of them commissioned by this way i want to keep some junk elements in gene to get a better solution surface.
with three optimisation object i will get a pareto surface.
What i need help on how should i feed the gamultiobj function?
It is easy for coverage and multicoverage because they are just 1-by-1 values. But for basestation number and positions i dont know what to do.
Even though i read the manuals for the gamultiobj manual i cant get my head around this problem. Any help/tips will be great help for me.
1 Comment
david
on 4 May 2013
hello,where you finally able to achieve this? if u were pls paste code and a little explanation please. thank you
Answers (1)
Hari
on 11 Jun 2025
Hi,
I understand that you are trying to use a multi-objective genetic algorithm (gamultiobj) in MATLAB to optimize a cellular network by considering three objectives: minimizing the number of commissioned base stations, maximizing coverage, and maximizing multi-coverage. Your challenge is representing the gene such that it holds potential base station locations while also distinguishing which are active (commissioned).
I assume that you already have a list of possible base station locations (X,Y), and for each individual in the population, you want to evolve both the commissioning decision (binary: 0 or 1) and evaluate the resulting network performance.
In order to implement this in gamultiobj, you can follow the below steps:
Step 1: Define the chromosome structure
You can represent the gene as a vector where:
- Each gene corresponds to one base station location.
- The value is a binary (0 or 1) indicating whether that station is commissioned or not.
Step 2: Write a custom fitness function
In this function, for a given binary vector x:
- Count the number of commissioned base stations (objective 1).
- Calculate total coverage based on commissioned stations (objective 2).
- Calculate multi-coverage (areas covered by >1 station) (objective 3).
Your fitness function should return a 1x3 vector with values for all objectives.
Step 3: Set up the gamultiobj options
Set:
- 'PopulationType','bitstring' to indicate binary genes.
- Use 'UseParallel',true if coverage computations are intensive.
Step 4: Configure the call to gamultiobj
Set the number of variables to the number of candidate base station locations.
Step 5: Post-process results
The output will be a set of Pareto-optimal binary vectors, each representing a trade-off between number of stations, coverage, and multi-coverage. You can extract coordinates using the known list of locations.
Refer to the documentation of "gamultiobj" function for additional options:
Refer also to "multiobjective optimization" workflows:
Hope this helps!
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!