コード例 #1
0
 /**
  * Permite realizar la configuración del algoritmo de Búqueda Tabú. Los valores
  * de la configuración deben haber sido establecidos previamente, de lo
  * contrario se tomarán los valores por defecto
  * @param algoritmoBusqueda es el objeto al que se le va a aplicar la
  * configuración
  */
 public void aplicarConfiguración(ref TabuSearch algoritmoBusqueda)
 {
     this.aplicarCriterioAspiracion(ref algoritmoBusqueda);
     this.aplicarCriterioParada(ref algoritmoBusqueda);
     //this.aplicarComparador(algoritmoBusqueda);
     algoritmoBusqueda.setAspiracionPorDefecto(new AspiracionPorDefault());
     algoritmoBusqueda.setListaTabu(listaTabu);
 }
コード例 #2
0
        /**
         * Permite aplicar la configuracion del criterio de parada elegido
         * @param algoritmoBusqueda es el objeto al que se le va a aplicar la
         * configuración
         */
        private void aplicarCriterioParada(ref TabuSearch algoritmoBusqueda)
        {
            switch (this.tipoParada)
            {
            case CriteriosParadaEnum.NUM_ITERACIONES:
                algoritmoBusqueda.setEstrategiaParada(new StrategyParadaNumIteraciones((int)objetivo));
                break;

            case CriteriosParadaEnum.NUM_ITERACIONES_SIN_MEJORA:
                algoritmoBusqueda.setEstrategiaParada(new StrategyParadaNumIteracionesSinMejora((int)objetivo, maximizacion));
                break;

            case CriteriosParadaEnum.EVALUACION_OBJETIVO:
                algoritmoBusqueda.setEstrategiaParada(new StrategyParadaEvaluacionObjetivo(objetivo, maximizacion, 100000));
                break;

            default:
                algoritmoBusqueda.setEstrategiaParada(new StrategyParadaNumIteraciones((int)objetivo));
                break;
            }
        }
コード例 #3
0
        /**
         * Permite aplicar la configuración del criterio de aspiración elegido
         * @param algoritmoBusqueda es el objeto al que se le va a aplicar la
         * configuración
         */
        private void aplicarCriterioAspiracion(ref TabuSearch algoritmoBusqueda)
        {
            switch (this.tipoAspiracion)
            {
            case CriteriosAspiracionEnum.POR_OBJETIVO:
                algoritmoBusqueda.setEstrategiaAspiracion(new StrategyAspiracionPorObjetivo(maximizacion));
                break;

            case CriteriosAspiracionEnum.POR_DIRECCION_BUSQUEDA:
                algoritmoBusqueda.setEstrategiaAspiracion(new StrategyAspiracionPorDireccionBusqueda(maximizacion));
                break;

            case CriteriosAspiracionEnum.POR_DEFAULT:
                algoritmoBusqueda.setEstrategiaAspiracion(null);
                break;

            default:
                algoritmoBusqueda.setEstrategiaAspiracion(new StrategyAspiracionPorObjetivo(maximizacion));
                break;
            }
        }