Package main

Class 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 especificos
      int[] getContenedoresLevantadosEnElDia​(int dia)
      Devuelve los contenedores levantados en el día
      float 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 org.uma.jmetal.util.binarySet.BinarySet

        getBinarySetLength
      • 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
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
    • 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 camion
        contenedor - : index del contenedor
        dia - : dia del itinerario
        turno - : matutino=0, nocturno=1
        valor - : 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 class org.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.