Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - josnick

#1
Java / Problema viajante de comercio dinamico
31 Mayo 2014, 01:23 AM
Hola:
necesito implementar el problema del viajante de comercio en programacion dinamica y tengo un problema a la hora de ir almacenando los resultados para mejorar la eficiencia, se sobrescriben unos encima de otros y el programa no me da el resultado optimo.

Si no uso la tabla de resultados el programa calcula bien el resultado pero tarda demasiado.

Si alguien conoce una manera de almacenar los datos aqui esta el codigo en pseudocodigo:


http://www.casimages.es/i/140531012220207842.png.html

Y aqui mi codigo en java:

public int aux_dinamica(matriz_ady matriz,int i,int dest,CopyOnWriteArrayList<Integer> sol){
      int point=0;
      int mascorto=Integer.MAX_VALUE;   
      if(sol.isEmpty()) {         
         return matriz.get_dist(i,1);
      }      
      else{   
         //guardo el dato segun el ultimo valor del conjunto mas el numero de conjuntos
         point=sol.get(sol.size()-1)+sol.size();
         
         if(gtab[i-1][point-1]!=-1) {
            return gtab[i-1][point-1];
         }                     
               for(Integer j:sol){                  
                     mascorto=Math.min(mascorto,
                        matriz.get_dist(i, j)
                        +aux_dinamica(matriz,j,i,quitar(sol,j)));                              
               }            
            }
      gtab[i-1][point-1]=mascorto;
      return mascorto;            
   }