- C1 alterado: z[nid] <= 1 -> z[nid] == 1 para todas as missoes; toda missao deve ser coberta por exatamente 1 aeronave (sem missoes descobertas). - n_missoes padrao reduzido de 50 para 20 (n_evam de 5 para 4): garante factibilidade do MIP com Set Partitioning no envelope de 4 aeronaves. - Time limit padrao do solver CBC fixado em 120 s (era ilimitado): evita travamento ao tentar provar infeasibility. - Corrigido display "Not Solved": status de L1 preservado quando PuLP redefine mdl.status apos setObjective() em L2. - f0_cenario_insp_grande.json revisado: apenas 2803 com f0=595h em INSP 2A (F_max=600h, downtime=4 dias); demais matriculas com f0=0. - Gerado planejamento_insp_grande.html: Gantt exibe INSP 2A visivelmente; 20/20 missoes cobertas; CBC Optimal em < 15 s. - changelog.md e LOG.md atualizados com limitacoes detalhadas para contribuidores: escopo validado, bugs de display, riscos numericos do big-M com LRT < 5h e comportamento de 2811 ociosa. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
13 KiB
13 KiB
Log do Projeto
Legenda de autores:
VTO: Vitor Cesa.GNR: Generoso.JOM: João Marcos.
| Data | Hora | Autor | Ação | Arquivos | Observações |
|---|---|---|---|---|---|
| 2026-06-15 | 15:41 | VTO | Criou repositório Git do projeto | .gitignore; .gitattributes |
Projeto versionado na branch main. |
| 2026-06-15 | 15:41 | VTO | Organizou estrutura inicial de dados | raw/; pre_process/; processed/ |
Documentos originais movidos para raw/; pastas vazias preservadas com .gitkeep. |
| 2026-06-15 | 15:41 | VTO | Pré-processou PDF de inspeções | raw/documento joaomarcos.pdf; pre_process/documento_joaomarcos_texto.txt; pre_process/documento_joaomarcos_inspecoes.json; pre_process/documento_joaomarcos_inspecoes.csv; pre_process/preprocess_pdf.py |
18 inspeções extraídas; grafias originais preservadas, inclusive INPEÇÃO. |
| 2026-06-15 | 15:41 | VTO | Separou orientações permanentes do histórico | CONTEXTO.md; LOG.md |
Orientações movidas para CONTEXTO.md; LOG.md passou a usar data, hora e tag de autor. |
| 2026-06-15 | 15:47 | VTO | Renomeou PDF e artefatos derivados com nome descritivo | raw/relatorio_ciclo_inspecoes_c105_2805_2026-06-15.pdf; pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_texto.txt; pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json; pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv; pre_process/preprocess_pdf.py |
Nome antigo removia contexto técnico; novo padrão usa tipo do documento, modelo, matrícula e data do relatório. |
| 2026-06-15 | 15:54 | VTO | Separou campos de controle e duração no pré-processamento | pre_process/preprocess_pdf.py; pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json; pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv |
Criadas colunas tso, letra, nivel, var_media, duracao, duracao_valor e duracao_unidade; D tratado como dias e H como horas. |
| 2026-06-15 | 16:00 | VTO | Criou guia inicial do repositório | README.md |
Explica o objetivo do projeto OAMRP, a estrutura de pastas, o uso básico do GitHub/Git e os cuidados de rastreabilidade. |
| 2026-06-15 | 16:03 | VTO | Corrigiu interpretação da coluna Zera TSO |
pre_process/preprocess_pdf.py; pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json; pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv |
Zera TSO passou a ser coluna única zera_tso; níveis B, P e O mapeados para Base, Parque e Orgânico; controle_original mantido para rastreabilidade. |
| 2026-06-15 | 16:08 | VTO | Separou valores numéricos dos intervalos de inspeção | pre_process/preprocess_pdf.py; pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.json; pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15_inspecoes.csv |
Criadas colunas discretas para horas de voo, meses contínuos e pousos, mantendo os campos textuais originais. |
| 2026-06-15 | 16:43 | VTO | Renomeou o projeto e trocou o repositório remoto | README.md; CONTEXTO.md; .git/config |
Projeto passou a se chamar arara_oarmp; remoto atualizado para https://git.ppgao.ita.br/vitorcesavc/arara_oarmp.git. |
| 2026-06-15 | 17:57 | VTO | Criou documentação técnica no padrão docs/ |
docs/about.md; docs/authors.md; docs/changelog.md; README.md; CONTEXTO.md; LOG.md |
Estrutura inspirada no módulo meteorologia_aeroportos: documentação técnica, autoria e changelog separados do log operacional. |
| 2026-06-15 | 18:11 | VTO | Agrupou artefatos do relatório de ciclo em subpasta própria | pre_process/relatorio_ciclo_inspecoes_c105_2805_2026-06-15/; README.md; docs/about.md |
Removido .gitkeep de pre_process/ porque a pasta deixou de estar vazia; .gitkeep de processed/ foi mantido. |
| 2026-06-15 | 18:33 | VTO | Comparou ICA 66-31/2023 com relatório de ciclo C-105 2805 | raw/ICA 66-31 2023.pdf; pre_process/comparacao_ica_66_31_c105_2023/ |
A comparação usou o Anexo D textual do PDF completo da ICA. |
| 2026-06-15 | 19:01 | VTO | Reorganizou dados em db/ e adicionou protótipo OAMRP |
db/; software/oamrp_v1.py; .gitignore; README.md; CONTEXTO.md; docs/about.md; docs/authors.md; docs/changelog.md |
Commit 1131267; diretórios raw/, pre_process/ e processed/ movidos para db/; modelo MIP inicial em PuLP adicionado em software/. |
| 2026-06-15 | 19:56 | VTO | Pre-processou a Planilha 2025 para registro de voo | db/raw/Planilha 2025.xlsx; db/pre_process/registro_voo_2025/; db/processed/registro_voo_2025.csv |
Extraidos 1421 registros; colunas REAL ate COM2 descartadas; 53 linhas cruzam 00Z; 1 registro sem OM e 9 sem pousos preservados para revisao. |
| 2026-06-15 | 19:56 | VTO | Consolidou transicoes ROTA do registro de voo 2025 |
db/pre_process/registro_voo_2025/preprocess_planilha_2025.py; db/processed/registro_voo_2025_consolidado.csv |
ROTA tratado como marcador de transicao; 1421 linhas originais viraram 1268 trechos consolidados; 135 trechos com ROTA foram convertidos para origem/destino reais. |
| 2026-06-15 | 19:56 | VTO | Validou o registro de voo 2025 consolidado | db/pre_process/registro_voo_2025/validacao_registro_voo_2025.md; db/processed/registro_voo_2025_consolidado.csv |
Sem duplicidades, sem divergencias de duracao e sem sobreposicoes temporais; pendentes 1 registro sem OM, 1 trecho com pousos zero e 3 quebras de continuidade espacial. |
| 2026-06-15 | 19:56 | VTO | Removeu registro isolado da aeronave 2806 | db/pre_process/registro_voo_2025/preprocess_planilha_2025.py; db/processed/registro_voo_2025.csv; db/processed/registro_voo_2025_consolidado.csv |
Linha original 793 excluida dos artefatos processados; registro final passou para 1420 linhas e consolidado para 1267 trechos; nao ha mais registro sem OM. |
| 2026-06-15 | 19:56 | VTO | Criou modelo OAMRP v2 com dados reais de 2025 | software/oamrp_v2.py; db/processed/resultado_oamrp_jan_2025.csv; README.md; docs/about.md; docs/changelog.md |
Rodada inicial de janeiro/2025 resolvida como otima pelo CBC; prioridade uniforme 1; base de manutencao SBMN; 50 de 61 missoes cumpridas. |
| 2026-06-15 | 21:00 | VTO | Criou modelo OAMRP v3 — Fase 1: rede espaço-tempo | software/oamrp_v3.py; db/processed/resultado_oamrp_v3.csv |
Reescrita do zero com abstrações No/Arco e variável unificada y[k,arco]; C1–C6; TAT=1,5h; f0_{k,i} editável; top-10 bases por frequência; missões EVAM hard; 50/50 missões cobertas em jan/2025. |
| 2026-06-15 | 22:00 | VTO | Calibrou inspeções válidas (Q1) e respondeu Q2–Q4 | software/oamrp_v3.py |
Removidas seq 18 e 23 do catálogo; EVAM marcado como M_obr (cobertura=1); L2 definido como minimizar folga de horas ao fim do horizonte; 10 bases por frequência. |
| 2026-06-15 | 22:30 | VTO | Implementou Fase 2: inspeções na rede espaço-tempo | software/oamrp_v3.py |
Adicionados nós INSP_{k}{seq} e arcos missao_insp/insp_missao; variáveis H{k,i,nid} para rastreamento de horas com reset; C9 downtime; C11 slot único via disjuntivas. |
| 2026-06-15 | 23:00 | VTO | Substituiu dados reais por missões sintéticas cross-base | software/oamrp_v3.py; db/processed/resultado_oamrp_sintetico.csv |
Dados reais de jan/2025 eram todos SBMN→SBMN (voos locais), não exercitando roteamento; gerador sintético cria 50 missões cross-base entre 10 bases com distâncias reais (haversine) e velocidade C-105; flag --sintetico na CLI. |
| 2026-06-15 | 23:30 | VTO | Implementou Fase 3: arcos de ferry (C3 relaxado) | software/oamrp_v3.py |
Arcos inicio/missao_missao/missao_insp/insp_missao agora permitem bases diferentes com tempo de ferry (haversine/430 km/h); ferry consome horas de célula no relógio de inspeção (C6); relatório imprime segmentos de ferry na linha do tempo. |
| 2026-06-16 | 10:00 | VTO | Corrigiu bug de conservação de fluxo em nós de inspeção | software/oamrp_v3.py |
Nós INSP_{k}_{seq} não tinham restrição entrada_k==saida_k; solver criava/destruía unidades de fluxo nesses nós, inflando cobertura para 50/50 no relatório com apenas 16 missões reais nas rotas; corrigido adicionando C2 para nós de inspeção. |
| 2026-06-16 | 10:05 | VTO | Removeu restrição C6 Fase 1 simplificada | software/oamrp_v3.py |
Restrição somava horas totais sem respeitar resets de inspeção, tornando EVAMs 2809/2811 artificialmente ociosas; variáveis H[k,seq,nid] já cobrem isso corretamente com reset nos nós de inspeção. |
| 2026-06-16 | 10:10 | VTO | Adicionou horas iniciais aleatórias e prioridades via OFRAG | software/oamrp_v3.py; software/gerar_ofrag.py; db/processed/ofrag.csv |
Flag --aleatorio sorteia f0 entre 10%–90% de F_max por aeronave; gerar_ofrag.py cria tabela com id_ofrag, missao_id, prioridade (1–5), tipo_missao; --ofrag na CLI carrega prioridades ao gerar missões sintéticas. |
| 2026-06-16 | 10:20 | VTO | Alinhou nomenclatura com Al-Thani (2016) | software/oamrp_v3.py |
lrt_h→f_max (batente fixo F); horas_iniciais→f0 (acumulado inicial f_k); orcamento_h()→lrt_inicial() (LRT=F_max−f0); horas_iniciais_aleatorias()→gerar_f0_aleatorio(); carregar_horas_iniciais()→carregar_f0(); CLI --horas-iniciais→--f0. |
| 2026-06-16 | 10:30 | VTO | Criou visualização interativa de rotas | software/visualizar_resultado.py; db/processed/mapa_rotas.html |
Mapa Folium com rotas por aeronave (cor distinta), missões não cumpridas tracejadas em cinza, popup com detalhes, legenda de prioridades. |
| 2026-06-16 | 10:35 | VTO | Rodada sintética validada: 50/50 missões cumpridas | db/processed/resultado_oamrp_sintetico.csv |
Comando: --sintetico --seed 42 --aleatorio --ofrag; solver CBC retornou Optimal; todas as 4 EVAMs voaram com ferry; commit f0d72f8 enviado ao remote. |
| 2026-06-16 | 14:00 | VTO | Criou visualização combinada (Gantt + mapa + tabela) | software/visualizar_resultado.py; db/processed/planejamento_cenario_esquadrao.html |
HTML único com título "Planejamento de Diagonal de Manutenção"; Gantt via go.Scatter lines (renderização garantida); mapa Folium em iframe; tabela de voos com filtros JS; commit 3756f96. |
| 2026-06-16 | 15:00 | VTO | Criou cenários JSON de f0 para testes com inspeções | db/processed/f0_cenario_esquadrao.json; db/processed/f0_cenario_insp_grande.json |
f0_cenario_esquadrao simula dados reais do esquadrão (LRT 32h/215h/12h/28h); f0_cenario_insp_grande força aeronaves próximas ao limite. |
| 2026-06-16 | 20:00 | VTO | Migrou modelo de Set Covering para Set Partitioning (C1) | software/oamrp_v3.py |
Restrição C1 alterada de z<=1 para z==1 para todas as missões; eliminada distinção entre missões hard/opcionais; toda missão deve ser coberta por exatamente 1 aeronave. |
| 2026-06-16 | 20:05 | VTO | Reduziu missões sintéticas padrão de 50 para 20 | software/oamrp_v3.py |
Set Partitioning com 50 missões tornava o MIP inviável ou muito lento (travamento do solver); 20 missões garantem factibilidade no envelope de 4 aeronaves em janeiro; n_evam reduzido de 5 para 4. |
| 2026-06-16 | 20:10 | VTO | Adicionou time limit padrão de 120 s ao solver CBC | software/oamrp_v3.py |
Solver travava indefinidamente sem time limit ao tentar provar infeasibility; limite de 120 s garante retorno com melhor solução encontrada. |
| 2026-06-16 | 20:15 | VTO | Corrigiu display do status do solver (Not Solved) | software/oamrp_v3.py |
PuLP redefine mdl.status para 0 ("Not Solved") ao chamar setObjective() antes de L2; status de L1 agora preservado quando L2 reporta 0. |
| 2026-06-16 | 20:20 | VTO | Revisou f0_cenario_insp_grande.json | db/processed/f0_cenario_insp_grande.json |
Apenas 2803 com f0=595h em INSP 2A (F_max=600h, downtime=4 dias, LRT_ini=5h); demais matrículas com f0=0; configuração anterior com 4 aeronaves apertadas simultaneamente tornava o MIP inviável. |
| 2026-06-16 | 20:30 | VTO | Gerou visualização do cenário inspeção grande (v0.10) | db/processed/planejamento_insp_grande.html; db/processed/resultado_oamrp_v3.csv |
20/20 missões cobertas; Gantt exibe INSP 2A (4 dias) visivelmente; 2 inspeções no horizonte de janeiro; solver CBC retornou Optimal em < 15 s. |
| 2026-06-16 | 16:00 | VTO | Corrigiu Gantt: FAB 2800 invisível e barras não renderizavam | software/visualizar_resultado.py |
yaxis range=[-0.5, n-0.5] para FAB 2800 (y=0) visível; shapes substituídas por go.Scatter mode="lines" width=64 (renderização garantida); largura mínima de 2h por barra. |
| 2026-06-16 | 16:30 | VTO | Adicionou parser de Escala de Voo Modelo 1 e bases extras | software/oamrp_v3.py; db/raw/ESCALA DE VOO MODELO 1.csv |
Flag --escala carrega missões reais do CSV com separador ";"; coordenadas de 26 bases (era 10); time-limit default alterado para 300s; imports timedelta/date consolidados; commit 83a2dac. |