# How to handle infeasiblity caused due to crossover and mutation in genetic algorithm for optimization

I have chromosomes with floating point representation with values between 0 and 1. For example-

Let p1=[0.1,0.2,0.3 and p2=[0.5,0.6,0.7] be two parents. Both comply with the set of constraints. However, the children produced by 1 point crossover, we get c1=[0.1, 0.6, 0.7] and c2=[0.5, 0.2, 0.3] out of which 1 or both may not comply with the given constraints.

A similar scenario can also occur with small perturbation of values due to mutation strategy. Correct me if I am wrong in the belief that such kind of scenarios might arise irrespective of the strategy employed for crossover and mutation. What are the options to handle such kind of cases?

Edit- In my case, the major constraint is- $$p1[1]*p1[2] - k*p1[0] \geq 0$$ for any chromosome $$p1$$. For the example above we can take $$k=0.3$$ which renders c2 infeasible.

Another option is to just let the operator violate constraints and then deal with the ramifications afterward. You don't go into details about what your constraints actually are, just that c1=[0.1, 0.6, 0.7] violates them. Let's say the constraint is that the third position should not be more than 4x greater than the first one. OK, so then let's take this offspring and adjust either the first or third item. Maybe we make the new individual into c1=[0.2, 0.6, 0.7].