Learn R Programming

GA (version 3.2.4)

plot.ga-method: Plot of Genetic Algorithm search path

Description

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

Usage

# 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, ...)

Value

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

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.

Author

Luca Scrucca

Details

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

See Also

ga, ga-class.

Examples

Run this code
# 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())
}

Run the code above in your browser using DataLab