simulated annealing isp

18
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

Transcript of simulated annealing isp

Page 1: simulated annealing isp

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

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

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

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

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

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

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

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

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

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

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

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

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.