Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def viajante(grafo, desde):
- visitados = []
- costo_minimo = float("Inf")
- return _viajante(grafo, desde, desde, visitados, 0, costo_minimo)
- def _viajante(grafo, origen, vertice, visitados, costo_relativo, costo_minimo):
- final = []
- if vertice not in visitados: visitados.append(vertice)
- print (visitados)
- if len(visitados) == grafo.obtener_cantidad_vertices() and origen == vertice:
- visitados.append(origen)
- costo_relativo += grafo.obtener_peso_arista(vertice, origen)
- if (costo_relativo < costo_minimo):
- costo_minimo = costo_relativo
- return visitados, costo_minimo
- for w in grafo.obtener_vertices_adyacentes(vertice):
- if w in visitados:
- continue
- peso= grafo.obtener_peso_arista(vertice,w)
- recorrido, costo = _viajante (grafo, origen, w, visitados, costo_relativo, costo_minimo)
- if(len(recorrido)!=0) and costo < costo_minimo:
- costo_minimo = costo
- final = recorrido
- return final, costo_minimo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement