simulated annealing isp
-
Upload
jorge-a-parraga-a -
Category
Engineering
-
view
62 -
download
6
Transcript of simulated annealing isp
![Page 1: simulated annealing isp](https://reader036.fdocuments.in/reader036/viewer/2022082705/55b36335bb61eba8548b4589/html5/thumbnails/1.jpg)
Implementación del algoritmo Simulated Annealing para la solución del
Maximal Independent Set Problem
Alcívar Cevallos Roberth Abel, Contreras Fernández Juan Pablo, Párraga Álava Jorge
Antonio.
(roberth.alcivar, juan.contrerasff, jorge.parraga)@usach.cl
Universidad de Santiago de Chile
Avenida Libertador Bernardo O'Higgins nº 3363. Estación Central. Santiago. Chile
![Page 2: simulated annealing isp](https://reader036.fdocuments.in/reader036/viewer/2022082705/55b36335bb61eba8548b4589/html5/thumbnails/2.jpg)
1
1. Introducción
Simulated Annealing es un algoritmo que simula los cambios de energía en un
sistema sujeto al enfriamiento hasta obtener un estado de equilibrio. Este esquema fue
desarrollado por Metropolis en 1953. Años después comenzó a ser utilizado en problemas de
optimización con S. Kirkpatrick et al. (1983) y V. Cerny (1985), en donde el algoritmo fue
aplicado al problema de graph partitioning y diseño VLSI. En los ochenta, SA obtuvo un
mayor impacto en el campo de las heurísticas debido a su simplicidad y eficiencia en la
resolución de problemas de optimización combinatoria.
El método SA permite resolver problemas de optimización. Se basa en una analogía
de un proceso termodinámico, conocido como annealing, que consistente en el lento
enfriamiento de una sustancia desde su estado líquido hasta su estado sólido. Durante este
proceso sus átomos forman un compuesto solido puro que corresponde al estado de mínima
energía de la sustancia. Luego, la sustancia es calentada hasta alcanzar su estado líquido y
gradualmente su temperatura es disminuida hasta alcanzar su estado sólido. La analogía
entonces se realiza interpretando una solución del problema de optimización como un estado
sólido-liquido en equilibrio, entendiendo que la energía que está siendo minimizada en el
proceso termodinámico, corresponde con la función objetivo del problema a resolver.
El procedimiento consiste en visitar el espacio de búsqueda del problema de
optimización reduciendo gradualmente el valor de la función objetivo. A partir de una
solución actual se visita una solución vecina la que siempre se acepta en el caso de ser mejor
y se acepta eventualmente en el caso de ser peor que la actual respetando una función de
probabilidades definidas. El algoritmo cuenta con dos ciclos, en el ciclo interno se regula la
disminución de la temperatura, mientras que en ciclo externo, se realiza una búsqueda local
aleatoria a una temperatura dada (Instituto Chileno de Investigación Operativa, 2014).
De allí que en este trabajo se pretende utilizar algoritmos genéticos para dar una
solución inicial al problema del conjunto independiente de vértices y luego aplicar el
método de simmulated annealing para obtener soluciones optimas.
![Page 3: simulated annealing isp](https://reader036.fdocuments.in/reader036/viewer/2022082705/55b36335bb61eba8548b4589/html5/thumbnails/3.jpg)
2
2. Caracterización del problema
2.1. Problema del conjunto independiente de vértices máximo (MISP)
En teoría de grafos, el problema del conjunto independiente o estable es un conjunto
de vértices en un grafo tal que ninguno de sus vértices es adyacente a otro. Es decir, es un
conjunto V de vértices tal que para ningún par de ellos existe alguna arista que los conecten.
En otras palabras, cada arista en el grafo contiene a lo más un vértice en V. El tamaño de un
conjunto independiente es el número de vértices que contiene. (Carcamo, 2011)
Ilustración 1. Coberturas de vértices (conformadas por los vértices rellenos)
El conjunto independiente máximo corresponde al mayor conjunto independiente
definible sobre un grafo dado. El problema de encontrar un conjunto con estas características
se llama problema del máximo conjunto independiente y es NP-completo.
.
Ilustración 2. Grafo con seis diferentes conjuntos independiente de vértices. (conformadas por los vértices rellenos)
![Page 4: simulated annealing isp](https://reader036.fdocuments.in/reader036/viewer/2022082705/55b36335bb61eba8548b4589/html5/thumbnails/4.jpg)
3
3. Materiales y Métodos
3.1. Materiales
Para la exitosa solución del problema fue necesario crear un programa informático en
MATLAB que implementa una heurística (algoritmo genético) en conjunto con el algoritmo
Simulated Annealing. En cuanto al hardware, para el apartado de programación, ejecución
de pruebas y validación de resultados, se utilizó un equipo con Sistema operativo Microsoft
Windows 7® en su versión de 64 bits, tipo notebook Samsung q430, Procesador Intel i5
m520 a 2.4ghz, Memoria ram de 4gb.
3.2. Métodos
3.2.1. Heurística
Como heurística para este problema se utilizó un algoritmo genético, en el cual la
representación mediante string, función fitness fueron basadas en el estudio realizado por
(Xu & Wang, 2012)
3.2.1.1. Representación
Para dar la representación primero es necesario entender la solución matemática
mediante el uso de matriz de incidencia de un grafo G (V, E).
V: conjunto de vértices. Donde V= {1 a n}
E: conjunto de aristas. Donde E= {1 a m}
(i,j): Par que representa una arista entre los vértices i y j. Tal que el par (i,j) ∈ E.
di,j: (i=1,2,…,n, j=1,2,…,n).
d i , j={ 1 si (i , j)∈ E0caso contrario
![Page 5: simulated annealing isp](https://reader036.fdocuments.in/reader036/viewer/2022082705/55b36335bb61eba8548b4589/html5/thumbnails/5.jpg)
4
Con la formulación matemática del problema clara, es posible representar el
problema como un string binario (Xi, X,i+1, … , Xn) de largo n (total de vértices). Donde
cada i-ésimo posición representa al vértice i.
Si Xi=1 el vértice i está en la solución inicial, caso contrario no lo está y Xi=0.
X i={1 siel verticei está enel ISP0 casocontrario
Para entender mejor la representación, tomaremos como ejemplo, el grafo de la
ilustración 3, la matriz de adyacencia correspondiente está dada en la tabla 1.
Y un posible string binario para nuestro problema es:
1 0 0 1
Dicho string representa una solución inicial (conjunto independiente) formado por
los nodos {1,4}.
Ilustración 3. Grafo no dirigido con 4 nodos y 5 arista para el problema del MIS
Tabla 1. Matriz de adyacencia del grafo de la ilustración 3.
Solución factible es un subconjunto de vértices tal que para un par de vértices i,j no
existe una arista que los una, es decir que dij igual a cero.
1 2 3 41 0 1 1 02 1 0 1 13 1 1 0 14 0 1 1 0
![Page 6: simulated annealing isp](https://reader036.fdocuments.in/reader036/viewer/2022082705/55b36335bb61eba8548b4589/html5/thumbnails/6.jpg)
5
3.2.1.2. Función Fitness
La función fitness está formada por dos partes:
Cantidad de vértices en el conjunto independiente, esto es:
E1=∑i=1
n
X i
Cuando hay al menos dos vértices (Xi y Xj) en el string que son adyacentes, es decir
que dij es igual a 1, entonces tenemos una “penalidad” que suma la cantidad de
adyacencias en el string:
E2=∑i=1
n
∑j=1j ≠i
n
(d ij( X¿X ))
Así, el objetivo será maximizar la cantidad de vértices en el conjunto independiente, es decir
maximizar E1 teniendo E2 igual a 0. (ningún string con vértices adyacentes), entonces
tenemos:
Max Z=A∗E1+B∗E2
Con coeficientes A <0, y B >0 (garantizando que las factibilidad tenga un valor negativo) de
forma que pueda aplicarse bien el algoritmo Simulated Annealing ya que este está diseñado
para minimización, por lo que el fitness finalmente será:
Min Z=A∗E1+B∗E2
3.2.2. Modelado mediante Simulated Annealing
Una vez detallada la heurística a usar (algoritmo genético), corresponde modelar el
problema para ser resuelto mediante Simulated Annealing, definiendo la solución genérica
![Page 7: simulated annealing isp](https://reader036.fdocuments.in/reader036/viewer/2022082705/55b36335bb61eba8548b4589/html5/thumbnails/7.jpg)
6
inicial, regla de selección de vecino, función fitness, y parámetros del proceso de
enfriamiento, como se indica enseguida:
3.2.2.1. Solución Genérica Inicial (Simulating Annealing)
Para la solución genérica inicial se toma de forma aleatoria un vector binario X, el
cual es una secuencia de vértices o nodos que forman parte del conjunto independiente de
vértices.
1 0 0 1
Vector binario X (ISP formado por nodo 1, y nodo 4)
3.2.2.2. Reglas para generación de solución vecina
La regla de generación vecina parte de la solución inicial X (vector) y escoge
aleatoriamente un elemento de X, y lo cambia:
1 0 0 1
Solución inicial X (ISP formado por nodo 1, y nodo 4 y seleccionado el nodo 4 para ser cambiado)
1 0 0 0
Solución vecina Y (ISP formado por únicamente por nodo 1, luego de cambiar el valor del nodo 4)
3.2.3. Función de aceptación de soluciones vecinas
![Page 8: simulated annealing isp](https://reader036.fdocuments.in/reader036/viewer/2022082705/55b36335bb61eba8548b4589/html5/thumbnails/8.jpg)
ec. 1
ec. 2
7
Antes de indicar cuál es el fitness a usar se expone el pseudocódigo del algoritmo
Simulated Annealing (SA):
Seleccionar un estado inicial i ∈ S.
Seleccionar una temperatura inicial T > 0.
Asignar a un contador de cambios de temperatura t = 0.
Repetir
Asignar al contador de repeticiones n = 0.
Repetir
Generar Estado j vecino de i;
Calcular ∆ F = ƒ(j) - ƒ(i);
Si ∆ F < 0 entonces i = j
Sino Si random (0, 1) < exp (-∆F / T) i = j.
n = n+1
Hasta n = N (t)
t = t+1
T = T(t)
Hasta criterio de detención verdadero.
Con el pseudocódigo de SA claro, podemos continuar, y recordar que en el problema
del conjunto independiente de vértices ISP (por sus siglas en inglés) los vértices que tienen
menos aristas incidentes tendrán mayor probabilidad de ser seleccionados en el ISP debido a
que tales vértices son cubiertos por menos aristas.
Desde este punto, modificamos la función de aceptación p= e−∆ F
T de la siguiente
forma:
Donde
![Page 9: simulated annealing isp](https://reader036.fdocuments.in/reader036/viewer/2022082705/55b36335bb61eba8548b4589/html5/thumbnails/9.jpg)
ec. 3
ec. 4
Ec. 5
ec. 6
8
Degree(v i): es el grado del vértice i, este valor es igual al número de aristas unidas
al i-ésimo vértice, en otras palabras (número aristas que tocan al vértice).
EdgeNum: es una constante, igual al número de aristas en un gráfico dado.
Cuando ∆F>0 usamos la ecuación (1) para determinar si una solución se sustituye por su
vecino.
Mediante el uso de la ecuación. (1), tenemos:
a) Si en la solución vecina S’ el vértice Vi=1 significa que el valor original del vértice
era Vi=0, una vez que aceptamos S' como solución, el vértice i-ésimo es seleccionado
en el ISP.
o De la ecuación. (1) P toma un valor mayor si el grado del vértice i-ésimo es
menor. Esto significa que S' tendrá mayor probabilidad de ser aceptado como
una nueva solución. Es decir, hay mayor probabilidad de seleccionar un
vértice con menor grado en el ISP.
o Por el contrario, si el vértice i tiene un mayor grado, entonces habrá una
menor probabilidad de seleccionarlo en el conjunto independiente. por
ejemplo, hay dos vértices i-ésimo y j-ésimo, con grado (i)> grado (j), con un
mismo T, esta reversion (de 0 a 1) hacen que la función objetivo cambie
igualmente, es decir, ∆F(vi)= ∆F(vj). Teniendo en cuenta la ecuación. (1),
tenemos:
De la ecuación. (2) y degree (i)> degree (j), tenemos entonces:
Deg (vi)>Deg(vj)
Deducimos que:
![Page 10: simulated annealing isp](https://reader036.fdocuments.in/reader036/viewer/2022082705/55b36335bb61eba8548b4589/html5/thumbnails/10.jpg)
ec. 7
9
Entonces, tenemos la siguiente relación entre p(vi) y p(vj):
p(vi) < p(vj)
Es decir, el resultado de S’ de la reversión de v j será aceptado como un nuevo
estado con mayor probabilidad. Por el contrario, P(vi) es igual a P(vj) con la
función de aceptación estándar de SA.
b) Si en la solución vecina S’ el vértice Vi=0 significa que el valor original del vértice
era Vi=1, una vez que aceptamos S' como solución, el vértice i-ésimo es eliminado
del ISP. De la ecuación. (1), p toma un valor más pequeño si el grado del vértice i-
ésimo es menor. De tal manera S' será aceptado como una nueva solución con una
probabilidad inferior si vértice tiene un grado menor. Es decir, un vértice con un
menor grado se eliminará del ISP con una menor probabilidad. Por el contrario, si el
vértice i tiene en grado mayor, a continuación, será eliminado del conjunto
independiente con mayor probabilidad.
Con el punto de la función de aceptación aclarado, se usará además la misma función fitness indicada en el punto 3.2.1.2.
3.2.4. Parámetros usados
Los parámetros usados se basaron en el trabajo de (Xu & Wang, 2012) y son los
siguientes:
Parámetros
Valor Inicial Significado
A -1.0 El primer coeficiente de la función objetivoB 1.0 El segundo coeficiente de la función objetivoT 60 Temperatura inicialα 0.96 Constante para decrementar temperaturaL 100 # de pasos de ejecución sin muchos cambiosLS 15 Máximo pasos que ejecuta el algoritmo sin muchos cambios
![Page 11: simulated annealing isp](https://reader036.fdocuments.in/reader036/viewer/2022082705/55b36335bb61eba8548b4589/html5/thumbnails/11.jpg)
10
4. Resultados
A continuación se presentan los resultados obtenidos mediante SA y comparados con
los resultados obtenidos en la tarea 1 donde se usó algoritmos genéticos, notando que el
óptimo de las instancias fue obtenido del trabajo de (Balaji, 2013)
Instancia Datos relevantes ÓptimoResult.
SATiempo
(s)Error
absolutoError relativo
porcentual
frb30-15-1 450 nodos, 17827 aristas 26 23 16.53 3 11.53846154frb30-15-2 450 nodos, 17874 aristas 26 22 16.01 4 15.38461538frb30-15-3 450 nodos, 17809 aristas 26 22 17.13 4 15.38461538frb30-15-4 450 nodos, 17831 aristas 26 21 15.98 5 19.23076923frb30-15-5 450 nodos, 17794 aristas 26 22 16.66 4 15.38461538
PROMEDIO 22 16.462 4 15.38461538
Tabla 2. Resumen de resultados alcanzados y tiempos de duración del proceso de Simulated Annealing.
Instancia Datos relevantes ÓptimoResult.
AGTiempo
(s)Error
absolutoError relativo
porcentual
frb30-15-1 450 nodos, 17827 aristas 26 14 14.23 12 46.15384615frb30-15-2 450 nodos, 17874 aristas 26 17 27.23 9 34.61538462frb30-15-3 450 nodos, 17809 aristas 26 18 27.06 8 30.76923077frb30-15-4 450 nodos, 17831 aristas 26 15 28.28 11 42.30769231frb30-15-5 450 nodos, 17794 aristas 26 17 30.03 9 34.61538462
PROMEDIO 16.2 25.366 9.8 37.69230769
Tabla 3. Resumen de resultados alcanzados y tiempos de duración del algoritmo genético tarea 1.
En la tabla 2 se observa que de las 5 instancias nuestro algoritmo de Simulated
Annealing SA, tuvo efectividad de 84% en comparación con resultados de estudios previos.
![Page 12: simulated annealing isp](https://reader036.fdocuments.in/reader036/viewer/2022082705/55b36335bb61eba8548b4589/html5/thumbnails/12.jpg)
11
El menor tiempo obtenido fue 16.01 segundos esto sucedió en la instancia 2, y el
mayor tiempo en la instancia 3 con una duración de 17.13 segundos.
En la tabla 3 se observa que de las 5 instancias el algoritmo genético de la tarea 1,
tuvo efectividad de solo 62% en comparación con resultados de estudios previos.
El menor tiempo obtenido fue 14.23 segundos esto sucedió en la instancia 1, y el
mayor tiempo en la instancia 5 con una duración de 30.03 segundos.
Comparando ambos procesos (SA y GA) con los mismas instancias se observa
claramente que S.A. obtiene mejores resultados pues este llega a tener un conjunto
independiente con 23 nodos mientras que el SA solo llega 18 nodos en tiempos
relativamente similares.
5. Conclusiones
Al finalizar el presente estudio se llega a las siguientes conclusiones:
Este estudio propone la implementación del algoritmo simulated annealing
para resolver el del conjunto independiente de vértices (ISP).
El MISP fue resuelto de tal forma que en promedio, y para la instancias de
pruebas, es posible tener como máximo 23 nodos en el conjunto
independiente, lo que representa un 84% de efectividad en relación a otros
resultados alcanzados en el mismo problema, porcentaje aceptable sobre todo
por el hecho de que también se aceptan soluciones infactibles aunque gracias
a la penalidad que se aplicó no se afectó el desempeño de los resultados.
La modificación de la función de aceptación de soluciones vecinas permitió
obtener mejores resultados al considerar el grado de los nodos, entendiendo
esto como la cantidad de aristas incidentes en un determinado nodo. Situación
que hace que los nodos con menos aristas incidentes sean mayoritariamente
incluidos en el conjunto independiente.
![Page 13: simulated annealing isp](https://reader036.fdocuments.in/reader036/viewer/2022082705/55b36335bb61eba8548b4589/html5/thumbnails/13.jpg)
12
6. Bibliografía
Back, T., & Khuri, S. (1994). An Evolutionary Heuristic for the Maximun Independent Set
Problem. IEEE World Congress on Computational Intelligence.
Balaji, S. (2013). A New Effective Local Search Heuristic for the Maximum clique problem.
International Journal of Mathematical, Computational Science and Engineering,
7(5), 22-28.
Carcamo, C. (2011). Problema de la cobertura de vértices.
Instituto Chileno de Investigación Operativa. (2014). Instituto Chileno de Investigación
Operativa. Retrieved Junio 2014, from
http://www.ichio.cl/index.php/topicos/metaheuristica/simulated-annealing
Xu, J., & Wang, C. (2012). An Improved Simulated Annealing Algorithm for the Maximun
Independent Set Problem. Science and Technology.