Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. /**
  2. * rutaCortaApp.java
  3. */
  4. package pruebaKommit;
  5.  
  6. import java.util.ArrayList;
  7. import java.util.List;
  8.  
  9. /**
  10. * <b>Descripción:<b> Clase que determina
  11. * <b>Caso de Uso:<b>
  12. * @author JuanAndres Lopez Osorio
  13. * @version
  14. */
  15. public class rutaCortaApp {
  16.  
  17. /**
  18. * Metodo encargado de
  19. * <b>Caso de Uso</b>
  20. * @author Juan Andres Lopez Osorio
  21. *
  22. * @param args
  23. */
  24. public static void main(String[] args) {
  25. // TODO Auto-generated method stub
  26.  
  27. int[][] costos= {{-1,30,-1,-1,-1},{-1,-1,30,10,-1},{-1,-1,-1,-1,80},{-1,-1,-1,-1,40},{-1,-1,-1,-1,-1}};
  28. String [] ciudades= {"Manizales","Pereira","Armenia","Cartago","Cali"};
  29.  
  30. ArrayList<String> ciudadesVisitadas=new ArrayList<String>();
  31. ciudadesVisitadas.add(ciudades[0]);
  32.  
  33. ArrayList<Integer>Acostos=new ArrayList<Integer>();
  34. int i=0;
  35.  
  36.  
  37. //identificaCaminos(costos,ciudades,0,ciudades.length-1,0,0);
  38. ArrayList<Integer> minimos=menores(costos,ciudades,ciudadesVisitadas);
  39. ArrayList<String> finalC =buscaCamino(costos, ciudades,ciudadesVisitadas,Acostos,i,minimos);
  40. for (String string : finalC) {
  41. System.out.println(string);
  42. }
  43.  
  44. }
  45. /**
  46. * Metodo encargado de descubrir los menores con el finde ayudar en la eleccion de las opciones
  47. * <b>Caso de Uso</b>
  48. * @author Juan Andres Lopez Osorio
  49. *
  50. * @param costos son los costos
  51. * @param ciudades son las ciudades que se deben introducir
  52. * @param ciudadesVisitadas son las ciudades visitadas de acuerdo al menor recorrido
  53. * @return ArrayList con los valores menores de cada fila
  54. */
  55. public static ArrayList<Integer> menores(int [][]costos,String [] ciudades,ArrayList<String>ciudadesVisitadas) {
  56. ArrayList<Integer> menores=new ArrayList<Integer>();
  57. for ( int i = 0; i < costos.length; i++ )
  58. {
  59. int min = Integer.MAX_VALUE;
  60. for ( int j = 0; j < costos [ i ].length; j++ )
  61. if ( costos [ i ] [ j ] < min && (costos [ i ] [ j ]!=-1 ))
  62. min=costos [ i ] [ j ];
  63. menores.add(min);
  64. }return menores;
  65.  
  66. }
  67.  
  68.  
  69. /**
  70. * Metodo encargado de buscar el mejor camino de acuerdo al menor peso
  71. * <b>Caso de Uso</b>
  72. * @author Juan Andres Lopez Osorio
  73. *
  74. * @param costos son los costos
  75. * @param ciudades son las ciudades disponibles
  76. * @param ciudadesVisitadas son las ciudades visitadas
  77. * @param Acostos un Array con los costos finales con los que se determina la ganancia
  78. * @param i las filas
  79. * @param minimos el array de los mejores rendimientos
  80. * @return
  81. */
  82. public static ArrayList<String> buscaCamino(int [][]costos,String[] ciudades, ArrayList<String>ciudadesVisitadas,ArrayList<Integer>Acostos,int i,ArrayList<Integer>minimos) {
  83.  
  84.  
  85. for (int j = 0; j < ciudades.length; j++) {
  86. if(costos[i][j]!=-1) {
  87. int aux=costos[i][j];
  88. if(aux==minimos.get(i)) {
  89. Acostos.add(costos[i][j]);
  90. ciudadesVisitadas.add(ciudades[j]);
  91. i=j;
  92. }else {
  93. continue;
  94. }
  95.  
  96. }
  97. }
  98. return ciudadesVisitadas;
  99.  
  100. }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement