Advertisement
vatman

бмо 2

Dec 20th, 2023
794
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.30 KB | None | 0 0
  1. if max_vertex_energy >= max_edge_energy and max_vertex_energy >= max_wedge_energy:
  2.     print("hello1")
  3.     # Добавляем новую вершину к вершине с наибольшей энергией
  4.     max_energy_vertex = vertex_energies.index(max_vertex_energy)
  5.     G.add_node(len(selected_vectors))
  6.     G.add_edge(max_energy_vertex, len(selected_vectors))
  7.     selected_vectors.append(np.random.randint(-6, 7, 3))  # Добавляем новый вектор
  8. elif max_edge_energy >= max_vertex_energy and max_edge_energy >= max_wedge_energy:
  9.     print("hello2")
  10.     # Разбиваем ребро с наибольшей энергией новой вершиной
  11.     edges = list(G.edges)  # Получаем список всех ребер
  12.     max_energy_edge = edges[edge_energies.index(max_edge_energy)]  # Находим ребро с максимальной энергией
  13.     G.add_node(len(selected_vectors))
  14.     G.add_edge(max_energy_edge[0], len(selected_vectors))
  15.     G.add_edge(max_energy_edge[1], len(selected_vectors))
  16.     G.remove_edge(max_energy_edge[0], max_energy_edge[1])
  17.     selected_vectors.append(np.random.randint(-6, 7, 3))  # Добавляем новый вектор
  18. else:
  19.     print("hello3")
  20.     if edge_combination==1:
  21.         old_edge_length = np.linalg.norm(selected_vectors[max_energy_wedge[0]] - selected_vectors[max_energy_wedge[1]])
  22.         new_edge_length = np.linalg.norm(selected_vectors[max_energy_wedge[2]] - selected_vectors[max_energy_wedge[1]])
  23.         if new_edge_length < old_edge_length:
  24.             # Удаляем старое ребро и добавляем новое
  25.             G.remove_edge(max_energy_wedge[0], max_energy_wedge[1])
  26.             G.add_edge(max_energy_wedge[2], max_energy_wedge[1])
  27.          else:
  28.             G.remove_edge(max_energy_wedge[0], max_energy_wedge[1])
  29.             G.add_edge(max_energy_wedge[2], max_energy_wedge[1])
  30.     elif edge_combination==2:
  31.         old_edge_length = np.linalg.norm(pos[max_energy_wedge[0]] - pos[max_energy_wedge[1]])
  32.         new_edge_length = np.linalg.norm(pos[max_energy_wedge[2]] - pos[max_energy_wedge[1]])
  33.         if new_edge_length < old_edge_length:
  34.             # Удаляем старое ребро и добавляем новое
  35.             G.remove_edge(max_energy_wedge[0], max_energy_wedge[1])
  36.             G.add_edge(max_energy_wedge[2], max_energy_wedge[1])
  37.         else:
  38.             G.remove_edge(max_energy_wedge[0], max_energy_wedge[1])
  39.             G.add_edge(max_energy_wedge[2], max_energy_wedge[1])
  40.     elif edge_combination==3:
  41.         old_edge_length = np.linalg.norm(pos[max_energy_wedge[0]] - pos[max_energy_wedge[1]])
  42.         new_edge_length = np.linalg.norm(pos[max_energy_wedge[2]] - pos[max_energy_wedge[1]])
  43.         if new_edge_length < old_edge_length:
  44.             # Удаляем старое ребро и добавляем новое
  45.             G.remove_edge(max_energy_wedge[0], max_energy_wedge[1])
  46.             G.add_edge(max_energy_wedge[2], max_energy_wedge[1])
  47.          else:
  48.             G.remove_edge(max_energy_wedge[0], max_energy_wedge[1])
  49.             G.add_edge(max_energy_wedge[2], max_energy_wedge[1])          
  50.     print(max_energy_wedge[0])
  51.     print(max_energy_wedge[1])
  52.     print(max_energy_wedge[2])
  53.  
  54. for edges in G.edges:
  55.     print(edges)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement