Files
aircraftrouting_arara/CONTEXTO.md
Eduardo Carlos 3607965c88 Add OARMP routing engine, dashboard and documentation
- Complete routing engine: ingest, optimizer (CG+B&B), maintenance
  monitor, metrics, pipeline, quality checks
- Streamlit dashboard with Input/Output tab structure, editable data
  editors, interactive Folium map with satellite layer and maintenance
  base highlights, FH stacked bar chart with TTM availability
- CSV data files: AERONAVES, CHECKS, AIRPORTS, ESCALA DE VOO
- README, CONTEXTO and CHANGELOG added
- Remove legacy pre_process scripts and raw binary files (PDFs/xlsx)
- Update .gitignore to exclude outputs/, data/, raw/*.pdf, raw/*.xlsx

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-17 11:52:34 -03:00

4.3 KiB

Contexto do Projeto — OARMP

Origem e motivação

O OARMP nasceu da necessidade de apoiar o planejamento de emprego da frota de aeronaves C-105 Amazonas no âmbito do CEAO 809. A gestão manual da escala de voo — realizada em planilhas — não garante o respeito sistemático aos intervalos de manutenção (TTM), o que pode resultar em aeronaves com check vencido, indisponibilidade não planejada ou perda desnecessária de horas de TTM.

O sistema automatiza a atribuição de aeronaves a missões, respeitando os checks programados e minimizando o desperdício de horas de vida útil de manutenção.

Contexto operacional

Aeronaves

A frota considerada é composta por aeronaves C-105 Amazonas (Embraer KC-390 regional), operadas no transporte logístico e de pessoal na região amazônica. Cada aeronave possui um histórico acumulado de horas de voo (FH Totais) que determina a proximidade ao próximo check.

Checks de manutenção

Os checks são definidos por thresholds cumulativos de FH (ex: 300 h, 400 h, 600 h, 900 h). Quando uma aeronave atinge o threshold de seu ciclo atual, ela deve ser submetida ao check correspondente antes de continuar voando. A manutenção é realizada exclusivamente nas bases habilitadas (campo IS_MAINTENANCE_BASE = 1 em AIRPORTS.csv).

OFRAGs

Um OFRAG (fragmento de voo) é um conjunto de etapas que parte da base de manutenção e retorna a ela. Essa restrição é fundamental: apenas OFRAGs com início e fim na base podem ser alocados no problema de otimização, pois garantem que a aeronave pode ser submetida a check entre missões.

Escala de voo

A escala é fornecida no formato da planilha operacional da unidade, com etapas identificadas por data, aeroportos de partida/chegada, horários e número de OFRAG. O sistema aceita datas no formato DD/MM/AAAA ou no formato legado DD/mon (ex: 15/jan).

Problema de otimização

O problema é modelado como Set Partitioning sobre o conjunto de OFRAGs:

  • Cada OFRAG deve ser coberto por exatamente uma aeronave
  • Cada aeronave executa no máximo uma rota (sequência de OFRAGs)
  • A rota deve ser TTM-viável: a qualquer ponto, as FH acumuladas desde o último check não excedem o TTM do ciclo atual
  • A função objetivo minimiza a perda total de TTM (horas de TTM não utilizadas quando a manutenção é antecipada)

A solução é obtida por Column Generation (geração de colunas) combinada com Branch & Bound (PuLP/CBC), permitindo explorar um espaço de rotas potencialmente exponencial de forma eficiente.

Decisões de projeto

Decisão Justificativa
Set Partitioning (ao invés de Set Covering) Garante que cada missão seja atribuída a exatamente uma aeronave, sem ambiguidade
Column Generation O número de rotas viáveis é exponencial; CG constrói apenas colunas lucrativas
Pricing por DP (label-setting) Subproblema é um shortest-path com restrições de recursos (TTM), adequado para DP em DAG
TAT mínimo (padrão 60 min) Garante tempo mínimo de preparação entre OFRAGs consecutivos na mesma aeronave
Penalidade Big-M por OFRAG descoberto Permite solução mesmo quando a cobertura total é inviável (ex: mais OFRAGs do que aeronaves disponíveis)

Limitações conhecidas

  • O modelo considera apenas um evento de manutenção por ciclo de check; múltiplos checks consecutivos são tratados como ciclos independentes
  • A duração da manutenção é fixa por tipo de check; variações logísticas (falta de peças, disponibilidade de hangar) não são modeladas
  • OFRAGs que não partem e chegam à base de manutenção são excluídos do problema (não podem ser alocados)
  • O solver CBC tem desempenho limitado para instâncias muito grandes; o parâmetro mip_time_limit_seconds controla o tempo máximo

Arquivos de referência

Arquivo Conteúdo
raw/AERONAVES.csv Frota com FH acumuladas
raw/CHECKS.csv Thresholds e durações dos checks
raw/AIRPORTS.csv Aeroportos e bases de manutenção
raw/ESCALA DE VOO MODELO 1.csv Escala de missões
raw/ICA 66-31 2023.pdf Instrução regulatória de aeronavegabilidade (referência)
raw/Airline Operations and Scheduling*.pdf Referência bibliográfica principal (Bazargan, 2010)