Probabilidade de reservas de hotel

Sep 21 2020

Um hotel tem 100 quartos e cobra os hóspedes pelos quartos com antecedência. O número de reservas para amanhã à noite é indicado como$n$. Os quartos são reservados até as 22h, mas se o hóspede não comparecer até as 22h, a reserva é cancelada e o hotel mantém a cobrança da reserva. O hotel aprendeu com experiências anteriores que a probabilidade de qualquer hóspede com reserva realmente aparecer por volta das 22h é$p = 19/20$, e que os hóspedes do hotel apareçam (ou não) independentemente uns dos outros. Deixei$X$ denota o número de convidados reservados que aparecem antes das 22h.

Suponha que o hotel ganhe 50 dólares de lucro para cada hóspede e não comparecimento, mas tenha que pagar uma compensação de 60 dólares para cada hóspede que não puder se hospedar devido a overbook. Supondo que a demanda por quartos pré-reservados seja ilimitada, quantos quartos devem ser vendidos para maximizar o lucro esperado?

Então nós temos isso $P(X=k)={n \choose k}(p)^k\times(1-p)^{n-k}$. Estou tendo problemas para tentar criar uma função de lucro. Minha primeira tentativa foi$$v(X) = \begin{cases} 50n-60(X-100) & X > 100\\ 50n & X \leq 100 \end{cases}$$No entanto, para maximizar o retorno, parece que o hotel precisaria de um entendimento adequado de quem exatamente aparecerá, o que é aleatório. Esta função também não parece capturar a probabilidade de os hóspedes aparecerem, o que deve pesar as escolhas que o hotel fará. Que tipo de função de lucro levará em conta a probabilidade de os convidados aparecerem?

Respostas

1 PedroSebe Sep 22 2020 at 10:50

Sua função de lucro está correta. O que você deseja maximizar aqui é o lucro esperado , ou seja:$$\mathbb E[v(X)]=\sum_{x=1}^n p(X=x)\cdot v(x)$$

Podemos escrever um script R para otimizar esta função:

# function to find expected profit if they book n rooms
expected_profit <- function(n){
  X = seq(0,n)
  prob = dbinom(X, size=n, prob=19/20)
  profit = ifelse(X>100, 50*n-60*(X-100), 50*n)
  return(sum(prob*profit))
}

# plotting that function
plot(
  seq(1,400),
  unlist(Map(expected_profit, seq(1,400))),
  type="l"
  )

# finding the maximum
which.max(unlist(Map(expected_profit, seq(1,400))))

Isso dá o resultado $n=108$. Ou seja, eles otimizam seu lucro médio reservando 108 quartos.

user295357 Sep 23 2020 at 03:18

É óbvio que o número ideal de reservas que geram lucro máximo deve ser maior do que o número de quartos disponíveis (ou seja, 100). Assim, só precisamos pesquisar o número de reserva ideal com$n > 100$.

$Average Profit(n)$

$= 50n - 60\sum_{k=101}^n (k-100){n \choose k}p^k\times(1-p)^{n-k}$.

Isso dá o número de reserva ideal 108 para $p=0.95$, as mesmas fornecidas acima pela PedroSebe .