Package main
Class Itinerario
- java.lang.Object
-
- java.util.BitSet
-
- org.uma.jmetal.util.binarySet.BinarySet
-
- main.Itinerario
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
public class Itinerario extends org.uma.jmetal.util.binarySet.BinarySet
Extiende la implementación de la binary solution de JMetal para brindar información enriquecida y editar la solucion de forma más sencilla en el algoritmo.- Author:
- Toyos, Vallcorba
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description Itinerario(int numberOfBits, int cantCamiones, int cantContenedores, int cantDias)
\ Constructor.Itinerario(org.uma.jmetal.util.binarySet.BinarySet b, int cantCamiones, int cantContenedores, int cantDias)
\ Constructor por copia.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
get(int camion, int contenedor, int dia, int turno)
Obtiene el valor en el itinerario para el camión n, contenedor m el díá d para el turno matutino y nocturno.long
getComp()
int[]
getContenedores(int camion, int dia, int turno)
Devuelve los contenedores levantados por un camion en un dia y turno especificosint[]
getContenedoresLevantadosEnElDia(int dia)
Devuelve los contenedores levantados en el díafloat
getDistancia()
double
getFit()
java.lang.String
getResults()
Imprime la metadata del itinerario.float
getTiempo()
int
hayDesborde()
void
set(int camion, int contenedor, int dia, int turno, boolean valor)
Edita el valor en el itinerario para el camión n, contenedor m el díá d para el turno matutino y nocturno.Itinerario
setComp(long computingTime)
Itinerario
setDistancia(float distancia)
Itinerario
setFit(double objective)
Itinerario
setHayDesborde(int hayDesborde)
void
setTiempo(float tiempo)
void
shuffleDiasTurnos()
Intercambia los turnos de un itinerario moviendolo entre los distitntos dias.void
switchTurnos()
Intercambia los contenedores que se levantan en el día por los que se levantan en el turno nocturno.java.lang.String
toString()
Imprime el itinerario.-
Methods inherited from class java.util.BitSet
and, andNot, cardinality, clear, clear, clear, clone, equals, flip, flip, get, get, hashCode, intersects, isEmpty, length, nextClearBit, nextSetBit, or, previousClearBit, previousSetBit, set, set, set, set, size, stream, toByteArray, toLongArray, valueOf, valueOf, valueOf, valueOf, xor
-
-
-
-
Constructor Detail
-
Itinerario
public Itinerario(org.uma.jmetal.util.binarySet.BinarySet b, int cantCamiones, int cantContenedores, int cantDias)
\ Constructor por copia.- Parameters:
cantCamiones
- : filas por matriz de la solución.cantContenedores
- : columnas según la matriz de resolución.cantDias
- : cantidad máxima de dias en las que se puede dejar un contenedor sin atender.b
- : Arreglo bibario a copiar.
-
Itinerario
public Itinerario(int numberOfBits, int cantCamiones, int cantContenedores, int cantDias)
\ Constructor. Retorna un arreglo de tamaño cantCamiones*cantContenedores*cantDias*2- Parameters:
numberOfBits
- : tamaño de la matriz en bits.cantCamiones
- : filas por matriz de la solución.cantContenedores
- : columnas según la matriz de resolución.cantDias
- : cantidad máxima de dias en las que se puede dejar un contenedor sin atender.
-
-
Method Detail
-
set
public void set(int camion, int contenedor, int dia, int turno, boolean valor)
Edita el valor en el itinerario para el camión n, contenedor m el díá d para el turno matutino y nocturno. Se edita la posición: (dia*2+turno)*cantCamiones*cantContenedores + cantContenedores*camion + contenedor- Parameters:
camion
- : index del camioncontenedor
- : index del contenedordia
- : dia del itinerarioturno
- : matutino=0, nocturno=1valor
- : valor a settear
-
get
public int get(int camion, int contenedor, int dia, int turno)
Obtiene el valor en el itinerario para el camión n, contenedor m el díá d para el turno matutino y nocturno. Se edita la posición: (dia*2+turno)*cantCamiones*cantContenedores + cantContenedores*camion + contenedor
-
getContenedores
public int[] getContenedores(int camion, int dia, int turno)
Devuelve los contenedores levantados por un camion en un dia y turno especificos- Returns:
- arreglo de enteros indicando si el camión levantara algúmn contenedor de basura en este momento.
-
getContenedoresLevantadosEnElDia
public int[] getContenedoresLevantadosEnElDia(int dia)
Devuelve los contenedores levantados en el día- Parameters:
dia
- : dia del itinerario- Returns:
- arreglo de enteros indicando los contenedores que se levantaran en el dia
-
setFit
public Itinerario setFit(double objective)
-
setComp
public Itinerario setComp(long computingTime)
-
getComp
public long getComp()
-
getFit
public double getFit()
-
toString
public java.lang.String toString()
Imprime el itinerario.- Overrides:
toString
in classorg.uma.jmetal.util.binarySet.BinarySet
-
getResults
public java.lang.String getResults()
Imprime la metadata del itinerario.- Returns:
- string que contiene la metadata del itinerario en formato key: val \n
-
getDistancia
public float getDistancia()
-
setDistancia
public Itinerario setDistancia(float distancia)
-
hayDesborde
public int hayDesborde()
-
setHayDesborde
public Itinerario setHayDesborde(int hayDesborde)
-
getTiempo
public float getTiempo()
-
setTiempo
public void setTiempo(float tiempo)
-
switchTurnos
public void switchTurnos()
Intercambia los contenedores que se levantan en el día por los que se levantan en el turno nocturno.
-
shuffleDiasTurnos
public void shuffleDiasTurnos()
Intercambia los turnos de un itinerario moviendolo entre los distitntos dias. No asegura que el itinerario siga respetando los tiempos de recogida de los contenedores para evitar desborde.
-
-