You are on page 1of 78

Computao Cientfica

Combinatria
Primeiros passos
Maro/2009
Tpicos
Introduo
Otimizao
Problemas identificados
Mtodos de soluo
Definio
Computao Cientfica Combinatria
(CCC)
um novo nome para pesquisa em uma
rea interdisciplinar que abrange
computao cientfica e teoria dos
algoritmos e otimizao (Hendrickson
e Pothen)
Pesquisa em CCC
Trs componentes bsicos:
Identificao de um problema em
Computao Cientfica e construo de um
modelo combinatrio para ele;
Projeto, anlise e implementao de
algoritmos para resoluo dos problemas
combinatrios levantados;
Desenvolvimento de softwares.
Pesquisa em CCC
rigor terico + impacto prtico
Modelagem de problemas
Para resolver um problema prtico,
muitas vezes o modelamos por uma
formulao matemtica e posteriormente
aplicamos alguma tcnica para obter
uma soluo tima ou aproximada
Problemas e Gesto
Para entender um problema, temos que tentar
ao menos algumas solues mais bvias, e
descobrir que elas falham: ento, redescobrimos
que existe uma dificuldade - um problema
Karl R. Popper
Um Problema uma dificuldade que impede
que uma vontade seja concretizada.
Solucionar Problemas exige a capacidade de criar
adequadas representaes da realidade (modelos)
e, com ajuda delas, encontrar um algoritmo de
soluo que explique como remover ou superar
tal dificuldade
Problemas e Gesto
A construo de um algoritmo de soluo
profundamente influenciada pelo
modelo utilizado.
Problemas e Gesto
Solucionar problemas , portanto, uma arte de
criar ou escolher modelos, e com eles construir
algoritmos que funcionem na prtica e sejam
rpidos o suficiente para ainda encontrarem o
problema quando oferecerem a soluo.
Problemas e Gesto
Tipos de Problemas:
Decidveis
No Decidveis
Problemas e Gesto
Tipos de Problemas Decidveis:
Deciso
Localizao
Otimizao
Problemas e Gesto
Os Modelos so representaes
simplificadas da realidade que preservam,
para determinadas situaes e enfoques,
uma equivalncia adequada
Conceito de Modelo
Sistemas so unidades conceituais
ou fsicas, compostas de partes
interrelacionadas, interatuantes
e interdependentes
O Modelo Sistmico
Dinmica
Domnio
Meio Ambiente
Tratvel
Intratvel
Indeterminado
Estocstico
Determinstico
Poucas Variveis
e Homogeneidade
Muitas Variveis
e Heterogeneidade
A dimenso da Complexidade
Dinmica
Domnio
Meio Ambiente
Tratvel
Intratvel
Indeterminado
Estocstico
Determinstico
Muitas Variveis
e Heterogeneidade
A dimenso da Complexidade
Poucas variveis e
Homogeneidade
Classificao
Definio do Problema
Formulao e Construo
do Modelo Inicial
Validao do Modelo
Reformulao do Modelo
Aplicao do Modelo
Simulao do Modelo
Modelagem
Teoria de Utilidade
Teoria de Probabilidade
Pesquisa Operacional
Teoria da Deciso
f:9
n
9
h:9
n
9
g:9
n
9
Modelo de Otimizao
Programao Linear
Programao No-Linear
Programao Inteira
Programao Matemtica
Melhorias Mensurveis
Automatizao de Processos
Anlises Operacionais
Identificao de Gargalos
Determinao de Valores
Projetos e Reengenharia
Programao Matemtica
Os modelos quantitativos no tomam as
decises, mas as tornam muito
mais claras e fceis
Modelos
0 , 0
180 2 3
20
10
60
40
: a sujeito
3 Maximizar ) (
2 1
2 1
2 1
2
2
1
2 1
> >
s +
> +
>
s
s
+ =
x x
x x
x x
x
x
x
x x z BS
Exemplo
x
2
x
1
60
40
O
A
B
C
D
x
1
=40
x
2
=60
3x
1
+ 2x
2
=180
90
20
20
60
x
1
+ x
2
=20
x
1
=10
F
E
Soluo Grfica
Soluo Exaustiva
inteiras variveis
20
50 20
: a sujeito
19 Maximizar
2 1
2 1
2 1
2 1
x , x
x x
x x
x x z
s +
s +
+ =
Outro Exemplo
O Problema da Mochila (PK)
O Problema da Mochila
Unidimensional
Exemplo
rvore de
Enumerao
Branch-and-Bound
3
4
15
2
s
(

s
x ou 4 1
4
15
2
> +
(

>
x
x1
=
9
4
x2
=
15
4
Z=
1
4
41
Disjuntiva
Soluo Contnua
Branch-and-Bound
x
2
x
1
O
z=5x
1
+8x
2
5x
1
+ 9x
2
=45
x
1
+ x
2
=6
Solues Inteiras
A
B
C
Soluo Grfica
x
2
x
1
O
A
B
C
(P
2
)
(P
1
)
Resultado da Diviso (Branch)
P
0
x
1
=2,25 x
2
=3,75
z=41,25
P
2
x
1
=1,8 x
2
=4,0
z=41
P
1
x
1
=3,0 x
2
=3,0
z=39
P
3
Invivel
P
4
x
1
=1,0 x
2
=4,25
z=40,4
P
5
x
1
=0 x
2
=5
z=40
P
6
x
1
=1,0 x
2
=4,0
z=37
x
2
4,0
> x
2
s3,0
x
1
2,0
> x
1
s1,0
x
2
>5,0
x
1
s4,0
rvore de Branch
Procedimentos
Aproximativos
Procedimentos
Aproximativos
Heursticas
Heursticas
Relaxaes
Relaxaes
Linear
Linear
Lagrangeana
Lagrangeana
Clssicas
Clssicas
-Dual Ascent
-Dual Ascent
-Subgradiente
-AjusteMltiplo
-Subgradiente
-AjusteMltiplo
-Mopes
.Construtivas
.Por economia
-Buscalocal
.Mtododescendente
.Mtodoaleatrio
-Particionamento/
Grupamento
-Mopes
.Construtivas
.Por economia
-Buscalocal
.Mtododescendente
.Mtodoaleatrio
-Particionamento/
Grupamento
Estocsticas
Estocsticas
-SimulatedAnneling
-TabuSearch
.Clssica
.Reativa
-GRASP
-SimulatedAnneling
-TabuSearch
.Clssica
.Reativa
-GRASP
Analgicas
Analgicas
-Redes Neurinais
-ComputaoEvolutiva
.Algoritmos genticos
.Scatter Search
.Colniadeformigas
-Redes Neurinais
-ComputaoEvolutiva
.Algoritmos genticos
.Scatter Search
.Colniadeformigas
Heursticas
Problemas
de
Interesse
O problema de Colorao de
Grafos
Pode ser definido sobre o conjunto dos
vrtices ou o conjunto das arestas de um
grafo;
Colorao prpria: uma colorao prpria
para um grafo no direcionado G=(V,E)
um mapeamento c:V{1, . . ., k} tal que
se {u, v} e E ento c(u) c(v).
Os elementos do conjunto {1, . . ., k} so
chamados cores
Colorao de Grafos
Duas verses usuais para o problema
so:
Determinar se possvel colorir um grafo com um
nmero pr-determinado de cores ou
Determinar o nmero cromtico (ou o ndice
cromtico) de um grafo G: o menor nmero de cores
de {1, . . ., k} para colorir propriamente o conjunto de
vrtices (ou de arestas) de um dado grafo G
Exemplos de aplicao
primeira verso programao de horrios de grades
escolares: alocao de n professores a m turmas nos h
horrios disponveis na escola.
vrtice
aresta
cor
aula de um professor
as aulas ligadas pela aresta no
podem ser realizadas no mesmo horrio
horrio
segunda verso computao paralela: vrtices de uma
mesma cor representam processos que podem ser
executados em paralelo, pois no possuem dependncias.
poucas cores processamento rpido
CIn/UFPE
42
Existem 7 disciplinas. A tabela mostra a existncia de alunos em
comum: onde h * na clula ij, existe um aluno matriculado na
disciplina i e na disciplina j.
A matriz simtrica :a parte abaixo
da diagonal principal no foi
preenchida
1
2 7
6
5 4
3
Horrio Disc.
1 1 e 6
2 7 e 4
3 3 e 5
4 2
Exemplo
-
7
* -
6
*
-
*
*
*
7
*
*
*
-
-
6
-
5
* -
4
- * -
3
* * * -
2
- * * * -
1
5 4 3 2 1
Obter o nmero cromtico
Particionar o conjunto de vrtices em k
subconjuntos (mnimo possvel) de vrtices
no adjacentes.
Como obter o nmero
cromtico?
heursticas
NP-Completo
nem sempre se garante a obteno
do menor nmero de cores
difcil de resolver
Algoritmo de Colorao
k=0
Para j=0 at n1 faa D = {1, ... , k}
Para i=0 at j1 faa
se v[i] adjacente a v[j] ento
D = D {cor[v[i]]}
fim se
fim Para
se D no vazio ento
cor[v[j]] = min D
seno
k = k+1
cor[v[j]] = k
fim se
fim Para
Matemtica Discreta/ Grafos
CIn/UFPE
46
c a b
h
g
j i
e
d
f
O Problema de Isomorfismo de Grafos (PIG) tem sido
amplamente estudado nas reas de qumica,
matemtica e computao devido a sua aplicabilidade
em vrios problemas prticos
O problema de Isomorfismo de
Grafos
Consiste em encontrar uma correspondncia biunvoca dos
vrtices de dois grafos dados, obedecendo as adjacncias
existentes entre os vrtices;
Mais formalmente: Considere dois grafos G
1
=(V
1
,E
1
) e
G
2
=(V
2
,E
2
). Estes grafos so ditos isomorfos se existir uma
funo bijetora f : V
1
V
2
onde as seguintes condies so
satisfeitas:
Para cada aresta (a,b) de E
1
, temos uma aresta (f(a),f(b)) em E
2
;
Toda aresta de E
2
tem a forma (f(a),f(b)) para alguma aresta (a,b)
de E
1
.
Definio
possvel encontrar uma funo bijetora f entre os
vrtices, f = {(1, 1), (2, 5), (3, 3), (4, 4), (5, 2), (6, 6)},
que satisfaz as condies descritas anteriormente, isto
, mantm as caractersticas dos vrtices em relao
ao grau e a conectividade entre eles;
Exemplo de Grafos Isomorfos
Para que dois grafos sejam isomorfos, no mnimos as
seguintes condies so necessrias:
Possuir o mesmo nmero de vrtices;
Possuir o mesmo nmero de arestas;
Possuir a mesma seqncia de graus.
Infelizmente, estas condies no so suficientes
para afirmar que dois Grafos so Isomorfos!!
Condies de Isomorfismo
A relao de isomorfismo uma relao de
equivalncia:
Reflexiva: Todo o grafo isomorfo a si mesmo;
Simtrica: Se um grafo isomorfo a um segundo grafo,
ento tambm o segundo isomorfo ao primeiro;
Transitiva: Se um grafo isomorfo a um segundo
grafo, que por sua vez isomorfo a um terceiro, ento o
primeiro isomorfo ao terceiro.
Propriedade de Equivalncia
2009: Ashay Dharwadker e John Tevet: o problema
de isomorfismo de grafos pertence classe P.
Foi proposto um algoritmo polinomial para verificar
se dois grafos so isomorfos.
Complexidade
Implementao disponvel
http://www.geocities.com/dharwadker/tevet/
isomorphism/
Reconhecimento de imagens
Problema de reduo de banda de
matrizes esparsas
Exemplos de aplicao
O problema de Reduo de
Banda de matrizes esparsas
Para uma dada matriz esparsa simtrica
M(nxn), o problema consiste em reduzir a
largura de banda B, permutando linhas e
colunas de maneira a mover todos os
elementos no nulos o mais prximo
possvel da diagonal.
http://ciprian-zavoianu.blogspot.com/2009/01/project-bandwidth-reduction.html
Sejam G = (V,E) um grafo valorado em
vrtices e arestas e k um inteiro tal que k >1.
Deseja-se particionar o conjunto de
vrtices de um grafo em k subconjuntos
disjuntos balanceados, de forma que o
peso total das arestas com extremidades
em diferentes subconjuntos seja
minimizado.
O problema de Particionamento
de Grafos
Exemplo
G = (V,E) V1 V2
2 parties
Corte de arestas: conjunto de arestas cuja remoo de G torna G desconexo,
desde que nenhum subconjunto prprio desse conjunto tambm desconecte
O Problema
De modo geral, para grafos com pesos associados:
Dado um grafo G = (V, E) e um nmero k, deve-se encontrar k
subconjuntos V
1
, V
2
, ... , V
k
tal que:
Quando k = 2, o problema referido como Graph Bisection Problem.
Para k > 2,o problema referenciado como k-way Graph Partitioning
Problem.
0
1
2
3
4
5
7
8
9
10
11
13
14
6
12
Corte: 13 arestas
Exemplo Particionamento 1
Cluster 1: 5 vrtices
Cluster 3: 5 vrtices
Cluster 2: 5 vrtices
Exemplo
0
1
2
3
4
5
7
8
9
10
11
13
14
6
12
Corte: 9 arestas
Exemplo Particionamento 2
Cluster 1: 5 vrtices
Cluster 2: 5 vrtices
Cluster 3: 5 vrtices
Outro Exemplo
Formulao Matemtica
Seja G = (V, E) um grafo com um conjunto de vrtices V e um conjunto de arestas E. Seja Wij o
peso da aresta (i, j) entre os vrtices i e j, K o nmero mximo de clusters k e MaxCard o
tamanho mximo de cada cluster ( |V| K.MaxCard ).
Formulao Padro
Mtodos de resoluo
Mtodos Exatos
Branch and bound
Solver Cplex
Modelo Cplex Resposta
Complexidade: NP-Difcil
Mtodos de Resoluo
Mtodos heursticos
Spectral Partitioning
Kernighan and Lin
Fiduccia-Mattheyses
Multilevel Graph Partitioning
Genetic Algorithms
Entre outros
passo 1
computar os ganhos de todos os vrtices
passo 2
i = 1
achar um vrtice para troca c(i)
passo 3
bloquear o vrtice c(i) e atualizar os ganhos dos vizinhos
passo 4
se no existem mais vrtices bloqueados,
incrementar i
achar um novo vrtice para troca
passo 5
achar uma sequencia de movimentos que levem ao ganho mximo
se no tem mais que uma sequencia de movimentos, escolher o particionamento
que proporciona o melhor corte
passo 6
aplica os movimentos
volta ao passo 2 at que um mximo seja atingido
Fiduccia-Mattheyses: Algoritmo
Fiduccia-Mattheyses: Exemplo
a
h g
f
e
d
c
b
Partio 1: Vrtices em azul
Partio 2: Vrtices em preto
Tamanho inicial do corte: 8
arestas
Ganho: reduo do n de
arestas ao migrar um vrtice
de uma partio para outra
O ganho inicial de cada
vrtice est mostrado em azul
0
1 0
2
3
0
1
-1
Ns movidos (e tamanho do corte depois) :
nenhum (8);
Fiduccia-Mattheyses: Exemplo
a
h g
f
e
d
c
b
O n na Partio 1 com
maior ganho g. Vamos
tentar mov-lo para a
Partio2 e recomputar o
ganho de seus vizinhos.
-2
1 0
2
-2
1
-3
Ns movidos (e tamanho do corte depois) :
nenhum (8); g,
Fiduccia-Mattheyses: Exemplo
a
h g
f
e
d
c
b
O n na Partio2 com
maior ganho d.
Tentamos mov-lo para a
Partio1 e recomputar o
ganho de seus vizinhos.
Depois da primeira
tentativa de troca, o
tamanho do corte 4.
-2
-1 -2
0
0
-1
Ns movidos (e tamanho do corte depois) :
nenhum (8); g, d (4);
Fiduccia-Mattheyses: Exemplo
a
h g
f
e
d
c
b
O n ainda no movido na
Partio1 com maior
ganho f.
-2
-1 -2
-2
-1
Ns movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f
Fiduccia-Mattheyses: Exemplo
a
h g
f
e
d
c
b
O n ainda no movido na
Partio2 com maior
ganho c.
Aps essa tentativa de
troca, o tamanho do corte
5.
0
-3 -2
0
Ns movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f, c (5);
Fiduccia-Mattheyses: Exemplo
a
h g
f
e
d
c
b
O n ainda no movido na
Partio1 com maior ganho
b.
0
-1
0
Ns movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f, c (5); b
Fiduccia-Mattheyses: Exemplo
a
h g
f
e
d
c
b
Existe um empate entre
ns na Partio2.
Escolhemos um e
tentamos mov-lo para a
Partio1. Todos os seus
vizinhos so ns movidos,
portanto no precisa
recomputar os ganhos.
Aps essa tentativa de
troca, o tamanho do corte
7.
-1
0
Ns movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f, c (5); b, e (7);
Fiduccia-Mattheyses: Exemplo
a
h g
f
e
d
c
b
O n ainda no movido na
Partio1 com maior ganho
a.
0
Ns movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f, c (5); b, e (7); a
Fiduccia-Mattheyses: Exemplo
a
h g
f
e
d
c
b
O n ainda no movido na
Partio2 com maior ganho
h.
O tamanho de corte na ultima
tentativa de troca 8.
Ns movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f, c (5); b, e (7); a, h (8)
Fiduccia-Mattheyses: Exemplo
a
h g
f
e
d
c
b
Depois que tentamos mover
todos os ns, percorremos a
sequncia de trocas e fixamos
a troca que resultou menor
corte. Ento, fazemos essa
troca permanente e
deletamos todas as tentativas
posteriores.
Isso o final do primeiro
passo de melhoria.
Ns movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f, c (5); b, e (7); a, h (8)
Fiduccia-Mattheyses: Exemplo
a
h g
f
e
d
c
b Fazemos o processo
novamente comeando
com novo tamanho de
corte igual a 4.
Neste caso, o segundo
passo de melhoramento
no melhora a soluo e o
algoritmo ento para com
tamanho de corte igual a 4.
Aplicaes
Redes: dividir a rede em pequenos clusters para
maximizar a quantidade de comunicaes locais e
minimizar a conectividade entre os clusters.
Computao paralela: um problema de partio do
conjunto de vrtices de um grafo em p subconjuntos,
onde o grafo representa uma malha de elementos
finitos e p o nmero de processadores disponveis.
Tal partio precisa levar em conta o balanceamento
da carga de trabalho dos processadores bem como a
a minimizao dos custos de comunicao entre
processadores.
Localizao de facilidades: localizao de k hospitais
em uma cidade de forma que ningum more o mais
longe que o necessrio do hospital mais prximo
Exemplos de aplicao
http://www.eecs.berkeley.edu/~demmel/cs267/lecture18/lecture18.html

You might also like