4
$\begingroup$

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 :

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?

$\endgroup$
  • 1
    $\begingroup$ I think there is background missing here; you seem to assume some generic algorithm which binds some of your variable names. $\endgroup$ – Raphael Feb 3 '14 at 0:19
2
$\begingroup$

Well I just tried this :

(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.024367205

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 :

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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.