The plot method for ga-class objects gives a plot of best and average fitness values found during the iterations of the GA search.

# S4 method for ga
plot(x, y, ylim, cex.points = 0.7, 
     col = c("green3", "dodgerblue3",  adjustcolor("green3", alpha.f = 0.1)),
     pch = c(16, 1), lty = c(1,2), legend = TRUE, grid = graphics::grid, ...)

Arguments

x

An object of class "ga".

y

Not used.

ylim

A vector of two values specifying the limits on the y-axis.

cex.points

The magnification to be used for points.

col

The colours to be used for best and average fitness values.

pch

The type of points to be used for best and average fitness values.

lty

The type of lines to be used for best and average fitness values.

legend

A logical specifying if a legend should be included.

grid

A function for grid drawing of NULL to avoid drawing one.

...

Further arguments, currently not used.

Details

Plot best and average fitness values at each iteration of GA search.

Value

The method invisibly return a data.frame with the iterations and summary statistics for the fitness function evaluated at each iteration.

See also

Author

Luca Scrucca

Examples

# See examples in help(ga)

# The following code shows how to obtain graphs using the 
# ggplot2 plotting system 
if (FALSE) {
GA <- ga(type = "real-valued", 
         fitness = function(x) -(abs(x)+cos(x)), 
         lower = -20, upper = 20, 
         popSize = 20, pmutation = 0.2, maxiter = 50)
out <- plot(GA)
library(reshape2)
df <- melt(out[,c(1:3,5)], id.var = "iter")
library(ggplot2)
ggplot(out) +
  geom_ribbon(aes(x = iter, ymin = median, ymax = max, 
                  colour = "median", fill = "median")) +
  geom_line(aes(x = iter, y = max, colour = "max")) +
  geom_point(aes(x = iter, y = max, colour = "max")) +
  geom_line(aes(x = iter, y = mean, colour = "mean"), lty = 2) +
  geom_point(aes(x = iter, y = mean, colour = "mean"), pch = 1) +
  xlab("Generation") +  ylab("Fitness values") +
  scale_colour_manual(breaks = c("max", "mean", "median"),
                      values = c("green3", "dodgerblue3", adjustcolor("green3", alpha.f = 0.1))) +
  scale_fill_manual(breaks = "median",
                    values = adjustcolor("green3", alpha.f = 0.1)) +
  guides(fill = "none", 
         colour = guide_legend(override.aes = 
                                 list(fill = c(NA, NA, adjustcolor("green3", alpha.f = 0.1)),
                                       pch = c(19,1,NA)))) +
  theme_bw() +
  theme(legend.title = element_blank(), 
        legend.pos = "top",
        legend.background = element_blank())
}