5. Catalan food supply chain models
5.1 Global food supply chain
Um dos modelos mais recentes que integram a Programação de Voos e a Alocação de Frotas tem como objetivo minimizar os custos e as perdas de receita devido à demanda não atendida, permitindo alguma flexibilidade na realocação de demanda entre rotas que compartilhem o mesmo mercado. Este modelo usa os conceitos de rede espaço-tempo para alocação de frota (BERGE; HOPPERSTAD, 1993 apud KLABJAN, 2004), sendo a rede construída com base em um grafo direcionado, adotando também o conceito de demanda associada à rota (BARNHART; KNIKER; LOHATEPANONT, 2002; SOUMIS; FERLAND; ROUSSEAU, 1980) para representar o modelo misto de distribuição de demanda e frotas, sem a necessidade de lidar com a continuidade de passageiros entre os arcos, o que o tornaria um problema de fluxo multicommodity. O princípio é alocar as aeronaves aos arcos de voo que, por sua vez, são alocados às rotas; também os passageiros são alocados às rotas e acabam por compor as demandas de cada voo (LOHATEPANONT; BARNHART, 2004).
Este modelo lida com dois elementos diferenciados na composição da demanda. O primeiro deles é um incremento da demanda em uma rota p pelo cancelamento de outra r concorrente - definidas a priori pelos parâmetros ΔDpr. O segundo elemento é a recaptura de demanda: se uma
desta demanda será transferida com sucesso para a rota p. A fração da demanda de r que é recapturada em p é denominada taxa de recaptura, indicada a priori pelos parâmetros brp. O modelo, assim como o significado
destas variáveis e parâmetros, é apresentado detalhadamente a seguir (LOHATEPANONT; BARNHART, 2004).
A função objetivo deste modelo minimiza a somatória de três componentes básicos: o custo operacional, O; a receita perdida devido à demanda não atendida, S, subtraindo-se a receita de recaptura de demanda, M; e a variação da receita devido às mudanças da demanda em um mercado, ΔR, por ocasião do cancelamento de rotas. A função objetivo pode ser representada conforme a Eq. 3.38.
(3.38)
[min]O + (S − M) + R
O custo operacional total O é calculado com base no custo de cada alocação de aeronaves realizada. Considerando L como o conjunto de todos os arcos de voo na programação, K o conjunto de frotas, Cki o parâmetro
que representa o custo de alocar uma aeronave da frota k a cada voo i, e a variável de decisão binária fki, que vale 1 apenas se o voo i está associado à
frota k, o custo operacional O pode ser descrito pela Eq. 3.39.
(3.39)
O
=
icL kcK
C
ki.f
kiA receita perdida devido ao não atendimento da demanda S é calculada multiplicando-se a receita de cada passageiro de cada rota pelo número de passageiros que não foi acomodado na respectiva rota. Como o modelo trabalha com o conceito de recaptura de demanda, parte dos passageiros que não forem alocados a uma rota p serão redirecionados a outras rotas r, incluindo a rota nula, que indica passageiros não transportados. Considerando-se, então, as variáveis de decisão tpr, que
indicam o número de passageiros perdidos em cada rota p que a empresa tentará recapturar em cada rota r, e os parâmetros fareap, que representam
a receita que cada um desses passageiros perdidos proporcionaria se estivessem alocados à rota p, a receita perdida total S pode ser calculada conforme a Eq. 3.40.
(3.40)
S
=
pcPrcP
farea
p.t
p rOcorre que nem todos estes passageiros serão, de fato, perdidos; alguns deles serão recapturados. Assim, considerando bpr como o parâmetro
que representa a taxa de recaptura de demanda da rota p para a rota r, e farear o parâmetro que representa a receita por passageiro na rota r, a
receita de recaptura M total, contabilizando todos os passageiros realocados de todas as rotas p para as rotas r, pode ser calculada conforme a Eq. 3.41.
(3.41)
M
=
pcPrcP
b
pr
.farea
r.t
prFinalmente, sempre que uma rota não for realizada, uma parte de seus passageiros será diretamente transferida para outras rotas. Há, portanto, uma variação de receita devido à variação da demanda, ΔR. A receita perdida pelo cancelamento de uma rota q pode ser calculada pela demanda irrestrita desta rota, representada pelo parâmetro Dq, multiplicada
pela receita individual, fareaq, que cada passageiro proporcionaria se a rota
q fosse executada. Ocorre, entretanto, que alguns dos passageiros perdidos em uma rota cancelada irão utilizar outra rota - proporcionando uma receita alternativa.
Considerando que o parâmetro ΔDqp representa a variação de
demanda na rota p devido ao cancelamento da rota q, a multiplicação deste valor pela receita de cada passageiro na rota p produz a variação de receita na rota p devido ao cancelamento da rota q. Note-se que se a rota q foi
cancelada, a rota p receberá passageiros, sendo ΔDqp um valor positivo;
como a função objetivo é de minimização de perdas, a receita adicional (ΔDqp.fareap) deve entrar com o sinal de subtração, já que ela reduz as
perdas.
Assim, considerando PO o conjunto de rotas contendo voos opcionais
e Zq uma variável de decisão binária que vale 1 apenas se a rota q tem
todos os seus voos executados, a variação de receita por conta de rotas não realizadas ΔR pode ser calculada conforme a Eq. 3.42.
(3.42)
R
=
qcPO
farea
q.D
q−
pcP:p!qfarea
p. D
qp
.(1 − Z
q)
O primeiro conjunto de restrições garante a cobertura dos voos obrigatórios, indicando que uma e apenas uma única aeronave de uma única frota deve estar alocada a cada voo obrigatório. Considerando LF o
conjunto de arcos que representam os voos obrigatórios, tal restrição pode ser representada conforme a Eq. 3.43.
(3.43) kcK
f
ki= 1
≤i c L
F
O segundo conjunto de restrições é similar ao primeiro, mas com relação à cobertura dos voos opcionais, que devem ser associados a, no máximo, uma única frota. Considerando LO o conjunto de arcos que
representam os voos opcionais, tal restrição pode ser representada conforme a Eq. 3.44.
(3.44) kcK
f
ki[ 1
≤i c L
O
O terceiro conjunto de restrições garante a continuidade das aeronaves de cada frota, através do equilíbrio nos nós da rede.
Considerando o instante de tempo t, o conjunto de nós da rede N, as variáveis de decisão inteiras ykot- e ykot+, que representam, respectivamente, o
número de aeronaves da frota k que está em um arco de solo do aeroporto o no instante de tempo imediatamente anterior e imediatamente posterior a t, e I(k,o,t) e O(k,o,t) os conjuntos de arcos de voo que, respectivamente, chegam no nó {k,o,t} e partem do nó {k,o,t}, estas restrições podem ser descritas conforme a Eq. 3.45.
(3.45)
y
kot−+
icI(k,o,t)
f
ki− (y
kot++
icO(k,o,t)f
ki) = 0
≤{k, o, t} c N
O quarto conjunto de restrições limita o número de aeronaves por frota, indicando que, em qualquer instante t, o número de aeronaves utilizadas de uma frota k, em voo ou em solo, não deve superar o número de aeronaves disponíveis na frota, Nk. Considerando o conjunto de aeroportos
A, CL(k) como o conjunto de arcos de voo da frota k que incluem o instante t, e a variável ykot, que representa o número de aeronaves da frota k que
está em um arco de solo do aeroporto o no instante de tempo t, esta restrição pode ser descrita conforme a Eq. 3.46.
(3.46) ocA
y
kot+
icCL(k)f
ki[ N
k≤k c K
O instante t deve ser um instante de tempo válido, isto é, um instante entre os horários de partida do primeiro voo e chegada do último voo da rede, como já descrito no modelo de rede espaço-tempo na seção 3.2.4.
O quinto conjunto de restrições limita a capacidade das aeronaves, obrigando que o número de assentos disponíveis no voo i deva ser maior ou igual à demanda total deste voo, Qi. A capacidade da aeronave é composta
por quatro termos: o primeiro indica o número de assentos disponíveis no voo i, CAPi; o segundo termo, Roi, soma à capacidade a demanda perdida
ajusta a capacidade de acordo com a variação de demanda que o voo i sofreu devido ao cancelamento de outras rotas; o último termo, Rii, reduz a
capacidade por conta dos passageiros que estão sendo transportados no voo i devido ao efeito de recaptura de demanda perdida em outras rotas. Esta restrição está representada na Eq. 3.47 e seus termos são detalhados a seguir.
(3.47)
CAP
i+ Ro
i+ P
i− Ri
im Q
i≤i c L
A capacidade do voo em assentos, CAPi, é a capacidade de uma
aeronave da frota k, CAPk, que foi selecionada para cumprir o voo i,
identificado pela variável fki, conforme representado na Eq. 3.48.
(3.48)
CAP
i=
kcK
CAP
k.f
ki
A demanda perdida pela falta de capacidade, Roi, é o total de
passageiros que excedeu a capacidade da rota p. Considerando que a variável tpr representa a quantidade de passageiros perdidos na rota p
devido à falta de capacidade, possivelmente sendo transferidas para a rota r, e δip o parâmetro binário que vale 1 apenas se o voo i faz parte da rota p,
esta restrição pode ser apresentada como na Eq. 3.49.
(3.49)
Ro
i=
rcPpcP i p
.t
prA variação de demanda devido ao cancelamento de rotas, ΔPi, pode
ser calculada como a soma das variações de demanda em todas as rotas p que compõem a demanda do voo i. A variação de demanda de cada rota p pode ser calculada como a soma das variações de demanda na rota p causadas por cada rota q cancelada, ou seja, pela soma dos parâmetros ΔDqp. Considerando δip o parâmetro binário que vale 1 apenas se o voo i faz
parte da rota p e Zq uma variável binária que vale 0 apenas se a rota q foi cancelada, esta restrição pode ser descrita conforme a Eq. 3.5010.
(3.50)
P
i=
pcPqcPO i
p
. D
qp.(1 − Z
q)
Finalmente, a demanda recebida por recaptura, Rii, é obtida
multiplicando-se os passageiros perdidos por incapacidade de atendimento, que a empresa gostaria de transferir para as rotas p que compõem a demanda do voo i, pelas respectivas taxas de recaptura. Considerando que a variável trp representa a quantidade de passageiros perdidos na rota r que
a empresa tenta recapturar na rota p, brp o parâmetro que representa a taxa
de recaptura efetiva de passageiros da rota r para a rota p, e δip o parâmetro
binário que vale 1 apenas se o voo i faz parte da rota p, esta restrição pode ser apresentada como na Eq. 3.51.
(3.51)
Ri
i=
rcPpcP i p
.b
rp.t
rpO sexto conjunto de restrições limita a perda de demanda de uma rota; uma demanda não pode perder uma demanda maior do que aquela que possui. Considerando o parâmetro Dp como a demanda irrestrita na rota
p, a restrição pode ser descrita como representado na Eq. 3.5211. Nela, o primeiro termo indica o número de passageiros que a rota p recebeu de outras rotas canceladas e o segundo termo indica a quantidade de passageiros perdidos desta rota p que a empresa tentará realocar na rota r.
11Mais uma vez, causa estranheza que o primeiro termo da Eq. 3.52 apareça com o sinal
positivo; uma vez que se trata de um incremento na demanda da rota p, tal termo deveria aparecer ampliando a quantidade de passageiros que podem ser perdidos na rota, ao invés de reduzi-la.
10Causa estranheza que o termo representado pela Eq. 3.50 apareça na restrição da Eq.
3.47 com o sinal positivo; uma vez que se trata de um incremento na demanda do voo i, tal termo deveria aparecer penalizando a capacidade, ao invés de incrementá-la.
(3.52) qcPO
D
q p.(1 − Z
q) +
rcPt
p r[ D
p≤p c P
Os sétimo e oitavo conjuntos de restrições controlam a execução das rotas opcionais. A Eq. 3.53 representa o conjunto das restrições que garantem que a variável binária Zq terá valor 0 se pelo menos um dos voos
de uma rota q, agrupados no conjunto L(q), não for cumprido; o conjunto de restrições representado pela Eq. 3.54, considerando Nq um parâmetro que
indica o número de voos da rota q, garante que Zq terá valor 1 sempre que
todos os voos de uma rota forem cumpridos. Em outras palavras, estas restrições ajustam o valor da variável binária de controle Zq, que indica se a
rota q será executada ou não.
(3.53)
Z
q−
kcKf
ki[ 0
≤i c L(q), ≤q c P
O (3.54)Z
q−
icL(q)kcKf
kim 1− N
q≤q c P
OFinalmente, as variáveis de decisão fki e Zq são declaradas como
binárias e as variáveis ykot e tpr são declaradas como não negativas,
conforme indicado pelas eqs. 3.55 a 3.58,
(3.55)
f
kic{0, 1}
≤k c K, ≤i c L
(3.56)Z
qc
{0, 1}
≤q c P
O (3.57)y
kotm 0
≤{k, o, t} c N
(3.58)t
prm 0
≤p, r c P
Na aplicação deste modelo, para gerar uma programação diária, são necessárias as informações de voos potenciais - obrigatórios ou opcionais -, o número de frotas disponíveis, rotas potenciais e suas demandas totais, além da necessidade de indicação de quais rotas podem competir pelos passageiros de um mercado. A consideração de uma tabela mestra de voos potenciais obrigatórios e opcionais não dificulta a aplicação do modelo, visto
que o desenvolvimento incremental da programação de voo é uma prática comum no mercado, pelas seguintes razões (LOHATEPANONT; BARNHART, 2004) :
a.Construir uma programação totalmente nova requer dados que podem não estar disponíveis para a empresa aérea;
b.construir uma programação melhorada sem uma outra programação como ponto de partida é impraticável operacionalmente e computacionalmente difícil, se não intratável; c. mudanças muito grandes na estrutura da rede requerem
investimentos significativos nos aeroportos (gates, balcões de check-in etc.);
d.as empresas aéreas preferem um grau de estabilidade de uma temporada para outra, já que, no mercado aéreo, os passageiros costumam valorizar a consistência.
Quando tais informações estão disponíveis, a exigência dos dados de demanda de cada rota, isto é, a demanda por origem-destino ao invés da demanda por voo, permite uma flexibilidade maior ao modelo. Tal flexibilidade ocasiona soluções mais próximas da operação ótima em condições ideais de operação - sem atrasos, por exemplo -, promovendo, indiretamente, uma concentração de demanda em alguns aeroportos. Nos testes desse modelo, as demandas foram estimadas com o uso de softwares proprietários de avaliação de programação de voo, dificultando a exposição de detalhes dos modelos de distribuição de demanda. Além disso, a redistribuição e recaptura de demanda nas rotas depende do cálculo de fatores de correção através de um modelo de avaliação de programação de voo (LOHATEPANONT; BARNHART, 2004).
Entretanto, para que o modelo proposto obtivesse imediatamente o resultado ótimo, seria necessário calcular antecipadamente todas as correções ΔDqp para todas as combinações possíveis de rotas executadas, o
que é impraticável por conta do número exponencial de combinações. Assim, é proposto um processo iterativo de geração de programação de voos e do cálculo de novos índices de correção de distribuição de demanda (LOHATEPANONT; BARNHART, 2004).
A aplicação deste modelo a uma instância com cerca de 753 voos e 4 frotas, o que gerou um modelo com cerca de 50.000 colunas e 30.000 linhas, proporcionou um aumento de receita de quase 50% com relação à programação gerada pelo especialista. Esta solução foi obtida com o uso da técnica de geração de linhas e colunas, em um tempo de solução de quase 13 horas, usando o software CPLEX em um equipamento HP C3000, com 2GB de memória. Uma instância um pouco maior do problema, com 858 voos, com as mesmas 4 frotas, gerando um modelo de cerca de 65.000 colunas e 61.000 linhas, não teve solução inteira encontrada no mesmo computador citado, mesmo após 3 dias de processamento (LOHATEPANONT; BARNHART, 2004).
3.3.3.1. Considerações Sobre o Modelo
Os pontos fortes deste modelo são a grande flexibilidade permitida pela redistribuição de demanda entre os diversos voos, usando o conceito de demandas agrupadas em mercados.
Por outro lado, os maiores pontos fracos são a grande complexidade e a exigência da definição a priori das rotas que podem fazer parte de um mercado, quais voos pertencem a cada rota, qual a demanda de cada mercado que será atendida por cada rota que dele faz parte. Adicionalmente, a solução utiliza um processo de correção de demanda complexo, advindo da consideração de transferência de passageiros entre rotas de composição distinta (de um voo direto a demanda é realocada para dois voos com conexão, por exemplo). Finalmente, este modelo trabalha explicitamente com receitas e custos, como todos aqueles citados
anteriormente, herdando as dificuldades relativas à obtenção desta informação.