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

View on CRAN

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