How to get the TRUE PARETO data for test functions for multi-objective optimization?

조회 수: 11 (최근 30일)
Hi, I am doing weighted sum based for multiobjective optimization using Artificial Bee Colony algorithm.
I have tested with test functions for multiobjective optimizations. https://en.wikipedia.org/wiki/Test_functions_for_optimization#cite_note-Binh97-5
I have obtained pareto front using Artificial Bee Colony algorithm and I want to compare the result with its real true pareto front. However, how to get the data and plot the TRUE PARETO Front for the test functions such as Kursawe function?
I would like to get a graph as shown in the figure (retrieved from other researcher's paper)? Could anybody help me? Any matlab code suggested or any other ways like excel to plot it?
Thank you in advance.

답변 (1개)

Mrutyunjaya Hiremath
Mrutyunjaya Hiremath 2023년 7월 24일
Obtaining the true Pareto front typically involves using mathematical or analytical methods to compute the optimal solutions that represent the ideal trade-offs between multiple conflicting objectives. In many real-world problems, the true Pareto front is not known analytically, and its computation can be challenging or even impossible.
But if you have, true Pareto front - then use this code to plot
% Replace this with the true Pareto front data (matrix with objective values)
true_pareto_front = [
% Objective 1, Objective 2, ... (Add more columns if you have more objectives)
0.1, 0.8;
0.2, 0.7;
0.3, 0.6;
0.4, 0.5;
0.5, 0.4;
0.6, 0.3;
0.7, 0.2;
0.8, 0.1;
];
% Replace this with the Pareto front obtained from ABC algorithm (matrix with objective values)
abc_pareto_front = [
% Objective 1, Objective 2, ... (Add more columns if you have more objectives)
0.1, 0.75;
0.2, 0.72;
0.3, 0.68;
0.4, 0.55;
0.5, 0.42;
0.6, 0.31;
0.7, 0.21;
0.8, 0.1;
];
% Plot the true Pareto front and the ABC Pareto front
figure;
hold on;
plot(true_pareto_front(:, 1), true_pareto_front(:, 2), 'bo', 'MarkerSize', 10);
plot(abc_pareto_front(:, 1), abc_pareto_front(:, 2), 'r+', 'MarkerSize', 10);
hold off;
% Add labels and legend
xlabel('Objective 1');
ylabel('Objective 2');
legend('True Pareto Front', 'ABC Pareto Front');
title('Comparison of True Pareto Front and ABC Pareto Front');
  댓글 수: 1
Wei Wen
Wei Wen 2023년 7월 24일
Hi, thanks for answering.
But actually I don't have the True Pareto Front data.. I am seeking for help on how to get the True Pareto from the given mathematical function as shown in figure below.
But after I successfully get the True Pareto Front data, I will use the code that you share to compare with my ABC results. Thanks.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Multiobjective Optimization에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by