Como utilizar o Python no planejamento de malha aérea


Você também pode escutar este artigo adaptado ao formato de podcast no perfil da Flylines no Spotify. Para isso, basta clicar em "play".

O planejamento de malha aérea envolve definir rotas, frequências, horários de voos e alocação de recursos de forma a atender à demanda de passageiros e a maximizar a eficiência operacional. Para tomar essas decisões, as companhias aéreas consideram diversos fatores, dentre eles: a previsão do número de passageiros, o emprego da frota de aeronaves e a concorrência com outras empresas. Neste sentido, cada vez mais, ferramentas avançadas de análise de dados – dentre elas a linguagem Python – vêm sendo empregadas como forma de auxiliar nesse processo de tomada de decisão. O Python destaca-se por sua facilidade de uso, riqueza de bibliotecas e capacidade de lidar com grandes volumes de dados, tornando-se, assim, um aliado valioso para o setor. Neste artigo, exploraremos de forma didática as principais aplicações do Python no planejamento de malha aérea: previsão de demanda, otimização de frota e análise da concorrência. Para cada uma delas, explicaremos os conceitos básicos, os benefícios do uso do Python, as bibliotecas mais empregadas e forneceremos alguns exemplos reais de aplicação, por isso, fique conosco até o final! 📊🛫

Previsão de demanda de passageiros

Prever quantos passageiros irão voar em uma determinada rota ou período é uma das atividades centrais no planejamento de malha. Previsão de demanda significa estimar, com base em dados históricos e variáveis relevantes, a quantidade futura de passageiros ou a taxa de ocupação esperada nos voos. Este conhecimento é fundamental para as companhias definirem quais rotas operar, com que frequências e quais aeronaves alocar. Uma previsão precisa permite ajustar a oferta à procura, evitando tanto voos vazios quanto a falta de assentos disponíveis. De fato, prever a demanda de passageiros com precisão é vital para o setor formular estratégias gerenciais adequadas – por exemplo, decidir abrir uma nova rota, aumentar frequências de voo em um mercado crescente ou reduzir a capacidade em rotas com baixa demanda.

Como o Python ajuda nesta previsão? O Python possui um ecossistema rico para análise de dados e modelagem preditiva. Com o Python, é possível reunir os dados históricos de passageiros (por rota, mês, ano etc.), realizar análises exploratórias e então ajustar modelos estatísticos ou de machine learning que projetem a demanda futura. Uma grande vantagem é a facilidade de manipular dados através de bibliotecas como o Pandas, que permite carregar planilhas de tráfego aéreo e calcular estatísticas de forma simples. Além disso, bibliotecas de machine learning como scikit-learn oferecem algoritmos de regressão e árvores de decisão que podem ser treinados para prever demanda a partir de tendências passadas e fatores externos (como PIB, sazonalidade e outros eventos). Para séries temporais, há ferramentas especializadas como o Facebook Prophet (implementado em Python) e o StatsModels, capazes de captar padrões sazonais e tendências de longo prazo automaticamente.

Bibliotecas Python comuns na previsão de demanda:

  • Pandas – para manipulação de dados tabulares (ex: dados históricos de passageiros por mês).

  • NumPy – para cálculos numéricos eficientes (ex: operações com grande volume de dados).

  • Scikit-Learn – para criar modelos preditivos de machine learning (ex: regressões para previsão de passageiros).

  • StatsModels/Prophet – para modelagem de séries temporais e previsão com tendências e sazonalidade definidas automaticamente.

Benefícios do uso do Python na previsão: A linguagem Python permite prototipagem rápida de modelos – isto é, testar diferentes métodos de previsão de forma ágil. Por exemplo, um analista pode em poucas linhas de código ajustar um modelo ARIMA ou um modelo de regressão e verificar o erro de previsão. Além disso, Python facilita a visualização dos resultados: bibliotecas como Matplotlib ou Seaborn permitem criar gráficos de séries históricas e projeções, tornando mais fácil comunicar os achados para os gestores. Outro benefício é a possibilidade de integrar diferentes fontes de dados: com Python, pode-se combinar dados econômicos (PIB, renda média) com dados internos da companhia para melhorar as estimativas de demanda. Em resumo, Python oferece flexibilidade e poder analítico para antecipar quantos passageiros esperar em cada voo ou rota, embasando decisões estratégicas com dados.

Exemplo de emprego do Python: imagine que uma companhia aérea regional deseja prever a demanda mensal de passageiros para o próximo ano em sua rota formada por duas capitais. Usando o Python, ela pode carregar os dados históricos dessa rota (digamos, dos últimos 5 anos) com o Pandas, visualizar a tendência e a sazonalidade, e então ajustar um modelo preditivo. Talvez identifique-se uma forte alta temporada em julho e dezembro. Com um modelo de série temporal (por exemplo, Prophet), a empresa projeta que em julho do próximo ano a rota terá um aumento de 15% na demanda comparado aos outros meses normais. Com essa informação em mão, a equipe de planejamento pode incrementar a oferta de voos ou usar aeronaves maiores nesse mês específico, garantindo que a capacidade atenda ao pico previsto. Esse processo, que antes demandaria planilhas complexas, torna-se muito mais simples e automatizado com o uso do Python, reduzindo erros manuais e permitindo ajustes rápidos caso novas informações surjam.

Otimização de frota e alocação de aeronaves

Outra frente crucial no planejamento de malha aérea é a otimização de frota – ou seja, decidir como alocar as aeronaves disponíveis nas várias rotas e horários ofertados, de modo eficiente. Companhias aéreas tipicamente possuem frotas limitadas, compostas de diferentes modelos de aviões, cada qual com capacidades e custos operacionais distintos. A pergunta-chave aqui é: qual é a melhor forma de empregar nossa frota para maximizar lucros ou minimizar custos, atendendo à demanda? Este problema é complexo, pois envolve inúmeras variáveis e restrições (horários de voo, necessidade de manutenção, limites de tripulação). Na pesquisa operacional, essa classe de problema é conhecida como Fleet Assignment Problem (problema de alocação de frota), cujo objetivo básico é determinar a rota mais indicada para cada tipo de aeronave, minimizando a quantidade total de aviões necessários e maximizando o número de passageiros atendidos.

Como o Python entra em cena? O Python se destaca por oferecer bibliotecas de otimização matemática que facilitam modelar e resolver esses problemas. Uma das bibliotecas mais populares é o PuLP, que permite criar modelos de programação linear de forma bastante intuitiva em Python. Essencialmente, o analista define variáveis de decisão (por exemplo, quantas vezes alocar o avião X na rota Y), a função objetivo (por exemplo, maximizar o lucro total ou minimizar custos) e as restrições do problema (por exemplo, limitar o número de aviões de cada modelo utilizados, garantir que a oferta de assentos >= demanda da rota, respeitar horas de voo disponíveis, etc.). A seguir, um solver (como o CBC, embutido no PuLP) encontra a melhor solução.

Para ilustrar, considere que uma empresa queira decidir quantos voos realizar em cada rota da sua malha doméstica usando sua frota. Com Python, pode-se construir um modelo que avalie milhares de combinações de alocações para encontrar aquela que traz o melhor resultado financeiro. O objetivo de um modelo desses é encontrar a melhor combinação possível de aviões e rotas que aumente as receitas e reduza os custos. Em outras palavras, o programa busca responder, por exemplo: a minha empresa deve empregar um jato regional de 70 lugares ou um Boeing 737 de 160 lugares nesta rota? Quantas frequências diárias devo operar, dado o limite de 20 horas de voo, por dia, por aeronave? Todas essas decisões podem ser formuladas em um modelo que será resolvido pelo Python.

Bibliotecas e ferramentas para otimização de frota:

  • PuLP – biblioteca Python para programação linear e inteira, fácil de usar e adequada para problemas de alocação.

  • OR-Tools (Google) – pacote de otimização com suporte a programação linear, inteira e rotas; útil para problemas complexos.

  • Pandas – para organizar os dados de entrada (ex: tabelas de demanda por rota, custos operacionais por aeronave, frota disponível).

  • NumPy e SciPy – para cálculos auxiliares e integração com algoritmos numéricos (SciPy inclui métodos de otimização contínua que podem ser úteis em subproblemas).

Benefícios do Python na otimização de frota: A principal vantagem é ter o poder computacional aliado à simplicidade de implementação. Problemas de planejamento que seriam inviáveis de resolver manualmente são solucionados em minutos pelo solver, graças ao poder computacional. O Python permite que analistas e gestores de malha modelem cenários “e se” facilmente: por exemplo, “e se” adquirirmos uma aeronave adicional?, “e se” o preço do combustível aumentar 20%?. Alterando alguns parâmetros no código, é possível re-otimizar a malha e ver o novo impacto. Além disso, o emprego do Python é altamente acessível – diferentemente de softwares proprietários caros usados tradicionalmente em pesquisa operacional, as bibliotecas Python são gratuitas e de código aberto. Isso democratiza o acesso a técnicas avançadas de otimização no setor aéreo. Outro ponto é a integração com outras análises: após otimizar, os resultados (ex: quantos voos em cada rota) podem ser combinados com análises financeiras ou de demanda dentro do mesmo ambiente do Python, gerando relatórios completos.

Exemplo prático de otimização de frota com Python e PuLP: Imagine que você está trabalhando no time de planejamento de uma companhia aérea. Sua frota é composta por 5 aeronaves3 aviões do modelo A, com 180 assentos cada, custo mais alto por hora de voo, mas ideais para rotas de alta demanda e; 2 aviões do modelo B, com 100 assentos cada, custo mais baixo, mas menos capacidade de transporte — uma aeronave ótima para rotas menores.

A empresa atende a 10 rotas domésticas diferentes. Cada aeronave tem um limite diário de horas de voo, e cada rota tem uma demanda prevista de passageiros. Neste contexto, seu objetivo é descobrir quantos voos deve operar em cada rota e com qual modelo de aeronave, de forma a:

  1. Atender toda a demanda prevista de passageiros;

  2. Não ultrapassar o limite de disponibilidade das aeronaves;

  3. Minimizar o custo total operacional.

Mas como Python e o PuLP entram nessa história? Com a biblioteca PuLP, você pode construir um modelo matemático para resolver esse problema. Aqui está o que você faria, neste caso: 1º Definir as variáveis de decisão: por exemplo, quantos voos do modelo A e do modelo B serão feitos em cada uma das 10 rotas; 2º Impor as restrições, como por exemplo: O total de horas de voo de cada avião não pode ultrapassar sua disponibilidade diária ou a soma dos assentos ofertados nas rotas deve ser igual ou maior que a demanda prevista e, por fim, em 3º Definir a função objetivo: minimizar o custo total da operação, somando o custo por hora de voo de cada aeronave multiplicado pelas horas voadas.

E o que sai disso? Ao rodar o solver do PuLP, o Python encontra a configuração ótima de alocação de aeronaves. O resultado pode ser algo como:

  • As rotas 1 e 2 têm alta demanda e bom retorno financeiro, então o modelo recomenda usar os 3 aviões modelo A nelas, com múltiplos voos.

  • As rotas 7 a 10, com baixa demanda, recebem voos do modelo B, que são mais econômicos.

Por que isso é útil? Sem esse tipo de ferramenta, você teria que fazer inúmeras simulações manualmente, correndo o risco de encontrar uma solução subótima. Com Python e PuLP, em poucos minutos você gera um plano de voos economicamente eficiente e operacionalmente viável, com base em dados reais e nas regras estabelecidas.

Análise da concorrência e inteligência de mercado

Por fim, um aspecto igualmente importante para as companhias aéreas é entender o ambiente competitivo em que operam – isto é, analisar o que os concorrentes estão fazendo. No contexto de gestão de malha aérea, análise da concorrência envolve monitorar as rotas e frequências operadas por outras empresas, os preços praticados, a participação de mercado em cada aeroporto, as novas entradas ou saídas de competidores em certos destinos, entre outros fatores. Essas informações permitem ajustar a estratégia: por exemplo, se um concorrente aumenta muito a oferta de voos numa rota, pode indicar saturação e queda de tarifas, influenciando a decisão de nossa empresa em reduzir a capacidade naquele mercado ou focar em mercados mais rentáveis. Ferramentas de inteligência de mercado, como bases de dados de horários de voos e sistemas de acompanhamento de tarifas, historicamente auxiliam nessa tarefa. Entretanto, o Python pode complementar (ou mesmo substituir, em certos casos) essas ferramentas ao possibilitar a coleta e a análise personalizada de dados sobre os concorrentes.

Aplicações do Python na análise da concorrência: Uma utilização comum é analisar dados de capacidade e frequência de voos dos competidores. Por exemplo, usando Python e Pandas, podemos ler relatórios públicos (ou dados de órgãos reguladores como a ANAC) contendo o número de voos ou assentos ofertados por rota, e então comparar o desempenho das companhias aéreas em determinado mercado. O Python facilita agregar esses dados e calcular participações de mercado, evoluções ao longo do tempo e identificar tendências (quem está crescendo, quem está retraindo). Outra aplicação importante é o web scraping – a extração de dados de sites. Muitas empresas utilizam Python para coletar informações de preços e ofertas diretamente de fontes online, como buscadores de passagens. Por exemplo, é possível criar um script no Python que diariamente acesse o Google Flights ou sites de concorrentes e registre o preço das passagens em determinadas rotas e datas. Ferramentas como o Requests ou o Selenium permitem simular um usuário navegando e coletando esses dados automaticamente. Isso alimenta as análises de inteligência competitiva: com históricos de preços e ofertas coletados, a empresa pode detectar, por exemplo, promoções agressivas de um concorrente ou a época em que determinado trecho fica mais barato. Minerar dados do Google Flights com o Python ajuda empresas no processo de construção de sua análise de mercado, inteligência competitiva e desenvolvimento de estratégias de preços mais eficazes.

Bibliotecas do Python úteis na análise da concorrência:

  • Pandas – para consolidar dados de diferentes fontes (ex: juntar dados de voos da concorrência de vários meses para análise).

  • Requests/BeautifulSoup – para fazer scraping de páginas web de forma programada (ex: coletar horários ou preços do site de uma companhia concorrente).

  • Selenium – para automação de navegação web quando necessário (ex: simular busca de voos no Google Flights que exige interação dinâmica).

  • Matplotlib/Seaborn – para criar gráficos comparativos (ex: evolução da oferta de assentos de duas companhias em uma rota ao longo do tempo).

  • NetworkX – biblioteca para análise de grafos, que pode ser usada para modelar as malhas aéreas como redes e visualizar sobreposições entre rotas de empresas diferentes (análise mais avançada).

Benefícios do Python na análise de concorrência: Em vez de depender apenas de relatórios de terceiros, com o Python a companhia aérea pode customizar suas análises focando nos concorrentes e nas métricas que mais importam para sua estratégia. A capacidade de automatizar a coleta de dados significa que informações sobre a concorrência podem ser obtidas quase em tempo real. Por exemplo, ao ter um código que verifica diariamente os voos disponíveis do concorrente X em determinada rota, é possível reagir rapidamente a qualquer mudança (como um aumento de frequência ou retirada de operação). O Python também permite cruzar dados internos com externos – por exemplo, comparar o seu desempenho de ocupação em uma rota, com a oferta total de assentos da concorrência, dando insights sobre a sua participação de mercado e onde pode haver oportunidade de crescimento. Outra vantagem é a visualização e o storytelling: com gráficos gerados em Python, fica mais fácil comunicar para a equipe e para os gestores como está o cenário competitivo, tornando a tomada de decisão mais embasada. Em suma, o emprego do Python permite que  as companhias sejam mais proativas na análise da concorrência, transformando dados brutos em inteligência acessível.

Exemplo prático: Imagine que você, como analista júnior em uma companhia aérea, recebeu a missão de avaliar a concorrência na rota São Paulo – Recife. Com Python, você primeiramente obtém os dados públicos de voos realizados nessa rota nos últimos 12 meses (por exemplo, do site da ANAC ou de outro dataset público), contendo quantos voos cada companhia fez e quantos assentos ofertou. Usando o Pandas, você rapidamente calcula que a companhia A (a sua) teve 40% dos assentos ofertados, a companhia B 35% e a C 25%, no mesmo período. Em seguida, via scraping, você coleta tarifas médias atuais para os próximos meses e descobre que a concorrente B está vendendo passagens 20% mais baratas em certos dias da semana. Cruzando essas informações, você identifica que B está tentando ganhar market share com preços agressivos nas terças e quartas. Esse tipo de insight, obtido com o Python, poderia levar sua empresa a responder com promoções direcionadas ou a focar em outros dias nos quais tem mais vantagem. O importante é que toda a análise – desde a coleta de dados até o cálculo e a visualização – pôde ser feita em Python, em poucas horas, algo que manualmente demoraria dias e, possivelmente, não teria a mesma riqueza de detalhes.

Considerações

O uso de Python no planejamento de malha aérea está revolucionando a forma como as companhias aéreas analisam dados e tomam decisões estratégicas. Neste artigo, vimos três aplicações principais: a previsão de demanda, na qual o Python ajuda a antecipar o comportamento dos passageiros e ajustar a oferta de voos de forma proativa; a otimização de frota, em que técnicas de pesquisa operacional implementadas em Python permitem aproveitar ao máximo os recursos (aeronaves) disponíveis; e a análise da concorrência, na qual a linguagem possibilita extrair e interpretar informações valiosas sobre os competidores em tempo real. Em todos esses casos, destacam-se os benefícios de usar o Python: a vasta coleção de bibliotecas especializadas (desde machine learning a otimização e web scraping), a facilidade de manipulação de dados com Pandas, e a flexibilidade para criar soluções sob medida sem depender de softwares proprietários. O Python se tornou, em essência, uma ferramenta multifuncional para o setor aéreo – do analista de planejamento ao gestor de malha, todos podem se beneficiar ao incorporá-la em seu conjunto de habilidades. Ao dominar esses recursos, futuros profissionais da aviação estarão mais bem preparados para enfrentar desafios como a volatilidade de demanda, a competição acirrada e a necessidade constante de eficiência. Em suma, o Python possibilita um planejamento de malha aérea mais inteligente, ágil e fundamentado em dados, contribuindo para uma aviação mais competitiva e inovadora.


Referências bibliográficas
Planejamento e gestão de malha aérea: conceitos e estratégias
 https://www.flylines.com.br/blog/como-o-planejamento-de-malha-area-pode-ajudar-a-evitar-novos-acidentes
 Flylines Blog
Tendências do setor aéreo para 2024
 https://www.flylines.com.br/blog/tendencias-do-setor-aereo-para-2024
 Flylines Blog
Passenger Air Traffic Demand Forecasting: A Literature Review
 https://journals.sagepub.com/doi/full/10.1177/03611981221086650
 Transportation Research Record – SAGE Journals
Fleet Assignment Problem and Aircraft Routing in Airlines
 https://www.sciencedirect.com/science/article/pii/S0968090X18308755
 Journal of Air Transport Management
Solving Airline Optimization Problems With Python and PuLP
 https://towardsdatascience.com/fleet-optimization-in-python-with-pulp-5b2d0f6f9a3e
 Towards Data Science
PuLP: A Linear Programming Toolkit for Python
 https://coin-or.github.io/pulp/
 COIN-OR Foundation
Web Scraping Google Flights Data for Competitive Intelligence
 https://brightdata.com/blog/web-data-collection/google-flights-scraping
 Bright Data Blog
Market and Network Analysis Tools in Aviation
 https://www.eplane.ai/blog/airline-competitive-intelligence-data-sources
 ePlane AI Blog
Machine Learning With Scikit-Learn: Predicting Air Passenger Demand
 https://scikit-learn.org/stable/tutorial/index.html
 Scikit-learn Documentation

Sobre o autor: 
Antônio Lourenço Guimarães de Jesus Paiva 
Pai da Helena
Diretor da Flylines 
Graduado em Aviação Civil pela Universidade Anhembi Morumbi
Especialista em Planejamento e Gestão Aeroportuária pela Universidade Anhembi Morumbi
Especialista em Gestão de Marketing pela Universidade de São Paulo
Especialista em Data Science e Analytics pela Universidade de São Paulo
Próximo
Próximo

Como pagar suas horas de voo de PC (sem vender um rim e o headset)