Paula Cazali

Modelacion y Simulacion 1

library(dplyr)
library(ggplot2)

Hay tres tipos de dias de noticia, \(Excelente\), \(Bueno\) y \(Malo\), con probabilidades de \(0.35\), \(0.45\) y \(0.20\) respectivamente.

sample_days <- sample(c(1,2,3), size = 20, replace = TRUE, prob = c(0.35,0.45,0.20))
sample_days
 [1] 2 3 2 1 2 1 2 2 3 2 2 2 1 2 1 2 2 1 2 2

La siguiente funcion, dependiendo el dia (Excelente, bueno o malo) devuelve el vector de probabilidades a usar para obtener la demanda:

getProbDay <- function(dia){
  if(dia == 1){
    prob_dia <- c(0.03,0.05,0.15,0.20,0.35,0.15,0.07)
  }else if(dia == 2){
    prob_dia <- c(0.10,0.18,0.40,0.20,0.08,0.04,0)
  }else{
    prob_dia <- c(0.44,0.22,0.16,0.12,0.06,0,0)
  }
  return(prob_dia)
}

Prueba de la funcion getProbDay():

getProbDay(sample_days[1])
[1] 0.10 0.18 0.40 0.20 0.08 0.04 0.00

Funcion que obtiene la utilidad:

utility <- function(inventario,demanda){
  ganancia <- 0
  
  if(inventario < demanda){
    ganancia <- (inventario * 0.50) - (inventario * 0.33) - ((demanda - inventario) * (0.50-0.33))
  }
  else if (demanda < inventario){
    ganancia <- (demanda * 0.50) - (inventario * 0.33) + ((inventario - demanda) * 0.05)
  }
  else if (inventario == demanda){
   ganancia <- (demanda * 0.50) - (inventario * 0.33)
  }
  return(ganancia)
}
resultados <- data.frame(inventario = c(), demanda = c(), ganancia = c())
inventarioP <- c(40,50,60,70,80,90,100)
for (inv in inventarioP){
  sample_days <- sample(c(1,2,3), size = 20, replace = TRUE, prob = c(0.35,0.45,0.20))
  for(day in sample_days){
    demanda <- sample(c(40,50,60,70,80,90,100), size = 1, replace = TRUE, prob = getProbDay(day))
    ganancia <- utility(inv, demanda)
    aux_df <- data.frame(inventario = inv, demanda = demanda, ganancia = ganancia)
    resultados <- rbind(resultados, aux_df)
  }  
}
resultados

Graficando el resultado usando un sample de 20 dias.

resultados %>%
  ggplot(aes(x = inventario, y = ganancia)) + 
  geom_point()

boxplot(ganancia ~ inventario, data = resultados)

Por lo que se puede ver que la mayor ganancia se genera cuando se tiene un inventario de entre \(70\) y \(80\) periodicos. Independientemente de cuantas personas compren los periodicos.

LS0tDQp0aXRsZTogIkRpbGVtYSBkZWwgdmVuZGVkb3IgZGUgcGVyaW9kaWNvIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KIyMgUGF1bGEgQ2F6YWxpDQojIyMgTW9kZWxhY2lvbiB5IFNpbXVsYWNpb24gMQ0KDQpgYGB7cn0NCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdncGxvdDIpDQpgYGANCg0KDQpIYXkgdHJlcyB0aXBvcyBkZSBkaWFzIGRlIG5vdGljaWEsICRFeGNlbGVudGUkLCAkQnVlbm8kIHkgJE1hbG8kLCBjb24gcHJvYmFiaWxpZGFkZXMgZGUgJDAuMzUkLCAkMC40NSQgeSAkMC4yMCQgcmVzcGVjdGl2YW1lbnRlLg0KDQpgYGB7cn0NCnNhbXBsZV9kYXlzIDwtIHNhbXBsZShjKDEsMiwzKSwgc2l6ZSA9IDIwLCByZXBsYWNlID0gVFJVRSwgcHJvYiA9IGMoMC4zNSwwLjQ1LDAuMjApKQ0Kc2FtcGxlX2RheXMNCmBgYA0KDQpMYSBzaWd1aWVudGUgZnVuY2lvbiwgZGVwZW5kaWVuZG8gZWwgZGlhIChFeGNlbGVudGUsIGJ1ZW5vIG8gbWFsbykgZGV2dWVsdmUgZWwgdmVjdG9yIGRlIHByb2JhYmlsaWRhZGVzIGEgdXNhciBwYXJhIG9idGVuZXIgbGEgZGVtYW5kYToNCmBgYHtyfQ0KZ2V0UHJvYkRheSA8LSBmdW5jdGlvbihkaWEpew0KICBpZihkaWEgPT0gMSl7DQogICAgcHJvYl9kaWEgPC0gYygwLjAzLDAuMDUsMC4xNSwwLjIwLDAuMzUsMC4xNSwwLjA3KQ0KICB9ZWxzZSBpZihkaWEgPT0gMil7DQogICAgcHJvYl9kaWEgPC0gYygwLjEwLDAuMTgsMC40MCwwLjIwLDAuMDgsMC4wNCwwKQ0KICB9ZWxzZXsNCiAgICBwcm9iX2RpYSA8LSBjKDAuNDQsMC4yMiwwLjE2LDAuMTIsMC4wNiwwLDApDQogIH0NCiAgcmV0dXJuKHByb2JfZGlhKQ0KfQ0KYGBgDQoNClBydWViYSBkZSBsYSBmdW5jaW9uIGBnZXRQcm9iRGF5KClgOg0KYGBge3J9DQpnZXRQcm9iRGF5KHNhbXBsZV9kYXlzWzFdKQ0KYGBgDQoNCkZ1bmNpb24gcXVlIG9idGllbmUgbGEgdXRpbGlkYWQ6DQpgYGB7cn0NCnV0aWxpdHkgPC0gZnVuY3Rpb24oaW52ZW50YXJpbyxkZW1hbmRhKXsNCiAgZ2FuYW5jaWEgPC0gMA0KICANCiAgaWYoaW52ZW50YXJpbyA8IGRlbWFuZGEpew0KICAgIGdhbmFuY2lhIDwtIChpbnZlbnRhcmlvICogMC41MCkgLSAoaW52ZW50YXJpbyAqIDAuMzMpIC0gKChkZW1hbmRhIC0gaW52ZW50YXJpbykgKiAoMC41MC0wLjMzKSkNCiAgfQ0KICBlbHNlIGlmIChkZW1hbmRhIDwgaW52ZW50YXJpbyl7DQogICAgZ2FuYW5jaWEgPC0gKGRlbWFuZGEgKiAwLjUwKSAtIChpbnZlbnRhcmlvICogMC4zMykgKyAoKGludmVudGFyaW8gLSBkZW1hbmRhKSAqIDAuMDUpDQogIH0NCiAgZWxzZSBpZiAoaW52ZW50YXJpbyA9PSBkZW1hbmRhKXsNCiAgIGdhbmFuY2lhIDwtIChkZW1hbmRhICogMC41MCkgLSAoaW52ZW50YXJpbyAqIDAuMzMpDQogIH0NCiAgcmV0dXJuKGdhbmFuY2lhKQ0KfQ0KYGBgDQoNCmBgYHtyfQ0KcmVzdWx0YWRvcyA8LSBkYXRhLmZyYW1lKGludmVudGFyaW8gPSBjKCksIGRlbWFuZGEgPSBjKCksIGdhbmFuY2lhID0gYygpKQ0KaW52ZW50YXJpb1AgPC0gYyg0MCw1MCw2MCw3MCw4MCw5MCwxMDApDQpmb3IgKGludiBpbiBpbnZlbnRhcmlvUCl7DQogIHNhbXBsZV9kYXlzIDwtIHNhbXBsZShjKDEsMiwzKSwgc2l6ZSA9IDIwLCByZXBsYWNlID0gVFJVRSwgcHJvYiA9IGMoMC4zNSwwLjQ1LDAuMjApKQ0KICBmb3IoZGF5IGluIHNhbXBsZV9kYXlzKXsNCiAgICBkZW1hbmRhIDwtIHNhbXBsZShjKDQwLDUwLDYwLDcwLDgwLDkwLDEwMCksIHNpemUgPSAxLCByZXBsYWNlID0gVFJVRSwgcHJvYiA9IGdldFByb2JEYXkoZGF5KSkNCiAgICBnYW5hbmNpYSA8LSB1dGlsaXR5KGludiwgZGVtYW5kYSkNCiAgICBhdXhfZGYgPC0gZGF0YS5mcmFtZShpbnZlbnRhcmlvID0gaW52LCBkZW1hbmRhID0gZGVtYW5kYSwgZ2FuYW5jaWEgPSBnYW5hbmNpYSkNCiAgICByZXN1bHRhZG9zIDwtIHJiaW5kKHJlc3VsdGFkb3MsIGF1eF9kZikNCiAgfSAgDQp9DQpgYGANCg0KDQpgYGB7cn0NCnJlc3VsdGFkb3MNCmBgYA0KDQpHcmFmaWNhbmRvIGVsIHJlc3VsdGFkbyB1c2FuZG8gdW4gc2FtcGxlIGRlIDIwIGRpYXMuDQpgYGB7cn0NCnJlc3VsdGFkb3MgJT4lDQogIGdncGxvdChhZXMoeCA9IGludmVudGFyaW8sIHkgPSBnYW5hbmNpYSkpICsgDQogIGdlb21fcG9pbnQoKQ0KYGBgDQoNCmBgYHtyfQ0KYm94cGxvdChnYW5hbmNpYSB+IGludmVudGFyaW8sIGRhdGEgPSByZXN1bHRhZG9zKQ0KYGBgDQoNCg0KUG9yIGxvIHF1ZSBzZSBwdWVkZSB2ZXIgcXVlIGxhIG1heW9yIGdhbmFuY2lhIHNlIGdlbmVyYSBjdWFuZG8gc2UgdGllbmUgdW4gaW52ZW50YXJpbyBkZSBlbnRyZSAkNzAkIHkgJDgwJCBwZXJpb2RpY29zLiBJbmRlcGVuZGllbnRlbWVudGUgZGUgY3VhbnRhcyBwZXJzb25hcyBjb21wcmVuIGxvcyBwZXJpb2RpY29zLg0KDQoNCg==