View
112
Download
6
Category
Preview:
Citation preview
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) – 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)
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.
Pesquisa em CCC
rigor teórico + impacto prático
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
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
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
A construção de um algoritmo de soluçãoalgoritmo de solução é profundamente influenciada pelo
modelo utilizado.
Problemas e GestãoProblemas e Gestão
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
Tipos de Problemas:
Decidíveis Não Decidíveis
Problemas e GestãoProblemas e Gestão
Tipos de Problemas Decidíveis:
Decisão Localização Otimização
Problemas e GestãoProblemas e Gestão
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
SistemasSistemas são unidades conceituais ou físicas, compostas de partes interrelacionadas, interatuantese interdependentes
O Modelo SistêmicoO Modelo Sistêmico
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
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
osEsquemátic
Lógicos
sMatemático
Abstratos
sGeométrico
Físicos Concretos
Modelos
ClassificaçãoClassificação
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
Teoria de Utilidade Teoria de Probabilidade Pesquisa Operacional
Teoria da DecisãoTeoria da Decisão
n
gj
hi
x
mjxg
mixh
aSujeito
xfMinimizar
,...,10)(
,...,1,0)(
:
)(
f:n h:ng:n
Modelo de OtimizaçãoModelo de Otimização
Programação Linear Programação Não-Linear Programação Inteira
Programação MatemáticaProgramação Matemática
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
Os modelos quantitativos não tomam as decisões, mas as tornam muito
mais claras e fáceisclaras e fáceis
ModelosModelos
0,0
18023
20
10
60
40
:asujeito
3Maximizar)(
21
21
21
2
2
1
21
xx
xx
xx
x
x
x
xxzBS
ExemploExemplo
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
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
inteiras variáveis
20
5020
:asujeito
19Maximizar
21
21
21
21
x,x
xx
xx
xxz
Outro ExemploOutro Exemplo
inteiroe0
:asujeito
Maximizar)(
1
1
j
n
jjj
n
jjj
x
bxw
xczPK
O Problema da Mochila (PK)O Problema da Mochila (PK)
njx
bxw
xczPKI
j
n
jjj
n
jjj
,...,1}1,0{
:asujeito
Maximizar)(
1
1
O Problema da Mochila O Problema da Mochila UnidimensionalUnidimensional
16070605541
:asujeito
1412107Minimizar
4321
4321
xxxx
xxxxz
ExemploExemplo
Á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
Zxx
xx
xx
xxz
21
21
21
21
,
4595
6
:asujeito
85Maximizar
Branch-and-BoundBranch-and-Bound
34
152
xou41
4
152
x
x1 =9
4x2 =
15
4Z=
1
441
Disjuntiva
Solução Contínua
Branch-and-BoundBranch-and-Bound
x2
x1O
z=5x1 +8x2
5x1 + 9x2 =45
x1 + x2 =6
Soluções Inteiras
AB
C
Solução GráficaSolução Gráfica
x2
x1O
A
B
C
(P2 )
(P1 )
Resultado da Divisão (Branch)Resultado da Divisão (Branch)
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
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
Problemas de
Interesse
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
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
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
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
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.
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
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
Matemática Discreta/ Grafos CIn/UFPE
46
ca b
hg ji
ed f
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
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
É 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
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
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
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
Implementação disponível
http://www.geocities.com/dharwadker/tevet/isomorphism/
• Reconhecimento de imagens
• Problema de redução de banda de matrizes esparsas
Exemplos de aplicação
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.
http://ciprian-zavoianu.blogspot.com/2009/01/project-bandwidth-reduction.html
• 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
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
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.
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
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
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
Métodos de resolução Métodos Exatos
Branch and bound
Solver Cplex
Modelo Cplex Resposta
Complexidade: NP-Difícil
Métodos de Resolução
Métodos heurísticos
Spectral PartitioningKernighan and LinFiduccia-MattheysesMultilevel Graph PartitioningGenetic Algorithms Entre outros
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
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);
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,
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);
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
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);
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
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);
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
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)
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)
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.
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
http://www.eecs.berkeley.edu/~demmel/cs267/lecture18/lecture18.html
Recommended