I started working again on a Genetic Algorithm and i'm trying a lot of operators and ways of selection. When I made the Tournament Selection , I noticed that it gets really easy to always get the top individuals to be selected, and the small ones get less chances of being selected. I saw some workaround methods like implementing some "selection probability" to the individual that wins the tournament so that if he doesn't go trough the probability it gives chance to the others that lost.
Other method that I read was to give to each individual a limit of how many times he could be selected, but on that document wasn't any way creating this "limit". So I start thinking of using the % that each individual represent's with his fitness. For example:
ind 1 : 10% 'till 100% goes 10x
ind 2 : 40% 'till 100% goes between 2 to 3x
ind 3 : 8% 'till 100% goes between 10 to 12x
ind 4 : 30% 'till 100% goes between 3 to 4x
or using the inverse %
ind 1 could be selected 90% of number of tournaments (or rounds)
ind 2 could be selected 60% ...
ind 3 could be selected 92% ...
ind 4 could be selected 70% ...
This is just quick ideas nothing complex. What I would like to know is if there is any document that i could find that shows some method create this limits or if you know or have any idea/opinion that could improve this.