minor issue of RE22
linjunhe opened this issue · comments
In RE22, the lower bound of x2 is 0.
However, x2=0 makes two constraints g1 and g2 become -inf.
This happens when I use NSGA-II to solve the current matlab implementation of RE22,
It may be better to replace x2 in the denominators of two constraints by (x2+1e-6),
or to set a small number (e.g., 1e-6) as the lower bound of x2, instead of 0.
Thanks for your suggestion, but I think that this is not problematic. In RE22, the two constraint function (g1 and g2) values should be non-negative.
In the supp file, the constraint violation for gi(x)>0 is defined as max{gi(x), 0}. (e.g., Eq. S.6, S.11, S.17, S.29, S.35, ...)
It seems to me that it should be max{-gi(x), 0}.
For example,
for an MOP with a constraint g(x)>0,
- if a solution x=1 leads to g(1) = 10>0, then the constraint is satisfied. In this case, the constraint violation value should be max{-10, 0}=0.
- if a solution x=5 leads to g(5) = -2 <0, then the constraint is not satisfied. In this case, the constraint violation value should be max{-(-2), 0}=2.
Actually, your matlab implementations of RE problems are consistent with my above discussions.
In RE22, when x2=0, g1 and g2 becomes -inf.
Then the constraint violation value becomes inf, which makes the second (constraint-related) objective imcomparable.
Thanks for pointing out the typos. I have fixed them.