vincentiusyoshuac commited on
Commit
0dd6310
·
verified ·
1 Parent(s): 468bc02

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -13
app.py CHANGED
@@ -58,8 +58,10 @@ def held_karp_tsp(dist_matrix):
58
  else:
59
  break
60
 
61
- tour.append(0)
62
- return min_tour_cost, tour
 
 
63
 
64
  # Mendapatkan koordinat kota dari nama
65
  def get_coordinates(city_name):
@@ -75,7 +77,7 @@ def create_distance_matrix(coordinates):
75
  valid_coordinates = [c for c in coordinates if c is not None]
76
  n = len(valid_coordinates)
77
  if n < 2:
78
- return [], []
79
  dist_matrix = np.zeros((n, n))
80
  for i in range(n):
81
  for j in range(i + 1, n):
@@ -126,13 +128,16 @@ if st.button("Optimasi Rute"):
126
  min_cost, optimal_route = held_karp_tsp(dist_matrix)
127
 
128
  # Tampilkan hasil
129
- st.write(f"Biaya total minimum: {min_cost:.2f} km")
130
- st.write("Rute optimal:", " -> ".join([city_names[i] for i in optimal_route]))
131
-
132
- # Buat peta
133
- map_obj = folium.Map(location=valid_coordinates[0], zoom_start=5)
134
- plot_route(map_obj, valid_coordinates, optimal_route)
135
-
136
- # Render map
137
- st.markdown("### Rute Optimal")
138
- st_folium = st.components.v1.html(folium.Map._repr_html_(map_obj), width=800, height=600)
 
 
 
 
58
  else:
59
  break
60
 
61
+ if len(tour) == n + 1:
62
+ return min_tour_cost, tour
63
+ else:
64
+ return inf, []
65
 
66
  # Mendapatkan koordinat kota dari nama
67
  def get_coordinates(city_name):
 
77
  valid_coordinates = [c for c in coordinates if c is not None]
78
  n = len(valid_coordinates)
79
  if n < 2:
80
+ return np.array([]), valid_coordinates
81
  dist_matrix = np.zeros((n, n))
82
  for i in range(n):
83
  for j in range(i + 1, n):
 
128
  min_cost, optimal_route = held_karp_tsp(dist_matrix)
129
 
130
  # Tampilkan hasil
131
+ if min_cost == float('inf'):
132
+ st.write("Tidak ada rute optimal yang dapat ditemukan.")
133
+ else:
134
+ st.write(f"Biaya total minimum: {min_cost:.2f} km")
135
+ st.write("Rute optimal:", " -> ".join([city_names[i] for i in optimal_route]))
136
+
137
+ # Buat peta
138
+ map_obj = folium.Map(location=valid_coordinates[0], zoom_start=5)
139
+ plot_route(map_obj, valid_coordinates, optimal_route)
140
+
141
+ # Render map
142
+ st.markdown("### Rute Optimal")
143
+ st_folium = st.components.v1.html(folium.Map._repr_html_(map_obj), width=800, height=600)