scaling parameter for multi objective function
6 views (last 30 days)
Show older comments
I have two objective functions, but the formulation of one function has larger numbers than the other function. Therefore, the first function is more impact on the result. Probably, I should put a scaling parameter for the functions so that they become the same unit. Is there a any formula or method to determine these scaling numbers?
a=[33.5106 34.9787 36.4468 38.3830 40.3404 42.5213 44.7234 39.6915 33.5745 15.3298 -5.4681 -39.6702 -77.5957
-99.2447 -115.1489 -120.8404 -122.0638 -118.1809 -111.5745 -100.7979 -87.3404 -69.0426 -47.0213 -26.1489 -6.3298 9.8617
22.0957 34.6489 47.6170 58.0000 64.3617 69.0213 70.4894 70.6915 68.0000 64.3511 57.9894 49.6064 33.9468
18.5851 4.6383 -7.2660 -5.5532 -3.3511 3.9894 11.3191 18.4149 25.5106];
p(48) is variable
obj 1: (norm((( a + p)))^2
obj 2 : sum(0.004*(p^2)+0.075.*p+0.003)
obj1 + obj2
And I think, for example, because the coefficient of the objective function 2 is 0.004, it makes its effect very low on result. So objs should be united somehow
12 Comments
Torsten
on 11 Nov 2022
Edited: Torsten
on 11 Nov 2022
You can't calculate a weighting factor. If you want to weigh both objectives equally, put the constraint
(norm((( a + p)))^2 = sum(0.004*(p^2)+0.075.*p+0.003)
If you think that minimizing objective 1 is twice as important as minimizing objective 2, set the constraint
2*(norm((( a + p)))^2 = sum(0.004*(p^2)+0.075.*p+0.003)
Answers (0)
See Also
Categories
Find more on Multiobjective Optimization in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!