7

Mutation is usually defined to be a global operator, i.e. iterated mutation is (eventually) capable of reaching every point in the vector space defined by the geneome. In that sense, mutation alone is certainly 'enough'. Regarding the motivation for crossover - from Essentials of Metaheuristics, p42: Crossover was originally based on the premise that ...


6

As @Thomas W said, you can be pretty immaginative when you're developing mutation and crossover methods. Each problem has its own caracteristics and, therefore, requires a different strategy. BUT, from my experience, I'd say that 90% of crossovers and mutation on real numbers genotypes are solved using the BLX-α algorithm. Crossover: This algorithm is ...


5

You have a genome with certain genes: genome = { GeneA: value, GeneB: value, GeneC: value } So take for example: genome = { GeneA: 1, GeneB: 2.5, GeneC: 3.4 } A few examples of mutation could be: Switch around two genes: { GeneA: 1, GeneB: 3.4, GeneC: 2.5 } Add/substract a random value from a gene: { GeneA: 0.9, GeneB: 2.5, GeneC: 3.4 } Suppose you ...


5

Crossover allows to combine two parents (vs. mutation, which only uses one parent). In some cases, it is useful (e.g., if you train a FPS bot, if one parent is good at shooting and another parent is good at moving, it makes sense to combine them). In some other cases, it is not.


5

The mutation is an operation that is applied to a single individual in the population. It can e.g. introduce some noise in the chromosome. For example, if the chromosomes are binary, a mutation may simply be the flip of a bit (or gene). The crossover is an operation which takes as input two individuals (often called the "parents") and somehow ...


4

When thinking about crossover its important to think about the fitness landscape. Consider a hypothetical scenario where we are applying a genetic algorithm to find a solution that performs well at 2 tasks. This could be from Franck's example (moving and shooting) for an AI, or perhaps it could be predicted 2 outputs in a genetic machine learning scenario, ...


3

As far as I know, there isn't a "specified correct way". The whole idea is that you want the population to converge and increase the sample rate in that more optimal looking place. What works best all depends upon your fitness landscape. You could also crossover by doing something like crossover_point = random_number_size_genome child[:] = parent_a[:...


3

The crossover rate, $p_c \in [0, 1]$, is a hyper-parameter that controls the rate at which solutions are subjected to crossover. So, the higher $p_c$, the more crossovers you perform, so the more diversity (in terms of solutions/chromosomes) you may introduce in the population. Typical values of $p_c$ are in the range $[0.5, 1.0]$. For example, in this ...


3

First of all the answer to your question is largely dependent on the problem you are trying solve, the size of your population, the size of your problem's search space and the rest of your GA's hyper-parameters such as your mutation rate. If the problem has a large search space, then applying the elites strategy you described above will most likely cause ...


2

The terminology of this exercise is not standard. What is referred to as "reproduction" in the exercise is usually referred to as "selection". The term "reproduction" does indeed seem conceptually closer to the notion of crossover or recombination (these two are the same thing), which is probably where your confusion has arisen. See the excellent (and ...


2

In genetic algorithms, mutation without crossover simply means that part of the population is randomly changed. In this case this is applied to 25% of the population. The remaining 75% either remain unchanged (generally the best performing specimen), or will be combined with other specimen (using crossover). It's a bit more complex here, as the genome is ...


2

In NEAT, the innovation of a node does not affect the evolution directly. Only the connection genes and their innovation will matter. So you can simply have whole numbers as IDs under each Genome / Network. --EDIT-- (Complete reasoning) In the original paper, it is clearly stated that the nodes from the better genome is taken during crossover and then only ...


2

Really you're entering the world in which you probably want to develop genetic operators that have meaning in your domain. You mention TSP, and correctly point out that the absolute position within the chromosome doesn't matter. There are other permutation problems where this isn't true. The Quadratic Assignment Problem (QAP) is one example. Like TSP, QAP ...


1

First of all, for a lot of realistic problems, the fitness function evaluation is usually orders of magnitude greater in complexity than the rest of the genetic algorithm. This is not always true, but often is true (e.g. imagine trying to optimise a simulation where you need to execute the simulation completely to obtain the fitness). So optimising the GA ...


1

The original work on NEAT(Neuroevolution of augmenting topologies) was by Ken Stanley in 2002 at The University of Texas at Austin. The web page for the project is here I suggest you download and read the paper linked from that page. As for selection of genome pairs, NEAT makes use of a speciation model so the selection of such pairs is constrained to at ...


1

Okay, I'm first going to review how NEAT works. I hope this helps you model NEAT successfully as a whole, not just limited to your question. We use neuro-evolution to create a specific behavior that solves a given task. The behavior can be simple and complex. Now let's focus on behavior... Different neural networks can create the same behavior (A.K.A the ...


1

It's not obvious what you mean by "intelligent crossover". However, it is common to use fitness-based selection of parents: individuals in the current population who have higher fitness are assigned a higher probability of being selected to mate and produce offspring. This will increase the likelihood that "good" combinations of genes in members of the ...


1

If I understood correctly, your problem is about finding the optimal way to execute a series of tasks in order to maximize the results, using Genetic Algorithms. In few words, you're trying to solve the salesman problem. If I am correct, you're looking for Crossover and Mutation algorithms that allow you to work with ordered sets of elements. For these ...


1

You have two broad categories of options, prevention and repair. Prevention means defining a crossover and mutation operator that try to be more intelligent about respecting the constraints. Suppose you have an encoding where each individual is a list of integers, and the constraint is that there can't be duplicates. You might define a crossover operator ...


1

First, store the two parent chromosomes into a sorted dictionary (in terms of implementation, std::map in C++ might be a good option) where the key is the letter and the value is a pair of ints (the second gene element). When you populate the map, add all the letters from each chromosome as keys and take 0 (or a negative number) to indicate that a gene with ...


1

I like to use the term, "recombination operator" rather than "crossover operator", because the latter term suggests a specific type of operation: constructing an offspring by switching corresponding chromosome segments between two parents. "Recombination" (to me) suggests any operation that forms an offspring from the genetic information of two parents. "...


1

Firstly, before we commence I will recommend that you refer to a similar questions on the network https://stackoverflow.com/questions/828486/neural-net-optimize-w-genetic-algorithm The majority of ML studies focus on gradient algorithms, usually a variation of back-propagation to obtain the weights of the model. However since genetic algorithms are ...


Only top voted, non community-wiki answers of a minimum length are eligible