cecti rodrigo lopez - buqueda del clique

Post on 19-Mar-2017

59 Views

Category:

Engineering

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

rdglpz@gmail.com

2 Posgrado de Ingenierıa Electrica

juanfie@umich.mx

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

Introduccion

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

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

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

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

Los Cliques en los Grafos

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

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

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

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

Algoritmo para la deteccion de

un clique

Algoritmo para la deteccion de un clique

10/23

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

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

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

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

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

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

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

Optimizacion por colonia de

Hormigas

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

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

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

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

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

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

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

19/23

Experimentos y Resultados

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

Resultados

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

21/23

Resultados

Figura 7: Grafico de convergencia para k = 20

22/23

Resultados

Figura 8: Grafico de convergencia para k = 30

23/23

Preguntas?

Interesados en las diapositivas o codigo.

Mandar email a rdglpz@gmail.com

23/23

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.

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

top related