A genetic algorithm modified for a specific problem I have a problem whose solution can be written as a binary string with a given length $N$, where $N$ is a given parameter. Standard GA works well on this problem. From runs of small values $N$, I found that optimal solutions are binary strings that contain only 01 or 011. For example, the optimal solution for $N=16$ is 0101011010101101. So I think it would be a good idea to only search the solutions space where all solutions/chromosomes only contain 01 or 011. But clearly the standard GA cannot restrict the search in the subspace I desire. One mutation or one crossover will make the new solution go into the larger solution space.

My question is: is there a way to adapt the standard GA to restrict its solution space to one where the chromosomes contain only 01 or 011?
Start with a population, where every candidate is "good", where "good" means they contain at least one occurrence of substrings "01" and "011".

For the mutation operator, flip a coin. If the result is heads, choose a random substring of length 2 and change it to "01". If the result is tails, choose a random substring of length 3 and change it to "011".

For the crossover operator, let $A$ and $B$ be two parents. Find say the first occurrence of substring "01" or "011" from $A$, that occurs starting from index $i$. Check if in $B$ there is an occurrence of "01" or "011" before $i$. If so, choose $i$ as your crossover point. If not, find the next occurrence from $A$, and repeat. This process will terminate at some point, because you start out with individuals containing "good" substrings, and your operators maintain an invariant that all individuals are "good".

Please note that this only really answers your question of "how do I modify my GA", and does not address whether this works performance-wise. However, this should give you ideas as to what kind of operators you can experiment with.