I am currently reading a paper on using GA in constrained optimization problems. At some part, it is talking about applying niching scheme on the individuals (or the Pareto front they make).
It seems like a typical selection scheme but as I searched, I couldn't find a good explanation for it.
Can someone explain to me as simply as possible, what niching scheme is?
Abstract. Niching techniques are the extension of standard evolutionary algorithms (EAs) to multi-modal domains, in scenarios where the location of multiple optima is targeted and where EAs tend to lose population diversity and converge to a solitary basin of attraction.
Niching methods extend genetic algorithms to domains that require the location and maintenance of multiple solutions. Such domains include classification and machine learning, multimodal function optimization, multiobjective function optimization, and simulation of complex and adaptive systems.
Simply put, niching is a class of methods that try to converge to more than one solution during a single run.
Niching is the idea of segmenting the population of the GA into disjoint sets, intended so that you have at least one member in each region of the fitness function that is "interesting"; generally by this we mean that you cover more than one local optima.
Imagine a function like f(x) = sin(x^2)
.
A normal GA will eventually converge towards one of the two global minima. Which one depends on the initial population and the random genetic drift occurring throughout the run, but eventually, you'll get n
copies of one individual in one or the other valleys. For example, if you looked at such a GA when it was almost converged, you might see something like
Niching is a general class of techniques intended to end up with roughly half the population converging in each minima (or possibly even including a few members in the less fit minimum at x=0
).
As I just said, niching is not really an algorithm so much as a general class of algorithms. One such method is Goldberg's fitness sharing. In this method, we define a niche radius sigma
. Any two individuals closer together than this sigma
are considered to be in the same niche, and thus must share their fitness values (think of this as being a function that decreases fitness of each member of the niche the more densely populated the niche is). You then have the GA operate on the shared fitness values instead of the raw ones.
The idea here is that you discourage convergence to a single region of the fitness function by pretending there are limited resources there. The more individuals try to move in, the worse off they all are. The result is that as the GA converges to a single local optimum somewhere, the fitness of that optimum decreases because of the increased competition within the niche. Eventually, another region of the fitness landscape becomes more attractive, and individuals migrate over there. The idea is to reach a steady state -- a fixed point in the dynamics -- where an appropriate representation of each niche is maintained.
Sharing is hard because of the need to manually set the niche radius, and the algorithm is quite sensitive to this choice. Another alternative is crowding. In particular, you might look up "Deterministic Crowding", which was a popular method for a period of time. In crowding based methods, instead of dealing with an explicit radius, we work by limiting the set of individuals that a new offspring can replace to some set of similar solutions, for example an offspring might be allowed to replace only one of its parents. The effect is to try to prevent replacing a unique individual with one that is very similar to a dozen others in the population and thus to preserve diversity that way.
Yep good explanation by deong for niching. All of these techniques are made to maintain the diversity of the population.
Thats what the pareto front does too. GAs that are looking for a Pareto front are Multi Objective Evolutionary Algorithms. They try to optimize not only one criteria but two or more. So the Pareto front are all Indiviudals that are not pareto dominated by an Individual of the population. http://en.wikipedia.org/wiki/Pareto_efficiency
In short words: An individual A is member of the pareto front if there is no individual B in the population that is at least as good as A concerning every criteria and better than A in at least one criteria.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With