Carregando WebR...
# ============================================ # Colusao com trigger strategy # Exercicio Resolvido 16.3 # ============================================ a <- 200; c <- 20 # Demanda: Q = a - p, CMg = c n <- 3 # numero de firmas cat("====== COLUSAO COM TRIGGER STRATEGY ======\n") cat("Demanda: Q =", a, "- p\n") cat("CMg =", c, "\n") cat("Firmas:", n, "\n\n") # --- Preco de monopolio --- pm <- (a + c) / 2 Qm <- a - pm pi_m <- (pm - c) * Qm pi_coop <- pi_m / n cat("--- Preco de monopolio ---\n") cat(sprintf("p^m = %.0f Q^m = %.0f pi^m = %.0f\n", pm, Qm, pi_m)) cat(sprintf("Lucro por firma (cooperando) = %.0f / %d = %.0f\n\n", pi_m, n, pi_coop)) # --- Desvio --- pi_desvio <- pi_m # captura toda a demanda com p = pm - eps pi_punição <- 0 # Bertrand: p = c => lucro = 0 cat("--- Desvio ---\n") cat(sprintf("Lucro ao desviar (1 periodo) = %.0f\n", pi_desvio)) cat(sprintf("Lucro apos punicao (para sempre) = %.0f\n\n", pi_punição)) # --- Delta minimo --- # Cooperar: pi_coop / (1 - delta) >= pi_desvio + 0 # (1/n) / (1 - delta) >= 1 # 1/n >= 1 - delta => delta >= 1 - 1/n delta_min <- 1 - 1/n cat("--- Delta minimo ---\n") cat(sprintf("delta >= 1 - 1/n = 1 - 1/%d = %.4f\n\n", n, delta_min)) # --- Analise para diferentes n --- cat("--- Delta minimo vs. numero de firmas ---\n") cat(sprintf("%-8s %-12s %-15s\n", "n", "delta_min", "pi_coop")) cat(strrep("-", 38), "\n") for (ni in 2:10) { di <- 1 - 1/ni pi_i <- pi_m / ni cat(sprintf("%-8d %-12.4f %-15.0f\n", ni, di, pi_i)) } cat("\nQuanto mais firmas, mais paciencia necessaria para\n") cat("sustentar a colusao e menor o lucro de cada participante.\n") # --- Grafico --- par(mfrow = c(1, 2), mar = c(4.5, 4.5, 3, 1), bg = "#f8f9fa") # Painel 1: Delta minimo vs n n_seq <- 2:20 delta_seq <- 1 - 1/n_seq plot(n_seq, delta_seq, type = "b", lwd = 3, col = "#0d6efd", pch = 19, cex = 1.2, xlab = "Numero de firmas (n)", ylab = expression(delta["min"]), main = "Dificuldade de colusao vs. n", ylim = c(0.4, 1)) abline(h = delta_min, col = "#dc3545", lty = 2, lwd = 1.5) text(15, delta_min - 0.03, paste0("n = ", n, ": delta = ", round(delta_min, 3)), col = "#dc3545", cex = 0.75, font = 2) abline(h = 1, col = "#adb5bd", lty = 3) # Painel 2: Fluxo de lucros — cooperar vs desviar T <- 15 delta_ex <- 0.7 # exemplo com delta > delta_min lucro_coop <- rep(pi_coop, T) lucro_desv <- c(pi_desvio, rep(0, T - 1)) VP_coop <- cumsum(pi_coop * delta_ex^(0:(T-1))) VP_desv <- cumsum(c(pi_desvio, rep(0, T-1)) * delta_ex^(0:(T-1))) plot(1:T, VP_coop, type = "l", lwd = 3, col = "#198754", xlab = "Periodo", ylab = "VP acumulado", main = paste0("VP acumulado (delta = ", delta_ex, ")"), ylim = c(0, max(VP_coop) * 1.1)) lines(1:T, VP_desv, lwd = 3, col = "#dc3545", lty = 2) abline(v = 1, col = "#adb5bd", lty = 3) text(T * 0.7, VP_coop[T] * 0.95, "Cooperar", col = "#198754", cex = 0.8, font = 2) text(T * 0.7, VP_desv[T] * 1.1, "Desviar", col = "#dc3545", cex = 0.8, font = 2) legend("bottomright", legend = c(paste0("Cooperar (VP = ", round(VP_coop[T]), ")"), paste0("Desviar (VP = ", round(VP_desv[T]), ")")), col = c("#198754", "#dc3545"), lwd = 3, lty = c(1, 2), cex = 0.65, bg = "white")
▶ Executar
↻ Resetar
(Aguardando WebR...)