Package main
Class TSPSolver
- java.lang.Object
-
- main.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 Summary
Fields Modifier and Type Field Description int
CAPACIDAD_MAXIMA
int
COSTO_FIJO
int
COSTO_POR_DISTANCIA
float
COSTO_POR_TIEMPO
com.graphhopper.jsprit.core.problem.Location
felipe_cardozo
double
MAX_TIME
double
TIEMPOXCONTENEDOR
Tras llegar al contenedor, se permanece allí 3 minutos para poder levantarlo
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TSPSolver
buildcostMatrix()
Construye la matriz de tiempo y de costos.TSPSolver
buildTrucks()
Construye los camiones de basura con los parametros configurados.com.graphhopper.jsprit.core.algorithm.termination.PrematureAlgorithmTermination
getCoefTermination()
com.graphhopper.jsprit.core.algorithm.termination.PrematureAlgorithmTermination
getTimeTermination()
TSPSolver
setCapacidadCamiones(int capMax)
Setea la cantidad de contenedores que puede levantar un camiónTSPSolver
setCoefTermiantion(int iterations, float variance)
Setea la variación entre soluciones como criterio de parada del algoritmoTSPSolver
setDistancia(float[][] distancia)
Setea el costo de distancia de viaje entre contenedores.TSPSolver
setDistanciaFromStartpoint(float[] distanciaFromStartpoint)
Setea el costo de distancia de viaje entre el basurero y contenedores.TSPSolver
setDistanciatoStartpoint(float[] distanciatoStartpoint)
Setea el costo de distancia de viaje entre contenedores y el basureroTSPSolver
setPositions(float[][] positions)
Setea la ubiciación de los contenedores.TSPSolver
setStartpoint(int x, int y)
Setea la ubicación del basureroTSPSolver
setTiempo(float[][] tiempo)
Setea el costo de tiempo de viaje entre contenedores.TSPSolver
setTiempoFromStartpoint(float[] tiempoFromStartpoint)
Setea el costo de tiempo de viaje entre el basurero y contenedores.TSPSolver
setTiempotoStartpoint(float[] tiempotoStartpoint)
Setea el costo de tiempo de viaje entre contenedores y el basureroTSPSolver
setTimeTermination(int time)
Setea el tiempo maximo de ejecuciíón del algoritmo.float[]
solve(int[] indiceContenedores)
float[]
solve(int[] indiceContenedores, boolean plotResults)
Calcula la ruta optima para levatar los contenedoresfloat[]
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.
-
-
-
Field Detail
-
CAPACIDAD_MAXIMA
public int CAPACIDAD_MAXIMA
-
COSTO_POR_DISTANCIA
public final int COSTO_POR_DISTANCIA
- See Also:
- Constant Field Values
-
COSTO_POR_TIEMPO
public final float COSTO_POR_TIEMPO
- See Also:
- Constant Field Values
-
COSTO_FIJO
public final int COSTO_FIJO
- See Also:
- Constant Field Values
-
MAX_TIME
public final double MAX_TIME
- See Also:
- Constant Field Values
-
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 contenedoresTodas 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 resultadosindiceContenedores
- 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
- : coordenaday
- : 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()
-
-