Package main

Class TSPSolver

  • All Implemented Interfaces:
    java.io.Serializable

    public class TSPSolver
    extends java.lang.Object
    implements java.io.Serializable
    Modulo para obtener la distancia y tiempo de una ruta. Utiliza la librería Jsprit. La función prinucipal es solve(), para ejecutarla debe haberse ejecutado previamente buildTrucks() y buildCostMatrix().
    Author:
    Toyos,Vallcorba
    See Also:
    Serialized Form
    • Field Detail

      • CAPACIDAD_MAXIMA

        public int CAPACIDAD_MAXIMA
      • TIEMPOXCONTENEDOR

        public final double TIEMPOXCONTENEDOR
        Tras llegar al contenedor, se permanece allí 3 minutos para poder levantarlo
        See Also:
        Constant Field Values
      • felipe_cardozo

        public final transient com.graphhopper.jsprit.core.problem.Location felipe_cardozo
    • Method Detail

      • solveVerbose

        public float[] solveVerbose​(int[] indiceContenedores,
                                    boolean plotResults)
        Version alternativa de float con tiempo de ejecución e información adicional que se impormie en la salida estandar.
        Parameters:
        indiceContenedores -
        plotResults -
        Returns:
        retorna float[] donde la primer entrada es la distancia recorrida en metros del recorrido y la segunda entrada es el tiempo empleado para hacerlo
      • solve

        public float[] solve​(int[] indiceContenedores)
      • solve

        public float[] solve​(int[] indiceContenedores,
                             boolean plotResults)
        Calcula la ruta optima para levatar los contenedores

        Todas las matrices del problema deben estar cargadas antes de poder ejecutar esta función. Es decir, deben ejecutarse las funciones buildCostMatrix() y buildTrucks() previamente.

        Parameters:
        plotResults - true para imprimir los resultados
        indiceContenedores - contiene los contenedores que se quieren levantar segun su posicion en la matriz positions
        Returns:
        retorna float[] donde la primer entrada es la distancia recorrida en metros del recorrido y la segunda entrada es el tiempo empleado para hacerlo
      • buildcostMatrix

        public TSPSolver buildcostMatrix()
        Construye la matriz de tiempo y de costos. Las cuales debieron de setearse previamente.
        Returns:
        la instancia TSPSolver sobre la que se ejecutó la operación
      • buildTrucks

        public TSPSolver buildTrucks()
        Construye los camiones de basura con los parametros configurados.
        Returns:
        la instancia TSPSolver sobre la que se ejecutó la operación
      • setPositions

        public TSPSolver setPositions​(float[][] positions)
        Setea la ubiciación de los contenedores.
        Parameters:
        positions - : posición de los contenedores en el mapa
        Returns:
        la instancia TSPSolver sobre la que se ejecutó la operación
      • setTiempo

        public TSPSolver setTiempo​(float[][] tiempo)
        Setea el costo de tiempo de viaje entre contenedores.
        Parameters:
        tiempo - : costo de tiempo contenedor a contenedor
        Returns:
        la instancia TSPSolver sobre la que se ejecutó la operación
      • setDistancia

        public TSPSolver setDistancia​(float[][] distancia)
        Setea el costo de distancia de viaje entre contenedores.
        Parameters:
        distancia - : costo de distancia contenedor a contenedor
        Returns:
        la instancia TSPSolver sobre la que se ejecutó la operación
      • setCapacidadCamiones

        public TSPSolver setCapacidadCamiones​(int capMax)
        Setea la cantidad de contenedores que puede levantar un camión
        Parameters:
        capMax - : capacidad máxima de los camiones
        Returns:
        la instancia TSPSolver sobre la que se ejecutó la operación
      • setTiempotoStartpoint

        public TSPSolver setTiempotoStartpoint​(float[] tiempotoStartpoint)
        Setea el costo de tiempo de viaje entre contenedores y el basurero
        Parameters:
        tiempotoStartpoint - : costo de tiempo de los contenedores al basurero
        Returns:
        la instancia TSPSolver sobre la que se ejecutó la operación
      • setTiempoFromStartpoint

        public TSPSolver setTiempoFromStartpoint​(float[] tiempoFromStartpoint)
        Setea el costo de tiempo de viaje entre el basurero y contenedores.
        Parameters:
        tiempoFromStartpoint - : costo de tiempotiempo del basurero al contenedor
        Returns:
        la instancia TSPSolver sobre la que se ejecutó la operación
      • setDistanciatoStartpoint

        public TSPSolver setDistanciatoStartpoint​(float[] distanciatoStartpoint)
        Setea el costo de distancia de viaje entre contenedores y el basurero
        Parameters:
        distanciatoStartpoint - : costo de distancia de los contenedores al basurero
        Returns:
        la instancia TSPSolver sobre la que se ejecutó la operación
      • setDistanciaFromStartpoint

        public TSPSolver setDistanciaFromStartpoint​(float[] distanciaFromStartpoint)
        Setea el costo de distancia de viaje entre el basurero y contenedores.
        Parameters:
        distanciaFromStartpoint - : costo de distancia del basurero al contenedor
        Returns:
        la instancia TSPSolver sobre la que se ejecutó la operación
      • setStartpoint

        public TSPSolver setStartpoint​(int x,
                                       int y)
        Setea la ubicación del basurero
        Parameters:
        x - : coordenada
        y - : coordenada
        Returns:
        la instancia TSPSolver sobre la que se ejecutó la operación
      • setTimeTermination

        public TSPSolver setTimeTermination​(int time)
        Setea el tiempo maximo de ejecuciíón del algoritmo.
        Parameters:
        time - : tiempo máximo
        Returns:
        instancia TSPSolver sobre la que se ejecutó la operación
      • setCoefTermiantion

        public TSPSolver setCoefTermiantion​(int iterations,
                                            float variance)
        Setea la variación entre soluciones como criterio de parada del algoritmo
      • getCoefTermination

        public com.graphhopper.jsprit.core.algorithm.termination.PrematureAlgorithmTermination getCoefTermination()
      • getTimeTermination

        public com.graphhopper.jsprit.core.algorithm.termination.PrematureAlgorithmTermination getTimeTermination()