feat: adiciona diagrama de rede para top 5 trechos usando networkx
This commit is contained in:
33
create_nb.py
33
create_nb.py
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user