This notebook tries to solve a problem posed on Stack Overflow using a genetic algorithm. The problem involves 52 binary variables in 13 groups of four each. Exactly one variable from each group must be set to 1, with the objective of minimizing a cubic function of the variables.

Set up

To start, we load the objective function posted on SO by the author of the question, along with the requisite coefficient vectors. Since we will be maximizing, we strip of the leading minus sign and maximize the negative of the original function.

a <- c(251, 179, 215, 251, 63, 45, 54, 63, 47, 34, 40, 47, 141, 101, 121, 141, 47, 34, 40, 47, 94, 67, 81, 94, 47, 34, 40, 47, 157, 108, 133, 157, 126, 85, 106, 126, 126, 85, 106, 126, 110, 74, 92, 110, 110, 74, 92, 110, 63, 40, 52, 63)
b <- c(179, 251, 215, 0, 45, 63, 54, 0, 34, 47, 40, 0, 101, 141, 121, 0, 34, 47, 40, 0, 67, 94, 81, 0, 34, 47, 40, 0, 108, 157, 133, 0, 85, 126, 106, 0, 85, 126, 106, 0, 74, 110, 92, 0, 74, 110, 92, 0, 40, 63, 52, 0)
c <- c(179, 179, 118, 179, 45, 45, 30, 45, 34, 34, 22, 34, 101, 101, 67, 101, 34, 34, 22, 34, 67, 67, 44, 67, 34, 34, 22, 34, 108, 108, 71, 108, 85, 85, 56, 85, 85, 85, 56, 85, 74, 74, 49, 74, 74, 74, 49, 74, 40, 40, 27, 40)
objective_function <- function(x) {
  (1166 *  sum(x[1:52] * a) / 2000) *
  (((sum(x[1:52] * b)) / 2100) + .05) *
  (((sum(x[1:52] * c))/1500) + 1.5)
}

We will use the GA package to implement the genetic algorithm, and the tictoc package to time it. GA in turn has a few dependencies.

library(GA)
Loading required package: foreach
Loading required package: iterators
  ____    _    
 / ___|  / \     Genetic 
| |  _  / _ \    Algorithms
| |_| |/ ___ \   
 \____/_/   \_\  version 3.2
Type 'citation("GA")' for citing this R package in publications.

Attaching package: ‘GA’

The following object is masked from ‘package:utils’:

    de
library(tictoc)

Solution decoder

We will use a “permutation” GA, which will produce a permutation of the indices 1 … 52 of the binary variables. To convert this to a solution, we sort the binary variables into that order and then make a pass through the list, assigning the value 1 to each variable in turn if it is not precluded by an earlier assignment to the same block of four variables.

For convenience, we will set up a matrix that associates each index from 1 to 52 with the four indices in its “block”.

cohort <- matrix(sapply(seq(1, 52, 4), function(x) rep.int(x:(x + 3), 4)), nrow = 52, ncol = 4, byrow = TRUE)
# This function takes a permutation of the indices 1 to 52 and converts it to a solution satisfying the constraint that exactly one variable in each block of four receives value 1.
decode <- function(perm) {
  x <- rep.int(NA, 52)  # NA indicates the variable has not yet been assigned a value
  # Check each variable in permutation order.
  for (i in perm) {
    # If the variable is unassigned, use it.
    if (is.na(x[i])) {
      # First zero out all variables in the cohort.
      x[cohort[i,]] <- 0
      # Now set this one to 1.
      x[i] <-1
    }
  }
  # Return the x vector.
  x
}

The fitness of a permutation is the objective value of the decoded solution.

gaFitness <- function(perm) {
  objective_function(decode(perm))
}

GA results

For output consistency, we set a random number seed. The GA can be rerun multiple times (without resetting the seed) to see the variability in results.

set.seed(123)

We run the GA using an island model with default values for most arguments, but bump up the population size to 1,000, the island count to 10 and permutation rate to 0.2.

# We wrap the line in suppressMessages() to get rid of some repetitive (and annoying) messages output after each epoch.
tic("Running the genetic algorithm")
suppressMessages(
  result <- gaisl(type = "permutation", fitness = gaFitness, lower = 1, upper = 52, popSize = 1000, pmutation = 0.2, numIslands = 10)
)
Islands GA | epoch = 1 
Mean = 729.5915 | Best = 877.2731 
Mean = 729.5915 | Best = 877.2731 
Mean = 729.5915 | Best = 877.2731 
Mean = 729.5915 | Best = 877.2731 
Mean = 729.5915 | Best = 877.2731 
Mean = 729.5915 | Best = 877.2731 
Mean = 729.5915 | Best = 877.2731 
Mean = 729.5915 | Best = 877.2731 
Mean = 729.5915 | Best = 877.2731 
Mean = 729.5915 | Best = 877.2731 
Islands GA | epoch = 2 
Mean = 744.2555 | Best = 881.1359 
Mean = 706.8094 | Best = 889.0718 
Mean = 728.6984 | Best = 877.2731 
Mean = 724.2592 | Best = 883.5608 
Mean = 737.3133 | Best = 883.2374 
Mean = 717.2152 | Best = 884.1526 
Mean = 749.5348 | Best = 881.1359 
Mean = 728.8437 | Best = 878.2778 
Mean = 734.6345 | Best = 882.4023 
Mean = 726.0761 | Best = 885.2765 
Islands GA | epoch = 3 
Mean = 728.0013 | Best = 887.9490 
Mean = 735.2733 | Best = 889.0718 
Mean = 718.4668 | Best = 889.0718 
Mean = 718.4511 | Best = 883.5608 
Mean = 731.4864 | Best = 887.4499 
Mean = 733.2338 | Best = 884.1526 
Mean = 714.4842 | Best = 884.1526 
Mean = 730.0526 | Best = 882.2396 
Mean = 728.0577 | Best = 882.4023 
Mean = 724.6625 | Best = 885.2765 
Islands GA | epoch = 4 
Mean = 703.9242 | Best = 887.9490 
Mean = 695.7621 | Best = 889.0718 
Mean = 726.5829 | Best = 889.0718 
Mean = 713.2982 | Best = 889.0718 
Mean = 701.9413 | Best = 887.8313 
Mean = 713.6170 | Best = 887.4499 
Mean = 709.5596 | Best = 885.1646 
Mean = 698.7621 | Best = 885.2978 
Mean = 720.3788 | Best = 889.0718 
Mean = 713.6045 | Best = 885.2765 
Islands GA | epoch = 5 
Mean = 725.4400 | Best = 887.9490 
Mean = 706.8467 | Best = 889.0718 
Mean = 715.6680 | Best = 889.0718 
Mean = 742.7137 | Best = 889.0718 
Mean = 699.7049 | Best = 889.0718 
Mean = 710.0063 | Best = 887.8313 
Mean = 714.2062 | Best = 887.4499 
Mean = 716.0511 | Best = 886.5588 
Mean = 721.9444 | Best = 889.0718 
Mean = 722.2726 | Best = 889.0718 
Islands GA | epoch = 6 
Mean = 718.5637 | Best = 889.0718 
Mean = 712.5704 | Best = 889.0718 
Mean = 706.4947 | Best = 889.0968 
Mean = 719.1491 | Best = 889.0718 
Mean = 688.1529 | Best = 889.0718 
Mean = 703.6231 | Best = 889.0718 
Mean = 718.7251 | Best = 887.8313 
Mean = 716.0827 | Best = 887.4499 
Mean = 717.6608 | Best = 889.0718 
Mean = 730.5363 | Best = 889.0718 
Islands GA | epoch = 7 
Mean = 738.3542 | Best = 889.1206 
Mean = 734.7679 | Best = 889.1206 
Mean = 717.6718 | Best = 889.0968 
Mean = 732.7608 | Best = 889.0968 
Mean = 737.5096 | Best = 889.0718 
Mean = 729.3962 | Best = 889.0718 
Mean = 746.0733 | Best = 889.0718 
Mean = 744.9489 | Best = 887.8313 
Mean = 719.2059 | Best = 889.0718 
Mean = 723.8095 | Best = 889.1206 
Islands GA | epoch = 8 
Mean = 710.7825 | Best = 889.1206 
Mean = 700.7958 | Best = 889.1206 
Mean = 737.5831 | Best = 889.1206 
Mean = 724.1664 | Best = 889.0968 
Mean = 700.2731 | Best = 889.0968 
Mean = 715.7933 | Best = 889.0718 
Mean = 714.2359 | Best = 889.0718 
Mean = 705.4079 | Best = 889.0718 
Mean = 705.1887 | Best = 889.1206 
Mean = 734.1791 | Best = 889.2679 
Islands GA | epoch = 9 
Mean = 691.1441 | Best = 889.2679 
Mean = 715.5279 | Best = 889.2679 
Mean = 729.7256 | Best = 889.2679 
Mean = 713.7828 | Best = 889.1206 
Mean = 706.3353 | Best = 889.0968 
Mean = 732.2987 | Best = 889.0968 
Mean = 699.5606 | Best = 889.0718 
Mean = 707.7639 | Best = 889.0718 
Mean = 716.6143 | Best = 889.3451 
Mean = 719.6751 | Best = 889.2679 
Islands GA | epoch = 10 
Mean = 745.4598 | Best = 889.2679 
Mean = 714.8679 | Best = 889.2679 
Mean = 722.9049 | Best = 889.2679 
Mean = 742.1063 | Best = 889.2679 
Mean = 736.7176 | Best = 889.1206 
Mean = 727.4482 | Best = 889.0968 
Mean = 724.1538 | Best = 889.0968 
Mean = 731.1341 | Best = 889.0718 
Mean = 709.7715 | Best = 889.3451 
Mean = 723.0018 | Best = 889.3451 
Islands GA | epoch = 11 
Mean = 708.4715 | Best = 889.3451 
Mean = 709.5038 | Best = 889.2679 
Mean = 713.9619 | Best = 889.2679 
Mean = 707.3933 | Best = 889.2679 
Mean = 704.4775 | Best = 889.2679 
Mean = 715.6324 | Best = 889.1206 
Mean = 693.2262 | Best = 889.3130 
Mean = 707.2487 | Best = 889.0968 
Mean = 709.6742 | Best = 889.3451 
Mean = 719.9143 | Best = 889.3451 
Islands GA | epoch = 12 
Mean = 688.6248 | Best = 889.3451 
Mean = 694.1650 | Best = 889.3451 
Mean = 712.1580 | Best = 889.2679 
Mean = 694.3948 | Best = 889.2679 
Mean = 717.5174 | Best = 889.2679 
Mean = 684.2135 | Best = 889.2679 
Mean = 707.9099 | Best = 889.3130 
Mean = 716.6741 | Best = 889.3130 
Mean = 711.9328 | Best = 889.3451 
Mean = 723.3989 | Best = 889.3451 
Islands GA | epoch = 13 
Mean = 698.6632 | Best = 889.3451 
Mean = 710.2842 | Best = 889.3451 
Mean = 713.9819 | Best = 889.3451 
Mean = 704.8040 | Best = 889.2679 
Mean = 687.2767 | Best = 889.2679 
Mean = 725.1310 | Best = 889.2679 
Mean = 740.9220 | Best = 889.3130 
Mean = 702.6289 | Best = 889.3130 
Mean = 708.9636 | Best = 889.3451 
Mean = 703.9057 | Best = 889.3451 
Islands GA | epoch = 14 
Mean = 730.2980 | Best = 889.3451 
Mean = 713.7150 | Best = 889.3451 
Mean = 729.2692 | Best = 889.3451 
Mean = 712.9018 | Best = 889.3451 
Mean = 725.4571 | Best = 889.2679 
Mean = 713.0670 | Best = 889.2679 
Mean = 718.9795 | Best = 889.3130 
Mean = 703.9784 | Best = 889.3130 
Mean = 729.6529 | Best = 889.3451 
Mean = 707.2566 | Best = 889.3451 
Islands GA | epoch = 15 
Mean = 734.8192 | Best = 889.3451 
Mean = 714.9505 | Best = 889.3451 
Mean = 716.8834 | Best = 889.3451 
Mean = 709.0267 | Best = 889.3451 
Mean = 720.2023 | Best = 889.3451 
Mean = 733.9008 | Best = 889.2679 
Mean = 706.6365 | Best = 889.3130 
Mean = 740.4043 | Best = 889.3130 
Mean = 725.1075 | Best = 889.3451 
Mean = 711.3050 | Best = 889.3451 
Islands GA | epoch = 16 
Mean = 713.8501 | Best = 889.3451 
Mean = 731.1365 | Best = 889.3451 
Mean = 729.5076 | Best = 889.3451 
Mean = 727.1919 | Best = 889.3451 
Mean = 712.6666 | Best = 889.3451 
Mean = 728.4327 | Best = 889.3451 
Mean = 720.2717 | Best = 889.3130 
Mean = 721.3288 | Best = 889.3130 
Mean = 714.5918 | Best = 889.3451 
Mean = 728.4865 | Best = 889.3451 
Islands GA | epoch = 17 
Mean = 709.1788 | Best = 889.3451 
Mean = 713.8830 | Best = 889.3451 
Mean = 704.8183 | Best = 889.3451 
Mean = 715.7127 | Best = 889.3451 
Mean = 713.6488 | Best = 889.3451 
Mean = 677.0011 | Best = 889.3451 
Mean = 722.7040 | Best = 889.3451 
Mean = 716.6282 | Best = 889.3130 
Mean = 695.3853 | Best = 889.3451 
Mean = 712.0048 | Best = 889.3451 
Islands GA | epoch = 18 
Mean = 731.0439 | Best = 889.3451 
Mean = 730.5578 | Best = 889.3451 
Mean = 730.2195 | Best = 889.3451 
Mean = 721.0348 | Best = 889.3451 
Mean = 727.1319 | Best = 889.3451 
Mean = 726.2760 | Best = 889.3451 
Mean = 721.7038 | Best = 889.3451 
Mean = 727.1417 | Best = 889.3451 
Mean = 732.3234 | Best = 889.3451 
Mean = 740.8243 | Best = 889.3451 
Islands GA | epoch = 19 
Mean = 718.5944 | Best = 889.3451 
Mean = 711.7786 | Best = 889.3451 
Mean = 718.9832 | Best = 889.3451 
Mean = 733.4574 | Best = 889.3451 
Mean = 694.4277 | Best = 889.3451 
Mean = 702.2689 | Best = 889.3451 
Mean = 702.0511 | Best = 889.3451 
Mean = 741.3803 | Best = 889.3451 
Mean = 721.8151 | Best = 889.3451 
Mean = 714.6448 | Best = 889.3451 
Islands GA | epoch = 20 
Mean = 750.3281 | Best = 889.3451 
Mean = 723.1534 | Best = 889.3451 
Mean = 739.2513 | Best = 889.3451 
Mean = 713.1546 | Best = 889.3451 
Mean = 696.7565 | Best = 889.3451 
Mean = 714.4532 | Best = 889.3451 
Mean = 700.0251 | Best = 889.3451 
Mean = 722.2477 | Best = 889.3451 
Mean = 689.3155 | Best = 889.3451 
Mean = 732.2445 | Best = 889.3451 
Islands GA | epoch = 21 
Mean = 731.8322 | Best = 889.3451 
Mean = 743.5804 | Best = 889.3451 
Mean = 744.4131 | Best = 889.3451 
Mean = 732.0429 | Best = 889.3451 
Mean = 728.6270 | Best = 889.3451 
Mean = 715.2836 | Best = 889.3451 
Mean = 728.7116 | Best = 889.3451 
Mean = 733.3346 | Best = 889.3451 
Mean = 721.0825 | Best = 889.3451 
Mean = 711.3768 | Best = 889.3451 
Islands GA | epoch = 22 
Mean = 722.1230 | Best = 889.3451 
Mean = 723.6056 | Best = 889.3451 
Mean = 710.9272 | Best = 889.3451 
Mean = 718.5941 | Best = 889.3451 
Mean = 724.3046 | Best = 889.3451 
Mean = 711.8539 | Best = 889.3451 
Mean = 716.9851 | Best = 889.3451 
Mean = 711.1759 | Best = 889.3451 
Mean = 719.9918 | Best = 889.3451 
Mean = 726.6262 | Best = 889.3451 
Islands GA | epoch = 23 
Mean = 703.8007 | Best = 889.3451 
Mean = 730.3286 | Best = 889.3451 
Mean = 717.2836 | Best = 889.3451 
Mean = 732.5340 | Best = 889.3451 
Mean = 727.8610 | Best = 889.3451 
Mean = 708.9426 | Best = 889.3451 
Mean = 717.7000 | Best = 889.3451 
Mean = 739.3046 | Best = 889.3451 
Mean = 710.3433 | Best = 889.3451 
Mean = 703.7097 | Best = 889.3451 
Islands GA | epoch = 24 
Mean = 723.0696 | Best = 889.3451 
Mean = 705.0616 | Best = 889.3451 
Mean = 711.8625 | Best = 889.3451 
Mean = 718.2158 | Best = 889.3451 
Mean = 713.5556 | Best = 889.3451 
Mean = 717.5148 | Best = 889.3451 
Mean = 714.3582 | Best = 889.3451 
Mean = 708.0094 | Best = 889.3451 
Mean = 709.9767 | Best = 889.3451 
Mean = 710.4903 | Best = 889.3451 
Islands GA | epoch = 25 
Mean = 699.6559 | Best = 889.3451 
Mean = 711.2465 | Best = 889.3451 
Mean = 706.3284 | Best = 889.3451 
Mean = 730.6167 | Best = 889.3451 
Mean = 701.6481 | Best = 889.3451 
Mean = 714.8995 | Best = 889.3451 
Mean = 710.9079 | Best = 889.3451 
Mean = 697.2195 | Best = 889.3451 
Mean = 714.6761 | Best = 889.3451 
Mean = 729.2536 | Best = 889.3451 
Islands GA | epoch = 26 
Mean = 727.1387 | Best = 889.3451 
Mean = 721.0868 | Best = 889.3451 
Mean = 738.6193 | Best = 889.3451 
Mean = 721.5869 | Best = 889.3451 
Mean = 725.7126 | Best = 889.3451 
Mean = 725.5084 | Best = 889.3451 
Mean = 717.5997 | Best = 889.3451 
Mean = 708.9387 | Best = 889.3451 
Mean = 731.8172 | Best = 889.3451 
Mean = 720.8851 | Best = 889.3451 
Islands GA | epoch = 27 
Mean = 736.2970 | Best = 889.3451 
Mean = 723.8616 | Best = 889.3451 
Mean = 712.2832 | Best = 889.3451 
Mean = 703.1460 | Best = 889.3451 
Mean = 713.9122 | Best = 889.3451 
Mean = 705.4421 | Best = 889.3451 
Mean = 712.9991 | Best = 889.3451 
Mean = 708.4024 | Best = 889.3451 
Mean = 724.9656 | Best = 889.3451 
Mean = 728.9130 | Best = 889.3451 
Islands GA | epoch = 28 
Mean = 684.5862 | Best = 889.3451 
Mean = 692.3386 | Best = 889.3451 
Mean = 703.9962 | Best = 889.3451 
Mean = 712.5170 | Best = 889.3451 
Mean = 711.0164 | Best = 889.3451 
Mean = 707.1617 | Best = 889.3451 
Mean = 711.2106 | Best = 889.3451 
Mean = 713.4858 | Best = 889.3451 
Mean = 681.1166 | Best = 889.3451 
Mean = 697.1496 | Best = 889.3451 
Islands GA | epoch = 29 
Mean = 729.5648 | Best = 889.3451 
Mean = 731.1560 | Best = 889.3451 
Mean = 721.3995 | Best = 889.3451 
Mean = 718.7420 | Best = 889.3451 
Mean = 714.5032 | Best = 889.3451 
Mean = 720.1359 | Best = 889.3451 
Mean = 727.7934 | Best = 889.3451 
Mean = 696.6247 | Best = 889.3451 
Mean = 711.7402 | Best = 889.3451 
Mean = 724.2354 | Best = 889.3451 
Islands GA | epoch = 30 
Mean = 719.1516 | Best = 889.3451 
Mean = 722.1983 | Best = 889.3451 
Mean = 743.9363 | Best = 889.3451 
Mean = 738.1215 | Best = 889.3451 
Mean = 747.7430 | Best = 889.3451 
Mean = 718.0279 | Best = 889.3451 
Mean = 721.1495 | Best = 889.3451 
Mean = 706.9292 | Best = 889.3451 
Mean = 707.3663 | Best = 889.3451 
Mean = 735.8480 | Best = 889.3451 
Islands GA | epoch = 31 
Mean = 719.8935 | Best = 889.3451 
Mean = 720.5319 | Best = 889.3451 
Mean = 724.0488 | Best = 889.3451 
Mean = 734.7353 | Best = 889.3451 
Mean = 719.3122 | Best = 889.3451 
Mean = 706.9456 | Best = 889.3451 
Mean = 728.0575 | Best = 889.3451 
Mean = 714.7167 | Best = 889.3451 
Mean = 736.0575 | Best = 889.3451 
Mean = 719.1664 | Best = 889.3451 
Islands GA | epoch = 32 
Mean = 714.7039 | Best = 889.3451 
Mean = 720.0211 | Best = 889.3451 
Mean = 725.5461 | Best = 889.3451 
Mean = 735.4877 | Best = 889.3451 
Mean = 721.3693 | Best = 889.3451 
Mean = 713.8772 | Best = 889.3451 
Mean = 705.6744 | Best = 889.3451 
Mean = 714.6119 | Best = 889.3451 
Mean = 711.9183 | Best = 889.3451 
Mean = 688.8407 | Best = 889.3451 
Islands GA | epoch = 33 
Mean = 723.0214 | Best = 889.3451 
Mean = 703.0174 | Best = 889.3451 
Mean = 712.1323 | Best = 889.3451 
Mean = 711.2041 | Best = 889.3451 
Mean = 708.6627 | Best = 889.3451 
Mean = 726.3465 | Best = 889.3451 
Mean = 725.4733 | Best = 889.3451 
Mean = 688.7768 | Best = 889.3451 
Mean = 699.6186 | Best = 889.3451 
Mean = 704.0150 | Best = 889.3451 
Islands GA | epoch = 34 
Mean = 725.7013 | Best = 889.3451 
Mean = 713.5642 | Best = 889.3451 
Mean = 721.5967 | Best = 889.3451 
Mean = 710.1844 | Best = 889.3451 
Mean = 729.5918 | Best = 889.3451 
Mean = 716.4178 | Best = 889.3451 
Mean = 721.1807 | Best = 889.3451 
Mean = 693.0606 | Best = 889.3451 
Mean = 709.0640 | Best = 889.3451 
Mean = 720.6869 | Best = 889.3451 
Islands GA | epoch = 35 
Mean = 703.0729 | Best = 889.3451 
Mean = 708.5638 | Best = 889.3451 
Mean = 712.3669 | Best = 889.3451 
Mean = 718.9705 | Best = 889.3451 
Mean = 725.8612 | Best = 889.3451 
Mean = 699.9453 | Best = 889.3451 
Mean = 712.6696 | Best = 889.3451 
Mean = 702.9359 | Best = 889.3451 
Mean = 694.5885 | Best = 889.3451 
Mean = 715.8182 | Best = 889.3451 
Islands GA | epoch = 36 
Mean = 715.0273 | Best = 889.3451 
Mean = 720.7210 | Best = 889.3451 
Mean = 735.9738 | Best = 889.3451 
Mean = 740.5833 | Best = 889.3451 
Mean = 747.2137 | Best = 889.3451 
Mean = 748.8648 | Best = 889.3451 
Mean = 747.5112 | Best = 889.3451 
Mean = 725.3222 | Best = 889.3451 
Mean = 740.2080 | Best = 889.3451 
Mean = 709.5971 | Best = 889.3451 
Islands GA | epoch = 37 
Mean = 706.2994 | Best = 889.3451 
Mean = 694.0151 | Best = 889.3451 
Mean = 717.5887 | Best = 889.3451 
Mean = 728.3202 | Best = 889.3451 
Mean = 727.3277 | Best = 889.3451 
Mean = 733.6575 | Best = 889.3451 
Mean = 715.2797 | Best = 889.3451 
Mean = 698.4901 | Best = 889.3451 
Mean = 706.7510 | Best = 889.3451 
Mean = 701.2825 | Best = 889.3451 
Islands GA | epoch = 38 
Mean = 725.5884 | Best = 889.3451 
Mean = 721.7566 | Best = 889.3451 
Mean = 720.0841 | Best = 889.3451 
Mean = 726.5110 | Best = 889.3451 
Mean = 722.7435 | Best = 889.3451 
Mean = 712.8511 | Best = 889.3451 
Mean = 710.3744 | Best = 889.3451 
Mean = 722.6485 | Best = 889.3451 
Mean = 723.6987 | Best = 889.3451 
Mean = 707.1139 | Best = 889.3463 
Islands GA | epoch = 39 
Mean = 707.0769 | Best = 889.3463 
Mean = 705.5634 | Best = 889.3451 
Mean = 722.3225 | Best = 889.3451 
Mean = 731.3443 | Best = 889.3451 
Mean = 729.0838 | Best = 889.3451 
Mean = 708.9861 | Best = 889.3451 
Mean = 716.1674 | Best = 889.3451 
Mean = 690.2781 | Best = 889.3451 
Mean = 687.0438 | Best = 889.3451 
Mean = 700.5677 | Best = 889.3463 
Islands GA | epoch = 40 
Mean = 728.4055 | Best = 889.3463 
Mean = 715.7465 | Best = 889.3463 
Mean = 739.2218 | Best = 889.3451 
Mean = 720.2210 | Best = 889.3451 
Mean = 722.7759 | Best = 889.3451 
Mean = 721.8417 | Best = 889.3451 
Mean = 720.5090 | Best = 889.3451 
Mean = 703.7222 | Best = 889.3451 
Mean = 730.6130 | Best = 889.3451 
Mean = 725.1340 | Best = 889.3463 
Islands GA | epoch = 41 
Mean = 708.4215 | Best = 889.3463 
Mean = 723.7330 | Best = 889.3463 
Mean = 746.3723 | Best = 889.3463 
Mean = 746.2588 | Best = 889.3451 
Mean = 759.3733 | Best = 889.3451 
Mean = 736.6681 | Best = 889.3451 
Mean = 717.7432 | Best = 889.3451 
Mean = 735.4713 | Best = 889.3451 
Mean = 752.1483 | Best = 889.3451 
Mean = 725.6131 | Best = 889.3463 
Islands GA | epoch = 42 
Mean = 705.1787 | Best = 889.3463 
Mean = 710.6150 | Best = 889.3463 
Mean = 703.1485 | Best = 889.3463 
Mean = 694.0360 | Best = 889.3463 
Mean = 699.1662 | Best = 889.3451 
Mean = 710.6078 | Best = 889.3451 
Mean = 695.9405 | Best = 889.3451 
Mean = 720.2797 | Best = 889.3451 
Mean = 721.4623 | Best = 889.3451 
Mean = 705.4826 | Best = 889.3463 
Islands GA | epoch = 43 
Mean = 717.7615 | Best = 889.3463 
Mean = 712.8933 | Best = 889.3463 
Mean = 711.1698 | Best = 889.3463 
Mean = 715.2688 | Best = 889.3463 
Mean = 723.7285 | Best = 889.3463 
Mean = 722.4425 | Best = 889.3451 
Mean = 712.0744 | Best = 889.3451 
Mean = 713.5984 | Best = 889.3451 
Mean = 732.6141 | Best = 889.3451 
Mean = 707.8991 | Best = 889.3463 
Islands GA | epoch = 44 
Mean = 699.3413 | Best = 889.3463 
Mean = 706.0765 | Best = 889.3463 
Mean = 708.1070 | Best = 889.3463 
Mean = 700.4450 | Best = 889.3463 
Mean = 710.8239 | Best = 889.3463 
Mean = 701.7915 | Best = 889.3463 
Mean = 698.3466 | Best = 889.3451 
Mean = 701.0413 | Best = 889.3451 
Mean = 707.8476 | Best = 889.3451 
Mean = 697.8437 | Best = 889.3463 
Islands GA | epoch = 45 
Mean = 703.2281 | Best = 889.3463 
Mean = 713.0701 | Best = 889.3463 
Mean = 700.6363 | Best = 889.3463 
Mean = 720.4159 | Best = 889.3463 
Mean = 709.3618 | Best = 889.3463 
Mean = 712.5642 | Best = 889.3463 
Mean = 699.9781 | Best = 889.3463 
Mean = 712.3913 | Best = 889.3451 
Mean = 722.4473 | Best = 889.3451 
Mean = 698.6481 | Best = 889.3463 
Islands GA | epoch = 46 
Mean = 710.8135 | Best = 889.3463 
Mean = 702.8248 | Best = 889.3463 
Mean = 709.6822 | Best = 889.3463 
Mean = 709.0300 | Best = 889.3463 
Mean = 697.0036 | Best = 889.3463 
Mean = 695.1211 | Best = 889.3463 
Mean = 695.1634 | Best = 889.3463 
Mean = 695.2875 | Best = 889.3463 
Mean = 713.1263 | Best = 889.3451 
Mean = 714.3364 | Best = 889.3463 
Islands GA | epoch = 47 
Mean = 717.5464 | Best = 889.3463 
Mean = 726.5639 | Best = 889.3463 
Mean = 691.2624 | Best = 889.3463 
Mean = 713.1037 | Best = 889.3463 
Mean = 706.2619 | Best = 889.3463 
Mean = 696.8085 | Best = 889.3463 
Mean = 707.7323 | Best = 889.3463 
Mean = 719.4456 | Best = 889.3463 
Mean = 701.0978 | Best = 889.3463 
Mean = 707.0110 | Best = 889.3463 
Islands GA | epoch = 48 
Mean = 701.2730 | Best = 889.3463 
Mean = 721.9477 | Best = 889.3463 
Mean = 715.8458 | Best = 889.3463 
Mean = 704.1006 | Best = 889.3463 
Mean = 705.3533 | Best = 889.3463 
Mean = 713.5720 | Best = 889.3463 
Mean = 707.6969 | Best = 889.3463 
Mean = 702.4454 | Best = 889.3463 
Mean = 710.6866 | Best = 889.3463 
Mean = 720.1110 | Best = 889.3463 
Islands GA | epoch = 49 
Mean = 737.6002 | Best = 889.3463 
Mean = 715.4409 | Best = 889.3463 
Mean = 711.3576 | Best = 889.3463 
Mean = 728.6819 | Best = 889.3463 
Mean = 714.2186 | Best = 889.3463 
Mean = 739.8949 | Best = 889.3463 
Mean = 729.3188 | Best = 889.3463 
Mean = 720.5660 | Best = 889.3463 
Mean = 719.7952 | Best = 889.3463 
Mean = 727.8132 | Best = 889.3463 
Islands GA | epoch = 50 
Mean = 701.1346 | Best = 889.3463 
Mean = 715.5059 | Best = 889.3463 
Mean = 718.4528 | Best = 889.3463 
Mean = 714.3969 | Best = 889.3463 
Mean = 699.7792 | Best = 889.3463 
Mean = 719.2820 | Best = 889.3463 
Mean = 703.8880 | Best = 889.3463 
Mean = 704.6552 | Best = 889.3463 
Mean = 709.7946 | Best = 889.3463 
Mean = 706.3382 | Best = 889.3463 
Islands GA | epoch = 51 
Mean = 722.4254 | Best = 889.3463 
Mean = 700.4196 | Best = 889.3463 
Mean = 687.8618 | Best = 889.3463 
Mean = 705.9271 | Best = 889.3463 
Mean = 709.7897 | Best = 889.3463 
Mean = 689.6321 | Best = 889.3463 
Mean = 710.5307 | Best = 889.3463 
Mean = 708.5309 | Best = 889.3463 
Mean = 722.2209 | Best = 889.3463 
Mean = 719.6353 | Best = 889.3463 
Islands GA | epoch = 52 
Mean = 714.7331 | Best = 889.3463 
Mean = 705.9265 | Best = 889.3463 
Mean = 729.7181 | Best = 889.3463 
Mean = 715.0904 | Best = 889.3463 
Mean = 704.3228 | Best = 889.3463 
Mean = 711.8561 | Best = 889.3463 
Mean = 740.4907 | Best = 889.3463 
Mean = 712.5593 | Best = 889.3463 
Mean = 701.5097 | Best = 889.3463 
Mean = 711.2609 | Best = 889.3463 
Islands GA | epoch = 53 
Mean = 731.6728 | Best = 889.3463 
Mean = 716.5959 | Best = 889.3463 
Mean = 717.9230 | Best = 889.3463 
Mean = 706.0481 | Best = 889.3463 
Mean = 722.7583 | Best = 889.3463 
Mean = 713.0076 | Best = 889.3463 
Mean = 713.5838 | Best = 889.3463 
Mean = 706.4586 | Best = 889.3463 
Mean = 704.2583 | Best = 889.3463 
Mean = 739.1283 | Best = 889.3463 
Islands GA | epoch = 54 
Mean = 719.9158 | Best = 889.3463 
Mean = 719.8384 | Best = 889.3463 
Mean = 712.5920 | Best = 889.3463 
Mean = 685.3469 | Best = 889.3463 
Mean = 700.7312 | Best = 889.3463 
Mean = 683.0086 | Best = 889.3463 
Mean = 701.7022 | Best = 889.3463 
Mean = 708.1940 | Best = 889.3463 
Mean = 708.4962 | Best = 889.3463 
Mean = 700.7593 | Best = 889.3463 
Islands GA | epoch = 55 
Mean = 730.1058 | Best = 889.3463 
Mean = 708.6279 | Best = 889.3463 
Mean = 699.5185 | Best = 889.3463 
Mean = 697.6718 | Best = 889.3463 
Mean = 682.0039 | Best = 889.3463 
Mean = 674.0615 | Best = 889.3463 
Mean = 693.2050 | Best = 889.3463 
Mean = 701.1014 | Best = 889.3463 
Mean = 690.9995 | Best = 889.3463 
Mean = 710.6395 | Best = 889.3463 
Islands GA | epoch = 56 
Mean = 723.8968 | Best = 889.3463 
Mean = 720.4027 | Best = 889.3463 
Mean = 702.6391 | Best = 889.3463 
Mean = 723.8799 | Best = 889.3463 
Mean = 687.8867 | Best = 889.3463 
Mean = 719.0058 | Best = 889.3463 
Mean = 716.8695 | Best = 889.3463 
Mean = 714.5731 | Best = 889.3463 
Mean = 706.7012 | Best = 889.3463 
Mean = 705.7800 | Best = 889.3463 
Islands GA | epoch = 57 
Mean = 706.0806 | Best = 889.3463 
Mean = 714.9203 | Best = 889.3463 
Mean = 704.9090 | Best = 889.3463 
Mean = 711.4655 | Best = 889.3463 
Mean = 722.2607 | Best = 889.3463 
Mean = 708.9121 | Best = 889.3463 
Mean = 710.2978 | Best = 889.3463 
Mean = 689.7137 | Best = 889.3463 
Mean = 712.3006 | Best = 889.3463 
Mean = 694.6441 | Best = 889.3463 
Islands GA | epoch = 58 
Mean = 735.5027 | Best = 889.3463 
Mean = 719.0570 | Best = 889.3463 
Mean = 723.6722 | Best = 889.3463 
Mean = 705.4451 | Best = 889.3463 
Mean = 732.7974 | Best = 889.3463 
Mean = 711.0540 | Best = 889.3463 
Mean = 709.0616 | Best = 889.3463 
Mean = 712.8631 | Best = 889.3463 
Mean = 709.7790 | Best = 889.3463 
Mean = 727.8794 | Best = 889.3463 
Islands GA | epoch = 59 
Mean = 726.5049 | Best = 889.3463 
Mean = 696.4695 | Best = 889.3463 
Mean = 702.4595 | Best = 889.3463 
Mean = 704.0031 | Best = 889.3463 
Mean = 702.0852 | Best = 889.3463 
Mean = 711.5135 | Best = 889.3463 
Mean = 712.0767 | Best = 889.3463 
Mean = 706.2633 | Best = 889.3463 
Mean = 699.4441 | Best = 889.3463 
Mean = 723.8635 | Best = 889.3463 
Islands GA | epoch = 60 
Mean = 714.9486 | Best = 889.3463 
Mean = 738.5875 | Best = 889.3463 
Mean = 704.5261 | Best = 889.3463 
Mean = 708.5636 | Best = 889.3463 
Mean = 709.0581 | Best = 889.3463 
Mean = 705.1685 | Best = 889.3463 
Mean = 713.2935 | Best = 889.3463 
Mean = 721.0033 | Best = 889.3463 
Mean = 717.4486 | Best = 889.3463 
Mean = 708.0865 | Best = 889.3463 
Islands GA | epoch = 61 
Mean = 720.0223 | Best = 889.3463 
Mean = 722.6064 | Best = 889.3463 
Mean = 721.0393 | Best = 889.3463 
Mean = 717.2039 | Best = 889.3463 
Mean = 694.3631 | Best = 889.3463 
Mean = 716.0967 | Best = 889.3463 
Mean = 703.4509 | Best = 889.3463 
Mean = 710.4470 | Best = 889.3463 
Mean = 718.7834 | Best = 889.3463 
Mean = 712.2316 | Best = 889.3463 
Islands GA | epoch = 62 
Mean = 732.5320 | Best = 889.3463 
Mean = 721.7463 | Best = 889.3463 
Mean = 707.4312 | Best = 889.3463 
Mean = 727.2047 | Best = 889.3463 
Mean = 698.5351 | Best = 889.3463 
Mean = 740.1416 | Best = 889.3463 
Mean = 722.9749 | Best = 889.3463 
Mean = 730.4433 | Best = 889.3463 
Mean = 723.1139 | Best = 889.3463 
Mean = 727.5609 | Best = 889.3463 
Islands GA | epoch = 63 
Mean = 712.9914 | Best = 889.3463 
Mean = 716.9861 | Best = 889.3463 
Mean = 704.8722 | Best = 889.3463 
Mean = 717.3400 | Best = 889.3463 
Mean = 702.7355 | Best = 889.3463 
Mean = 701.9524 | Best = 889.3463 
Mean = 704.3143 | Best = 889.3463 
Mean = 699.0218 | Best = 889.3463 
Mean = 705.4604 | Best = 889.3463 
Mean = 733.9407 | Best = 889.3463 
Islands GA | epoch = 64 
Mean = 698.8307 | Best = 889.3463 
Mean = 711.0352 | Best = 889.3463 
Mean = 693.3747 | Best = 889.3463 
Mean = 702.0580 | Best = 889.3463 
Mean = 697.4378 | Best = 889.3463 
Mean = 707.9121 | Best = 889.3463 
Mean = 700.1955 | Best = 889.3463 
Mean = 682.0118 | Best = 889.3463 
Mean = 700.6676 | Best = 889.3463 
Mean = 694.7747 | Best = 889.3463 
Islands GA | epoch = 65 
Mean = 721.5696 | Best = 889.3463 
Mean = 718.9136 | Best = 889.3463 
Mean = 724.0031 | Best = 889.3463 
Mean = 683.7147 | Best = 889.3463 
Mean = 690.7634 | Best = 889.3463 
Mean = 707.1623 | Best = 889.3463 
Mean = 719.6037 | Best = 889.3463 
Mean = 732.1548 | Best = 889.3463 
Mean = 711.6176 | Best = 889.3463 
Mean = 710.4071 | Best = 889.3463 
Islands GA | epoch = 66 
Mean = 728.2607 | Best = 889.3463 
Mean = 715.3523 | Best = 889.3463 
Mean = 738.1399 | Best = 889.3463 
Mean = 719.0990 | Best = 889.3463 
Mean = 726.5309 | Best = 889.3463 
Mean = 723.8233 | Best = 889.3463 
Mean = 710.8741 | Best = 889.3463 
Mean = 710.6330 | Best = 889.3463 
Mean = 724.0710 | Best = 889.3463 
Mean = 723.6402 | Best = 889.3463 
Islands GA | epoch = 67 
Mean = 724.5428 | Best = 889.3463 
Mean = 714.5810 | Best = 889.3463 
Mean = 718.4116 | Best = 889.3463 
Mean = 722.9440 | Best = 889.3463 
Mean = 717.4454 | Best = 889.3463 
Mean = 732.4620 | Best = 889.3463 
Mean = 714.1495 | Best = 889.3463 
Mean = 705.8537 | Best = 889.3463 
Mean = 716.4120 | Best = 889.3463 
Mean = 719.1077 | Best = 889.3463 
Islands GA | epoch = 68 
Mean = 711.5929 | Best = 889.3463 
Mean = 734.0231 | Best = 889.3463 
Mean = 720.3821 | Best = 889.3463 
Mean = 725.8833 | Best = 889.3463 
Mean = 720.2296 | Best = 889.3463 
Mean = 732.4912 | Best = 889.3463 
Mean = 732.3787 | Best = 889.3463 
Mean = 734.1502 | Best = 889.3463 
Mean = 724.0624 | Best = 889.3463 
Mean = 737.5952 | Best = 889.3463 
Islands GA | epoch = 69 
Mean = 708.0838 | Best = 889.3463 
Mean = 696.5347 | Best = 889.3463 
Mean = 709.9432 | Best = 889.3463 
Mean = 710.8635 | Best = 889.3463 
Mean = 708.4265 | Best = 889.3463 
Mean = 726.5017 | Best = 889.3463 
Mean = 696.2474 | Best = 889.3463 
Mean = 719.8391 | Best = 889.3463 
Mean = 713.8975 | Best = 889.3463 
Mean = 701.7467 | Best = 889.3463 
Islands GA | epoch = 70 
Mean = 718.6771 | Best = 889.3463 
Mean = 717.7647 | Best = 889.3463 
Mean = 706.3235 | Best = 889.3463 
Mean = 726.8329 | Best = 889.3463 
Mean = 706.0316 | Best = 889.3463 
Mean = 732.6148 | Best = 889.3463 
Mean = 713.5336 | Best = 889.3463 
Mean = 720.8251 | Best = 889.3463 
Mean = 729.4543 | Best = 889.3463 
Mean = 710.5283 | Best = 889.3463 
Islands GA | epoch = 71 
Mean = 708.2285 | Best = 889.3463 
Mean = 695.2652 | Best = 889.3463 
Mean = 741.9586 | Best = 889.3463 
Mean = 709.4186 | Best = 889.3463 
Mean = 726.1463 | Best = 889.3463 
Mean = 704.8649 | Best = 889.3463 
Mean = 732.3109 | Best = 889.3463 
Mean = 720.5153 | Best = 889.3463 
Mean = 713.3161 | Best = 889.3463 
Mean = 715.8704 | Best = 889.3463 
Islands GA | epoch = 72 
Mean = 721.1232 | Best = 889.3463 
Mean = 700.2319 | Best = 889.3463 
Mean = 713.7909 | Best = 889.3463 
Mean = 727.7172 | Best = 889.3463 
Mean = 724.6944 | Best = 889.3463 
Mean = 721.8255 | Best = 889.3463 
Mean = 729.4468 | Best = 889.3463 
Mean = 710.0125 | Best = 889.3463 
Mean = 711.2250 | Best = 889.3463 
Mean = 719.4051 | Best = 889.3463 
Islands GA | epoch = 73 
Mean = 706.6217 | Best = 889.3463 
Mean = 705.2106 | Best = 889.3463 
Mean = 702.7584 | Best = 889.3463 
Mean = 704.1513 | Best = 889.3463 
Mean = 723.2252 | Best = 889.3463 
Mean = 718.0192 | Best = 889.3463 
Mean = 740.8707 | Best = 889.3463 
Mean = 731.3235 | Best = 889.3463 
Mean = 714.6364 | Best = 889.3463 
Mean = 721.7843 | Best = 889.3463 
Islands GA | epoch = 74 
Mean = 704.6806 | Best = 889.3463 
Mean = 713.8727 | Best = 889.3463 
Mean = 712.6696 | Best = 889.3463 
Mean = 706.7113 | Best = 889.3463 
Mean = 705.3454 | Best = 889.3463 
Mean = 730.5209 | Best = 889.3463 
Mean = 719.3088 | Best = 889.3463 
Mean = 740.6765 | Best = 889.3463 
Mean = 728.7656 | Best = 889.3463 
Mean = 721.3135 | Best = 889.3463 
Islands GA | epoch = 75 
Mean = 716.2790 | Best = 889.3463 
Mean = 725.4038 | Best = 889.3463 
Mean = 742.8670 | Best = 889.3463 
Mean = 726.6637 | Best = 889.3463 
Mean = 697.9579 | Best = 889.3463 
Mean = 734.9292 | Best = 889.3463 
Mean = 719.0175 | Best = 889.3463 
Mean = 715.8890 | Best = 889.3463 
Mean = 714.4945 | Best = 889.3463 
Mean = 696.3560 | Best = 889.3463 
Islands GA | epoch = 76 
Mean = 703.7220 | Best = 889.3463 
Mean = 715.2648 | Best = 889.3463 
Mean = 710.4954 | Best = 889.3463 
Mean = 719.1808 | Best = 889.3463 
Mean = 723.7505 | Best = 889.3463 
Mean = 722.4112 | Best = 889.3463 
Mean = 708.1172 | Best = 889.3463 
Mean = 703.3911 | Best = 889.3463 
Mean = 708.9017 | Best = 889.3463 
Mean = 720.4245 | Best = 889.3463 
Islands GA | epoch = 77 
Mean = 712.6776 | Best = 889.3463 
Mean = 705.7334 | Best = 889.3463 
Mean = 714.2045 | Best = 889.3463 
Mean = 708.5671 | Best = 889.3463 
Mean = 719.7207 | Best = 889.3463 
Mean = 738.1108 | Best = 889.3463 
Mean = 721.0908 | Best = 889.3463 
Mean = 727.0116 | Best = 889.3463 
Mean = 726.6836 | Best = 889.3463 
Mean = 696.9150 | Best = 889.3463 
Islands GA | epoch = 78 
Mean = 705.1369 | Best = 889.3463 
Mean = 723.1865 | Best = 889.3463 
Mean = 707.8786 | Best = 889.3463 
Mean = 721.2151 | Best = 889.3463 
Mean = 693.1281 | Best = 889.3463 
Mean = 716.8877 | Best = 889.3463 
Mean = 712.0691 | Best = 889.3463 
Mean = 713.9599 | Best = 889.3463 
Mean = 720.9542 | Best = 889.3463 
Mean = 705.9781 | Best = 889.3463 
Islands GA | epoch = 79 
Mean = 698.6474 | Best = 889.3463 
Mean = 721.8048 | Best = 889.3463 
Mean = 712.8339 | Best = 889.3463 
Mean = 725.5923 | Best = 889.3463 
Mean = 712.9168 | Best = 889.3463 
Mean = 724.3923 | Best = 889.3463 
Mean = 726.9154 | Best = 889.3463 
Mean = 702.7048 | Best = 889.3463 
Mean = 712.6284 | Best = 889.3463 
Mean = 726.3672 | Best = 889.3463 
Islands GA | epoch = 80 
Mean = 700.7763 | Best = 889.3463 
Mean = 671.6299 | Best = 889.3463 
Mean = 707.3752 | Best = 889.3463 
Mean = 709.1033 | Best = 889.3463 
Mean = 711.4728 | Best = 889.3463 
Mean = 701.7355 | Best = 889.3463 
Mean = 699.1079 | Best = 889.3463 
Mean = 721.4191 | Best = 889.3463 
Mean = 681.8817 | Best = 889.3463 
Mean = 699.8844 | Best = 889.3463 
Islands GA | epoch = 81 
Mean = 698.1483 | Best = 889.3463 
Mean = 728.0320 | Best = 889.3463 
Mean = 714.5445 | Best = 889.3463 
Mean = 711.1842 | Best = 889.3463 
Mean = 715.6604 | Best = 889.3463 
Mean = 707.0066 | Best = 889.3463 
Mean = 735.4419 | Best = 889.3463 
Mean = 730.8238 | Best = 889.3463 
Mean = 688.3930 | Best = 889.3463 
Mean = 720.9666 | Best = 889.3463 
Islands GA | epoch = 82 
Mean = 686.0330 | Best = 889.3463 
Mean = 703.8758 | Best = 889.3463 
Mean = 716.5177 | Best = 889.3463 
Mean = 715.2153 | Best = 889.3463 
Mean = 722.1762 | Best = 889.3463 
Mean = 694.7595 | Best = 889.3463 
Mean = 713.2850 | Best = 889.3463 
Mean = 712.0895 | Best = 889.3463 
Mean = 689.6849 | Best = 889.3463 
Mean = 716.3290 | Best = 889.3463 
Islands GA | epoch = 83 
Mean = 699.3379 | Best = 889.3463 
Mean = 710.2166 | Best = 889.3463 
Mean = 708.4960 | Best = 889.3463 
Mean = 718.3105 | Best = 889.3463 
Mean = 707.2130 | Best = 889.3463 
Mean = 713.4750 | Best = 889.3463 
Mean = 717.0682 | Best = 889.3463 
Mean = 706.7272 | Best = 889.3463 
Mean = 696.3306 | Best = 889.3463 
Mean = 715.2268 | Best = 889.3463 
Islands GA | epoch = 84 
Mean = 716.5409 | Best = 889.3463 
Mean = 705.7347 | Best = 889.3463 
Mean = 737.6352 | Best = 889.3463 
Mean = 719.7014 | Best = 889.3463 
Mean = 727.7038 | Best = 889.3463 
Mean = 708.1534 | Best = 889.3463 
Mean = 711.8342 | Best = 889.3463 
Mean = 726.2322 | Best = 889.3463 
Mean = 725.3608 | Best = 889.3463 
Mean = 741.0233 | Best = 889.3463 
Islands GA | epoch = 85 
Mean = 721.1305 | Best = 889.3463 
Mean = 724.8842 | Best = 889.3463 
Mean = 706.7340 | Best = 889.3463 
Mean = 733.3006 | Best = 889.3463 
Mean = 732.3995 | Best = 889.3463 
Mean = 733.4810 | Best = 889.3463 
Mean = 734.8922 | Best = 889.3463 
Mean = 697.4618 | Best = 889.3463 
Mean = 705.8360 | Best = 889.3463 
Mean = 718.0589 | Best = 889.3463 
Islands GA | epoch = 86 
Mean = 698.9382 | Best = 889.3463 
Mean = 713.5047 | Best = 889.3463 
Mean = 740.2591 | Best = 889.3463 
Mean = 706.0498 | Best = 889.3463 
Mean = 719.9918 | Best = 889.3463 
Mean = 723.7416 | Best = 889.3463 
Mean = 700.1121 | Best = 889.3463 
Mean = 692.9180 | Best = 889.3463 
Mean = 691.6563 | Best = 889.3463 
Mean = 702.8540 | Best = 889.3463 
Islands GA | epoch = 87 
Mean = 719.5384 | Best = 889.3463 
Mean = 727.1305 | Best = 889.3463 
Mean = 705.5046 | Best = 889.3463 
Mean = 730.4182 | Best = 889.3463 
Mean = 724.8684 | Best = 889.3463 
Mean = 726.8073 | Best = 889.3463 
Mean = 718.1939 | Best = 889.3463 
Mean = 719.9101 | Best = 889.3463 
Mean = 718.1463 | Best = 889.3463 
Mean = 721.2468 | Best = 889.3463 
Islands GA | epoch = 88 
Mean = 690.1258 | Best = 889.3463 
Mean = 686.6702 | Best = 889.3463 
Mean = 713.9591 | Best = 889.3463 
Mean = 706.4969 | Best = 889.3463 
Mean = 700.8563 | Best = 889.3463 
Mean = 710.4701 | Best = 889.3463 
Mean = 706.6628 | Best = 889.3463 
Mean = 712.6561 | Best = 889.3463 
Mean = 703.0996 | Best = 889.3463 
Mean = 712.7386 | Best = 889.3463 
Islands GA | epoch = 89 
Mean = 717.9497 | Best = 889.3463 
Mean = 714.2740 | Best = 889.3463 
Mean = 732.8816 | Best = 889.3463 
Mean = 702.1048 | Best = 889.3463 
Mean = 724.0918 | Best = 889.3463 
Mean = 716.7999 | Best = 889.3463 
Mean = 698.8528 | Best = 889.3463 
Mean = 703.0410 | Best = 889.3463 
Mean = 702.7213 | Best = 889.3463 
Mean = 707.3899 | Best = 889.3463 
Islands GA | epoch = 90 
Mean = 728.9510 | Best = 889.3463 
Mean = 710.9320 | Best = 889.3463 
Mean = 729.0517 | Best = 889.3463 
Mean = 713.7046 | Best = 889.3463 
Mean = 724.0002 | Best = 889.3463 
Mean = 746.6412 | Best = 889.3463 
Mean = 704.2043 | Best = 889.3463 
Mean = 720.1462 | Best = 889.3463 
Mean = 718.2900 | Best = 889.3463 
Mean = 735.2020 | Best = 889.3463 
Islands GA | epoch = 91 
Mean = 728.5858 | Best = 889.3463 
Mean = 720.1129 | Best = 889.3463 
Mean = 714.8737 | Best = 889.3463 
Mean = 718.3462 | Best = 889.3463 
Mean = 724.8043 | Best = 889.3463 
Mean = 730.5446 | Best = 889.3463 
Mean = 734.6533 | Best = 889.3463 
Mean = 735.6311 | Best = 889.3463 
Mean = 726.1841 | Best = 889.3463 
Mean = 702.6556 | Best = 889.3463 
Islands GA | epoch = 92 
Mean = 724.1594 | Best = 889.3463 
Mean = 701.8196 | Best = 889.3463 
Mean = 708.8999 | Best = 889.3463 
Mean = 731.5342 | Best = 889.3463 
Mean = 715.2068 | Best = 889.3463 
Mean = 727.4410 | Best = 889.3463 
Mean = 737.7159 | Best = 889.3463 
Mean = 743.2976 | Best = 889.3463 
Mean = 721.3699 | Best = 889.3463 
Mean = 721.5862 | Best = 889.3463 
Islands GA | epoch = 93 
Mean = 717.8214 | Best = 889.3463 
Mean = 718.8938 | Best = 889.3463 
Mean = 712.4316 | Best = 889.3463 
Mean = 697.1454 | Best = 889.3463 
Mean = 715.4051 | Best = 889.3463 
Mean = 711.6207 | Best = 889.3463 
Mean = 715.4772 | Best = 889.3463 
Mean = 717.5148 | Best = 889.3463 
Mean = 731.2055 | Best = 889.3463 
Mean = 702.2952 | Best = 889.3463 
Islands GA | epoch = 94 
Mean = 692.8442 | Best = 889.3463 
Mean = 664.3661 | Best = 889.3463 
Mean = 687.7055 | Best = 889.3463 
Mean = 653.1052 | Best = 889.3463 
Mean = 707.6735 | Best = 889.3463 
Mean = 701.6481 | Best = 889.3463 
Mean = 726.3858 | Best = 889.3463 
Mean = 707.3303 | Best = 889.3463 
Mean = 689.9780 | Best = 889.3463 
Mean = 728.3698 | Best = 889.3463 
Islands GA | epoch = 95 
Mean = 714.5209 | Best = 889.3463 
Mean = 720.7081 | Best = 889.3463 
Mean = 697.3592 | Best = 889.3463 
Mean = 714.6606 | Best = 889.3463 
Mean = 712.0322 | Best = 889.3463 
Mean = 708.2211 | Best = 889.3463 
Mean = 733.9814 | Best = 889.3463 
Mean = 727.7232 | Best = 889.3463 
Mean = 722.6048 | Best = 889.3463 
Mean = 737.9647 | Best = 889.3463 
Islands GA | epoch = 96 
Mean = 679.2179 | Best = 889.3463 
Mean = 713.2434 | Best = 889.3463 
Mean = 705.6408 | Best = 889.3463 
Mean = 672.7085 | Best = 889.3463 
Mean = 690.3647 | Best = 889.3463 
Mean = 707.2099 | Best = 889.3463 
Mean = 698.2291 | Best = 889.3463 
Mean = 728.2600 | Best = 889.3463 
Mean = 725.2199 | Best = 889.3463 
Mean = 693.5786 | Best = 889.3463 
Islands GA | epoch = 97 
Mean = 713.4305 | Best = 889.3463 
Mean = 707.3193 | Best = 889.3463 
Mean = 717.0033 | Best = 889.3463 
Mean = 704.7802 | Best = 889.3463 
Mean = 702.7854 | Best = 889.3463 
Mean = 702.8358 | Best = 889.3463 
Mean = 719.5035 | Best = 889.3463 
Mean = 730.5497 | Best = 889.3463 
Mean = 714.0445 | Best = 889.3463 
Mean = 707.8557 | Best = 889.3463 
Islands GA | epoch = 98 
Mean = 705.6631 | Best = 889.3463 
Mean = 729.3464 | Best = 889.3463 
Mean = 718.9073 | Best = 889.3463 
Mean = 712.9617 | Best = 889.3463 
Mean = 732.9910 | Best = 889.3463 
Mean = 712.4454 | Best = 889.3463 
Mean = 723.1659 | Best = 889.3463 
Mean = 727.7609 | Best = 889.3463 
Mean = 728.7347 | Best = 889.3463 
Mean = 730.8671 | Best = 889.3463 
Islands GA | epoch = 99 
Mean = 733.4692 | Best = 889.3463 
Mean = 738.0763 | Best = 889.3463 
Mean = 738.2585 | Best = 889.3463 
Mean = 727.4849 | Best = 889.3463 
Mean = 747.4910 | Best = 889.3463 
Mean = 726.8441 | Best = 889.3463 
Mean = 733.5916 | Best = 889.3463 
Mean = 725.9261 | Best = 889.3463 
Mean = 745.6387 | Best = 889.3463 
Mean = 722.9030 | Best = 889.3463 
Islands GA | epoch = 100 
Mean = 714.4335 | Best = 889.3463 
Mean = 708.4900 | Best = 889.3463 
Mean = 714.9985 | Best = 889.3463 
Mean = 713.3490 | Best = 889.3463 
Mean = 739.1877 | Best = 889.3463 
Mean = 714.7519 | Best = 889.3463 
Mean = 737.7599 | Best = 889.3463 
Mean = 694.9645 | Best = 889.3463 
Mean = 737.7779 | Best = 889.3463 
Mean = 715.4440 | Best = 889.3463 
toc()
Running the genetic algorithm: 35.785 sec elapsed

Finally, we show the best known solution.

# Display the objective result.
cat("Best objective value obtained = ", result@fitnessValue, 
    "\n")
Best objective value obtained =  889.3463 
# Get the x vector.
x <- decode(result@solution[1,])
cat("Best x vector:\n", x, "\n")
Best x vector:
 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 
# Convert the binary vector to indices and remove the zeros.
y <- 1:52 * x
y <- y[y != 0]
cat("Indices for which x = 1:\n", y, "\n")
Indices for which x = 1:
 2 6 9 13 17 22 25 29 33 38 41 45 49 
LS0tCnRpdGxlOiAiR3JvdXAgU2VsZWN0aW9uIDIiCm91dHB1dDogaHRtbF9ub3RlYm9vawphdXRob3I6IFBhdWwgQS4gUnViaW4KLS0tCgpUaGlzIG5vdGVib29rIHRyaWVzIHRvIHNvbHZlIGEgcHJvYmxlbSBbcG9zZWQgb24gU3RhY2sgT3ZlcmZsb3ddKGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzYzNTg0NzA3L3ItYmluYXJ5LWludGVnZXItb3B0aW1pemF0aW9uLXdpdGgtZ3JvdXBzKSB1c2luZyBhIGdlbmV0aWMgYWxnb3JpdGhtLiBUaGUgcHJvYmxlbSBpbnZvbHZlcyA1MiBiaW5hcnkgdmFyaWFibGVzIGluIDEzIGdyb3VwcyBvZiBmb3VyIGVhY2guIEV4YWN0bHkgb25lIHZhcmlhYmxlIGZyb20gZWFjaCBncm91cCBtdXN0IGJlIHNldCB0byAxLCB3aXRoIHRoZSBvYmplY3RpdmUgb2YgbWluaW1pemluZyBhIGN1YmljIGZ1bmN0aW9uIG9mIHRoZSB2YXJpYWJsZXMuCgojIFNldCB1cAoKVG8gc3RhcnQsIHdlIGxvYWQgdGhlIG9iamVjdGl2ZSBmdW5jdGlvbiBwb3N0ZWQgb24gU08gYnkgdGhlIGF1dGhvciBvZiB0aGUgcXVlc3Rpb24sIGFsb25nIHdpdGggdGhlIHJlcXVpc2l0ZSBjb2VmZmljaWVudCB2ZWN0b3JzLiBTaW5jZSB3ZSB3aWxsIGJlIG1heGltaXppbmcsIHdlIHN0cmlwIG9mIHRoZSBsZWFkaW5nIG1pbnVzIHNpZ24gYW5kIG1heGltaXplIHRoZSBuZWdhdGl2ZSBvZiB0aGUgb3JpZ2luYWwgZnVuY3Rpb24uCgpgYGB7cn0KYSA8LSBjKDI1MSwgMTc5LCAyMTUsIDI1MSwgNjMsIDQ1LCA1NCwgNjMsIDQ3LCAzNCwgNDAsIDQ3LCAxNDEsIDEwMSwgMTIxLCAxNDEsIDQ3LCAzNCwgNDAsIDQ3LCA5NCwgNjcsIDgxLCA5NCwgNDcsIDM0LCA0MCwgNDcsIDE1NywgMTA4LCAxMzMsIDE1NywgMTI2LCA4NSwgMTA2LCAxMjYsIDEyNiwgODUsIDEwNiwgMTI2LCAxMTAsIDc0LCA5MiwgMTEwLCAxMTAsIDc0LCA5MiwgMTEwLCA2MywgNDAsIDUyLCA2MykKYiA8LSBjKDE3OSwgMjUxLCAyMTUsIDAsIDQ1LCA2MywgNTQsIDAsIDM0LCA0NywgNDAsIDAsIDEwMSwgMTQxLCAxMjEsIDAsIDM0LCA0NywgNDAsIDAsIDY3LCA5NCwgODEsIDAsIDM0LCA0NywgNDAsIDAsIDEwOCwgMTU3LCAxMzMsIDAsIDg1LCAxMjYsIDEwNiwgMCwgODUsIDEyNiwgMTA2LCAwLCA3NCwgMTEwLCA5MiwgMCwgNzQsIDExMCwgOTIsIDAsIDQwLCA2MywgNTIsIDApCmMgPC0gYygxNzksIDE3OSwgMTE4LCAxNzksIDQ1LCA0NSwgMzAsIDQ1LCAzNCwgMzQsIDIyLCAzNCwgMTAxLCAxMDEsIDY3LCAxMDEsIDM0LCAzNCwgMjIsIDM0LCA2NywgNjcsIDQ0LCA2NywgMzQsIDM0LCAyMiwgMzQsIDEwOCwgMTA4LCA3MSwgMTA4LCA4NSwgODUsIDU2LCA4NSwgODUsIDg1LCA1NiwgODUsIDc0LCA3NCwgNDksIDc0LCA3NCwgNzQsIDQ5LCA3NCwgNDAsIDQwLCAyNywgNDApCm9iamVjdGl2ZV9mdW5jdGlvbiA8LSBmdW5jdGlvbih4KSB7CiAgKDExNjYgKiAgc3VtKHhbMTo1Ml0gKiBhKSAvIDIwMDApICoKICAoKChzdW0oeFsxOjUyXSAqIGIpKSAvIDIxMDApICsgLjA1KSAqCiAgKCgoc3VtKHhbMTo1Ml0gKiBjKSkvMTUwMCkgKyAxLjUpCn0KYGBgCgpXZSB3aWxsIHVzZSB0aGUgYEdBYCBwYWNrYWdlIHRvIGltcGxlbWVudCB0aGUgZ2VuZXRpYyBhbGdvcml0aG0sIGFuZCB0aGUgYHRpY3RvY2AgcGFja2FnZSB0byB0aW1lIGl0LiBgR0FgIGluIHR1cm4gaGFzIGEgZmV3IGRlcGVuZGVuY2llcy4KCmBgYHtyfQpsaWJyYXJ5KEdBKQpsaWJyYXJ5KHRpY3RvYykKYGBgCgojIFNvbHV0aW9uIGRlY29kZXIKCldlIHdpbGwgdXNlIGEgInBlcm11dGF0aW9uIiBHQSwgd2hpY2ggd2lsbCBwcm9kdWNlIGEgcGVybXV0YXRpb24gb2YgdGhlIGluZGljZXMgMSAuLi4gNTIgb2YgdGhlIGJpbmFyeSB2YXJpYWJsZXMuIFRvIGNvbnZlcnQgdGhpcyB0byBhIHNvbHV0aW9uLCB3ZSBzb3J0IHRoZSBiaW5hcnkgdmFyaWFibGVzIGludG8gdGhhdCBvcmRlciBhbmQgdGhlbiBtYWtlIGEgcGFzcyB0aHJvdWdoIHRoZSBsaXN0LCBhc3NpZ25pbmcgdGhlIHZhbHVlIDEgdG8gZWFjaCB2YXJpYWJsZSBpbiB0dXJuIGlmIGl0IGlzIG5vdCBwcmVjbHVkZWQgYnkgYW4gZWFybGllciBhc3NpZ25tZW50IHRvIHRoZSBzYW1lIGJsb2NrIG9mIGZvdXIgdmFyaWFibGVzLgoKRm9yIGNvbnZlbmllbmNlLCB3ZSB3aWxsIHNldCB1cCBhIG1hdHJpeCB0aGF0IGFzc29jaWF0ZXMgZWFjaCBpbmRleCBmcm9tIDEgdG8gNTIgd2l0aCB0aGUgZm91ciBpbmRpY2VzIGluIGl0cyAiYmxvY2siLgoKYGBge3J9CmNvaG9ydCA8LSBtYXRyaXgoc2FwcGx5KHNlcSgxLCA1MiwgNCksIGZ1bmN0aW9uKHgpIHJlcC5pbnQoeDooeCArIDMpLCA0KSksIG5yb3cgPSA1MiwgbmNvbCA9IDQsIGJ5cm93ID0gVFJVRSkKYGBgCgoKYGBge3J9CiMgVGhpcyBmdW5jdGlvbiB0YWtlcyBhIHBlcm11dGF0aW9uIG9mIHRoZSBpbmRpY2VzIDEgdG8gNTIgYW5kIGNvbnZlcnRzIGl0IHRvIGEgc29sdXRpb24gc2F0aXNmeWluZyB0aGUgY29uc3RyYWludCB0aGF0IGV4YWN0bHkgb25lIHZhcmlhYmxlIGluIGVhY2ggYmxvY2sgb2YgZm91ciByZWNlaXZlcyB2YWx1ZSAxLgpkZWNvZGUgPC0gZnVuY3Rpb24ocGVybSkgewogIHggPC0gcmVwLmludChOQSwgNTIpICAjIE5BIGluZGljYXRlcyB0aGUgdmFyaWFibGUgaGFzIG5vdCB5ZXQgYmVlbiBhc3NpZ25lZCBhIHZhbHVlCiAgIyBDaGVjayBlYWNoIHZhcmlhYmxlIGluIHBlcm11dGF0aW9uIG9yZGVyLgogIGZvciAoaSBpbiBwZXJtKSB7CiAgICAjIElmIHRoZSB2YXJpYWJsZSBpcyB1bmFzc2lnbmVkLCB1c2UgaXQuCiAgICBpZiAoaXMubmEoeFtpXSkpIHsKICAgICAgIyBGaXJzdCB6ZXJvIG91dCBhbGwgdmFyaWFibGVzIGluIHRoZSBjb2hvcnQuCiAgICAgIHhbY29ob3J0W2ksXV0gPC0gMAogICAgICAjIE5vdyBzZXQgdGhpcyBvbmUgdG8gMS4KICAgICAgeFtpXSA8LTEKICAgIH0KICB9CiAgIyBSZXR1cm4gdGhlIHggdmVjdG9yLgogIHgKfQpgYGAKClRoZSBmaXRuZXNzIG9mIGEgcGVybXV0YXRpb24gaXMgdGhlIG9iamVjdGl2ZSB2YWx1ZSBvZiB0aGUgZGVjb2RlZCBzb2x1dGlvbi4KCmBgYHtyfQpnYUZpdG5lc3MgPC0gZnVuY3Rpb24ocGVybSkgewogIG9iamVjdGl2ZV9mdW5jdGlvbihkZWNvZGUocGVybSkpCn0KYGBgCgojIEdBIHJlc3VsdHMKCkZvciBvdXRwdXQgY29uc2lzdGVuY3ksIHdlIHNldCBhIHJhbmRvbSBudW1iZXIgc2VlZC4gVGhlIEdBIGNhbiBiZSByZXJ1biBtdWx0aXBsZSB0aW1lcyAod2l0aG91dCByZXNldHRpbmcgdGhlIHNlZWQpIHRvIHNlZSB0aGUgdmFyaWFiaWxpdHkgaW4gcmVzdWx0cy4KCmBgYHtyfQpzZXQuc2VlZCgxMjMpCmBgYAoKV2UgcnVuIHRoZSBHQSB1c2luZyBhbiBpc2xhbmQgbW9kZWwgd2l0aCBkZWZhdWx0IHZhbHVlcyBmb3IgbW9zdCBhcmd1bWVudHMsIGJ1dCBidW1wIHVwIHRoZSBwb3B1bGF0aW9uIHNpemUgdG8gMSwwMDAsIHRoZSBpc2xhbmQgY291bnQgdG8gMTAgYW5kIHBlcm11dGF0aW9uIHJhdGUgdG8gMC4yLgoKYGBge3J9CiMgV2Ugd3JhcCB0aGUgbGluZSBpbiBzdXBwcmVzc01lc3NhZ2VzKCkgdG8gZ2V0IHJpZCBvZiBzb21lIHJlcGV0aXRpdmUgKGFuZCBhbm5veWluZykgbWVzc2FnZXMgb3V0cHV0IGFmdGVyIGVhY2ggZXBvY2guCnRpYygiUnVubmluZyB0aGUgZ2VuZXRpYyBhbGdvcml0aG0iKQpzdXBwcmVzc01lc3NhZ2VzKAogIHJlc3VsdCA8LSBnYWlzbCh0eXBlID0gInBlcm11dGF0aW9uIiwgZml0bmVzcyA9IGdhRml0bmVzcywgbG93ZXIgPSAxLCB1cHBlciA9IDUyLCBwb3BTaXplID0gMTAwMCwgcG11dGF0aW9uID0gMC4yLCBudW1Jc2xhbmRzID0gMTApCikKdG9jKCkKYGBgCkZpbmFsbHksIHdlIHNob3cgdGhlIGJlc3Qga25vd24gc29sdXRpb24uCgpgYGB7cn0KIyBEaXNwbGF5IHRoZSBvYmplY3RpdmUgcmVzdWx0LgpjYXQoIkJlc3Qgb2JqZWN0aXZlIHZhbHVlIG9idGFpbmVkID0gIiwgcmVzdWx0QGZpdG5lc3NWYWx1ZSwgCiAgICAiXG4iKQojIEdldCB0aGUgeCB2ZWN0b3IuCnggPC0gZGVjb2RlKHJlc3VsdEBzb2x1dGlvblsxLF0pCmNhdCgiQmVzdCB4IHZlY3RvcjpcbiIsIHgsICJcbiIpCiMgQ29udmVydCB0aGUgYmluYXJ5IHZlY3RvciB0byBpbmRpY2VzIGFuZCByZW1vdmUgdGhlIHplcm9zLgp5IDwtIDE6NTIgKiB4CnkgPC0geVt5ICE9IDBdCmNhdCgiSW5kaWNlcyBmb3Igd2hpY2ggeCA9IDE6XG4iLCB5LCAiXG4iKQpgYGAK