snippetMinor
How to use Sigma Scaling in a genetic algorithm
Viewed 0 times
scalinggeneticalgorithmsigmahowuse
Problem
I have a genetic algorithm in Java and I'm testing new types of selections.
For my tests I'm using the De Jong Half Sphere, my fitness function is $x^2 + y^2$.
The selection method used is Sigma scaling :
Example using S=1
I know that sigma scaling should be used with a proportional selection.
-
Is this the right way to implement this type of selection?
-
If I wanted to minimize the function instead of maximize it how can I accomplish it, should I subtract the mean to each fitness and get the percentage this way or is there a better way?
For my tests I'm using the De Jong Half Sphere, my fitness function is $x^2 + y^2$.
The selection method used is Sigma scaling :
fscaled = S + (fraw −fmean)/2σExample using S=1
- a) Fitness = 5.927822124 | After Scaling = 0.900756351532265 | 17.74410992 %
- b) Fitness = 3.431749363 | After Scaling = 0.5720553077878213 | 10.27246375 %
- c) Fitness = 8.428103101 | After Scaling = 1.2300115637030606 | 25.22835279 %
- d) Fitness = 2.548825744 | After Scaling = 0.455785494144756 | 7.629554871 %
- e) Fitness = 13.07076638 | After Scaling = 1.841391282832097 | 39.12551868 %I know that sigma scaling should be used with a proportional selection.
-
Is this the right way to implement this type of selection?
-
If I wanted to minimize the function instead of maximize it how can I accomplish it, should I subtract the mean to each fitness and get the percentage this way or is there a better way?
Solution
Well I just tried this :
With these new fitness I used S=1
fscaled = S + (fraw −fmean)/2σ
Mean = 1.181182154
Dev Std = 0.260649227
And this was my final result :
These can be used with proportional selections.
I think this is the right way to use sigma scaling.
And I used the reciprocate plus one to make this a minimization problem.
(1.0/f(x,y))+1.0
a) 21.37858466 | After the reciprocate | 1.046775781
b) 1.425432689 | After the reciprocate | 1.701541369
c) 15.48548031 | After the reciprocate | 1.064576621
d) 14.56668667 | After the reciprocate | 1.068649791
e) 41.0387647 | After the reciprocate | 1.024367205With these new fitness I used S=1
fscaled = S + (fraw −fmean)/2σ
Mean = 1.181182154
Dev Std = 0.260649227
And this was my final result :
a) 0.742170015 | 14.8434003 %
b) 1.998198272 | 39.96396544 %
c) 0.776317134 | 15.52634267 %
d) 0.784130642 | 15.68261284 %
e) 0.699183937 | 13.98367874 %These can be used with proportional selections.
I think this is the right way to use sigma scaling.
And I used the reciprocate plus one to make this a minimization problem.
Code Snippets
(1.0/f(x,y))+1.0
a) 21.37858466 | After the reciprocate | 1.046775781
b) 1.425432689 | After the reciprocate | 1.701541369
c) 15.48548031 | After the reciprocate | 1.064576621
d) 14.56668667 | After the reciprocate | 1.068649791
e) 41.0387647 | After the reciprocate | 1.024367205a) 0.742170015 | 14.8434003 %
b) 1.998198272 | 39.96396544 %
c) 0.776317134 | 15.52634267 %
d) 0.784130642 | 15.68261284 %
e) 0.699183937 | 13.98367874 %Context
StackExchange Computer Science Q#18418, answer score: 2
Revisions (0)
No revisions yet.