# mcga: Machine Coded Genetic Algorithms for Real-Valued Optimization Problems

Machine coded genetic algorithm (MCGA) is a fast tool for real-valued optimization problems. It uses the byte representation of variables rather than real-values. It performs the classical crossover operations (uniform) on these byte representations. Mutation operator is also similar to classical mutation operator, which is to say, it changes a randomly selected byte value of a chromosome by +1 or -1 with probability 1/2. In MCGAs there is no need for encoding-decoding process and the classical operators are directly applicable on real-values. It is fast and can handle a wide range of a search space with high precision. Using a 256-unary alphabet is the main disadvantage of this algorithm but a moderate size population is convenient for many problems. Package also includes multi_mcga function for multi objective optimization problems. This function sorts the chromosomes using their ranks calculated from the non-dominated sorting algorithm.

- Author
- Mehmet Hakan Satman
- Date of publication
- 2016-05-12 16:24:50
- Maintainer
- Mehmet Hakan Satman <mhsatman@istanbul.edu.tr>
- License
- GPL (>= 2)
- Version
- 3.0.1

## Man pages

- arithmetic_crossover
- Performs arithmetic crossover operation on a pair of two...
- blx_crossover
- Performs blx (blend) crossover operation on a pair of two...
- ByteCodeMutation
- Mutation operator for byte representation of double values
- ByteCodeMutationUsingDoubles
- Mutation operator for byte representation of double values
- ByteCodeMutationUsingDoublesRandom
- Mutation operator for byte representation of double values
- byte_crossover
- Performs crossover operation on a pair of two selected parent...
- byte_crossover_1p
- Performs one-point crossover operation on a pair of two...
- byte_crossover_2p
- Performs two-point crossover operation on a pair of two...
- byte_mutation
- Performs mutation operation on a given double vector
- byte_mutation_dynamic
- Performs mutation operation on a given double vector using...
- byte_mutation_random
- Performs mutation operation on a given double vector
- byte_mutation_random_dynamic
- Performs mutation operation on a given double vector with...
- BytesToDouble
- Converting 'sizeof(double)' bytes to a double value
- ByteVectorToDoubles
- Converting p * 'sizeof(double)' bytes to a vector of p double...
- DoubleToBytes
- Byte representation of a 'double' typed variable
- DoubleVectorToBytes
- Byte representation of a vector of 'double' typed variables
- EnsureBounds
- Altering vector of doubles to satisfy boundary constraints
- flat_crossover
- Performs flat crossover operation on a pair of two selected...
- linear_crossover
- Performs linear crossover operation on a pair of two selected...
- MaxDouble
- Maximum value of a 'double' typed variable
- mcga
- Performs machine coded genetic algorithms on a function...
- mcga2
- Performs a machine-coded genetic algorithm search for a given...
- mcga-internal
- Internal mcga objects
- mcga-package
- Machine Coded Genetic Algorithms for Real-valued Optimization...
- multi_mcga
- Performs multi objective machine coded genetic algorithms.
- OnePointCrossOver
- One Point Crossover operation on the two vectors of bytes
- OnePointCrossOverOnDoublesUsingBytes
- One-point Crossover operation on the two vectors of doubles...
- sbx_crossover
- Performs sbx (simulated binary) crossover operation on a pair...
- SizeOfDouble
- Byte-length of a 'double' typed variable
- SizeOfInt
- Byte-length of a 'int' typed variable
- SizeOfLong
- Byte-length of a 'long' typed variable
- TwoPointCrossOver
- Two Point Crossover operation on the two vectors of bytes
- TwoPointCrossOverOnDoublesUsingBytes
- Two-point Crossover operation on the two vectors of doubles...
- unfair_average_crossover
- Performs unfair average crossover operation on a pair of two...
- UniformCrossOver
- Uniform Crossover operation on the two vectors of bytes
- UniformCrossOverOnDoublesUsingBytes
- Uniform Crossover operation on the two vectors of doubles...

## Files in this package

mcga |

mcga/inst |

mcga/inst/CITATION |

mcga/src |

mcga/src/mcga.h |

mcga/src/rwrapper.c |

mcga/src/mcga.c |

mcga/src/multi_mcga.h |

mcga/src/mcgatypes.h |

mcga/src/multi_mcga.c |

mcga/src/typeconversations.cpp |

mcga/src/RcppExports.cpp |

mcga/NAMESPACE |

mcga/R |

mcga/R/newmcga.r |

mcga/R/RcppExports.R |

mcga/R/zzz.r |

mcga/R/oplibrary.R |

mcga/MD5 |

mcga/DESCRIPTION |

mcga/man |

mcga/man/byte_mutation_random.Rd |

mcga/man/byte_crossover_1p.Rd |

mcga/man/flat_crossover.Rd |

mcga/man/UniformCrossOver.Rd |

mcga/man/SizeOfDouble.Rd |

mcga/man/BytesToDouble.Rd |

mcga/man/multi_mcga.Rd |

mcga/man/ByteCodeMutation.Rd |

mcga/man/OnePointCrossOverOnDoublesUsingBytes.Rd |

mcga/man/ByteVectorToDoubles.Rd |

mcga/man/mcga.Rd |

mcga/man/unfair_average_crossover.Rd |

mcga/man/TwoPointCrossOverOnDoublesUsingBytes.Rd |

mcga/man/arithmetic_crossover.Rd |

mcga/man/UniformCrossOverOnDoublesUsingBytes.Rd |

mcga/man/byte_crossover.Rd |

mcga/man/EnsureBounds.Rd |

mcga/man/SizeOfInt.Rd |

mcga/man/blx_crossover.Rd |

mcga/man/ByteCodeMutationUsingDoubles.Rd |

mcga/man/DoubleToBytes.Rd |

mcga/man/MaxDouble.Rd |

mcga/man/sbx_crossover.Rd |

mcga/man/OnePointCrossOver.Rd |

mcga/man/byte_mutation_dynamic.Rd |

mcga/man/mcga2.Rd |

mcga/man/TwoPointCrossOver.Rd |

mcga/man/DoubleVectorToBytes.Rd |

mcga/man/byte_mutation_random_dynamic.Rd |

mcga/man/linear_crossover.Rd |

mcga/man/byte_mutation.Rd |

mcga/man/mcga-package.Rd |

mcga/man/byte_crossover_2p.Rd |

mcga/man/SizeOfLong.Rd |

mcga/man/mcga-internal.Rd |

mcga/man/ByteCodeMutationUsingDoublesRandom.Rd |