feat: adiciona diagrama de rede para top 5 trechos usando networkx

This commit is contained in:
2026-06-07 20:24:42 -03:00
parent 09cfda21a2
commit 2bb0c24a5d
4 changed files with 137 additions and 31 deletions

View File

@@ -27,6 +27,7 @@ import seaborn as sns
import pulp
import pymap3d as pm
import math
import networkx as nx
# Configuração de estilo para os gráficos
sns.set_theme(style="whitegrid")
@@ -155,6 +156,38 @@ plt.tight_layout()
plt.show()
"""))
# Cell: Markdown Diagrama de Rede
cells.append(nbf.v4.new_markdown_cell("""## Diagrama de Rede dos Trechos
Para melhor visualização dos trechos mais relevantes, abaixo temos um diagrama de rede conectando as origens aos destinos.
"""))
# Cell: Code Diagrama de Rede
cells.append(nbf.v4.new_code_cell("""# Criação do grafo direcionado
G = nx.DiGraph()
# Adiciona arestas com peso baseado no Score de Relevância
for _, row in top_trechos.iterrows():
origem, destino = row['Trecho'].split('-')
peso = row['Score_Relevancia']
G.add_edge(origem, destino, weight=peso)
# Configuração do layout do grafo
pos = nx.spring_layout(G, seed=42)
plt.figure(figsize=(8, 6))
# Desenha os nós
nx.draw_networkx_nodes(G, pos, node_size=2000, node_color='skyblue', edgecolors='black')
# Desenha as arestas
nx.draw_networkx_edges(G, pos, edgelist=G.edges(), arrowstyle='-|>', arrowsize=20, edge_color='gray', width=2, connectionstyle='arc3,rad=0.1')
# Desenha os rótulos (nomes dos aeroportos)
nx.draw_networkx_labels(G, pos, font_size=12, font_family='sans-serif', font_weight='bold')
plt.title('Diagrama de Rede - Top Trechos Relevantes', fontsize=14)
plt.axis('off')
plt.tight_layout()
plt.show()
"""))
# Cell 9: Markdown FAM
cells.append(nbf.v4.new_markdown_cell("""## 4. Fleet Assignment Model (FAM)
Conforme o livro base *Airline Operations and Scheduling*, o problema de alocação de frotas busca atribuir os tipos de aeronaves às pernas de voo visando minimizar o custo e as perdas de receita (spill). Como temos apenas um tipo (C-97), nosso problema adapta-se a uma **alocação de esquadrões (e suas respectivas bases)** aos voos requeridos para minimizar o custo total de operação, que é proporcional à distância voada.