scaling parameter for multi objective function

6 views (last 30 days)
mohammad
mohammad on 11 Nov 2022
Edited: Torsten on 11 Nov 2022
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
mohammad
mohammad on 11 Nov 2022
i did't understand . for example for this problem how should do I calculate the weighting factor?
Torsten
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)

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!