We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
In the polynomial mutation code, we have (Notice the comment in the code)
void polynomial_mutation_impl(vector& child .....) { for(....){ y = child[j]; yl = lb[j]; yu = ub[j]; delta1 = (y - yl) / (yu - yl); //Normalised distance from lower bound. delta2 = (yu - y) / (yu - yl); //Normalised distance from upper bound. if( rnd < 0.5) xy = 1. - delta1; //Possibly naive .................... } }
The problem I find is when we do xy = 1. - delta1, is unnecesary because 1. - delta1 is equivalent to delta2. Simple proof:
xy = 1. - delta1
1. - delta1
delta2
delta1 + delta2 = ( (y - yl) + (yu - y) ) / (yu - yl) => (yu - yl)/(yu - yl) =>delta1 + delta 2 = 1 => delta2 = 1 - delta1
@darioizzo If I've missed something, let me know, cheers!
The text was updated successfully, but these errors were encountered:
@jonpsy It seems to me that you are right. You can probably remove delta1 completely. Maybe send a pull request?
Sorry, something went wrong.
No branches or pull requests
In the polynomial mutation code, we have (Notice the comment in the code)
The problem I find is when we do
xy = 1. - delta1
, is unnecesary because1. - delta1
is equivalent todelta2
.Simple proof:
@darioizzo If I've missed something, let me know, cheers!
The text was updated successfully, but these errors were encountered: