Previous Table of Contents Next


The data calculated in Table 2.6 shows the effect of increasing the number of bits used in the delta coding. A simple linear mapping from the minimum to the maximum value for each matrix location is used. The concern here is that if N is too small, then a good T21 cannot be found because, as the delta is incremented from one possible value to the next possible value, the requisite value is bypassed.

Table 2.6 Resulting coarseness calculated for different numbers of bits.
Range Coarseness
N=4 N=8 N=12 N=16 N=20 N=24 N=28
0.031 0.002 8.1E-06 1.9E-09 3.0E-14 2.8E-20 1.7E-27 6.4E-36
0.0197 0.001 5.1E-06 1.2E-09 1.9E-14 1.8E-20 1.0E-27 4.0E-36
0.0001 9.6E-06 3.7E-08 9.1E-12 1.4E-16 1.3E-22 7.9E-30 2.9E-38
0.078 0.005 2.0E-05 4.9E-09 7.6E-14 7.2E-20 4.3E-27 1.6E-35
0.033 0.002 8.7E-06 2.1E-09 3.2E-14 3.1E-20 1.8E-27 6.8E-36
0.0001 6.8E-06 2.6E-08 6.5E-12 1E-16 9.5E-23 5.7-30 2.1E-38
6.9 0.46 0.018 4.4E-07 6.7E-12 6.4E-18 3.8E-25 1.4E-33
7.8 0.52 0.020 4.9E-07 7.6E-12 7.2E-18 4.3E-25 1.6E-33
0.044 0.0029 1.1E-05 2.8E-09 4.2E-14 4.0E-20 2.4E-27 9.0E-36

To allow the needed value to be approximated to an acceptable degree, the number of bits-per-value can be increased. Increasing N, however, will increase the search-space of the problem. Given nine matrix values to search on, for each 1-bit increase in N, there is a 29, or 512 times increase in the size of the search space. To allow the GA to converge in a reasonable time, the search space should be kept small.

GA OPERATORS AND TECHNIQUES

In additional to the usual reproduction, crossover, and mutation GA operators [6], additional GA operators and techniques were designed and implemented for this specific problem. The entire set of GA operators implemented for this problem follow:

Crossover

A simple 1-point crossover, as shown in Figure 2.5, is used which swaps the alleles (bit-patterns) in two selected parents at a given bit position. This bit position can be chosen anywhere within the strings, within a delta value as well as between delta values.


Figure 2.5  Single point crossover.

Two-Point Crossover

A 2-point crossover, as shown in Figure 2.6, is used which swaps the alleles in two selected parents between two given bit positions. These bit positions can be chosen anywhere within the strings, within a delta value as well as between delta values. For this crossover, the string is considered to wrap back on itself in a ring-like fashion, which results in this 2-point crossover swapping a selection of the ring for two selected parents.


Figure 2.6  Two-point crossover.

Matrix-Element Crossover

Wallet, et al. [3] inspired the use a matrix-element crossover operator, as seen in Figure 2.7. Their technique of selecting a contiguous sub-region of the 4×4 matrix was expanded to select a number of matrix elements which were related for this specific problem. Templates in the code were designed to define different matrix elements to be used for the eight different matrix-element crossovers possibilities desired. When the matrix-element crossover was selected, one of these templates was then selected and used to accomplish the crossover.


Figure 2.7  Matrix-element crossover.

The matrix-element crossover swaps selected matrix elements between two selected parents. These swaps are done on full N-bit matrix elements within the strings and does not mix string values within a given matrix element. Figure 2.8 shows the eight matrix-element templates implemented here. The odd templates fit within the Wallet scheme, while the even-numbered templates show the extension to the Wallet scheme. The templates correspond to transformation operators: (1) Z rotation, (2) Z rotation with homogeneous coordinate scaling, (3) X and Y translation, (4) X and Y translation and perspective, (5) X and Y perspective, (6) X and Y scaling, (7) X and Y perspective with homogeneous coordinate scaling, and (8) X, Y, and Z scaling with homogeneous coordinate scaling.


Figure 2.8  Eight matrix-element crossover templates.

Maintaining the Best Performer

Similar to De Jong’s generation-gap idea, the best performer of each generation is copied as-is to the next generation. This guarantees that the solution as found by the GA will not get worse over time. This approach is known as elitist selection.

Varying Mutation Rate

The classic GA implementation uses a fixed mutation-rate. Being concerned with a timely solution, GA stagnation was studied very closely. GA stagnation is defined as the number of generations in which the best performer remains the same, as guaranteed above. One stagnation related solution was to impose an increasing mutation rate (Ms), which is the product of the no-change generation count (NC) and the mutation rate (MR): Ms = NC * MR. This results in ever-increasing chances for mutation to change the best performer in a positive direction.

Comet-Strike Operator

Another GA stagnation operation is, as coined by Robert Dain [7], the Comet-Strike. The analogy is that of a comet striking the earth, which reeks havoc with the ecosystem and destroys all but the most robust of life. Following the comet-strike, new species evolve. The GA equivalent is to maintain the best performer and re-initialize the remaining population. The comet-strike operator is invoked when the no-change generation count (NC) goes above a set threshold and the average/minimum value is less than M (the bulk of the population consists of similar genetic material).

Total-Comet-Strike Operator

A total-comet-strike operator is a re-initialization of the entire population. For this problem, and possibly other real-time GA problems, this operator allows the GA run to result in a better solution at the end of the imposed time-limit.


Previous Table of Contents Next

Copyright © CRC Press LLC