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.
댓글 수: 0
답변 (1개)
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');
참고 항목
카테고리
Help Center 및 File Exchange에서 Multiobjective Optimization에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!