From b368201d5d40d144d19ce94e33544e265bb437c1 Mon Sep 17 00:00:00 2001 From: Cesa-V Date: Tue, 16 Jun 2026 11:14:57 -0300 Subject: [PATCH] Documenta historico v1/v2/v3 no README com fases, limitacoes e nomenclatura Co-Authored-By: Claude Sonnet 4.6 --- README.md | 74 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 01d9ef9..5c66a30 100644 --- a/README.md +++ b/README.md @@ -191,46 +191,60 @@ Parâmetros relevantes do modelo: | `--time-limit` | 300 | Limite de tempo do solver CBC (segundos) | | `--aleatorio` | — | Sorteia f0 aleatório entre 10%–90% de F_max | -Pré-processamentos disponíveis: +--- -```text -db/raw/relatorio_ciclo_inspecoes_c105_2805_2026-06-15.pdf — ciclo de inspeções C-105/2805 -db/processed/registro_voo_2025.csv — registro de voo 2025 limpo (1420 trechos) -db/processed/registro_voo_2025_consolidado.csv — consolidado para roteamento -``` -## Atualizacao - registro de voo 2025 +## Histórico dos modelos -A `Planilha 2025.xlsx` foi pre-processada a partir de `db/raw/` sem alterar o arquivo original. +### v1 — Protótipo inicial (`software/oamrp_v1.py`) -Arquivos gerados: +Primeiro protótipo do modelo MIP em PuLP. Estrutura simples de atribuição aeronave-missão sem rede espaço-tempo, sem inspeções e sem ferry. Serviu para validar a configuração do ambiente e a integração com o solver CBC. -```text -db/pre_process/registro_voo_2025/preprocess_planilha_2025.py -db/pre_process/registro_voo_2025/registro_voo_2025_limpo.csv -db/pre_process/registro_voo_2025/registro_voo_2025_limpo.xlsx -db/pre_process/registro_voo_2025/registro_voo_2025_consolidado.csv -db/pre_process/registro_voo_2025/missoes_oamrp_2025.csv -db/pre_process/registro_voo_2025/missoes_oamrp_2025_consolidado.csv -db/pre_process/registro_voo_2025/resumo_registro_voo_2025.json -db/pre_process/registro_voo_2025/validacao_registro_voo_2025.md -db/processed/registro_voo_2025.csv -db/processed/registro_voo_2025_consolidado.csv -``` +- **Formulação:** atribuição direta, variáveis binárias por (aeronave, missão) +- **Restrições:** cobertura básica e continuidade de base +- **Sem:** janelas de tempo, inspeções, ferry, prioridades +- **Status:** protótipo histórico, não usar em produção -O consolidado trata `ROTA` como marcador de transicao, nao como localidade operacional, e remove a linha original 793 da aeronave 2806 dos artefatos processados. +--- -## Modelo OAMRP v2 +### v2 — Dados reais de 2025 (`software/oamrp_v2.py`) -O arquivo `software/oamrp_v2.py` executa a primeira rodada do modelo com dados reais consolidados de 2025. Por padrao, ele usa janeiro/2025, as aeronaves `2800`, `2803`, `2809` e `2811`, e grava: +Primeira rodada com dados reais do registro de voo de janeiro/2025, pré-processados a partir da planilha original. Introduziu janelas de tempo (decolagem e chegada do CSV), TAT entre missões e prioridade uniforme. -```text -db/processed/resultado_oamrp_jan_2025.csv -``` - -Para executar: +- **Dados de entrada:** `db/processed/registro_voo_2025_consolidado.csv` (1 267 trechos, 1 420 linhas originais) +- **Resultado:** 50 de 61 missões cumpridas em janeiro/2025 (`db/processed/resultado_oamrp_jan_2025.csv`) +- **Limitação identificada:** os dados reais de jan/2025 eram predominantemente voos locais SBMN→SBMN, não exercitando roteamento cross-base nem inspeções ```powershell python software/oamrp_v2.py ``` -A rodada inicial de janeiro/2025 foi resolvida como otima pelo CBC, com 50 de 61 missoes cumpridas. +--- + +### v3 — Rede espaço-tempo completa (`software/oamrp_v3.py`) ← **modelo ativo** + +Reescrita completa baseada em Al-Thani, Ben Ahmed & Haouari (2016). Introduziu a formulação por rede espaço-tempo com nós No e arcos Arco, inspeções com relógio de horas acumuladas e reset, arcos de ferry entre bases e missões sintéticas cross-base para validação de roteamento. + +**Fases implementadas:** + +| Fase | Restrições | Descrição | +|---|---|---| +| 1 | C1–C6 | Rede espaço-tempo, cobertura (Set Partitioning), conservação de fluxo, TAT | +| 2 | C7–C11 | Nós de inspeção, relógio H[k,i,n] com reset, downtime, slot único | +| 3 | Ferry | Arcos de ferry entre quaisquer bases (haversine ÷ 430 km/h), consome horas de célula | + +**Nomenclatura alinhada com Al-Thani (2016):** + +- `F_max` — batente fixo (intervalo máximo legal entre manutenções, ex: 300 h) +- `f0` — horas acumuladas no início do horizonte (estado inicial da aeronave) +- `LRT = F_max − f0` — tempo legal restante (decresce com o voo) +- `H[k, seq, nid]` — acumulado em tempo real, rastreado na rede (equivale a u_j do artigo) + +**Missões sintéticas:** como os dados reais de 2025 não exercitavam roteamento, o modelo usa um gerador sintético cross-base (`--sintetico`) com distâncias reais (haversine) e velocidade de cruzeiro do C-105 (430 km/h). + +**Pré-processamentos disponíveis:** + +```text +db/raw/relatorio_ciclo_inspecoes_c105_2805_2026-06-15.pdf — ciclo de inspeções C-105/2805 +db/processed/registro_voo_2025.csv — registro de voo 2025 limpo (1 420 trechos) +db/processed/registro_voo_2025_consolidado.csv — consolidado para roteamento +```