Está en la página 1de 16

Metaheurísticas para resolver un problema de

localización de k-productos en instalaciones sin


capacidad
Universidad Autónoma de Nuevo León
Facultad de Ciencias Físico – Matemáticas

Optimización de Aplicaciones Industriales


González Ramírez Karen Michelle
Varela Pantoja César Aldair

Resumen.
En el presente documento se abarca el estudio de un problema de localización
de k-productos en instalaciones sin capacidad, de manera que se encuentre y
demuestre una forma para determinar buenos valores objetivos para el modelo
planteado, esto mediante la utilización de metaheurísticas, validando el
rendimiento y la calidad de las soluciones encontradas.

1. Introducción
Los problemas de localización surgen de la necesidad de encontrar, en el
contexto del problema, la mejor ubicación para una o varias instalaciones, con
el fin de satisfacer puntos de demanda maximizando las utilidades, partiendo de
este concepto muchos autores han tratado este problema, presentando diferentes
tipos de modelos.
Formular modelos de localización resultan un instrumento de gran
importancia para las empresas, debido a que se consideran como un componente
importante sobre la ubicación y/o decisión en la instalación y apertura de cada
una de sus sucursales, de manera que maximicen o minimicen aquellos aspectos
que la empresa considere y así poder conseguir ganancias en la empresa,
evitando caer en malas operaciones y, por consiguiente, perdidas para la misma.
Un caso particular sobre los problemas de localización, es aquel en el cual
los clientes solicitan más de un servicio o producto que necesita ser producido
por varias instalaciones. Este tipo de problemas es el que se le denomina como
problema de ubicación de instalaciones sin capacidad de productos múltiples, o
bien, problema de ubicación de instalaciones sin capacidad para k-productos
(por sus siglas en inglés, k-PUFLP).
En este documento estudiamos el problema de localización de k-productos
de Huei-Chuen Huang y Rongheng Li (2007) considerando las instalaciones sin
capacidad. En la presente se consideran 2 metaheurísticas basadas en búsquedas
locales; Variable Neighborhood Search (VNS) y Iterated Local Search (ILS);
aplicando ambas metaheurísticas para comparar y medir el rendimiento de
ambos aplicados a k-PUFLP.
Este artículo está organizado como sigue: en la sección 1 se presentó una
introducción al problema, en la sección 2 describiremos nuestro problema y el
modelo que se pretende resolver, en la sección 3 hablaremos sobre las
metaheurísticas utilizadas para resolver dicho modelo, en la sección 4
expondremos la experimentación computacional realizada, así como los
resultados y comparaciones, por último, en la sección 5 y 6 se encuentran las
conclusiones y referencias.

2. Descripción del problema


El problema de localización de k-productos en instalaciones sin capacidad, aquí
estudiado, consiste en considerar un costo por aperturar una instalación y
asignar la producción de un producto en dicha instalación, además de existir un
costo de envío del producto de una instalación a un cliente, este problema está
basado en el propuesto por Huei-Chuen Huang y Rongheng Li (2007), en el
cual se considera un conjunto 𝐷 como el conjunto de clientes los cuales deberán
de ser cubiertos sin permitir un abastecimiento divido y 𝐹 el conjunto de
instalaciones potenciales, las cuales solo podrán producir como máximo uno de
los productos. A continuación, se definirán los conjuntos, parámetros y
variables de decisión involucradas en el modelo matemático.
El modelo incluye los siguientes parámetros:
 Hay 𝑘 tipos de productos 𝑝 , 𝑙 = 1,2, . . . , 𝑘.
 Cada instalación 𝑖 ∈ 𝐹 debe configurarse para proporcionar como
máximo uno de los productos.
 El costo de establecer una instalación 𝑖 para abastecer el producto 𝑝 es
𝑓 , 𝑐𝑜𝑛 𝑖 ∈ 𝐹, 1 ≤ 𝑙 ≤ 𝑘.
 El costo de envío entre dos puntos 𝑖, 𝑗 ∈ F ∪ D es igual a 𝑐 .
 Cada cliente 𝑗  ∈  𝐷 debe de ser abastecido con 𝑘 productos por un
conjunto de 𝑘 instalaciones.

A lo largo de este documento, hacemos las siguientes suposiciones sobre los


costos a menos que se mencione especialmente:
1) 𝑓 ≥ 0∀𝑖 ∈ 𝐹, 𝑙 = 1,2, … , 𝑘
2) 𝑐 ≥ 0, 𝑝𝑎𝑟𝑎 𝑐𝑎𝑑𝑎 𝑖, 𝑗 ∈ 𝐹 ∪ 𝐷
3) 𝑐 = 𝑐 𝑝𝑎𝑟𝑎 𝑐𝑎𝑑𝑎 𝑖, 𝑗 ∈ 𝐹 ∪ 𝐷
(i.e. los costos por servicio son simétricos)
4) 𝑐 ≤ 𝑐 + 𝑐 𝑝𝑎𝑟𝑎 𝑐𝑎𝑑𝑎 𝑖, 𝑗, 𝑘 ∈ 𝐹 ∪ 𝐷
(i.e. los costos por servicio satisfacen la desigualdad triangular)

Las variables de decisión consideradas son:


1, 𝑠𝑖 𝑙𝑎 𝑖𝑛𝑠𝑡𝑎𝑙𝑎𝑐𝑖ó𝑛 𝑖 𝑐𝑢𝑏𝑟𝑒 𝑎𝑙 𝑐𝑙𝑖𝑒𝑛𝑡𝑒 𝑗 𝑐𝑜𝑛 𝑒𝑙 𝑝𝑟𝑜𝑑𝑢𝑐𝑡𝑜 𝑝
𝑥 =
0, 𝑒𝑛 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟𝑎𝑟𝑖𝑜
para cualquier 𝑖 ∈ 𝐹, 𝑗 ∈ 𝐷 y 𝑙 ∈ 1,2, … , 𝑘.
1, 𝑠𝑖 𝑙𝑎 𝑖𝑛𝑠𝑡𝑎𝑙𝑎𝑐𝑖ó𝑛 𝑖 𝑝𝑢𝑒𝑑𝑒 𝑎𝑏𝑎𝑠𝑡𝑒𝑐𝑒𝑟 𝑒𝑙 𝑝𝑟𝑜𝑑𝑢𝑐𝑡𝑜 𝑝
𝑦 =
0, 𝑒𝑛 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟𝑎𝑟𝑖𝑜

2.1. Modelo
Tenemos que el problema de localización de k-productos en instalaciones sin
capacidad k-PUFLP se modela de la siguiente manera:

𝑚𝑖𝑛 𝑓 𝑦 + 𝑐 𝑥 (1)
Sujeto a:

𝑥 = 1, ∀𝑗 ∈ 𝐷, 𝑙 ∈ {1,2, … , 𝑘} (2)

𝑥 ≤𝑦 , ∀𝑖  ∈ 𝐹, 𝑗 ∈ 𝐷, 𝑙 ∈ {1,2, … , 𝑘} (3)

(4)
𝑦 ≤ 1, 𝑖 ∈𝐹

(5)
𝑥 ∈ {0,1}, ∀𝑖 ∈ 𝐹, 𝑗 ∈ 𝐷, 𝑙 ∈ {1,2, … , 𝑘}

𝑦 ∈ {0,1}, ∀𝑖 ∈ 𝐹, 𝑙 ∈ {1,2, … , 𝑘} (6)

En la formulación anterior, las restricciones (2) aseguran que para un


producto cada cliente sea suministrado precisamente por una instalación. Las
restricciones (3) aseguran que la instalación 𝑖 pueda suministrar el producto
l si el cliente 𝑗 recibe el producto l de esta instalación. Las restricciones (4)
aseguran que cada instalación pueda suministrar como máximo un tipo de
los 𝑘 productos.

3. Metaheurísticas propuestas

3.1. Variable Neighborhood Search


Variable Neighborhood Search o bien Búsqueda por Entornos Variables
Vecindarios, es un algoritmo propuesto por N. Mladenovic y P. Hansen en
1997. La metaheurística VNS ha dado grandes resultados en diversas áreas de
investigación durante los últimos años, mostrando respuestas positivas. Se ha
aplicado en diferentes áreas, y como ejemplos de éxito, tenemos los trabajos de
Phanden, R.K., Ferreira, J.C.E. [12], Gu X, Huang M, Liang X. [13], en el cual
fue hibridado con la metaheurística Genetic Algorthm teniendo así excelentes
resultados. Además, encontramos que hay algunas variaciones en el algoritmo,
como en la investigación Fattahi, P., Bagheri Rad, N., Daneshamooz, F. and
Ahmadi, S. [13] fue utilizado con una pequeña variante del VNS. Este algoritmo
se basa en que los mínimos locales tienden a agruparse en una o varias zonas
del espacio de búsqueda, por ende, suele estancarse, que es lo que sucede con
la Búsqueda Local, por esta razón, para evitar estancarse, el algoritmo propone
utilizar “𝑘” vecindarios. Utiliza la búsqueda local para ir encontrando mejores
valores y una vez que se estanca realizar un cambio de vecindario, así hasta
haber pasado por todos los vecindarios propuestos. El algoritmo VNS ha
demostrado su eficacia durante los últimos años, ya que diversos investigadores
y personas de la industria han utilizado esta metaheurística dando resultados
favorables, como se muestra en los trabajos de Gumaida, B.F., Luo, J. [9],
Wennberg, R., Domínguez, L., & Del Campo, J. [10], Hanan H. Al Malki and
Abdellatif I. Moustafa. [11].
La logística de este algoritmo es crear una solución inicial factible a
través de un constructivo, posteriormente a esa solución se le realizan
exploraciones a través de búsquedas locales; el orden en el cual se realiza es
haciendo uso de 𝑘 tipos de vecindarios. Comenzando la exploración con el
vecindario tipo 1, siempre que se encuentre una mejora se sigue explorando con
el vecindario tipo 1, cuando no se encuentre una mejora se hace la exploración
con el vecindario tipo 2, si se encuentra una mejora se vuelve a hacer la
exploración con el vecindario tipo 1, pero si no se encuentra una mejora se hace
la exploración con el vecindario tipo 3 y así sucesivamente hasta que al hacer
la búsqueda local con los k tipos de vecindarios no se encuentre una mejora en
la función objetivo.
Particularmente en nuestro modelo de k-PUFLP, se parte de una solución
inicial buena, para después aplicar movimientos operacionales en nuestro vector
binario designado como 𝑉𝑒𝑐_𝑚, la cual se explicara más a detalle en el siguiente
apartado, generando intercambios que nos den como resultado las vecindades a
explorar, consideramos 3 tamaños de vecindario para este modelo, es decir,
tendremos 3 tipos de movimientos para el vector solución, de manera que
evitemos caer en mínimos locales y poder analizar con una mayor cobertura los
vecindarios de dicha solución.

3.1.1. Constructivo aleatorio


Se considera aplicar un constructivo aleatorio. Para este constructivo se
crean dos vectores, un vector denominado 𝑉𝑒𝑐_𝑚, el cual es una vector que nos
indica cuales ubicaciones podrán aperturarse y, por tanto, ser una instalación
abierta, de manera que, dicho vector, será binario, como se establecieron las
variables binarias. Adicionalmente consideramos un vector de nombre 𝑉𝑒𝑐_𝑎,
el cual nos representa la asignación los k-productos en las instalaciones que se
encuentran abiertas.
Después de realizar la apertura y asignación de los productos a las
instalaciones se calcula el valor de la función objetivo, para después cambiar de
manera aleatoria nuestra solución hasta encontrar aquella con un mejor valor.
El pseudocódigo del constructivo tipo aleatorio es:

3.1.2. Vecindarios
Los vecindarios serán generados de con los movimientos de inserción,
utilizando los siguientes movimientos:
1. Para el vecindario 1, se selecciona de manera aleatoria una instalación
del vector 𝑉𝑒𝑐_𝑚, y se inserta a partir de otra posición aleatoria, como
se muestra en la siguiente figura:
2. Para el vecindario 2, se selecciona de manera aleatoria una posición 𝐻
del 𝑉𝑒𝑐_𝑚 para posteriormente seleccionar ahora, una posición 𝐺
donde 𝐺 = 𝐻 − 1. Posteriormente se fija 𝐻 y se aplica el método de
inserción en 𝐺. Esto es, para cada movimiento en 𝐻 tendremos
inserciones del 𝑉𝑒𝑐_𝑚 con la posición 𝐺, como se muestra en la
siguiente figura:

3. Por último, para el vecindario 3, se selecciona de manera aleatoria una


posición 𝐻 del 𝑉𝑒𝑐_𝑚 para posteriormente selecciontrar otras dos
posiciones 𝐺 = 𝐻 − 1 y 𝐹 = 𝐺 − 1. Fijaremos 𝐻 y después fijaremos
𝐺. El método de inserción se estará aplicando en 𝐹. Esto es, para cada
movimiento en 𝐻, tendremos un movimiento en 𝐺 para el cual se
realizarán inserciones del 𝑉𝑒𝑐_𝑚 con la posición 𝐹, como se muestra
en la siguiente figura:

3.1.3. Pseudocódigo VNS


3.2 Iterated Local Search (ILS)
Iterated Local Search o bien Búsqueda Local Iterada, es un algoritmo
propuesto por Thomas Stützle en 1998. Este algoritmo se enfoca en un
subconjunto del espacio de todas las posibles soluciones, este subconjunto está
constituido por óptimos locales que están dados por un procedimiento de
optimización. En el trabajo de Ruteo de Vehículos con rutas propias por
Castañeda, J., vemos que dicha metaheurística puede obtener buenos resultados
en tiempos razonables tiempos de computo. El objetivo del ILS es mejorar la
solución inicial usando un procedimiento en la búsqueda local y combinándola
con mecanismos de perturbación. En el proyecto sobre Talleres de flujo y
minimización de Makespan por León, A., puede observarse la comparativa entre
dos movimientos realizados para generar vecindades, en el cual existe una
diferencia a mayor porcentaje de missing.
La logística de este algoritmo es crear una solución inicial factible a
través de un constructivo, posteriormente a esa solución, a través de búsquedas
locales en el vecindario, se encuentra un mínimo local. Es entonces cual se
empieza con la parte iterativa del algoritmo, en ella se aplicarán tres operadores:
la perturbación, la cual será útil para modificar la solución de manera que
escapemos del mínimo local, la búsqueda local, que tiene finalidad en el
análisis del vecindario y encontrar un nuevo mínimo, y por último el criterio de
aceptación, que es con el que se decidirá qué solución será perturbada en la
iteración siguiente.
Apoyando la idea dada por Castañeda, J., en la investigación Ruteo de
Vehículos con múltiples depósitos por Amariles, J., nos dice que “el ILS es una
metodología que logra un equilibro entre velocidad y calidad de las
soluciones” lo que nos deja ver que, teniendo definida una estructura correcta
y parámetros configurados adecuadamente para el modelo, el ILS puede ser de
gran utilidad. Adicionalmente, como se menciona en el documento de
Resolución de problemas de planificación de Bermúdez, C., Minetti, G. &
Salto, C., nos menciona que “Este algoritmo es relativamente simple de
implementar y usa muy pocos parámetros, lo cual facilita el proceso de ajuste
de los mismos.” De manera que, a pesar de que existir un muestreo de sesgado
del conjunto de óptimos locales, escogiendo adecuadamente los tipos de
perturbaciones como los criterios de paro, puede ser posible obtener mejores
resultados, haciendo al ILS un algoritmo de fácil aplicación problemas del
mundo real.
3.2.1. Constructivo aleatorio
Se utiliza el mismo constructivo que se empleó para la metaheurística VNS.
Se considera aplicar un constructivo aleatorio. Para este constructivo se crean
dos vectores, un vector denominado 𝑉𝑒𝑐_𝑚, el cual es una vector que nos indica
cuales ubicaciones podrán aperturarse y, por tanto, ser una instalación abierta,
de manera que, dicho vector, será binario, como se establecieron las variables
binarias. Adicionalmente consideramos un vector de nombre 𝑉𝑒𝑐_𝑎, el cual nos
representa la asignación los k-productos en las instalaciones que se encuentran
abiertas.
Después de realizar la apertura y asignación de los productos a las
instalaciones se calcula el valor de la función objetivo, para después cambiar de
manera aleatoria nuestra solución hasta encontrar aquella con un mejor valor.
El pseudocódigo del constructivo tipo aleatorio es:
3.2.2. Vecindarios
Se utiliza la creación de vecindarios por el método de inserción la cual
consiste en la extracción de una instalación en el vector 𝑉𝑒𝑐_𝑚, de modo que
se realiza su inserción en todas las posiciones posibles de ubicación, como se
muestra en la siguiente figura:

3.2.3. Pseudocódigo ILS


A continuación, se muestra el código utilizado para el problema de k-PUFLP:
4. Experimentación Computacional
El equipo de cómputo en el cual se realizaron los procesos tiene las
siguientes características:
 Procesador: Intel(R) Core (TM) i5-8250U CPU @ 1.60GHz 1.80
GHz
 RAM instalada: 8.00 GB (7.84 GB utilizable)
 Tipo de sistema: Sistema operativo de 64 bits, procesador x64
Las metaheurísticas se programaron en RStudio versión 2022.07.2+576.

4.1. Instancias
Las instancias se crearon de manera aleatoria:
Tamaños
Instancias D i j k 𝑓 𝑐
1 10 5 10 5 5x10 10x10
Chicas
2 9 7 9 7 7x9 9x9
1 15 13 15 13 13x15 15x15
Medianas
2 22 13 22 13 13x22 22x22
1 27 22 27 22 22x27 27x27
Grandes
2 23 20 23 20 20x23 23x23
1. Los valores de F y j se tomaron según el tamaño de las instancias, se
consideraron instancias pequeñas, medianas y grandes.
2. Los costos de apertura son aleatorios entre [150,500]
3. Los costos por servicio son aleatorios entre [60,120]
4. El conjunto de posibles ubicaciones esta entre [9,30]
5. Los k-productos como un aleatorio menor que las posibles
instalaciones.

4.2. Resultados
En esta sección veremos los resultados arrojados por cada una de las
metaheurísticas, se corre 10 veces el código para cada una de las instancias
propuestas anteriormente, de manera que, el dato mostrado es el promedio de
dichas ejecuciones.
4.2.1. VNS
VNS
Tamaño de Solución
Ubicaciones Instalaciones Clientes k Solución Inicial % de
la instancia Resultante al Tiempo
(Constructivo) mejora
aplicar VNS
10 5 10 5 6121 5391 11.93% 1.16
Grandes Medianas Pequeñas

9 7 9 7 6551 5423 17.22% 3.21

15 13 15 13 21580 17594 18.47% 21.94

22 13 22 13 29869 28239 5.46% 36.86

27 22 27 22 60318 58851 2.43% 194.26

23 20 23 20 47235 46890 0.73% 170.32

4.2.2. ILS
ILS
Tamaño
Solución
de la Ubicaciones Instalaciones Clientes k Solución Inicial
Resultante al % de mejora Tiempo
instancia (Constructivo)
aplicar ILS
10 5 10 5 5804 5648 2.69% 0.541
Grandes Medianas Pequeñas

9 7 9 7 6509 5477 15.85% 0.753

15 13 15 13 20953 17646 15.78% 4.641

22 13 22 13 28701 25298 11.86% 8.642

27 22 27 22 60947 59030 3.15% 45.581

23 20 23 20 47746 47362 0.80% 35.377

4.3. Comparaciones
Para realizar la comparación entre las metaheurísticas se toman varios
criterios, el porcentaje observado de mejora, tiempos de ejecución y el
porcentaje variabilidad que hay entre los resultados encontrados durante las 10
ejecuciones de los códigos, en la siguiente tabla se muestra el peor y mejor
resultado para cada metaheurística:
ILS VNS
Tamaño
Peor valor de Mejor valor de Peor valor de Mejor valor
de la Ubicaciones Instalaciones Clientes k Peor Mejor
la función Peor tiempo la función Mejor tiempo la función de la función
instancia tiempo tiempo
objetivo objetivo objetivo objetivo
10 5 10 5 5726 1.204 5648 0.541 5756 3.25 5391 1.16
Grandes Medianas Pequeñas

9 7 9 7 5993 1.295 5477 0.753 59557 5.43 5423 3.21

15 13 15 13 19298 7.983 17646 4.641 19597 2.34 17594 21.94

22 13 22 13 2704 12.846 25287 7.342 29054 47.74 28128 35.56

27 22 27 22 59947 57.782 59029 46.481 60244 212.23 58781 193.16

23 20 23 20 47554 39.778 47360 34.676 47062 224.71 46863 168.31

A continuación, se muestra gráficamente las comparaciones en cuanto a


las soluciones obtenidas, considerando el tiempo y el porcentaje de mejora
que suelen obtener
5. Conclusiones
Al realizar las comparaciones en cuanta la calidad de las soluciones que
encontramos, es decir, nuestro objetivo principal es obtener un mínimo,
observamos que la metaheurística de VNS resulta ser quien arroja siempre
mejores soluciones para cada una de las instancias, teniendo un porcentaje
de mejoría entre el 1% al 5% en la mayoría de los casos.
Por otro lado, comparando los tiempos de ejecución vemos que la ILS
presenta siempre menores tiempos en comparación con el VNS,
consideramos que, al solo considerarse un vecindario para cada solución
considerada como la mejor hasta el momento, el tiempo que lleva realizar el
proceso de perturbación es mucho menor que para la VNS que considera tres
tipos de vecindades
A manera de resumen, una mejor exploración de nuestro conjunto de
soluciones, siempre llevará mas tiempo de ejecución para un algoritmo VNS,
sin embargo, abarcar mas espacio de nuestro conjunto de soluciones nos
garantiza obtener mejores soluciones para el problema que, en nuestro caso,
se pretende realizar una localización de productos en ciertas instalaciones,
de manera que se minimicen los costos.
6. Referencias

[1] Huang, H. C., & Li, R. (2008). A k-product uncapacitated facility


location problem. European Journal of Operational Research, 185(2),
552-562.
[2] Castañeda Londoño, J. F. (2018). Metaheurística ILS para la solución del
problema de ruteo de vehículos con flota propia y subcontratada VRPPC.
[3] León Martínez, A. (2018). Algoritmo de búsqueda local iterada para la
secuenciación en talleres de flujo y minimización de makespan.
[4] Bermudez, C., Minetti, G. F., & Salto, C. (2016, May). Búsqueda local
iterada para resolver problemas de planificación. In XVIII Workshop de
Investigadores en Ciencias de la Computación (WICC 2016, Entre Ríos,
Argentina).
[5] Amariles Zambrano, J. M. (2019). Aplicación de la Búsqueda Local
Iterada a la solución del problema de ruteo de vehículos con múltiples
depósitos y flota propia y subcontratada MDVRPPC.
[6] Herrera, F. (2017). Introducción a los algoritmos metaheurísticos.
[7] Morales-Navarro, R. E., Cruz-Chávez, M. A., Rivera-López, R.,
Rodríguez-León, A., Martínez-Oropeza, A., & Moreno, P. Paralelización
de un Algoritmo de Búsqueda Local Iterada para el Problema del Agente
Viajero.
[8] Labrada-Nueva, Y., Enríquez-Urbano, J., & García-Ojito, Y. Un
algoritmo de búsqueda local iterada como solución al problema de la
mochila.
[9] Gumaida, B.F., Luo, J. A hybrid particle swarm optimization with a
variable neighborhood search for the localization enhancement in
wireless sensor networks. Appl Intell 49, 3539–3557 (2019).
https://doi.org/10.1007/s10489-019-01467-8
[10] Wennberg, R., Dominguez, L., & Del Campo, J. (2019).
Magnetoencephalographic Source Localization of the Eye Area of the
Motor Homunculus. Canadian Journal of Neurological Sciences / Journal
Canadien Des Sciences Neurologiques, 46(1), 108-114.
doi:10.1017/cjn.2018.373
[11] Hanan H. Al Malki and Abdellatif I. Moustafa. 2018. An Enhanced
technique of Self-Correcting Localization Algorithm for Vehicular Node
Position Accuracy in the Distributed VANET. In Proceedings of the 2018
VII International Conference on Network, Communication and
Computing (ICNCC 2018). Association for Computing Machinery, New
York, NY, USA, 194–199. https://doi.org/10.1145/3301326.3301376
[12] Phanden, R.K., Ferreira, J.C.E. (2019). Biogeographical and
Variable Neighborhood Search Algorithm for Optimization of Flexible
Job Shop Scheduling. In: Shanker, K., Shankar, R., Sindhwani, R. (eds)
Advances in Industrial and Production Engineering . Lecture Notes in
Mechanical Engineering. Springer, Singapore.
https://doi.org/10.1007/978-981-13-6412-9_48
[13] Gu X, Huang M, Liang X. An Improved Genetic Algorithm with
Adaptive Variable Neighborhood Search for FJSP. Algorithms. 2019;
12(11):243. https://doi.org/10.3390/a12110243
[14] Fattahi, P., Bagheri Rad, N., Daneshamooz, F. and Ahmadi, S.
(2020), "A new hybrid particle swarm optimization and parallel variable
neighborhood search algorithm for flexible job shop scheduling with
assembly process", Assembly Automation, Vol. 40 No. 3, pp. 419-432.
https://doi.org/10.1108/AA-11-2018-0178

También podría gustarte