Debido a la pandemia una empresa de transporte quiere resolver el inconveniente que, dado cuatro localidades a recorrer, debe hallar la ruta que le permita llegar todas las localidades una exclusiva vez, dando por seguro que la distancia que recorra sea mínima. El transporte no recorre la misma ruta todos los días por lo que la distancias entres los lugares varia.

Por ejemplo, se tiene este conjunto de puntos a recorrer con sus respectivas distancias.
Para Ud. ¿Cuál sería el algoritmo solución y código fuente en Python si los valores de las distancias varían?

ES EN PYTHON

Adjuntos:

Respuestas

Respuesta dada por: Andr3z
7

Respuesta:

Explicación:

primera respuesta

Empezamos asignándole a cada variable la distancia recorrida entre los puntos F, B, A, J.Luego asignamos una variable vacía para desarrollar las operacion

ESTE ES MI CÓDIGO:

  1. print(" RUTA OPTIMA ")
  2. print("      B       ")
  3. print("      B       ")
  4. print("     /|\      ")
  5. print("    / | \     ")
  6. print("   /  |  \    ")
  7. print("  F --|-- J   ")
  8. print("   \  |  /    ")
  9. print("    \ | /     ")
  10. print("     \|/      ")
  11. print("      A       ")
  12.  
  13. print("\nINGRESA LA DISTANCIA ENTRE: ")
  14. dist_FB = int(input("F y B: "))
  15. dist_FJ = int(input("F y J: "))
  16. dist_FA = int(input("F y A: "))
  17. dist_BA = int(input("B y A: "))
  18. dist_BJ = int(input("B y J: "))
  19. dist_AJ = int(input("A y J: "))
  20.  
  21. suma = 0
  22.  
  23. print("\nIndicar punto de partida:")
  24. partida = input("-> F / B / J / A: ")
  25.  
  26. if partida == "F":
  27.    if dist_FB <= dist_FJ and dist_FB <= dist_FA and dist_BA <= dist_BJ:
  28.        suma = dist_FB + dist_BA + dist_AJ + dist_FJ
  29.        print("\nRuta a seguir: F -> B -> A -> J -> F")
  30.  
  31.    elif dist_FA <= dist_FJ and dist_FA <= dist_FB and dist_BA <= dist_AJ:
  32.        suma = dist_FA + dist_BA + dist_BJ + dist_FJ
  33.        print("\nRuta a seguir: F -> A -> B -> J -> F")
  34.  
  35.    elif dist_FJ <= dist_FB and dist_FJ <= dist_FA and dist_BJ <= dist_AJ:
  36.        suma = dist_FJ + dist_BJ + dist_BA + dist_FA
  37.        print("\nRuta a seguir: F -> J -> B -> A -> F")
  38.  
  39.    elif dist_FJ <= dist_FB and dist_FJ <= dist_FA and dist_AJ <= dist_BJ:
  40.        suma = dist_FJ + dist_AJ + dist_BA + dist_FB
  41.        print("\nRuta a seguir: F -> J -> A -> B -> F")
  42.  
  43.    elif dist_FB <= dist_FJ and dist_FB <= dist_FA and dist_BJ <= dist_BA:
  44.        suma = dist_FB + dist_BJ + dist_AJ + dist_FA
  45.        print("\nRuta a seguir: F -> B -> J -> A -> F")
  46.  
  47.    elif dist_FA <= dist_FJ and dist_FA <= dist_FB and dist_AJ <= dist_BA:
  48.        suma = dist_FA + dist_AJ + dist_BJ + dist_FB
  49.        print("\nRuta a seguir: F -> A -> J -> B -> F")
  50.  
  51. if partida == "B":
  52.    if dist_FB <= dist_BA and dist_FB <= dist_BJ and dist_FJ <= dist_FA:
  53.        suma = dist_FB + dist_FJ + dist_AJ + dist_BA
  54.        print("\nRuta a seguir: B -> F -> J -> A -> B")
  55.  
  56.    elif dist_BJ <= dist_BA and dist_BJ <= dist_FB and dist_FJ <= dist_AJ:
  57.        suma = dist_BJ + dist_FJ + dist_FA + dist_BA
  58.        print("\nRuta a seguir: B -> J -> F -> A -> B")
  59.  
  60.    elif dist_BA <= dist_FB and dist_BA <= dist_BJ and dist_AJ <= dist_FA:
  61.        suma = dist_BA + dist_AJ + dist_FJ + dist_FB
  62.        print("\nRuta a seguir: B -> A -> J -> F -> B")
  63.  
  64.    elif dist_BA <= dist_FB and dist_BA <= dist_BJ and dist_FA <= dist_AJ:
  65.        suma = dist_BA + dist_FA + dist_FJ + dist_BJ
  66.        print("\nRuta a seguir: B -> A -> F -> J -> B")
  67.  
  68.    elif dist_BJ <= dist_BA and dist_BJ <= dist_FB and dist_AJ <= dist_FJ:
  69.        suma = dist_BJ + dist_AJ + dist_FA + dist_FB
  70.        print("\nRuta a seguir: B -> J -> A -> F -> B")
  71.  
  72.    elif dist_FB <= dist_BA and dist_FB <= dist_BJ and dist_FA <= dist_FJ:
  73.        suma = dist_FB + dist_FA + dist_AJ + dist_BJ
  74.        print("\nRuta a seguir: B -> F -> A -> J -> B")
  75.  
  76. if partida == "J":
  77.    if dist_BJ <= dist_FJ and dist_BJ <= dist_AJ and dist_BA <= dist_FB:
  78.        suma = dist_BJ + dist_BA + dist_FA + dist_FJ
  79.        print("\nRuta a seguir: J -> B -> A -> F -> J")
  80.  
  81.    elif dist_AJ <= dist_FJ and dist_AJ <= dist_BJ and dist_BA <= dist_FA:
  82.        suma = dist_AJ + dist_BA + dist_FB + dist_FJ
  83.        print("\nRuta a seguir: J -> A -> B -> F -> J")
  84.  
  85.    elif dist_FJ <= dist_BJ and dist_FJ <= dist_AJ and dist_FB <= dist_FA:
  86.        suma = dist_FJ + dist_FB + dist_BA + dist_AJ
  87.        print("\nRuta a seguir: J -> F -> B -> A -> J")
  88.  
  89.    elif dist_FJ <= dist_BJ and dist_FJ <= dist_AJ and dist_FA <= dist_FB:
  90.        suma = dist_FJ + dist_FA + dist_BA + dist_BJ
  91.        print("\nRuta a seguir: J -> F -> A -> B -> J")
  92.  
  93.    elif dist_BJ <= dist_FJ and dist_BJ <= dist_AJ and dist_FB <= dist_BA:
  94.        suma = dist_BJ + dist_FB + dist_FA + dist_AJ
  95.        print("\nRuta a seguir: J -> B -> F -> A -> J")
  96.  
  97.    elif dist_AJ <= dist_FJ and dist_AJ <= dist_BJ and dist_FA <= dist_BA:
  98.        suma = dist_AJ + dist_FA + dist_FB + dist_BJ
  99.        print("\nRuta a seguir: J -> A -> F -> B -> J")
  100.  
  101. if partida == "A":
  102.    if dist_FA <= dist_BA and dist_FA <= dist_AJ and dist_FJ <= dist_FB:
  103.        suma = dist_FA + dist_FJ + dist_BJ + dist_BA
  104.        print("\nRuta a seguir: A -> F -> J -> B -> A")
  105.  
  106.    elif dist_AJ <= dist_BA and dist_AJ <= dist_FA and dist_FJ <= dist_BJ:
  107.        suma = dist_AJ + dist_FJ + dist_FB + dist_BA
  108.        print("\nRuta a seguir: A -> J -> F -> B -> A")
  109.  
  110.    elif dist_BA <= dist_FA and dist_BA <= dist_AJ and dist_FB <= dist_BJ:
  111.        suma = dist_BA + dist_FB + dist_FJ + dist_AJ
  112.        print("\nRuta a seguir: A -> B -> F -> J -> A")
  113.  
  114.    elif dist_BA <= dist_FA and dist_BA <= dist_AJ and dist_BJ <= dist_FB:
  115.        suma = dist_BA + dist_BJ + dist_FJ + dist_FA
  116.        print("\nRuta a seguir: A -> B -> J -> F -> A")
  117.  
  118.    elif dist_FA <= dist_BA and dist_FA <= dist_AJ and dist_FB <= dist_FJ:
  119.        suma = dist_FA + dist_FB + dist_BJ + dist_AJ
  120.        print("\nRuta a seguir: A -> F -> B -> J -> A")
  121.  
  122.    elif dist_AJ <= dist_BA and dist_AJ <= dist_FA and dist_BJ <= dist_FJ:
  123.        suma = dist_AJ + dist_BJ + dist_FB + dist_FA
  124.        print("\nRuta a seguir: A -> J -> B -> F -> A")
  125.  
  126.  
  127. print("Ruta optima:", suma, "km. ")

Preguntas similares