computação científica combinatória
DESCRIPTION
Computação Científica Combinatória. Primeiros passos Março/2009. Tópicos. Introdução Otimização Problemas identificados Métodos de solução. Definição. Computação Científica Combinatória (CCC) - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/1.jpg)
Computação Científica Combinatória
Primeiros passos
Março/2009
![Page 2: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/2.jpg)
Tópicos
• Introdução
• Otimização
• Problemas identificados
• Métodos de solução
![Page 3: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/3.jpg)
Definição
• Computação Científica Combinatória (CCC) – um novo nome para pesquisa em uma
área interdisciplinar que abrange computação científica e teoria dos algoritmos e otimização (Hendrickson e Pothen)
![Page 4: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/4.jpg)
Pesquisa em CCC
• Três componentes básicos:– Identificação de um problema em
Computação Científica e construção de um modelo combinatório para ele;
– Projeto, análise e implementação de algoritmos para resolução dos problemas combinatórios levantados;
– Desenvolvimento de softwares.
![Page 5: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/5.jpg)
Pesquisa em CCC
rigor teórico + impacto prático
![Page 6: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/6.jpg)
Modelagem de problemas
Para resolver um problema prático, muitas vezes o modelamos por uma
formulação matemática e posteriormente aplicamos alguma técnica para obter uma solução ótima ou aproximada
![Page 7: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/7.jpg)
Problemas e GestãoProblemas e Gestão
Para entender um problemaproblema, temos que tentar ao menos algumas soluções mais óbvias, e descobrir que elas falham: então, redescobrimos que existe uma dificuldade - um problemaum problema Karl R. PopperKarl R. Popper
![Page 8: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/8.jpg)
Um ProblemaProblema é uma dificuldade que impedeque uma vontade seja concretizada. Solucionar ProblemasProblemas exige a capacidade de criaradequadas representações da realidade (modelosmodelos)e, com ajuda delas, encontrar um algoritmo de algoritmo de soluçãosolução que explique como remover ou superartal dificuldade
Problemas e GestãoProblemas e Gestão
![Page 9: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/9.jpg)
A construção de um algoritmo de soluçãoalgoritmo de solução é profundamente influenciada pelo
modelo utilizado.
Problemas e GestãoProblemas e Gestão
![Page 10: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/10.jpg)
SolucionarSolucionar problemasproblemas é, portanto, uma arte decriarcriar ou escolher modelosmodelos, e com eles construirconstruiralgoritmoalgoritmos que funcionemfuncionem na prática e sejamrápidosrápidos o suficientesuficiente para ainda encontrarem oproblema quando oferecerem a solução.
Problemas e GestãoProblemas e Gestão
![Page 11: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/11.jpg)
Tipos de Problemas:
Decidíveis Não Decidíveis
Problemas e GestãoProblemas e Gestão
![Page 12: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/12.jpg)
Tipos de Problemas Decidíveis:
Decisão Localização Otimização
Problemas e GestãoProblemas e Gestão
![Page 13: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/13.jpg)
Os ModelosModelos são representações simplificadas da realidade que preservam, para determinadas situações e enfoques, uma equivalência adequada
Conceito de ModeloConceito de Modelo
![Page 14: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/14.jpg)
SistemasSistemas são unidades conceituais ou físicas, compostas de partes interrelacionadas, interatuantese interdependentes
O Modelo SistêmicoO Modelo Sistêmico
![Page 15: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/15.jpg)
Dinâmica
Domínio
Meio Ambiente
Tratável
Intratável
Indeterminado
Estocástico
DeterminísticoPoucas Variáveis e Homogeneidade
Muitas Variáveis e Heterogeneidade
A dimensão da ComplexidadeA dimensão da Complexidade
![Page 16: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/16.jpg)
Dinâmica
Domínio
Meio Ambiente
Tratável
Intratável
Indeterminado
Estocástico
DeterminísticoMuitas Variáveis e Heterogeneidade
A dimensão da ComplexidadeA dimensão da Complexidade
Poucas variáveis e Homogeneidade
![Page 17: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/17.jpg)
osEsquemátic
Lógicos
sMatemático
Abstratos
sGeométrico
Físicos Concretos
Modelos
ClassificaçãoClassificação
![Page 18: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/18.jpg)
Definição do Problema
Formulação e Construçãodo Modelo Inicial
Validação do Modelo
Reformulação do Modelo
Aplicação do Modelo
Simulação do Modelo
ModelagemModelagem
![Page 19: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/19.jpg)
Teoria de Utilidade Teoria de Probabilidade Pesquisa Operacional
Teoria da DecisãoTeoria da Decisão
![Page 20: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/20.jpg)
n
gj
hi
x
mjxg
mixh
aSujeito
xfMinimizar
,...,10)(
,...,1,0)(
:
)(
f:n h:ng:n
Modelo de OtimizaçãoModelo de Otimização
![Page 21: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/21.jpg)
Programação Linear Programação Não-Linear Programação Inteira
Programação MatemáticaProgramação Matemática
![Page 22: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/22.jpg)
Melhorias Mensuráveis Automatização de Processos Análises Operacionais Identificação de Gargalos Determinação de Valores Projetos e Reengenharia
Programação MatemáticaProgramação Matemática
![Page 23: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/23.jpg)
Os modelos quantitativos não tomam as decisões, mas as tornam muito
mais claras e fáceisclaras e fáceis
ModelosModelos
![Page 24: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/24.jpg)
0,0
18023
20
10
60
40
:asujeito
3Maximizar)(
21
21
21
2
2
1
21
xx
xx
xx
x
x
x
xxzBS
ExemploExemplo
![Page 25: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/25.jpg)
x2
x1
60
40O
A
B
C
D
x1 =40
x2 =60
3x1 + 2x2 =180
90
20
20
60
x1 + x2 =20
x 1=10F
E
Solução GráficaSolução Gráfica
![Page 26: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/26.jpg)
Pontos Examinados Coordenadas(x1 ,x2)
Valor da funçãoz= x1 + 3x2
ABCDEF
(40,10)(40,30)(20,60)(0,60)(0,20)(10,10)
701302001806040
Solução ExaustivaSolução Exaustiva
![Page 27: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/27.jpg)
inteiras variáveis
20
5020
:asujeito
19Maximizar
21
21
21
21
x,x
xx
xx
xxz
Outro ExemploOutro Exemplo
![Page 28: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/28.jpg)
inteiroe0
:asujeito
Maximizar)(
1
1
j
n
jjj
n
jjj
x
bxw
xczPK
O Problema da Mochila (PK)O Problema da Mochila (PK)
![Page 29: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/29.jpg)
njx
bxw
xczPKI
j
n
jjj
n
jjj
,...,1}1,0{
:asujeito
Maximizar)(
1
1
O Problema da Mochila O Problema da Mochila UnidimensionalUnidimensional
![Page 30: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/30.jpg)
16070605541
:asujeito
1412107Minimizar
4321
4321
xxxx
xxxxz
ExemploExemplo
![Page 31: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/31.jpg)
Árvore de Árvore de EnumeraçãoEnumeração
1
5
4
3
2
9
8
6
10
16
15
11
7
12
13
14
17
18
19
20
21
22
23
24
25
26
27
x2 x3 x4x1
X1=1
X1 =0
X1 =2
X1 =3 X 2=0 X3 =0
X3 =1
X3 =0
X3 =0 X4 =1
29
28
30
31
32
33
34
35
36
37
38
39
40
X 2=0
X 2=1
X 2=2
X 2=1
X 2=0
X 2=2
X 2=0
X 2=1
X 3=0
X 3=1
X 3=1
X 3=0
X 3=0
X 3=0
X 3=0
X 3=2
X 3=1
X4 =0
X4 =0
X4 =0
X 4=0
X 4=0
X 4=1
X 4=0
X 4=1
X 4=0
X 4=2
X 4=0
X 4=0
Z=26
Z=17
Z=21
Z=27
Z=28
Z=24
Z=20
Z=24
Z=28
Z=26
Z=22
Z=21
Z=29
![Page 32: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/32.jpg)
Zxx
xx
xx
xxz
21
21
21
21
,
4595
6
:asujeito
85Maximizar
Branch-and-BoundBranch-and-Bound
![Page 33: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/33.jpg)
34
152
xou41
4
152
x
x1 =9
4x2 =
15
4Z=
1
441
Disjuntiva
Solução Contínua
Branch-and-BoundBranch-and-Bound
![Page 34: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/34.jpg)
x2
x1O
z=5x1 +8x2
5x1 + 9x2 =45
x1 + x2 =6
Soluções Inteiras
AB
C
Solução GráficaSolução Gráfica
![Page 35: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/35.jpg)
x2
x1O
A
B
C
(P2 )
(P1 )
Resultado da Divisão (Branch)Resultado da Divisão (Branch)
![Page 36: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/36.jpg)
P0
x1 =2,25 x2 =3,75 z=41,25
P2
x1 =1,8 x2 =4,0 z=41
P1
x1 =3,0 x2 =3,0 z=39
P3
Inviável P4
x1 =1,0 x2 =4,25 z=40,4
P5
x1 =0 x2 =5 z=40
P6
x1 =1,0 x2 =4,0 z=37
x2 4,0 x 23,0
x1 2,0 x 11,0
x2 5,0 x 14,0
Árvore de BranchÁrvore de Branch
![Page 37: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/37.jpg)
ProcedimentosAproximativos
ProcedimentosAproximativos
HeurísticasHeurísticas RelaxaçõesRelaxações
LinearLinearLagrangeanaLagrangeanaClássicasClássicas
-Dual Ascent-Dual Ascent-Subgradiente-Ajuste Múltiplo
-Subgradiente-Ajuste Múltiplo
-Míopes .Construtivas .Por economia-Busca local .Método descendente .Método aleatório-Particionamento/ Grupamento
-Míopes .Construtivas .Por economia-Busca local .Método descendente .Método aleatório-Particionamento/ Grupamento
EstocásticasEstocásticas
-Simulated Anneling-Tabu Search .Clássica .Reativa-GRASP
-Simulated Anneling-Tabu Search .Clássica .Reativa-GRASP
AnalógicasAnalógicas
-Redes Neurinais-Computação Evolutiva .Algoritmos genéticos .Scatter Search .Colônia de formigas
-Redes Neurinais-Computação Evolutiva .Algoritmos genéticos .Scatter Search .Colônia de formigas
HeurísticasHeurísticas
![Page 38: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/38.jpg)
Problemas de
Interesse
![Page 39: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/39.jpg)
O problema de Coloração de Grafos
• Pode ser definido sobre o conjunto dos vértices ou o conjunto das arestas de um grafo;
• Coloração própria: uma coloração própria para um grafo não direcionado G=(V,E) é um mapeamento c:V→{1, . . ., k} tal que se {u, v} E então c(u) ≠ c(v).
• Os elementos do conjunto {1, . . ., k} são chamados cores
![Page 40: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/40.jpg)
Coloração de Grafos
• Duas versões usuais para o problema são:
– Determinar se é possível colorir um grafo com um número pré-
determinado de cores ou
– Determinar o número cromático (ou o índice cromático) de um
grafo G: o menor número de cores de {1, . . ., k} para colorir
propriamente o conjunto de vértices (ou de arestas) de um
dado grafo G
![Page 41: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/41.jpg)
Exemplos de aplicação • primeira versão programação de horários de grades escolares: alocação de n professores a m turmas nos h horários disponíveis na escola.
vértice
aresta
cor
aula de um professor
as aulas ligadas pela aresta não podem ser realizadas no mesmo horário
horário
• segunda versão computação paralela: vértices de uma mesma cor representam processos que podem ser executados em paralelo, pois não possuem dependências.
poucas cores processamento rápido
![Page 42: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/42.jpg)
CIn/UFPE
42
Existem 7 disciplinas. A tabela mostra a existência de alunos em comum: onde há * na célula ij, existe um aluno matriculado na disciplina i e na disciplina j.
A matriz é simétrica :a parte abaixo da diagonal principal não foi preenchida
1
27
6
5 4
3
Horário Disc. 1 1 e 6 2 7 e 4 3 3 e 5 4 2
Exemplo
-7
*-6
*
-
*
*
*7
*
*
*
-
-6
-5
*-4
-*-3
***-2
-***-154321
![Page 43: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/43.jpg)
Obter o número cromático
Particionar o conjunto de vértices em k subconjuntos (mínimo possível) de vértices não adjacentes.
![Page 44: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/44.jpg)
Como obter o número cromático?
heurísticas
NP-Completo
nem sempre se garante a obtenção do menor número de cores
difícil de resolver
![Page 45: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/45.jpg)
Algoritmo de Coloraçãok=0Para j=0 até n–1 faça D = {1, ... , k} Para i=0 até j–1 faça se v[i] é adjacente a v[j] então D = D – {cor[v[i]]} fim se fim Para se D não é vazio então cor[v[j]] = min D senão k = k+1 cor[v[j]] = k fim sefim Para
![Page 46: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/46.jpg)
Matemática Discreta/ Grafos CIn/UFPE
46
ca b
hg ji
ed f
![Page 47: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/47.jpg)
O Problema de Isomorfismo de Grafos (PIG) tem sido
amplamente estudado nas áreas de química,
matemática e computação devido a sua aplicabilidade
em vários problemas práticos
O problema de Isomorfismo de Grafos
![Page 48: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/48.jpg)
Consiste em encontrar uma correspondência biunívoca dos
vértices de dois grafos dados, obedecendo as adjacências
existentes entre os vértices;
Mais formalmente: Considere dois grafos G1=(V1,E1) e
G2=(V2,E2). Estes grafos são ditos isomorfos se existir uma
função bijetora f : V1 → V2 onde as seguintes condições são
satisfeitas:
Para cada aresta (a,b) de E1, temos uma aresta (f(a),f(b)) em E2;
Toda aresta de E2 tem a forma (f(a),f(b)) para alguma aresta (a,b)
de E1.
Definição
![Page 49: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/49.jpg)
É possível encontrar uma função bijetora f entre os
vértices, f = {(1, 1’), (2, 5’), (3, 3’), (4, 4’), (5, 2’), (6, 6’)},
que satisfaz as condições descritas anteriormente, isto
é, mantém as características dos vértices em relação
ao grau e a conectividade entre eles;
Exemplo de Grafos Isomorfos
![Page 50: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/50.jpg)
Para que dois grafos sejam isomorfos, no mínimos as seguintes condições são necessárias: Possuir o mesmo número de vértices; Possuir o mesmo número de arestas; Possuir a mesma seqüência de graus.
Infelizmente, estas condições não são suficientes para afirmar que dois Grafos são
Isomorfos!!
Condições de Isomorfismo
![Page 51: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/51.jpg)
A relação de isomorfismo é uma relação de
equivalência:
Reflexiva: Todo o grafo é isomorfo a si mesmo;
Simétrica: Se um grafo é isomorfo a um segundo grafo,
então também o segundo é isomorfo ao primeiro;
Transitiva: Se um grafo é isomorfo a um segundo
grafo, que por sua vez é isomorfo a um terceiro, então o
primeiro é isomorfo ao terceiro.
Propriedade de Equivalência
![Page 52: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/52.jpg)
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 são isomorfos.
Complexidade
![Page 53: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/53.jpg)
Implementação disponível
http://www.geocities.com/dharwadker/tevet/isomorphism/
![Page 54: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/54.jpg)
• Reconhecimento de imagens
• Problema de redução de banda de matrizes esparsas
Exemplos de aplicação
![Page 55: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/55.jpg)
O problema de Redução de Banda de matrizes esparsas
Para uma dada matriz esparsa simétrica M(nxn), o problema consiste em reduzir a largura de banda B, permutando linhas e colunas de maneira a mover todos os elementos não nulos o mais próximo possível da diagonal.
![Page 56: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/56.jpg)
http://ciprian-zavoianu.blogspot.com/2009/01/project-bandwidth-reduction.html
![Page 57: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/57.jpg)
• Sejam G = (V,E) um grafo valorado em vértices e arestas e k um inteiro tal que k >1.
• Deseja-se particionar o conjunto de vértices 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
![Page 58: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/58.jpg)
Exemplo
G = (V,E) V1 V2
2 partições
Corte de arestas: conjunto de arestas cuja remoção de G torna G desconexo, desde que nenhum subconjunto próprio desse conjunto também desconecte
![Page 59: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/59.jpg)
O Problema De modo geral, para grafos com pesos associados:
Dado um grafo G = (V, E) e um número k, deve-se encontrar k subconjuntos V1, V2, ... , Vk tal que:
Quando k = 2, o problema é referido como Graph Bisection Problem. Para k > 2,o problema é referenciado como k-way Graph Partitioning Problem.
![Page 60: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/60.jpg)
0
12
3
4
57
89
10
11
1314
6
12
Corte: 13 arestas
Exemplo – Particionamento 1
Cluster 1: 5 vértices
Cluster 3: 5 vértices
Cluster 2: 5 vértices
Exemplo
![Page 61: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/61.jpg)
0
12
3
4
57
89
10
11
1314
6
12
Corte: 9 arestas
Exemplo – Particionamento 2
Cluster 1: 5 vértices
Cluster 2: 5 vértices
Cluster 3: 5 vértices
Outro Exemplo
![Page 62: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/62.jpg)
Formulação Matemática Seja G = (V, E) um grafo com um conjunto de vértices V e um conjunto de arestas E. Seja Wij o
peso da aresta (i, j) entre os vértices i e j, K o número máximo de clusters k e MaxCard o tamanho máximo de cada cluster ( |V| ≤ K.MaxCard ).
Formulação Padrão
![Page 63: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/63.jpg)
Métodos de resolução Métodos Exatos
Branch and bound
Solver Cplex
Modelo Cplex Resposta
Complexidade: NP-Difícil
![Page 64: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/64.jpg)
Métodos de Resolução
Métodos heurísticos
Spectral PartitioningKernighan and LinFiduccia-MattheysesMultilevel Graph PartitioningGenetic Algorithms Entre outros
![Page 65: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/65.jpg)
passo 1computar os ganhos de todos os vérticespasso 2 i = 1achar um vértice para troca c(i)passo 3bloquear o vértice c(i) e atualizar os ganhos dos vizinhospasso 4se não existem mais vértices bloqueados,incrementar iachar um novo vértice para trocapasso 5achar uma sequencia de movimentos que levem ao ganho máximose não tem mais que uma sequencia de movimentos, escolher o particionamento que proporciona o melhor cortepasso 6aplica os movimentosvolta ao passo 2 até que um máximo seja atingido
Fiduccia-Mattheyses: Algoritmo
![Page 66: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/66.jpg)
Fiduccia-Mattheyses: Exemplo
a
hgfe
dc
b•Partição 1: Vértices em azul•Partição 2: Vértices em preto•Tamanho inicial do corte: 8 arestas•Ganho: redução do nº de arestas ao migrar um vértice de uma partição para outra •O ganho inicial de cada vértice está mostrado em azul
0
1 0
2
3 0
1-1
Nós movidos (e tamanho do corte depois) :
nenhum (8);
![Page 67: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/67.jpg)
Fiduccia-Mattheyses: Exemplo
a
hgfe
dc
bO nó na Partição 1 com maior ganho é g. Vamos tentar movê-lo para a Partição2 e recomputar o ganho de seus vizinhos. -2
1 0
2
-2
1-3
Nós movidos (e tamanho do corte depois) :
nenhum (8); g,
![Page 68: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/68.jpg)
Fiduccia-Mattheyses: Exemplo
a
hgfe
dc
bO nó na Partição2 com maior ganho é d. Tentamos movê-lo para a Partição1 e recomputar o ganho de seus vizinhos.
Depois da primeira tentativa de troca, o tamanho do corte é 4.
-2
-1 -2
0
0
-1
Nós movidos (e tamanho do corte depois) :
nenhum (8); g, d (4);
![Page 69: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/69.jpg)
Fiduccia-Mattheyses: Exemplo
a
hgfe
dc
bO nó ainda não movido na Partição1 com maior ganho é f.
-2
-1 -2
-2
-1
Nós movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f
![Page 70: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/70.jpg)
Fiduccia-Mattheyses: Exemplo
a
hgfe
dc
bO nó ainda não movido na Partição2 com maior ganho é c.
Após essa tentativa de troca, o tamanho do corte é 5.
0
-3 -2
0
Nós movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f, c (5);
![Page 71: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/71.jpg)
Fiduccia-Mattheyses: Exemplo
a
hgfe
dc
bO nó ainda não movido na Partição1 com maior ganho é b.
0
-1
0
Nós movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f, c (5); b
![Page 72: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/72.jpg)
Fiduccia-Mattheyses: Exemplo
a
hgfe
dc
bExiste um empate entre nós na Partição2. Escolhemos um e tentamos movê-lo para a Partição1. Todos os seus vizinhos são nós movidos, portanto não precisa recomputar os ganhos.
Após essa tentativa de troca, o tamanho do corte é 7.
-1
0
Nós movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f, c (5); b, e (7);
![Page 73: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/73.jpg)
Fiduccia-Mattheyses: Exemplo
a
hgfe
dc
bO nó ainda não movido na Partição1 com maior ganho é a.
0
Nós movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f, c (5); b, e (7); a
![Page 74: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/74.jpg)
Fiduccia-Mattheyses: Exemplo
a
hgfe
dc
bO nó ainda não movido na Partição2 com maior ganho é h.
O tamanho de corte na ultima tentativa de troca é 8.
Nós movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f, c (5); b, e (7); a, h (8)
![Page 75: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/75.jpg)
Fiduccia-Mattheyses: Exemplo
a
hgfe
dc
bDepois que tentamos mover todos os nós, percorremos a sequência de trocas e fixamos a troca que resultou menor corte. Então, fazemos essa troca permanente e deletamos todas as tentativas posteriores.
Isso é o final do primeiro passo de melhoria.
Nós movidos (e tamanho do corte depois) :
nenhum (8); g, d (4); f, c (5); b, e (7); a, h (8)
![Page 76: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/76.jpg)
Fiduccia-Mattheyses: Exemplo
a
hgfe
dc
bFazemos o processo novamente começando com novo tamanho de corte igual a 4.
Neste caso, o segundo passo de melhoramento não melhora a solução e o algoritmo então para com tamanho de corte igual a 4.
![Page 77: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/77.jpg)
Aplicações
Redes: dividir a rede em pequenos clusters para maximizar a quantidade de comunicações locais e minimizar a conectividade entre os clusters.
Computação paralela: um problema de partição do conjunto de vértices de um grafo em p subconjuntos, onde o grafo representa uma malha de elementos finitos e p é o número de processadores disponíveis. Tal partição precisa levar em conta o balanceamento da carga de trabalho dos processadores bem como a a minimização dos custos de comunicação entre processadores.
Localização de facilidades: localização de k hospitais em uma cidade de forma que ninguém more o mais longe que o necessário do hospital mais próximo
Exemplos de aplicação
![Page 78: Computação Científica Combinatória](https://reader036.vdocuments.net/reader036/viewer/2022062517/56813e30550346895da8123b/html5/thumbnails/78.jpg)
http://www.eecs.berkeley.edu/~demmel/cs267/lecture18/lecture18.html