Un Algoritmo Memético basado en PSO para
la programación de producción en una
fábrica de flujo continuo.
Bo Liu, Ling Wang, y Yi-Hui Jin
Resumen: Este artículo propone un algoritmo memético (MA) eficiente, basado en la optimización de enjambre de partículas (particle swarm optimization - PSO) para el problema de la permutación de la programación de producción en una fábrica de flujo continuo (PFSSP) con el objetivo de reducir al mínimo el tiempo máximo de realización, el cual es un problema típico de tiempo polinomial (NP) no determinista y de optimización combinatorial compleja. En el algoritmo memético basado en PSO (PSOMA) propuesto, tanto los operadores de búsqueda PSO como algunos operadores especiales de búsqueda local están diseñados para equilibrar la exploración y la capacidad de explotación. En particular, el PSOMA aplica el mecanismo evolutivo de búsqueda PSO, que se caracteriza por mejoras individuales, cooperación de población y competencia para llevar a cabo una exploración efectiva. Por otra parte, el PSOMA utiliza varias búsquedas locales de adaptación para realizar la explotación. Primero, para hacer que se adecue PSO a resolver PFSSP, una regla de valor de orden-alineado basada en una representación de clave aleatoria es presentada para convertir los valores de posición continua de partículas a permutaciones de trabajo. Segundo, para generar un enjambre inicial con cierta calidad y diversidad, la famosa heurística Nawaz-Enscore-Ham (NEH) se incorpora en la inicialización de población. Tercero, para equilibrar las capacidades de exploración y explotación, después de la operación estándar de búsqueda PSO una técnica nueva de búsqueda local llamada inserción NEH_1 se aplica probabilísticamente a algunas buenas partículas seleccionadas mediante el uso de un mecanismo de rueda de ruleta con una probabilidad específica. Cuarto, para enriquecer los comportamientos de búsqueda y evitar la convergencia prematura, una búsqueda local de recocido simulado (simulated annealing - SA) con múltiples vecindades diferentes se ha diseñado e incorporado en el PSOMA. Mientras tanto, una estrategia efectiva de aprendizaje adaptativa meta-Lamarckiana se emplea para decidir qué vecindad se utilizará en la búsqueda local SA. Por último, para mejorar aún más la capacidad de explotación, una búsqueda local por parejas se aplica después de la búsqueda SA. Los resultados de la simulación basados en pruebas comparativas demuestran la eficacia de PSOMA. Además, los efectos de algunos parámetros de optimización de rendimiento también son discutidos.
Términos Clave
Aprendizaje adaptativo meta-lamarckiano, algoritmo memético (MA), optimización de enjambre de partículas (PSO), permutación de programación de producción en una fábrica de flujo continuo.
INTRODUCCION
La programación de la producción juega un papel clave en los sistemas de fabricación de una empresa para mantener la posición competitiva en los mercados que cambian rápidamente. Para tener en cuenta este factor, es importante desarrollar tecnologías y enfoques avanzados de fabricación y programación que sean eficaces y eficientes. El problema de la programación de producción de fabrica de flujo continuo (FSSP) es una clase de problema ampliamente estudiado, basado en ideas recogidas de la ingeniería, que en la actualidad representa casi una cuarta parte de los sistemas de producción: líneas de montaje e instalaciones de servicios de información, y que se ha ganado la reputación de ser difícil de resolver. Como una simplificación de la FSSP, la permutación FSSP (PFSSP), es decir, que la secuencia de procesamiento de todos los trabajos es la misma para todas las máquinas, el reducir al mínimo el tiempo de realización máximo (es decir, el makespan) es un problema complejo típico, bien estudiado, no determinista y de tiempo polinomial (NP). Debido a su importancia tanto en teoría como en aplicaciones de ingeniería, es importante desarrollar métodos eficaces y eficientes para la PFSSP.
Desde el trabajo pionero de Johnson, la PFSSP ha recibido un trabajo considerable de investigación teórica, computacional y empírica. Para tener en cuenta la dificultad de la PFSSP, una cantidad considerable de técnicas de optimización se han propuesto. Sin embargo, debido a la complejidad de PFSSP, las técnicas de solución exacta, como ramificación y acotamiento (branch and bound), y la programación matemática, sólo son aplicables a problemas de pequeña escala. Por tanto, se han propuesto varias heurísticas, incluyendo heurísticas constructivas, heurísticas de mejoramiento, y sus híbridos (a veces llamados algoritmos meméticos (memetic algorithms - MA)). La heurística constructiva forma un programa viable desde el principio, sobre todo para resolver problemas de programación de dos y de tres máquinas. Sin embargo, las cualidades de la solución de la heurística constructiva, no son satisfactorias, aunque el proceso es muy rápido. Los resultados experimentales mostraron que la heurística Nawaz-Enscore-Ham (NEH) es una de las mejores heurísticas constructivas actuales. La heurística de mejoramiento comienza desde una un conjunto de soluciones generadas por algunos generadores de secuencias y trata de mejorar la solución mediante la aplicación de un conocimiento de problema específico para aproximarse al óptimo "global" o "subóptimo". La heurística de mejoramiento se basa generalmente en metaheurísticas tales como el recocido simulado (SA), algoritmos genéticos (AG), búsqueda tabú (TS), programación evolutiva, y búsqueda por vecindad variable (VNS). Las heurísticas de mejoramiento pueden obtener soluciones bastante satisfactorias, pero a menudo consumen mucho tiempo y dependientes de parámetros.
Recientemente, las heurísticas híbridas han sido un tema candente en campos como en la informática como en la investigación operacional. Se supone que combinando las características de los diferentes métodos de manera complementaria se puede dar lugar a herramientas de optimización más robustas y eficaces. En particular, es bien sabido que el rendimiento de los algoritmos evolutivos se puede mejorar mediante la combinación de búsquedas locales
dependientes del problema. Algoritmos meméticos (MA) pueden ser considerados como la unión de una búsqueda global basada en la población y las mejoras locales que se inspiran en los principios darwinianos de la evolución natural y la noción de Dawkins de Meme, definido como la unidad de evolución cultural que es capaz de mejoras locales. Hasta ahora, los algoritmos meméticos (MA) han obtenido amplia investigación sobre una variedad de problemas tales como el problema del viajante de comercio, el problema de la bipartición de grafos, el problema de asignación cuadrática, las redes móviles, y problemas de programación. En MA’s, diferentes estudios se han centrado en cómo lograr una combinación razonable de búsquedas globales y locales, y en cómo hacer un buen equilibrio entre la exploración y explotación. Recientemente, una arquitectura multiagente metaheurística fue presentada como marco conceptual y práctico para el diseño de MA’s. Tradicionalmente, la mayoría de MA’s se basan en el uso de un único algoritmo evolutivo para exploración a nivel global aproximada y una única búsqueda local para buenas mejoras a nivel local. Algunos estudios recientes sobre la elección de búsquedas locales han demostrado que su elección afecta de manera significativa la eficiencia de la búsqueda. Con el fin de evitar los efectos negativos de la búsqueda local incorrecta, Ong y Keane, acuñaron el término "aprendizaje meta-lamarckiano" para introducir la idea de elección adaptativa de memes múltiples durante una búsqueda de algoritmo memético en el espíritu de aprendizaje lamarckiano y en problemas de optimización continua resueltos satisfactoriamente por el algoritmo memético propuesto con múltiples búsquedas locales. En [29], una clasificación de adaptación de memes en algoritmos meméticos adaptativos fueron presentados sobre la base del mecanismo utilizado y del nivel de conocimiento histórico en los memes empleados, así como en las propiedades de convergencia global de MA’s adaptativos que se analizaron por medio de cadenas finitas de Markov. Además, un estudio realizado en [30] se enfoca en el marco del algoritmo memético sustituto-asistido para problemas computacionalmente costosos y problemas de diseño robusto. Para un solo objetivo PFSSP, los algoritmos meméticos ya se han investigado en muchos estudios. En [12], un operador de fusión cruzado de múltiples pasos que lleva una búsqueda local fue introducido en algoritmos genéticos. En [16], un híbrido de algoritmo genético fue desarrollado mediante la sustitución de la mutación con recocido simulado y mediante la aplicación de varias operaciones de cruce a las subpoblaciones. En [17], un sistema de colonia de hormigas fue propuesto, el cual fue reforzado con una búsqueda local rápida para dar soluciones de alta calidad. En [18], dos versiones híbridas de algoritmos genéticos fueron presentadas, es decir, recocido simulado genético y búsqueda local genética, donde las fases de mejoría con recocido simulado, así como la búsqueda local se realizan antes de las operaciones de selección y cruce. En [19], un recocido simulado híbrido se integró con las características tomadas de algoritmos genéticos y las búsquedas locales, que trabajaron sobre una población de programaciones candidatas y generaron nuevas poblaciones mediante la aplicación de esquemas adecuados de pequeña perturbación. Por otra parte, durante el proceso de recocido, un procedimiento reiterativo en escalada fue aplicado estocásticamente a la población. En [20], un algoritmo genético basado en la optimización ordinal fue presentado para asegurar la calidad de la solución encontrada con una reducción de esfuerzo de computación. Además, un algoritmo genético basado en pruebas de hipótesis fue propuesto en [31] para PFSSP estocástico con un tiempo de procesamiento incierto. En cuanto a los problemas de programación multiobjetivo, la hibridación con búsqueda local fue implementada por primera vez en [32] como una búsqueda local genética multiobjetivo (MOGLS), donde se utilizó una función escalar conveniente con pesos aleatorios para la selección de los padres y una búsqueda local para
su descendencia. En [25], el antiguo MOGLS [32] fue modificado para elegir sólo individuos buenos como solución inicial para la búsqueda local y la asignación de una dirección de búsqueda local apropiada para cada solución inicial. Mientras tanto la importancia del equilibrio entre la genética y las búsquedas locales fue resaltada.
Recientemente, una nueva técnica evolutiva, la optimización de enjambre de partículas (PSO) [33], se propuso para problemas de optimización continua sin restricciones. Su desarrollo se basa en la observación de comportamientos sociales de los animales tales como la bandada de aves, bancos de pescados, y la teoría del enjambre. Se inicia con una población de soluciones al azar. A cada individuo se le asigna una velocidad al azar de acuerdo a su propia experiencia y a la experiencia de los compañeros de vuelo. Los individuos, llamados partículas, son elevados a través del hiperespacio. PSO tiene algunas características atractivas. Debido a que dispone de memoria, el conocimiento de buenas soluciones es retenido por todas las partículas. Además, dispone de una cooperación constructiva entre partículas y las partículas en el enjambre comparten información entre ellas.
El PSO debido a su concepto simple, la fácil aplicación y la convergencia rápida, ha ganado mucha atención y amplias aplicaciones en diferentes campos, principalmente para problemas de optimización continua [34]. Sin embargo, la realización de un PSO simple depende de sus parámetros, y con frecuencia sufre el problema de estar restringido a óptimos locales. Se han llevado a cabo algunos estudios para prevenir la convergencia prematura y para equilibrar las capacidades de exploración y explotación [35]. Además, la mayoría de los trabajos publicados de PSO es para problemas de optimización continua, mientras que hay poca investigación en problemas de optimización combinatoria. Obviamente, el empleo de PSO es un reto para las áreas diferentes de problemas de las que los inventores se centraron originalmente. Según nuestro conocimiento, existen pocas obras publicadas sobre PSO para problemas de programación. Recientemente, un híbrido de PSO [36] sobre la base de VNS fue propuesto para PFSSP. En este articulo, se propondrá un algoritmo memético basado en PSO (PSOMA) para PFSSP. El PSOMA aplica el mecanismo de búsqueda evolutiva de PSO, que se caracteriza por mejoras individuales, cooperación de la población, y competencia para llevar a cabo una exploración efectiva.
Por otra parte, PSOMA utiliza diferentes búsquedas locales de adaptación para realizar la explotación. Las características de PSOMA se pueden resumir de la siguiente manera. En primer lugar, para hacer el PSO adecuado para resolver PFSSP, una regla de valor de rango ordenado (ranked order value - ROV) basada en la representación de llave aleatoria [37] se presenta para convertir los valores de posición continua de una partícula a una permutación de trabajo. En segundo lugar, la heurística NEH se incorpora a la inicialización aleatoria de PSO para generar una población inicial con cierta calidad y diversidad. En tercer lugar, se propone una nueva búsqueda local llamada inserción NEH_1 y es aplicada probabilísticamente a algunas partículas buenas, seleccionadas mediante mecanismo de rueda de ruleta, con una probabilidad específica para equilibrar las capacidades de exploración y explotación. En cuarto lugar, se ha diseñado e incorporado una búsqueda local SA con múltiples y diferentes vecindades para enriquecer los comportamientos de búsqueda y para evitar la convergencia prematura, y una estrategia efectiva de aprendizaje adaptativa meta-lamarckiana se emplea para decidir qué vecindad se utilizará. Además, una búsqueda local de parejas se aplica después de la búsqueda local SA para mejorar aún más la capacidad de explotación. Resultados de las simulaciones y comparaciones demuestran la eficacia del PSOMA propuesto para PFSSP.
El resto del contenido se organiza de la siguiente manera. En las secciones II y III, se introducen PFSSP y PSO. En la Sección IV, el PSOMA se propone después de presentar la representación de una solución, la inicialización de la población, la búsqueda local basada en NEH, la búsqueda local SA basada en combinación con la estrategia de aprendizaje adaptativo meta-lamarckiano, y la búsqueda local basado en parejas. En la sección V, se presentan y analizan los resultados experimentales de las pruebas comparativas, junto con las comparaciones con otras metaheurísticas anteriores. En la Sección VI, se discuten los efectos de algunos parámetros de optimización del rendimiento. Por último, en la Sección VII, terminamos este artículo con algunas conclusiones y sugerencias de posibles trabajos futuros.
II. EL PROBLEMA DE LA PERMUTACIÓN DE LA PROGRAMCIÓN DE PRODUCCIÓN EN UNA FÁBRICA DE FLUJO CONTINUO
El PFSSP puede describirse de la siguiente manera: Cada uno de los trabajos n se procesan de forma secuencial en la maquina 1,. . . , m. Se da el tiempo de procesamiento pi,j, del trabajo i en la máquina j. En cualquier momento, cada máquina puede procesar máximo un trabajo, y cada trabajo puede ser procesado en máximo una máquina. La secuencia en que los trabajos se van a procesar es el mismo para cada máquina. El objetivo es encontrar una secuencia para el procesamiento de los trabajos en las máquinas de modo que un criterio dado sea optimizado. En la literatura, el criterio ampliamente usado es la minimización del tiempo máximo de realización, es decir, el makespan (C max) [9] - [14].
Si π = {j1, j2,. . . , jn} denota una permutación de trabajos, y C(ji,k) indica el tiempo de la terminación del trabajo ji en la máquina; entonces, el tiempo de la terminación C (ji,k) se puede calcular de la siguiente manera:
La PFSSP es entonces encontrar la permutación π * en el conjunto de todas las permutaciones Π tales que:
III. OPTIMIZACIÓN DE ENJAMBRE DE PARTÍCULAS
En un sistema PSO, se comienza con la inicialización aleatoria de una población (enjambre) de individuos (partículas) en el espacio de búsqueda y se trabaja sobre el comportamiento social en el
enjambre. La posición y la velocidad de la partícula i en el espacio de búsqueda d-dimensional se puede representar como Xi Xi = [xi, 1, 2,. . . , xi, d] y Vi = [vi, 1, vi, 2,. . . , vi, d], respectivamente. Cada partícula tiene su mejor posición propia (pbest) pi = [pi, 1, pi, 2,. . . , pi, d] que corresponde al mejor valor objetivo personal obtenido hasta el momento en el tiempo t. Las mejores partículas globales (gbest) se denotan por Pg, las cuales representa las mejores partículas que se encuentran hasta el momento en el tiempo t, en el enjambre entero. La velocidad nueva de cada partícula se calcula de la siguiente manera:
donde c1 y c2 son los coeficientes de aceleración, w es el factor de inercia, R1 y R2 son dos
números aleatorios independientes distribuidos uniformemente en el rango de [0, 1]. Así, la
posición de cada partícula se actualiza en cada generación de acuerdo con la siguiente
ecuación:
En general, el valor de cada componente en Vi puede ser sujetado al rango [ _vmax, vmax ] para controlar el movimiento excesivo de las partículas fuera del espacio de búsqueda. Entonces, la partícula viaja hacia una nueva posición de acuerdo con (8). Este proceso se repite hasta que un criterio de parada definido por el usuario es alcanzado. El procedimiento estándar de PSO se resume de la siguiente manera.
Paso 1) Iniciar una población de partículas con las posiciones y velocidades al azar, donde cada partícula contiene d variables (es decir, d = n).
Paso 2) Evaluar los valores objetivo de todas las partículas, que el pbest de cada partícula y su valor objetivo sea igual a su posición actual y valor objetivo, y dejar que gbest y su valor objetivo sea igual a la posición y el valor objetivo de la mejor partícula inicial.
Paso 3) Actualización de la velocidad y la posición de cada partícula de acuerdo con (7) y (8). Paso 4) Evaluar los valores objetivo de todas las partículas.
Paso 5) Para cada partícula, comparar su valor actual objetivo con el valor objetivo de su pbest. Si el valor actual es mejor, a continuación, actualizar pbest y su valor objetivo con la posición actual y el valor objetivo.
Paso 6) Determinar la mejor de las partículas del enjambre actual con el mejor valor objetivo. Si el valor objetivo es mejor que el valor objetivo de gbest, a continuación, actualizar gbest y su valor objetivo con la posición y el valor objetivo de la partícula más actual.
Paso 7) Si un criterio de parada se cumple, entonces obtener el gbest de salida y su valor objetivo, de lo contrario regresar al paso 3).
IV. PSOMA para PFSSP
En esta sección explicaremos en detalle la implementación de PSOMA para PFSSP. A. Representación de la solución
Por lo general, un esquema de codificación basado en permutación-trabajo [2], ha sido utilizado en muchos trabajos de PFSSP. Sin embargo, debido a los caracteres continuos de la posición de las partículas en PSO, el esquema estándar de codificación de PSO no puede ser adoptado directamente por PFSSP. Por lo tanto, la cuestión más importante en la aplicación de PSO a PFSSP es encontrar un mapeo adecuado entre la secuencia de trabajo y las posiciones de las partículas. En este artículo, una regla ROV basada en la representación clave aleatoria [37] es presenta para convertir la posición continua xi Xi = [xi, 1, 2,. . . , XI, n] de las partículas en PSO a la permutación de trabajos π = {j1, j2,. . . , jn}, por lo tanto el rendimiento de la partícula puede ser evaluado. En particular, la información de posición Xi = [xi, 1, xi, 2,. . . , XI, n] en sí misma no representa una secuencia, considerando que la fila de cada valor de posición de una partícula representa un índice de trabajo para construir una permutación de trabajos. En nuestra regla ROV, el valor más pequeño de posición de una partícula, es primero seleccionado y luego asignado a un valor de rango de uno. Entonces, el segundo valor más pequeño de posición se escoge y se asigna a un valor de rango de dos. De la misma manera, todos los valores de posición serán manejados para convertir la información de posición de una partícula a una permutación de trabajo. Proporcionamos un ejemplo simple para ilustrar la regla de ROV en Tabla I. En el caso (n = 6), la posición es XI = [0.06, 2.99, 1.86, 3, 73, 2.13, 0.67]. Y debido a que XI,1 = 0.06 es el valor más pequeño de la posición, XI,1 es el primer seleccionado y es asignado a un valor de rango de uno; entonces, XI,6 = 0.67 es seleccionado y asignado a un valor de rango de dos. De forma similar, la regla ROV asigna un valor de rango de tres a seis para XI,3, XI,5, XI,2, y XI,4, respectivamente. Así, basándose en la regla ROV, se obtiene la permutación de trabajo, es decir, π = [1, 5, 3, 6, 4, 2].
TABLA I – REPRESENTACIÓN DE LA INFORMACIÓN DE POSICIÓN Y SU ROV CORRESPONDIENTE (PERMUTACIÓN DE TRABAJO)
TABLA II – BÚSQUEDA LOCAL BASADA EN INTERCAMBIO PARA LA PERMUTACIÓN DE TRABAJO Y EL AJUSTE CORRESPONDIENTE PARA LA INFORMACIÓN DE POSICIÓN
En nuestro PSOMA, varias búsquedas locales no se aplican directamente a la posición de información, sino a la permutación de trabajo. Así, cuando un procedimiento de búsqueda local es completado, la información de posición de la partícula debe ser corregida para garantizar que la permutación que será resultado de la regla ROV para la información de la nueva posición es la misma que la permutación que será el resultado de la búsqueda local. Es decir, al aplicar estas búsquedas locales para la permutación de trabajo, la información de posición se debe ajustar correspondientemente. Afortunadamente, el ajuste es muy simple debido al mecanismo de la regla ROV. El proceso basado en algunas búsquedas locales sobre la información de posición es la misma que el proceso de permutación. Por ejemplo, en la Tabla II, cuando un operador de intercambio (SWAP) [16] se utiliza como búsqueda local para la permutación de trabajo, obviamente el intercambio del trabajo 5 y del trabajo 6 se corresponde con el intercambio de valores de posición 2.99 y 3.73. En cuanto a otros operadores de búsqueda local, como INVERSA e INSERT [16], el ajuste es similar.
B. Inicialización de la Población
En el PSO estándar, el enjambre inicial se genera a menudo aleatoriamente. Para garantizar una población inicial con cierta calidad y diversidad, la heurística NEH [9] se aplica para generar una solución (es decir, una permutación de trabajos), mientras que el resto de las partículas se inicializan con valores y velocidades aleatorias de posición en cierto intervalo. Puesto que el resultado producido por la heurística NEH es una permutación de trabajos, estas se deben convertir a valores de posición de cierta partícula inicial para realizar las búsquedas basadas en PSO. La conversión se realiza usando la siguiente ecuación:
donde XNEH,j es el valor de posición de la partícula en la dimensión j, SNEH,J es el índice de trabajo en la dimensión j de la permutación dada por la heurística NEH xmax,j y xmin,j son los límites superior e inferior del valor de posición, respectivamente, rand denota un número aleatorio uniformemente distribuido en el intervalo [0, 1], y n representa el número de dimensiones de una posición, el cual es igual al número de trabajos. La Tabla III ofrece un ejemplo de la conversión anterior de permutación de trabajo a información de posición. Obviamente, esta conversión obedece a la regla ROV. Es decir, la permutación se puede obtener de información de posición usando la regla ROV.
TABLA III – CONVERSIÓN DE LA SOLUCIÓN NEH (PERMUTACIÓN DE TRABAJO) PARA LA INFORMACIÓN DE POSICIÓN DE PARTÍCULA
C. Búsqueda PSO-basada
En este artículo, las búsquedas PSO-basadas, es decir, (7) y (8), son aplicadas para la exploración. Es decir, la información de posición de las partículas en el enjambre actual es desarrollada por los operadores de búsqueda PSO-basados. Nótese, que la evolución PSO-basada se realiza en un espacio continuo. Así pues, al evaluar el rendimiento de una partícula, la información de posición se debe convertir a la permutación de trabajo usando la regla antedicha de ROV. Por una parte, PSO proporciona un marco evolutivo paralelo para la optimización de problemas complicados, y es también fácil incorporar búsquedas locales en PSO para desarrollar algoritmos híbridos. En el siguiente contenido, presentaremos algunas búsquedas locales que se incorporen en PSO para proponer un MA PSO-basado.
D. Búsqueda local NEH-Basada
En el MAs, las búsquedas locales son muy importantes para la explotación. Para PFSSP, Aldowaisan y Allahverdi [38] diseñaron una búsqueda local nombrada la inserción NEH_2 para mejorar la calidad de una permutación del trabajo, donde dos trabajos consecutivos son considerados como un bloque e insertados en la secuencia de una manera similar como en NEH. La inserción NEH_2 se describe como sigue.
Paso 2) k = 1. Seleccione los primeros dos trabajos de π, y los programa para reducir al mínimo el makespan parcial. Seleccione la mejor secuencia como secuencia actual.
Paso 3) Establecer k=k+1. Generar secuencias candidatas mediante la selección de los próximos dos trabajos de π, insertando este k-ésimo bloque de dos trabajos en cada ranura de la secuencia actual, e intercambiando el orden de los dos trabajos dentro del bloque. Entre estos candidatos, seleccionar el mejor con el menor makespan parcial. Establecer el mejor como una secuencia actual.
Paso 4) Repita el paso 3) hasta que todos los trabajos en π sean asignados. Si la última asignación es un solo trabajo, tratar este trabajo como bloque.
Inspirado por la inserción NEH_2, proponemos una búsqueda local llamada inserción NEH_1 para soluciones basadas en permutación. Demostraremos la superioridad de NEH_1 sobre NEH_2 en la simulación posterior. El NEH_1 se describe como sigue.
Paso 1) Dada una secuencia de trabajos π.
Paso 2) Se toman los primeros dos trabajos de π, y se evalúan las dos posibles programaciones parciales. Seleccione la mejor secuencia como la secuencia actual.
Paso 3) Tomar el trabajo k,k = 3,…, n, y encontrar la mejor programación poniéndolo en todas las posiciones posibles de k en la secuencia de trabajos que se programen en el momento. La mejor secuencia parcial se selecciona para la siguiente iteración.
Además, en PSOMA, sobre la base de los rendimientos de las soluciones de pbest de todas las partículas en enjambre actual, a la solución pbest de cada partícula se le asigna una probabilidad de ser seleccionada por la técnica apropiada de asignación basada en rangos [39]. Entonces, el mecanismo de rueda de ruleta [39] se utiliza para decidir qué soluciones pbest serán seleccionadas. Posteriormente, las soluciones pbest seleccionadas se llevarán a cabo sobre la inserción NEH_1 o NEH_2 con una probabilidad predefinida pls. Debido al mecanismo de la regla de rueda de ruleta, una buena solución tendrá más posibilidades de explotación. Además, es fácil de controlar el proceso de explotación mediante el ajuste del valor de los pls. Por ejemplo, si pls = 1, el pbest seleccionado debe realizar NEH_1 o NEH_2, mientras que si pls <1, el pbest seleccionado realizará NEH_1 o NEH_2 con cierta probabilidad de pls.
E. Búsqueda local SA-basada combinando la estrategia de aprendizaje Meta-Lamarckiana
En el SA, a partir de un estado inicial, el algoritmo genera aleatoriamente un nuevo estado en la proximidad del estado original, que causa un cambio de ΔE en el valor de la función objetivo. Para problemas de minimización, el nuevo estado se acepta con probabilidad min{1, exp (−ΔE/T)}, donde T es un parámetro de control. El SA proporciona un mecanismo para escapar probabilísticamente de óptimos locales, y el proceso de búsqueda puede ser controlado por la programación de enfriamiento [40].
En este artículo, diseñamos una búsqueda local SA-basada con múltiples vecindades diferentes para enriquecer los comportamientos de búsqueda locales y evitar la convergencia prematura. Por otra parte, la estrategia de aprendizaje meta-lamarckiana adaptativa en [28] es empleada para decidir qué vecindad o proximidad se utilizará.
1) Vecindad en búsqueda local SA-basada: Con el fin de mantener la diversidad de una población y enriquecer los comportamientos de búsqueda local, se utilizaran tres tipos diferentes de vecindades: SWAP, INSERT, e INVERSE.
SWAP: Seleccione aleatoriamente dos elementos distintos de una permutación con
n-trabajos e intercambielos.
INSERT: Escoja aleatoriamente dos elementos distintos de una permutación de n-trabajos e
inserte el de atrás antes del de enfrente.
INVERSE: Invertir al azar la sub-secuencia entre dos posiciones diferentes de una
permutación de n-trabajos.
SWAP: Select two distinct elements from an n-job permutation randomly and swap them.
INSERT: Choose two distinct elements from an n-job permutation randomly and insert the back one before the front.