Você está na página 1de 22

PESQUISA OPERACIONAL

Grafos - Clique mxima


25 de Novembro de 2014

Edson Francisco de Moraes Jnior


Jean-Luc Nacif Coelho
Rodrigo Costa Tavares
Departamento de Cincia da Computao - Universidade Federal de Minas Gerais

Introduo

Modelagem

Algoritmos Exatos e Heursticas

1. Modelagem
2. Algoritmos Exatos e Heursticas

Introduo

Modelagem

Algoritmos Exatos e Heursticas

O PROBLEMA

O problema da clique refere-se a qualquer problema que possui


como objetivo encontrar sub-grafos completos ("cliques") em um
grafo. Mais especificamente, o problema da clique mxima
determinar entre todos os sub-grafos completos, qual deles o
maior, ou seja, possui o maior nmero de vrtices.
Por exemplo, encontrar o maior subconjunto de pessoas, em que
todas conhecem umas as outras dentro de uma rede social, onde
os vrtices do grafo representam pessoas, e as arestas
representam o conhecimento mtuo.
No grafo ao lado, por exemplo, a clique
mxima composta pelos vrtices {1,2,5}

Introduo

Modelagem

Algoritmos Exatos e Heursticas

APLICAES

O problema da clique possui diversas aplicaes, principalmente


na rea de bioinformtica, algumas delas so:

Clusterizao de expresses gnicas - Ben-Dor, Shamir &

Yakhini (1999), Tanay & Sharan (Shamir)

Modelagem de nichos ecolgico em cadieas alimentares -

Sugihara (1984)

Inferncias de rvores filogenticas - Day & Sanko (1986)

MODELAGEM

Introduo

Modelagem

Algoritmos Exatos e Heursticas

DEFINIES

Um grafo G = (V,E) consiste de um conjunto de vrtices V =


{v1 , v2 , ..., vn } e um conjunto de arestas E = {e1 , e2 , ..., em }.
Cada aresta e = (u,v) consiste dos vrtices u e v. Se e E(G),
ento dito que u adjacente a v. Os vrtices de G sero
denotados por V(G) e as arestas por E(G).
O complemento do grafo G = (V,E) o grafo G = (V,E), onde
E = {(u,v) | u,v V, u =
v e (u,v) E}.
Considere tambm que para cada vrtice vi est associado um
peso positivo wi .

Introduo

Modelagem

Algoritmos Exatos e Heursticas

SOLVER
GNU Linear Programming Kit (GLPK)
Suporte a: C, C++, Java
Linguagem de modelagem: GAMS e GMPL
(Subconjunto de AMPL).
Licena: Software Livre.

Introduo

Modelagem

Algoritmos Exatos e Heursticas

MODELO DE P.L.

Grafo com peso nos vrtices


Maximizar

wi xi

i=1

sujeito a :

Grafo sem peso nos vrtices


Maximizar

xi

i=1

sujeito a :

xi + xj 1, (i, j) E,

xi + xj 1, (i, j) E,

xi = {0, 1}, i = 1, 2, ..., n

xi = {0, 1}, i = 1, 2, ..., n

Introduo

Modelagem

Algoritmos Exatos e Heursticas

EXEMPLO
Para
o grafo ao lado, teramos a seguinte instancia:

Maximizar

xi

i=1

sujeito a :
x1 + x3 1,
x1 + x4 1,
x1 + x6 1,

x3 + x5 1,
x3 + x6 1,
x5 + x6 1,

x2 + x4 1,
x2 + x6 1,

xi = {0, 1}, i = 1, 2, ..., 6


9

Introduo

Modelagem

Algoritmos Exatos e Heursticas

GLPK (1)
Modelo para o GLPK:
1
2
3
4
5

set V ;
set NE within {V , V };
var x { i in V } binary ;
maximize z : sum { i in V } x [ i ];
subject to packing {( i , j ) in NE }: x [ i ] +
x [ j ] <= 1;
Exemplo de entrada:

1
2
3

data ;
set V := 1 ,2 ,3 ,4 ,5 ,6;
set NE := (1 ,3) (1 ,4) (1 ,6) (2 ,4) (2 ,6)
(3 ,5) (3 ,6) (5 ,6)
10

ALGORITMOS EXATOS E HEURSTICAS

Introduo

Modelagem

Algoritmos Exatos e Heursticas

BRONKERBOSCH

O algoritmo de Bron-Kerbosch um algoritmo para encontrar


cliques maximais em um grafo no direcionado. Ou seja, ele lista
todos os conjuntos de vrtices que so grafos completos e que
no podem ser expandidos pela adio de outro vrtices sem
deixarem de ser completos.
Embora outros algoritmos para resolver o problema da clique
possuam, em teoria, melhores tempos de execuo, na pratica o
algoritmo de Bron-Kerbosch e suas melhorias se mostram mais
eficientes que as alternativas.
O algoritmo de Bron-Kerbosch, no pior caso, encontra a maior
clique de um grafo em tempo O(3n/3 ) O(1.4422n )

12

Introduo

Modelagem

Algoritmos Exatos e Heursticas

BronKerbosch Naive:
1
2
3
4
5
6
7

BronKerbosch (R , P , X ) :
if P and X are both empty :
report R as a maximal clique
for each vertex v in P :
BronKerbosch ( R{ v } , PN ( v ) , XN ( v ) )
P := P \ { v }
X := X { v }

13

Introduo

Modelagem

Algoritmos Exatos e Heursticas

BronKerbosch Naive (Execuo):


1
2
3
4

BronKerbosch ( ,{1 ,2 ,3 ,4 ,5 ,6} ,) v ={1}


BronKerbosch ({1} ,{2 ,5} ,) v ={2}
BronKerbosch ({1 ,2} ,{5} ,) v ={5}
BronKerbosch ({1 ,2 ,5} ,,) P =,X =, R
uma clique mximal
Backtrack ...

14

Introduo

Modelagem

Algoritmos Exatos e Heursticas

A verso bsica do algoritmo entretanto se mostra ineficiente em


casos onde o grafo possui muitas cliques no maximais, pois ele
faz uma chamada recursiva para cada clique, maximal ou no.
Para reduzir o nmero de chamadas, os prprios autores
introduziram uma variao do algoritmo que utiliza um vrtice
piv, escolhido de forma a reduzir o nmero de chamadas
recursivas.
BronKerbosch com pivoteamento:
1
2
3
4
5
6
7
8

BronKerbosch (R ,P , X ) :
if P and X are both empty :
report R as a maximal clique
choose a pivot vertex u in P X
for each vertex v in P \ N ( u ) :
BronKerbosch ( R{ v } , PN ( v ) , XN ( v ) )
P := P \ { v }
X := X { v }
15

Introduo

Modelagem

Algoritmos Exatos e Heursticas

HEURSTICAS
Para as heursticas decidimos implementar algoritmos sequenciais
gulosos. Essas heursticas geram uma clique maximal atravs de
repetidas adies de vrtices em uma clique parcial (no
maximal), ou atravs da remoo de um vrtice de um conjunto
que no uma clique.
Kopf & Ruhe (1987) nomearam essas duas classes como Best In
e Worst Out, respectivamente.
No Best In, a partir de um conjunto de vrtices vazio,
seleciona-se sempre o vrtice com maior grau de incidncia.
Para o Worst Out, a partir de um conjunto com todos os
vrtices do grafo, seleciona-se aquele que possui o menor grau de
incidncia, e a cada iterao verificado se o conjunto restante ,
ou no, uma clique.
16

Introduo

Modelagem

Algoritmos Exatos e Heursticas

COMPARAO DE DESEMPENHO - ALGORITMOS EXATOS


5,000

.
.
.

Tempo (segundos)

4,000

.
.
.
P.L - GLPK

BronKerbosch - P
BronKerbosch - N

3,000
2,000
1,000
.

0
.
0

50

100

150 200 250 300


Nmero de Vrtices

350

400
17

Introduo

Modelagem

Algoritmos Exatos e Heursticas

COMPARAO DE DESEMPENHO - HEURSTICAS


.

Tempo (segundos)

0.008

Heurstica 1 - Best In

0.006
0.004
0.002
0

.
.
0

50

100

150 200 250 300


Nmero de Vrtices

350

400
18

Introduo

Modelagem

Algoritmos Exatos e Heursticas

COMPARAO DE DESEMPENHO - HEURSTICAS


30

Heurstica 2 - Worst out

Tempo (segundos)

25
20
15
10
5
.

0
.
0

50

100

150 200 250 300


Nmero de Vrtices

350

400
19

Introduo

Modelagem

Algoritmos Exatos e Heursticas

QUALIDADE DOS RESULTADOS


.
.

100 %

.
.

Heurstica 1 - Best In
Heurstica 2 - Worst Out

80 %
60 %
40 %
20 %
0% .

.
0

50

100

150 200 250 300


Nmero de Vrtices

350

400
20

Introduo

Modelagem

Algoritmos Exatos e Heursticas

REFERNCIAS

1. P.M. Pardalos and J. Xue, The maximum clique problem, J.


Global Optim., Vol. 4: 301-328, 1994
2. K Baamann - The maximum clique problem-on finding an
upper bound with application to protein structure alignment
www-old.math.gatech.edu, 2003
3. Bron, Coen; Kerbosch, Joep (1973), Algorithm 457: finding
all cliques of an undirected graph, Commun. ACM (ACM)
16 (9): 575577
4. Handbook of Combinatorial Optimization (supp. Vol. A),
1-74. Kluwer, Dordrecht (1999)
5. The maximum clique problem (I. Bomze, M. Budinich, P.
Pardalos, M. Pelillo), In: D.-Z. Du, P.M. Pardalos (eds.)

21

Introduo

Modelagem

Algoritmos Exatos e Heursticas

REFERNCIAS
6. Ben-Dor, Amir; Shamir, Ron; Yakhini, Zohar (1999),
Clustering gene expression patterns., Journal of
Computational Biology 6 (34): 281297
7. Sugihara, George (1984), "Graph theory, homology and food
webs", in Levin, Simon A., Population Biology, Proc. Symp.
Appl. Math. 30, pp. 83101
8. Day, William H. E.; Sanko, David (1986), Computational
complexity of inferring phylogenies by compatibility,
Systematic Zoology 35 (2): 224229
9. Tanay, Amos; Sharan, Roded; Shamir, Ron (2002),
Discovering statistically significant biclusters in gene
expression data, Bioinformatics 18 (Suppl. 1): S136S144
10. R. Kopf and G. Ruhe, A computational study of the
weighted independent set problem for general graphs, Found.
Control Engin., Vol. 12: 167-180, 1987
22

Você também pode gostar