6. desarrollo del algoritmo bÚsqueda...
Post on 26-Mar-2020
8 Views
Preview:
TRANSCRIPT
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
52 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
6. DESARROLLO DEL ALGORITMO BÚSQUEDA
TABÚ
6.1. Introducción a la situación planteada
El algoritmo desarrollado está diseñado para aplicarse a Problemas de Ruteo de
Vehículos con Ventana Temporal de Acceso, habiendo respetado las
características generales de la Búsqueda Tabú anteriormente mostradas y
habiendo sido añadidas ciertas estrategias de intensificación y diversificación
que se desarrollarán a continuación durante este capítulo.
El esquema temporal que se plantea es el mostrado en la figura 4 mostrada a
continuación:
Figura 4: Esquema temporal
Siendo:
to = Inicio del horizonte temporal
tf = Final del horizonte temporal
tvc = Instante en el que comienza a actuar la ventana temporal
tva = Instante en el que deja de actuar la ventana temporal
Haciendo referencia al modelo matemático del capítulo 3 de este proyecto, se
identifican tres variables temporales que se relacionan con las variables del
esquema temporal arriba expuesto:
La variable TVC (periodo con restricción de acceso)
o TVC = tva - tvc
La variable TA (periodo de tiempo previo al inicio del periodo con
restricción de acceso)
o TA = tvc – to
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
53 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
La variable TP (periodo de tiempo posterior al periodo con restricción de
acceso)
o TP = tf - tva
Otras variables temporales a tener en cuenta son las relacionadas con las
entradas y las salidas de los nodos destino durante la ruta. Se diferencian tres
variables, una de las cuales será dato del problema:
tin = Instante de llegada al nodo destino
tout = Instante de salida desde el nodo destino (i) hacia el siguiente
nodo (i+1)
h = Duración de la entrega en el nodo destino = 20 minutos. Este valor
está fijado para todas las entregas independientemente del nodo destino.
6.2. Diagrama de flujo general
El diagrama de flujo principal de un algoritmo Búsqueda Tabú (figura 5) consta
realmente de 2 componentes principales, siendo estos, la Intensificación y la
Diversificación.
La búsqueda tabú es un algoritmo que actúa sobre
una solución inicial de entrada, por lo que se incluye
en este el proyecto el diseño del algoritmo que crea
la solución inicial, sin embargo la creación de la
solución inicial no forma parte del algoritmo
Búsqueda Tabú.
El bloque Intensificación es quizás el más importante
ya que es el encargado de la optimización local,
mientras que el bloque de Diversificación se encarga
de mover la solución hacía zonas inexploradas pero
de un modo que no optimiza, sino que empeora la
solución para poder salir del posible optimo local
alcanzado en la Intensificación.
Figura 5: Diagrama de
flujo general
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
54 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
6.3. Presentación de los parámetros
La complejidad del algoritmo, y sobre todo de su programación, obliga a definir
ciertos parámetros de modelización. Los parámetros del modelo son
parámetros de entrada que definen el comportamiento del algoritmo. Algunos
de ellos se han considerado críticos y se ha decidido hacer un estudio con el
objetivo de optimizar el rendimiento del algoritmo en términos de “calidad” de
la solución respecto a las iteraciones realizadas. El resto que no ha sido
considerado crítico, ha recibido un valor fijo y ha pasado a ser dato. Resulta
muy complicado hacer un estudio de optimización de parámetros considerando
todos ellos como críticos debido al tamaño del problema.
Se diferencian dos tipos de parámetros, los relacionados exclusivamente con
este proyecto en particular (Particulares) y aquellos comunes del problema de
ruteo de vehículos con ventana temporal de acceso (Comunes).
Parámetros Particulares y Críticos
a) “vecifitness”: Puede definirse como el número máximo de nodos
sometidos a evaluación por cada estrategia de intensificación.
b) “numelite”: Hace referencia al número de vectores solución (salidas de la
intensificación) consecutivos que se evalúan para definir el conjunto de
“cadenas élite”.
c) “radio”: Es el radio de búsqueda de vecinos cercanos entorno al nodo
bajo análisis.
d) “porcenmax”: Es el parámetro-condición que limita la pérdida de valor
de la función objetivo tras aplicar la diversificación sobre el vector
solución.
e) “numeroiteracionesmax”: Es el número máximo de iteraciones que se
ejecuta el algoritmo.
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
55 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
Parámetros Comunes:
a) “Numparadas”: Es el número de clientes que se han de visitar. Define el
tamaño del problema.
b) “Radio de la zona restringida”: Es el radio que tiene la zona restringida
del problema a la que no se puede acceder mientras permanezca cerrada
la venta temporal de acceso.
c) “Tiempo VC”: Es el instante dentro del horizonte temporal a partir del
cual se cierra el acceso a la zona restringida. (Ventana Cerrada).
d) “Tiempo VA”: Es el instante dentro del horizonte temporal a partir del
cual se permite el acceso a la zona restringida. (Ventana Abierta).
Datos de Entrada:
1. “Porcen2”: Indica el número máximo de movimientos permitidos en la
Diversificación. Se ha tomado este valor como el 10% del número total de
paradas del problema.
2. “Numerotabu”: Define el número de iteraciones que permanece una
relación entre nodos calificada como tabú después de realizarse una
operación de intercambio o inserción entre ellas.
3. “Tiempoentregamax”: Es el tiempo que tarda un cliente en ser atendido.
Es un valor fijo, es decir, todas las paradas que los vehículos realizan en
los clientes duran el mismo tiempo.
6.4. Diseño de los algoritmos
Como se ha expuesto en el objetivo de este proyecto final de carrera, uno de
ellos es diseñar dos algoritmos basados en la búsqueda tabú y comparar los
resultados de sus experimentos con los obtenidos por aquellos realizados con
un algoritmo genético. A continuación se exponen dos algoritmos basados en la
búsqueda tabú: uno “básico” y otro “complejo”.
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
56 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
6.5. Desarrollo del algoritmo básico
El algoritmo básico está diseñado con las estrategias más sencillas posibles de
intensificación y diversificación.
El algoritmo comienza recibiendo una solución inicial en forma de vector de n
componentes (la metodología para obtener la solución inicial será expuesta en
apartados posteriores). Este vector de solución inicial será el elemento de
entrada al bloque de Intensificación (solo para la primera iteración, en las
posteriores el elemento de entrada será el vector solución de salida de la
Diversificación).
Debido a que uno de los objetivos de este proyecto es realizar una comparación
de los resultados obtenidos por este algoritmo con los obtenidos por el
algoritmo genético, se ha decidido usar el mismo método de evaluación para el
vector solución. Este método es una función llamada “Fitness” que se ejecuta
cada vez que quiero evaluar una posible solución. Así, a partir de ahora, cada
vez que nos refiramos al término “evaluación”, “evaluar”, etc… nos estaremos
refiriendo a aplicar la función Fitness sobre un vector solución. La salida de esta
función está compuesta por una matriz donde se expone el número de
vehículos utilizados, la ruta que cada vehículo realiza y el valor de la función
objetivo del modelo del programa, además de por dos matrices más que ofrecen
información sobre el instante de tiempo en el que cada vehículo llega y sale de
cada nodo destino.
El algoritmo “básico” aquí descrito posee una estructura igual a la mostrada en
el diagrama de flujo de la figura expuesta anteriormente.
El algoritmo comienza evaluando la solución inicial que es un elemento de
entrada provisto por un algoritmo externo a este. Posteriormente se entra en el
bloque Intensificación.
Bloque Intensificación
La intensificación es iterativa siempre que no se cumplan las condiciones de
salida de la intensificación. Comienza con la elección del primer nodo del vector
solución, nodo i. Primero se comprueba la situación temporal y geográfica en la
que se encuentra el nodo, esto es, indicar si es un nodo interno o externo a la
zona restringida y ver el instante de tiempo que es respecto al horizonte
temporal. Dependiendo de la situación temporal y geográfica, se le asignará un
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
57 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
valor a un indicador, llamado “indicador2”, que dice qué tipo de vecinos se
deben buscar.
A continuación se pasa a la búsqueda de vecinos, este es un proceso simple,
donde se localizan los nodos cercanos (el radio de búsqueda es uno de los
parámetros que se han estudiado para encontrar la parametrización óptima) y
que cumplen las condiciones impuestas por el indicador antes comentado.
Una vez obtenidos los vecinos, se procede al análisis de la estrategia de
intensificación implantada. En este caso se ha optado por la estrategia
denominada “Intercambio puro de vecinos” cuyo proceder es el siguiente:
1. Para cada vecino, se realiza el cálculo de la distancia que resultaría de
intercambiar el nodo bajo estudio “i” por el vecino “k”, esto es la suma
de distancias entre la parada "(i-1)" y el vecino k y entre el vecino k y la
parada “(i+1)”. Es decir:
Distancia medida = Distancia ((i-1), (k)) + Distancia ((k), (i+1))
2. Se almacenan las distancias anteriores de una forma ordenada de
menor a mayor (las “vecifitness” menores distancias, siendo
“vecifitness” un parámetro del problema analizado) puesto que
buscamos disminuir la distancia entre (i-1) e (i+1), creándose una matriz
denominada: “matrizdistvecinalorden”.
3. Ahora se pasa a “evaluar” cada posible intercambio de nodo y
almacenamos los resultados de la evaluación. Si a lo largo de la
evaluación nos encontramos con un vecino tabú (nos referimos a que el
intercambio entre el nodo parada bajo estudio y el vecino sea prohibido
por así indicarlo la lista tabú) el algoritmo se saltará el vecino y no
evaluará su intercambio con el nodo bajo estudio, a no ser que se
cumpla el Criterio de Aspiración tenido en cuenta: si la primera fila de
“matrizdistvecinalorden” corresponde a un vecino tabú, entonces sí se
tiene en cuenta para su evaluación.
4. Tras la evaluación, se selecciona el vecino para el que conseguimos el
valor mínimo de la evaluación (función objetivo mínima) y se compara
con el valor de la función objetivo que tiene el vector solución actual sin
realizar el intercambio con el vecino seleccionado.
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
58 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
A modo de aclaración se puede apreciar en la figura 6 el proceso de intercambio
puro:
Figura 6: Esquema de intercambio puro
La comparación realizada puede dar lugar a dos situaciones, que se realice el
intercambio o que no se realice. En el caso de que se realice el intercambio en el
vector solución, se modificará la lista tabú incrementándose con el Número
Tabú (parámetro del problema) el nodo (k,i) de la matriz “ListaTabu”. Si no se
realiza ningún intercambio, lo que significaría que la función objetivo actual es
menor que la ofrecida por el mejor intercambio, entonces no se realiza ninguna
acción sobre la Lista Tabú. A continuación se pasa a estudiar la siguiente
posición del vector solución, y así se procede hasta completar todas las
posiciones del vector solución (vector de tamaño igual a “Numparadas”, que es
parámetro del problema).
Tras estudiar el último nodo del vector solución, se pasa a comprobar el valor
de la función objetivo final con la que se tenía al iniciar la intensificación. Si
estos valores son iguales, o si el número de veces que se ha ejecutado la
intensificación es mayor a 40, entonces finaliza la intensificación, en caso
contrario se vuelve a iterar la intensificación.
Tras salir del bucle de la intensificación se realiza la actualización de la Lista
Tabú, esto es, disminuir los valores de la Lista en una unidad (menos los
valores aumentados durante la intensificación). Seguidamente comienza el
bloque de Diversificación.
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
59 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
Bloque Diversificación
La idea de la Diversificación es salirse de los posibles óptimos locales
encontrados durante la intensificación y llegar a otras posibles soluciones que
conduzcan a diferentes óptimos locales o incluso al óptimo global. Para ello se
realiza una inserción de nodos aleatoria con condiciones siguiendo el siguiente
proceso:
Primero se seleccionan aleatoriamente dos elementos (“aleat”) del vector
solución, llamados “aleat” y “aleat2”. Seguidamente se realiza el intercambio
entre ellos y se evalúa el intercambio realizado con la función “fitness”.
A continuación se someten los resultados de la evaluación a las condiciones de
la diversificación:
Condición de Intercambio: comprueba que tras hacer el intercambio no
se ha incrementado más del 20% el valor de la función objetivo. En caso
de que si se haya superado, primero se deshace el intercambio anterior y
se procede la selección aleatoria de otros dos elementos para proceder al
proceso de intercambio. Si continuamente (50 veces) ocurre esto, es decir,
que se aumenta más del 20% el valor de la función objetivo, al final el
algoritmo finaliza esta etapa y pasa a las siguientes condiciones de
diversificación.
Condiciones de Diversificación: Si se cumple alguna de ellas, el
algoritmo finaliza la diversificación, si no se cumple ninguna, vuelve a
iterar desde el inicio de la diversificación. Las condiciones son:
o Que se hayan hecho más intercambios que un 10% del número
total de nodos destino
o Que la pérdida del valor de la función objetivo sea mayor al
máximo permitido “porcenmax” (parámetro del problema )
o Que al realizar algún intercambio haya disminuido la función
objetivo (haya mejorado)
o Que se haya producido el salto desde la condición de intercambio
por incapacidad de intercambiar los elementos seleccionados.
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
60 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
Una vez que se cumple alguna de las Condiciones de Diversificación el
algoritmo pasa la comprobación final, que son las condiciones finales, éstas
son simplemente dos, y si se cumple alguna de ellas el algoritmo finaliza su
ejecución, las condiciones son las siguientes:
Que se haya llegado a un número de iteraciones máximo
“numeroiteracionesmax” (parámetro del problema).
Que se haya producido el anterior salto comentado por incapacidad de
intercambio.
Tras cumplir alguna de las condiciones finales el algoritmo finaliza quedando
guardadas las diferentes soluciones obtenidas a lo largo de las intensificaciones
realizadas por el algoritmo.
6.6. Desarrollo del algoritmo complejo.
El diagrama de flujo del algoritmo complejo diseñado tiene una variante
respecto al diagrama de flujo general antes mostrado. Como paso intermedio
entre la intensificación y la diversificación se ha añadido el bloque Pre-
Diversificación, en el cual, se preparan ciertos elementos del programa para su
posterior entrada en la Diversificación. La figura 7 a continuación muestra el
diagrama de flujo final para el algoritmo complejo:
Figura 7: Diagrama de flujo del algoritmo Búsqueda Tabú Complejo
Además de haber añadido un bloque adicional al diagrama, también se han
añadido ciertas estrategias dentro de los bloques de Intensificación y
Diversificación. A continuación se expone el modo de actuar del algoritmo
“complejo” haciendo comparaciones con el algoritmo “básico” para ver las
principales diferencias de diseño.
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
61 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
Al igual que en el algoritmo “básico”, el algoritmo “complejo” también es
alimentado con una solución inicial, la cual se obtiene con la misma
metodología que la solución inicial del algoritmo “básico”. Ésta se evalúa y
seguidamente empieza la intensificación.
Bloque Intensificación
El bloque de intensificación del algoritmo “complejo” sufre una modificación
sustancial respecto al del algoritmo “básico” ya que cuenta con dos estrategias
de mejora en lugar de una.
El desarrollo del proceso de intensificación transcurre exactamente del mismo
modo que en el algoritmo “básico” salvo porque a la hora de analizar los
vecinos primero se analizan mediante la estrategia ya conocida “Intercambio
puro de vecinos” y posteriormente con la estrategia añadida “Inserción de
vecinos”. Las estrategias son totalmente independientes la una de la otra. El
hecho de implementar en Matlab una estrategia antes que la otra es irrelevante.
A continuación se va a explicar el procedimiento de la estrategia “Inserción de
vecinos” y se va a omitir la de la estrategia “Intercambio puro de vecinos”
puesto que ya ha sido explicada anteriormente en el apartado anterior donde se
desarrolló el algoritmo “básico”. La estrategia “Inserción de vecinos” procede
del siguiente modo:
1. De un modo parecido a la estrategia “Intercambio de vecinos”
anteriormente explicada se realiza el cálculo de distancias. Esta vez
obtendremos dos distancias diferentes para cada vecino, según se
inserte el vecino delante o detrás del nodo (i) bajo estudio, es decir:
Distancia medida 1 = Distancia ((i-1), (k)) + Distancia ((k), (i)) +
Distancia ((i), (i+1))
Distancia medida 2 = Distancia ((i-1), (i)) + Distancia ((i), (k)) +
Distancia ((k), (i+1))
2. Tras esto se procede al ordenamiento de las “vecifitness” mejores
medidas tomadas.
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
62 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
3. Se continúa con la “evaluación” de cada posible inserción de nodo y se
almacenan los resultados de la evaluación. Si a lo largo de la evaluación
nos encontramos con un vecino tabú (nos referimos a que el
intercambio o inserción entre el nodo parada bajo estudio y el vecino
sea prohibido por así indicarlo la lista tabú) el algoritmo se saltará el
vecino y no evaluará su intercambio con el nodo bajo estudio, a no ser
que se cumpla el Criterio de Aspiración tenido en cuenta: si la primera
fila de “matrizdistvecinalordeninser” corresponde a un vecino tabú,
entonces sí se tiene en cuenta para su evaluación.
4. Para finalizar, terminada la evaluación, se busca el vecino para el que
conseguimos el valor mínimo de la evaluación y lo almacenamos para
compararlo con el resultado que se obtuvo en la primera estrategia de
intensificación. Se muestra a continuación la figura 8 donde se exponen
las dos opciones de inserción.
Figura 8: Esquema de la inserción de vecinos
Una vez que tenemos los resultados óptimos de las dos estrategias de
intensificación se comparan los resultados (nos referimos al valor de la función
objetivo obtenido de las evaluaciones) con el valor de la función objetivo actual,
es decir, la que le corresponde al vector solución sin realizarse ningún
intercambio o inserción.
En el caso de que se realice alguna modificación en el vector solución, se
modificará la lista tabú (incrementándose con el Número Tabú el nodo (k,i) de
la matriz “ListaTabu”. Si no se realizase ninguna modificación, es decir, que la
función objetivo actual sea menor que la ofrecida por el mejor intercambio y la
mejor inserción, entonces no se realizaría ninguna acción sobre la Lista Tabú. A
continuación se pasaría a estudiar la siguiente posición del vector solución, y así
se procedería hasta completar las “nodos paradas” posiciones del vector
solución.
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
63 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
Tras estudiar el último nodo del vector solución, se pasa a comprobar el valor
de la función objetivo final con la que se tenía al iniciar la intensificación. Si
estos valores son iguales, o si el número de veces que se ha ejecutado la
intensificación es mayor a 40 finaliza la intensificación pasando al bloque de
Pre-Diversificación, en caso contrario se vuelve a iterar la intensificación.
Bloque Pre-Diversificación: creación de Cadenas Élite
Este es un bloque donde no se modifica el vector solución, sino donde se
preparan ciertas estructuras matriciales que serán de utilidad para las
estrategias empleadas para diversificar la búsqueda. Inicialmente se realiza la
actualización de la Lista Tabú (disminuir los valores de la Lista en una unidad
salvo los valores aumentados durante la intensificación).
Posteriormente se procede a la creación de la matriz de cadenas élite. Una
cadena élite se define como una cadena de como mínimo 3 nodos que se repite
en los últimos vectores solución resultantes de las ultimas intensificaciones
(Nos referimos con “últimos” al valor del parámetro “numelite” antes
expuesto).
La estrategia de cadenas elite que se ha aplicado deriva de una estrategia
propuesta en el año 2000 por Tan K.C., Lee L.H. y Zhu K.Q. [23].Se va a
proceder a explicar la metodología para su creación:
1. Una vez se tienen almacenadas como mínimo un número de “numelite”
soluciones óptimas locales obtenidas de la intensificación comienza la
creación de la matriz de cadenas élite.
2. Se selecciona un elemento del vector solución (1). Se busca en la solución
anterior que el elemento seleccionado y los dos posteriores estén los tres
seguidos en el mismo orden independientemente de su posición dentro
del vector solución de la intensificación anterior (2). Si esto ocurre, se
pasa a buscar la misma cadena en el vector solución siguiente (3), y así
hasta comprobar los “numelite” vectores soluciones óptimos locales. Si la
cadena bajo análisis, se encuentra en todos los vectores solución
comprobados, entonces se declara cadena elite, se almacena en la matriz
de cadenas élite y el bucle comienza de nuevo.
3. En el caso de que una cadena no se encuentre en todos los vectores
solución óptimos locales anteriores, el bucle comienza de nuevo
seleccionando el elemento inmediatamente posterior para analizarlo.
Este procedimiento se realiza un número de “Numparadas-2” veces,
tantas como cadenas diferentes puede haber.
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
64 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
En la figura 9 se muestra un esquema del proceso:
Figura 9: Cadenas élite
Tras terminar de crear la matriz de cadenas élite comienza el bloque de
Diversificación.
Bloque Diversificación
El bloque de diversificación del algoritmo “complejo” sufre dos modificaciones
sustanciales respecto al del algoritmo “básico”. Se sustituye la estrategia de
diversificación “completamente” aleatoria implementada en el algoritmo
“básico” por una estrategia compuesta por dos estrategias simples, la estrategia
de cadenas elite y una estrategia basada en listas tabú.
A continuación se explica el procedimiento completo de la diversificación:
1. Primero se selecciona aleatoriamente un elemento (“ele”) del vector
solución, compruebo que es un elemento que no he seleccionado en
alguna iteración anterior de la diversificación en la que nos encontramos
(se comprueba mediante una lista en forma de vector llamada
“ListaTabu2” donde los elementos toman valor uno cuando han sido
seleccionados y movidos de su posición), en caso de haber sido
seleccionado anteriormente se volvería a escoger aleatoriamente un
nuevo nodo (“ele”) como al principio. Una vez superado esa
comprobación el algoritmo continúa seguidamente comprobando si el
elemento pertenece a una cadena élite o no. En caso de que pertenezca
volverá al inicio a seleccionar un nuevo elemento (“ele”) aleatoriamente.
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
65 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
2. Tras tener seleccionado el elemento que se va a insertar en alguna
posición aleatoria del vector solución, se procede a seleccionar la
posición donde se va a insertar. El algoritmo no selecciona realmente una
posición, sino otro elemento (llamado “coloq”) en cuya posición se
insertará el elemento “ele”. El algoritmo comprobará que el elemento
seleccionado “coloq” no está en medio de ninguna cadena élite, sin
embargo si puede estar en algún extremo. En caso de que sí esté en
medio de alguna cadena élite, el algoritmo volverá a seleccionar un
elemento “coloq” aleatoriamente. La figura 10 ilustra el mecanismo
expuesto:
Figura 10: mecanismo del a diversificación con cadenas élite
3. Después de realizar la inserción, deben comprobarse ciertas condiciones:
Condición de Inserción: comprueba que tras hacer la inserción no se
ha incrementado más del 20% el valor de la función objetivo:
o En caso de que no se haya superado, se aumenta en una unidad el
elemento de la matriz “ListaTabu2” (que indica que a lo largo de
la diversificación actual no se podrá seleccionar el elemento “ele”
otra vez para insertarlo en otra posición), se certifica en el vector
solución la inserción realizada, y por último se aumenta en una
unidad la variable que cuantifica el número de inserciones
realizadas en la diversificación.
Proyecto Final de Carrera - Francisco Vázquez Delgado 2012
66 Escuela Técnica Superior de Ingenieros
Universidad de Sevilla
o En caso de que si se haya superado, se selecciona otro elemento-
posición “coloq” aleatoriamente y se vuelve a iniciar el proceso de
inserción. Si continuamente (50 veces) ocurre esto, es decir, que se
aumenta más del 20% el valor de la función objetivo, el algoritmo
finaliza esta etapa y pasa a las siguientes condiciones de
diversificación.
Condiciones de Diversificación: aquellas que hacen que se vuelva a
iniciar el proceso de diversificación desde el inicio (elección de un
elemento para su inserción), son 4. Si se cumple alguna de ellas, el
algoritmo finaliza la diversificación, si no se cumple ninguna, vuelve a
iterar desde el inicio de la diversificación. Las condiciones son:
o Que se hayan hecho más inserciones que un 10% del número
total de nodos destino
o Que la pérdida del valor de la función objetivo sea mayor al
máximo permitido “porcenmax” (parámetro del problema )
o Que al realizar alguna inserción haya disminuido la función
objetivo (haya mejorado)
o Que se haya producido el salto desde la condición de inserción
por incapacidad de insertar el elemento seleccionado.
4. Una vez que se cumple alguna de las Condiciones de Diversificación el
algoritmo pasa a la comprobar las condiciones finales, éstas son
simplemente dos, y si se cumple alguna de ellas el algoritmo finaliza su
ejecución, en caso de cumplirse ninguna las condiciones son las
siguientes:
Que se haya llegado a un número de iteraciones máximo
“numeroiteracionesmax”.
Que se haya producido el anterior salto comentado por incapacidad
de inserción o lo que es lo mismo, incapacidad de diversificar
respetando las cadenas élites.
top related