Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if max_vertex_energy >= max_edge_energy and max_vertex_energy >= max_wedge_energy:
- print("hello1")
- # Добавляем новую вершину к вершине с наибольшей энергией
- max_energy_vertex = vertex_energies.index(max_vertex_energy)
- G.add_node(len(selected_vectors))
- G.add_edge(max_energy_vertex, len(selected_vectors))
- selected_vectors.append(np.random.randint(-6, 7, 3)) # Добавляем новый вектор
- elif max_edge_energy >= max_vertex_energy and max_edge_energy >= max_wedge_energy:
- print("hello2")
- # Разбиваем ребро с наибольшей энергией новой вершиной
- edges = list(G.edges) # Получаем список всех ребер
- max_energy_edge = edges[edge_energies.index(max_edge_energy)] # Находим ребро с максимальной энергией
- G.add_node(len(selected_vectors))
- G.add_edge(max_energy_edge[0], len(selected_vectors))
- G.add_edge(max_energy_edge[1], len(selected_vectors))
- G.remove_edge(max_energy_edge[0], max_energy_edge[1])
- selected_vectors.append(np.random.randint(-6, 7, 3)) # Добавляем новый вектор
- else:
- print("hello3")
- if edge_combination==1:
- old_edge_length = np.linalg.norm(selected_vectors[max_energy_wedge[0]] - selected_vectors[max_energy_wedge[1]])
- new_edge_length = np.linalg.norm(selected_vectors[max_energy_wedge[2]] - selected_vectors[max_energy_wedge[1]])
- if new_edge_length < old_edge_length:
- # Удаляем старое ребро и добавляем новое
- G.remove_edge(max_energy_wedge[0], max_energy_wedge[1])
- G.add_edge(max_energy_wedge[2], max_energy_wedge[1])
- else:
- G.remove_edge(max_energy_wedge[0], max_energy_wedge[1])
- G.add_edge(max_energy_wedge[2], max_energy_wedge[1])
- elif edge_combination==2:
- old_edge_length = np.linalg.norm(pos[max_energy_wedge[0]] - pos[max_energy_wedge[1]])
- new_edge_length = np.linalg.norm(pos[max_energy_wedge[2]] - pos[max_energy_wedge[1]])
- if new_edge_length < old_edge_length:
- # Удаляем старое ребро и добавляем новое
- G.remove_edge(max_energy_wedge[0], max_energy_wedge[1])
- G.add_edge(max_energy_wedge[2], max_energy_wedge[1])
- else:
- G.remove_edge(max_energy_wedge[0], max_energy_wedge[1])
- G.add_edge(max_energy_wedge[2], max_energy_wedge[1])
- elif edge_combination==3:
- old_edge_length = np.linalg.norm(pos[max_energy_wedge[0]] - pos[max_energy_wedge[1]])
- new_edge_length = np.linalg.norm(pos[max_energy_wedge[2]] - pos[max_energy_wedge[1]])
- if new_edge_length < old_edge_length:
- # Удаляем старое ребро и добавляем новое
- G.remove_edge(max_energy_wedge[0], max_energy_wedge[1])
- G.add_edge(max_energy_wedge[2], max_energy_wedge[1])
- else:
- G.remove_edge(max_energy_wedge[0], max_energy_wedge[1])
- G.add_edge(max_energy_wedge[2], max_energy_wedge[1])
- print(max_energy_wedge[0])
- print(max_energy_wedge[1])
- print(max_energy_wedge[2])
- for edges in G.edges:
- print(edges)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement