In order to find the appropriate length of chromosomes in GA programming, the author of this book states:
Suppose six decimal places for the variables' values is desirable. It is clear that to achieve such precision each domain
Di = [ai,bi]should be cut into
(bi - ai) * 10^6equal size ranges. Let us denote by
mithe smallest integer such that
(bi - ai) * 10^6 <= 2^mi - 1. Then, a representation having each variable
xicoded as a binary string of length
miclearly satisfies the precision requirement. Additionally, the following formula interprets each such string:
xi = ai + decimal(1001...001) * (bi - ai)/(2^mi - 1)
decimal(string)represents the decimal value of that binary string.
So here is my question: Why is the author using
(bi - ai)/(2^mi - 1)? Why not
(bi - ai)/(2^mi)? What is that
I searched it and I thought it might have something to do with the Mersenne Prime numbers because of the formulation!! I also checked out the Schema as I thought it might be related to that, but these all seem completely unrelated!