Learn R Programming

adana (version 1.1.0)

hc: Heuristic Crossover

Description

The Heuristic Crossover (HC) operator is a conditional operator (Herrera et.al, 1998; Umbarkar & Sheth, 2005). A random r value is generated in the range [0,1]. Then if Parent2's fitness value is greater than or equal to Parent1's fitness value, the difference between them is weighted by r and added to Parent2. It is subtracted in minimization problems. This operator produces a single offspring, but due to the random value of r, repeated offspring may result in different offspring.

Usage

hc(x1, x2, fitfunc, cxon, ...)

Arguments

x1

A vector. It contains the chromosomal information of parent-1.

x2

A vector. It contains the chromosomal information of parent-2.

fitfunc

Fitness Function

cxon

Number of offspring to be generated as a result of crossover

Further arguments passed to or from other methods.

Value

A matrix containing the generated offsprings.

References

Herrera, F., Lozano, M. and Verdegay, J.L. (1998). Tackling real-coded genetic algorithms: Operators and tools for behavioural analysis. Artificial Intellegence Review, 12(4), 265-319 Umbarkar, A.J. and Sheth P.D. (2015). Crossover operators in genetic algorithms: A riview, ICTACT Journal on Soft Computing, 6(1), 1083-1092.

See Also

cross, px1, kpx, sc, rsc, hux, ux, ux2, mx, rrc, disc, atc, cpc, eclc, raoc, dc, ax, sax, wax, lax, bx, ebx, blxa, blxab, lapx, elx, geomx, spherex, pmx, mpmx, upmx, ox, ox2, mpx, erx, pbx, pbx2, cx, icx, smc

Examples

Run this code
# NOT RUN {
fitfunc = function(x, ...) 2*(x[1]-1)^2 + 5*(x[2]-2)^2 + 10
parent1 = c(1.1, 1.6, 0.0, 1.1, 1.4, 1.2)
parent2 = c(1.2, 0.0, 0.0, 1.5, 1.2, 1.4)
hc(parent1, parent2, fitfunc)
# }

Run the code above in your browser using DataLab