Bet-Hedging example for the Course Evolutionary Biology 2025/2026

evobio
Published

April 5, 2026

Idea

Bet-hedging is often the best an organism can do to face environmental uncertainty when learning/plasticity is not an option. Here we explore a simple model of bet-hedging (for more see https://github.com/tecoevo/informativecues) as a baseline for the evolution of plasticity. In this “desert”, where it rains with probability 6 years out of 10, plants can either germinate or remain dormant. The lineages that minimize the variance the most (0.5 probability of germinating) have the highest long-term fitness.

Simulation

set.seed(2)

T <- 200

# Probability of good rain year
q <- 0.6

env <- rbinom(T, 1, prob = q)

# Strategies: fraction germinating
p_values <- c(1, 0.5, 0.2)

results <- list()

for (p in p_values) {
  N <- numeric(T)
  N[1] <- 1

  for (t in 2:T) {
    if (env[t] == 1) {
      # good year: germinated seeds reproduce
      W <- p * 4 + (1 - p) * 1   # dormant survive
    } else {
      # bad year: germinated suffer
      W <- p * 0.1 + (1 - p) * 1
    }

    N[t] <- N[t-1] * W
  }

  results[[as.character(p)]] <- N
}

# Plot
plot(results[[1]], type = "l", log = "y", lwd = 2,
     xlab = "Generation", ylab = "Population size (log scale)",
     main = "Seed dormancy as bet-hedging",ylim=c(min(results[[1]]),max(unlist(results))+50),cex=2,col=c("forestgreen"))

lines(results[["0.5"]], lwd = 2, lty = 2,col="darkgoldenrod")
lines(results[["0.2"]], lwd = 2, lty = 3,col="gold1")

legend("bottomleft",
       legend = c("p=1 (no dormancy)", "p=0.5", "p=0.2"),
       lty = 1:3, lwd = 2,col=c("forestgreen","darkgoldenrod","gold1"))