existing mutation functions assume individual has same data type and characteristics so a single mutation function can mutate the each element of the individual homogeneously e.g. an individual of bits, mutation will flip them to 0 or 1. another individual of integers, ranging from 1 to 100, then a number will be chosen in that range during mutation. If the individual is a list with bits, integers with different ranges, and a collection of numbers to choose, no existing mutation functions would work. A new mutation function that can mutate based on the attributes of each element of an individual is needed.
existing mutation functions assume individual has same data type and characteristics so a single mutation function can mutate the each element of the individual homogeneously e.g. an individual of bits, mutation will flip them to 0 or 1. another individual of integers, ranging from 1 to 100, then a number will be chosen in that range during mutation. If the individual is a list with bits, integers with different ranges, and a collection of numbers to choose, no existing mutation functions would work. A new mutation function that can mutate based on the attributes of each element of an individual is needed.