cecti rodrigo lopez - buqueda del clique

38
Detecci´ on de comunidades uqueda del Clique con la mayor Interconectividad en un Grafo utilizando Optimizaci´ on basado en Colonia de Hormigas Rodrigo L´ opez Far´ ıas 1 Juan J. Flores 2 14 de octubre de 2016 Universidad Michoacana de San Nicol´ as de Hidalgo 1 Centro de Informaci´ onyC´omputo [email protected] 2 Posgrado de Ingenier´ ıa El´ ectrica juanfi[email protected]

Upload: roderik-lowenstein

Post on 19-Mar-2017

59 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Cecti   rodrigo lopez - buqueda del clique

Deteccion de comunidades

Buqueda del Clique con la mayor Interconectividad en un Grafo

utilizando Optimizacion basado en Colonia de Hormigas

Rodrigo Lopez Farıas1 Juan J. Flores 2

14 de octubre de 2016

Universidad Michoacana de San Nicolas de Hidalgo

1 Centro de Informacion y Computo

[email protected]

2 Posgrado de Ingenierıa Electrica

[email protected]

Page 2: Cecti   rodrigo lopez - buqueda del clique

Tabla de Contenidos

1. Introduccion

2. Los Cliques en los Grafos

3. Algoritmo para la deteccion de un clique

4. Optimizacion por colonia de Hormigas

5. Experimentos y Resultados

1/23

Page 3: Cecti   rodrigo lopez - buqueda del clique

Introduccion

Page 4: Cecti   rodrigo lopez - buqueda del clique

Introduccion

• El problema de busqueda del clique tiene muchas aplicaciones como

por ejemplo: bioinformatica, busqueda de estructuras y redes en

quımica computacional, y deteccion de comunidades redes sociales.

Figura 1: Ejemplo de una red compleja

2/23

Page 5: Cecti   rodrigo lopez - buqueda del clique

Introduccion

• Los algoritmos tradicionales enfrentan el obstaculo del alto costo

computacional, y no escalabilidad para la busqueda de ciertas

estructuras en grafos [5].

• El uso de heurısticas como Optimizacion basada en Colonia de

Hormigas (OCH) son adecuados para resolver de manera aproximada

este problema.

• OCH Ha demostrado en la practica su capacidad para resolver

problemas NP-Completos y NP-Duros presentes en grafos como la

busqueda del camino mas corto, el problema del viajero y busqueda

de comunidades.

3/23

Page 6: Cecti   rodrigo lopez - buqueda del clique

Introduccion

Que es OCH?

• Es una metaheuristica que aproxima la solucion.

• Es bio-inspirada, propuesta por Dorigo et al 1991.

• Se basa en la imitacion del comportamiento de las hormigas.

• Las hormigas sirven a su comunidad llevando comida.

• El uso de las feromonas como transmision de conocimiento son de

gran utilidad para su sobrevivencia.

• Estas feromonas son depositadas a lo largo del camino de la hormiga.

• Sirven a la hormiga para seleccionar aquel que fue recorrido

recientemente.

4/23

Page 7: Cecti   rodrigo lopez - buqueda del clique

Puntos clave

• Que es un clique?.

• Como se detecta un clique.

• Como se mide la optimalidad o calidad de un clique.

• Principio de Optimizacion con Colonia de Hormigas.

• Feromonas como componente de aprendizaje.

5/23

Page 8: Cecti   rodrigo lopez - buqueda del clique

Los Cliques en los Grafos

Page 9: Cecti   rodrigo lopez - buqueda del clique

Grafos y Clique

Los cliques ”viven”dentro de los grafos los cuales son definidos como:.

Definition

Grafo: Es un par ordenado G = (V ,E ) donde:

• V es un conjunto de vertices

• Eij ∈ E Son el conjunto de aristas que relacionan el nodo i con el

nodo j .

• En caso de los grafos con pesos: cij es el costo o peso de traslado de

un vertice i a un vertice j .

Definition

Clique

Es un sub-grafo completo no dirigido G con un conjunto de V vertices

los cuales todos estan conectados entre sı.

6/23

Page 10: Cecti   rodrigo lopez - buqueda del clique

Ejemplo: Solucion del Clique Ck mas grande de un grafo no

dirigido

Ck es el clique k que contiene |Ck | elementos, En este caso el clique con

los vertices de color rojo es definido por Ck = {v5, v1, v2} donde el

tamano de la comunidad es la cardinalidad |Ck | = 3

Figura 2: Clique

7/23

Page 11: Cecti   rodrigo lopez - buqueda del clique

Solucion del Clique de tamano 3 con la suma de pesos maxima

Ck es el clique k que ademas de contener el numero maximo de nodos,

tambien es el mayor interconectado de todos,

• c1 = {vg , vb, vg}, Suma de pesos 13

• c2 = {vb, ve , vf }, Suma de pesos 13

• c3 = {vf , ve , vd}, Suma de pesos 103

• c4 = {vc , ve , vd}, Suma de pesos 220

Suma de pesos (Mas

adelante se utiliza como la

funcion de aptitud o

(Fitness))

(|Ck |−1)∑j=1

|Ck |∑j=i+1

cijv′i v′j

2010

100

1002 2

2

1

4 3

2

d

c

eb

f

a

g

Figura 3: Clique

8/23

Page 12: Cecti   rodrigo lopez - buqueda del clique

El problema se va haciendo intratable

El problema se vuelve mas complicado con solo 10 nodos si se trata de

un grafo completo.

Figura 4:

9/23

Page 13: Cecti   rodrigo lopez - buqueda del clique

Algoritmo para la deteccion de

un clique

Page 14: Cecti   rodrigo lopez - buqueda del clique

Algoritmo para la deteccion de un clique

10/23

Page 15: Cecti   rodrigo lopez - buqueda del clique

Construccion del clique

• Se inicializa el clique como vacıo. Ck = {}

• Se selecciona al azar un vertice vi de grafo G

(en este caso v1), y se agrega a Ck = {v1}• Se seleccionan los vertices adyacentes y se

marcan como candidatos.

Candidatos = {v5, v2}• Se selecciona un vertice de candidatos al azar,

en este caso v5 y se guarda en Ck = {v1, v5}.• Se guardan los nodos adyacentes del nodo

candidato seleccionado v5. ({v1, v2})• Se actualiza

Candidatos = (v2) = Candidatos ∩ {v1, v2}• Se repite la operacion hasta que

Candidatos = {}

11/23

Page 16: Cecti   rodrigo lopez - buqueda del clique

Construccion del clique

• Se inicializa el clique como vacıo. Ck = {}• Se selecciona al azar un vertice vi de grafo G

(en este caso v1), y se agrega a Ck = {v1}

• Se seleccionan los vertices adyacentes y se

marcan como candidatos.

Candidatos = {v5, v2}• Se selecciona un vertice de candidatos al azar,

en este caso v5 y se guarda en Ck = {v1, v5}.• Se guardan los nodos adyacentes del nodo

candidato seleccionado v5. ({v1, v2})• Se actualiza

Candidatos = (v2) = Candidatos ∩ {v1, v2}• Se repite la operacion hasta que

Candidatos = {}

11/23

Page 17: Cecti   rodrigo lopez - buqueda del clique

Construccion del clique

• Se inicializa el clique como vacıo. Ck = {}• Se selecciona al azar un vertice vi de grafo G

(en este caso v1), y se agrega a Ck = {v1}• Se seleccionan los vertices adyacentes y se

marcan como candidatos.

Candidatos = {v5, v2}

• Se selecciona un vertice de candidatos al azar,

en este caso v5 y se guarda en Ck = {v1, v5}.• Se guardan los nodos adyacentes del nodo

candidato seleccionado v5. ({v1, v2})• Se actualiza

Candidatos = (v2) = Candidatos ∩ {v1, v2}• Se repite la operacion hasta que

Candidatos = {}

11/23

Page 18: Cecti   rodrigo lopez - buqueda del clique

Construccion del clique

• Se inicializa el clique como vacıo. Ck = {}• Se selecciona al azar un vertice vi de grafo G

(en este caso v1), y se agrega a Ck = {v1}• Se seleccionan los vertices adyacentes y se

marcan como candidatos.

Candidatos = {v5, v2}• Se selecciona un vertice de candidatos al azar,

en este caso v5 y se guarda en Ck = {v1, v5}.

• Se guardan los nodos adyacentes del nodo

candidato seleccionado v5. ({v1, v2})• Se actualiza

Candidatos = (v2) = Candidatos ∩ {v1, v2}• Se repite la operacion hasta que

Candidatos = {}

11/23

Page 19: Cecti   rodrigo lopez - buqueda del clique

Construccion del clique

• Se inicializa el clique como vacıo. Ck = {}• Se selecciona al azar un vertice vi de grafo G

(en este caso v1), y se agrega a Ck = {v1}• Se seleccionan los vertices adyacentes y se

marcan como candidatos.

Candidatos = {v5, v2}• Se selecciona un vertice de candidatos al azar,

en este caso v5 y se guarda en Ck = {v1, v5}.• Se guardan los nodos adyacentes del nodo

candidato seleccionado v5. ({v1, v2})

• Se actualiza

Candidatos = (v2) = Candidatos ∩ {v1, v2}• Se repite la operacion hasta que

Candidatos = {}

11/23

Page 20: Cecti   rodrigo lopez - buqueda del clique

Construccion del clique

• Se inicializa el clique como vacıo. Ck = {}• Se selecciona al azar un vertice vi de grafo G

(en este caso v1), y se agrega a Ck = {v1}• Se seleccionan los vertices adyacentes y se

marcan como candidatos.

Candidatos = {v5, v2}• Se selecciona un vertice de candidatos al azar,

en este caso v5 y se guarda en Ck = {v1, v5}.• Se guardan los nodos adyacentes del nodo

candidato seleccionado v5. ({v1, v2})• Se actualiza

Candidatos = (v2) = Candidatos ∩ {v1, v2}

• Se repite la operacion hasta que

Candidatos = {}

11/23

Page 21: Cecti   rodrigo lopez - buqueda del clique

Construccion del clique

• Se inicializa el clique como vacıo. Ck = {}• Se selecciona al azar un vertice vi de grafo G

(en este caso v1), y se agrega a Ck = {v1}• Se seleccionan los vertices adyacentes y se

marcan como candidatos.

Candidatos = {v5, v2}• Se selecciona un vertice de candidatos al azar,

en este caso v5 y se guarda en Ck = {v1, v5}.• Se guardan los nodos adyacentes del nodo

candidato seleccionado v5. ({v1, v2})• Se actualiza

Candidatos = (v2) = Candidatos ∩ {v1, v2}• Se repite la operacion hasta que

Candidatos = {}

11/23

Page 22: Cecti   rodrigo lopez - buqueda del clique

Optimizacion por colonia de

Hormigas

Page 23: Cecti   rodrigo lopez - buqueda del clique

Solucion: Optimizacion por colonia de Hormigas

Comportamiento natural de la colonia de hormigas.

Gracias a la feromona y su volatilidad, las hormigas tienden a encontrar

caminos eficientes.

12/23

Page 24: Cecti   rodrigo lopez - buqueda del clique

Comportamiento Natural de las hormigas

Este comportamiento es util para encontrar soluciones en grafos para

diversos problemas clasicos como el camino mas corto entre dos puntos

donde la funcion objetivo es la suma de los pesos de los aristas recorridos.

Las feromonas se distribuyen a lo largo del grafo segun la calidad de la

solucion.

13/23

Page 25: Cecti   rodrigo lopez - buqueda del clique

Algoritmo Basico OCH

1. Inicializa el grafo asignando cero feromona en todos los aristas.

2. Repetir

3. Situar cada hormiga en un vertice de manera aleatoria.

4. Para cada hormiga, generar una solucion tomando caminos con

probabilidad segun la cantidad de feromona.

5. Evaluar cada solucion acorde a la funcion objetivo.

6. Depositar feromona en los nodos/aristas segun a la calidad de la

solucion.

7. Evaporizar feromona y actualizar.

8. Actualizar BestFitness con la mejor solucion hasta el momento.

9. Fin Repetir

14/23

Page 26: Cecti   rodrigo lopez - buqueda del clique

Feromona como componente de aprendizaje

Si la hormiga se encuentra en un vertice vj , la probabilidad de seleccionar

la ruta a vi es:

p(vi ) =ταi∑

vj∈Candidatos ταj

donde τ es la feromona depositada en vertice i , α es un parametro que

pondera exponencialmente los factores de la feromona,

15/23

Page 27: Cecti   rodrigo lopez - buqueda del clique

Actualizacion de las feromonas

Los rastros de feromona se actualizan en dos pasos:

(a): La feromona se refuerza inversamente proporcional a la diferencia de

la mejor solucion y la solucion encontrada.

τi = τi +1

1 + (BestFitness − Fitness(Ck))K

(b): La persistencia/evaporacion de la feromona esta dada por

τi = τi ∗ ρ

Donde 0 < ρ < 1

16/23

Page 28: Cecti   rodrigo lopez - buqueda del clique

Actualizacion de las feromonas (a)

Con la constante K > 1 se regula la penalizacion a las malas soluciones.

Figura 5: Efecto constante K

17/23

Page 29: Cecti   rodrigo lopez - buqueda del clique

Funcion objetivo

Sea Ck = (V ′,E ′) un sub-grafo completo el cual la suma de sus aristas

esta dada por

Fitness(Ck) =

(|Ck |−1)∑j=1

|Ck |∑j=i+1

cijv′i v′j

donde Ck es un clique o sub-grafo completo de tamano q = |Ck |, y cijson los pesos que existen en las conexiones de v ′i a v ′j .

18/23

Page 30: Cecti   rodrigo lopez - buqueda del clique

19/23

Page 31: Cecti   rodrigo lopez - buqueda del clique

Experimentos y Resultados

Page 32: Cecti   rodrigo lopez - buqueda del clique

Resultados

Experimentos.

La instancia para probar el algoritmo es un grafo completo G=(V,E) con

100 vertices, donde la suma de los vertices Maximo Clique

Ck,optimo = {21, 22, 30, 40, 50, 60, 70, 80, 90, 99}, todos los demas aristas

no contenidas en Coptimo son asignados valores con una distribucion

aleatoria uniforme [0,29]. Los parametros de OCH son:

• Iteraciones = 500

• K = 20

• Q = 10

• α = 1

Se programo en Python utilizando librerıas networkx (manejo de grafos) y

numpy (paquete numerico)

20/23

Page 33: Cecti   rodrigo lopez - buqueda del clique

Resultados

Figura 6: Desempeno del algoritmo con diferentes valores en los parametros

21/23

Page 34: Cecti   rodrigo lopez - buqueda del clique

Resultados

Figura 7: Grafico de convergencia para k = 20

22/23

Page 35: Cecti   rodrigo lopez - buqueda del clique

Resultados

Figura 8: Grafico de convergencia para k = 30

23/23

Page 36: Cecti   rodrigo lopez - buqueda del clique

Preguntas?

Interesados en las diapositivas o codigo.

Mandar email a [email protected]

23/23

Page 37: Cecti   rodrigo lopez - buqueda del clique

References I

• C. Solnon and S. Fenet, A study of ACO capabilities for solving the

maximum clique problem, Journal of Heuristics, pp. 1 31, 2006.

• Solnon and D. Bridge, Chapter I An Ant Colony Optimization

Meta-Heuristic for Subset Selection Problems, pp. 1 23

• W. Dai, S. Liu, and S. Liang, An improved ant colony optimization

cluster algorithm based on swarm intelligence, Journal of Software,

vol.6 4, no. 4, pp. 299 306, 2009.

• M. Hinne and E. Marchiori, Cutting graphs using competing ant

colonies and an edge clustering heuristic, Evolutionary Computation

in Combinatorial Optimization 2011.

• S. Sadi, . Etaner-Uyar, and . G. U, COMMUNITY DE- TECTION

USING ANT COLONY OPTIMIZATION TECHNIQUES, Proc. Int.

Conf. Soft Computing, 2009.

Page 38: Cecti   rodrigo lopez - buqueda del clique

References II

• B. Alidaee, F. Glover, G. Kochenberger, and H. Wang, Solving the

maximum edge weight clique problem via unconstrained quadratic

pro- gramming, European Journal of Operational Research, vol. 181,

no. 2, pp. 592 597, Sep. 2007.

• R. Battiti and M. Protasi. Reactive local search for the maximum

clique problem. Algorithmica, 29(4):610 637, 2001.

• A. Grosso, M. Locatelli, and F. Della Croce. Combining swaps and

node weights in an adaptive greedy approach for the maximum

clique problem. Journal of Heuristics, 10(2):135 152, 2004

• E. Marchiori. Genetic, iterated andmultistart local search for the

maxi- mum clique problem. In S. Cagnoni, J. Gottlieb, E. Hart, M.

Middendorf, and G.R. Raidl, editors, Applications of Evolutionary

Computing, Pro- ceedings of EvoWorkshops 2002: EvoCOP,

EvoIASP, EvoSTim, volume 2279 of lncs, pages 112 121.

Springer-Verlag, 2002