Transcript CC/EC/PPGI/UFES
Coloração
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
• • •
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
CC/EC/PPGI/UFES
• – –
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
CC/EC/PPGI/UFES
Número cromático (χ(G))
• Um grafo que requere
k
cores diferentes para a sua coloração própria e nenhuma a menos possui número cromático χ(G) =
k
b
3 cromático
a c e f d Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Exemplos de aplicação
• primeira versão alocação de n professores a m turmas nos h horários disponíveis na escola. programação de horários de grades escolares: vértice aresta aula de um professor as aulas ligadas pela aresta não podem ser realizadas no mesmo horário cor 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
CC/EC/PPGI/UFES
4 5 6 7 1 2 3
Exemplo
Existem 7 disciplinas.
em comum: onde há * disciplina i e na disciplina j.
A tabela mostra a existência de alunos na célula ij, existe um aluno matriculado na
1
1 * 2 * * 3 * * * 4 * * 5 * * * 6 * * * * * 7 A matriz é simétrica: a parte abaixo da diagonal principal não foi preenchida
7 6 5 Horário Disc. 1 1 e 6 2 7 e 4 3 3 e 5 4 2 4 2 3 CC/EC/PPGI/UFES
6
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.
CC/EC/PPGI/UFES
Um exemplo de aplicação
• Problema dos exames: alocação de um grupo de alunos aos exames de recuperação que eles devem prestar em um colégio » Restrição: Duas disciplinas só podem ter exames realizados simultaneamente se não envolverem alunos em comum
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Um exemplo de aplicação
1 2 3 4 5 6 G H F I M x P x Q B x x x x x x x x x x x x 7 8 9 1 0 1 1 x x x x x 1 2 x 1 3 1 4 1 5 x 1 6 x x x x x x x x x x x
CC/EC/PPGI/UFES
Q B
Um exemplo de aplicação
M P I F H G
São necessários apenas dois horários para realização dos exames: um para os exames de Matemática, Geografia, Biologia e História e outro, para os exames de Português, Inglês, Física e Química.
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Como obter o número cromático?
NP-Completo difícil de resolver heurísticas nem sempre se garante a obtenção do menor número de cores
CC/EC/PPGI/UFES
Algoritmo de Coloração
k=0 Para 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 a b senão k = k+1 cor[v[j]] = k fim se fim Para d e g h c f j
Outro exemplo
Número de cores utilizadas: 4
Número cromático = 3
Algumas considerações...
Coloração de vértices: considerado em grafos simples e conexos Grafo nulo: 1 cromático Grafo com uma ou mais arestas: pelo menos 2 cromático Grafo com clique de tamanho k: pelo menos k cromático Grafo cíclico: 2-cromático ou 3-cromático
CC/EC/PPGI/UFES
Teorema
Toda árvore com dois ou mais vértices é 2-cromática Obs: toda árvore é 2-cromática mas nem todo grafo 2 cromático é uma árvore
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Teorema
Um grafo com pelo menos uma aresta é 2 cromático sss não possui ciclos com comprimento ímpar
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Corolário
Um grafo G é bipartido sss G é 2-cromático
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Teorema
Seja Δ o grau máximo dos vértices de G. Então χ(G) 1 + Δ
Exercício!
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Coloração de arestas
Exemplo de aplicação: Em um laboratório, uma lista de tarefas deve ser cumprida o mais rápido possível. Cada tarefa deve ser realizada por
f
uma dupla de integrantes do laboratório e necessita de 1 hora para ser executada. Qual é o menor número de horas
Menor número de cores para
necessárias para que todas as
e a d b c CC/EC/PPGI/UFES
Partição Cromática
• Um grafo G k cromático é p-partido sss k p.
• Em um grafo p-partido , vértices de uma mesma partição não são adjacentes.
• Um conjunto de vértices independente de um grafo é dito se não possui vértices adjacentes.
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Conjunto Independente de vértices
c g e a b d f
Exemplos: {a, c, d, g}, {e}, {a,d}
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Conjunto Independente de vértices
• Incompatibilidade de horários entre professores que devem aplicar prova final: deseja se obter o maior número possível de turmas que realizarão prova final de várias disciplinas em um mesmo horário. Turmas com alunos em comum que farão prova final de disciplinas diferentes não podem ser alocadas no mesmo horário.
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Conjunto independente maximal de vértices
Um conjunto independente maximal é um conjunto independente no qual não se pode adicionar mais nenhum vértice sem destruir a propriedade de independência .
c g
Exemplos: {a,c,d,g}, {b,f}
a b e d f Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Como achar um conjunto independente maximal?
• Comece com um vértice qualquer.
• Selecione os próximos vértices sempre testando se o conjunto ao qual eles estão sendo inseridos continua independente • Atenção: encontra-se um conjunto maximal e não o maior de todos!
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Matchings
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Exemplo
• Sejam a1, a2, a3 e a4 candidatos a preencher 6 vagas p1, p2, p3, p4, p5 e p6 de uma empresa. A qualificação de cada candidato o possibilita a se candidatar para um certo subconjunto de vagas, conforme a figura a seguir:
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
É possível empregar todos os candidatos em posições nas quais eles são qualificados?
Exemplo
a1 a2 a3 a4 p1 p2 p3 p4 Qual é o número máximo de posições que podem
Problema de
Matching
de candidatos?
Teoria dos Grafos (INF 5037/INF2781) p5 p6 CC/EC/PPGI/UFES
Matching
• Um matching em um grafo é um subconjunto de arestas não adjacentes. Uma única aresta já é considerada um matching.
• Um matching maximal é um matching no qual nenhuma aresta a mais pode ser adicionada sem ferir a propriedade de matching
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
a d b c
Exemplos
a d b c a d b c Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Exemplo de aplicação
Em um laboratório, cada tarefa de uma lista de tarefas especificadas, deve ser realizada por uma dupla de integrantes do laboratório e necessita de 1 hora para ser executada. Qual é o maior número de tarefas que podem ser executadas em um mesmo horário?
f e a d b c CC/EC/PPGI/UFES
Matching Perfeito
• Um matching perfeito é um matching no qual todo vértice do grafo é um extremo de algum elemento do matching • Nem todo grafo contém um matching perfeito:
a b e d c Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Observação
Todo matching perfeito é maximal mas nem todo matching maximal é perfeito
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Matching
completo
• Definição válida para grafos bipartidos • Em um grafo bipartido com subconjuntos de vértices V 1 e V 2 , um matching completo de V 1 em V 2 é um matching no qual existe uma aresta incidente a cada aresta de V 1 .
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Observação
um matching completo é o maior matching maximal mas um matching maximal pode não ser completo
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
a1 a2 a3 a4
Exemplo
p1 p2 p3 p4 p5 p6 Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Condições para existência de um matching completo
• |V1| |V2|; • todo subconjunto de r vértices em V1 deve ser adjacente a pelo menos r vértices em V2, para r = 1, 2, ..., |V1|.
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Problema de representantes distintos
Cinco senadores (s1, s2, s3, s4 e s5) são membros de três comitês (c1, c2 e c3)
Um membro diferente de cada comitê deve participar de uma comissão geral. É possível realizar esse matching?
c1 c2 c3 s1 s2 s3 s4 s5 Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Teorema
Em um grafo bipartido, se existe um inteiro positivo m tal que d(v1) ≥ m ≥ d(v2) , com v1 de V1 e v2 de V2, então existe um matching completo de V1 para V2
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Cobertura de vértices
• Um conjunto de vértices K de V é uma cobertura de G se toda aresta de G possui pelo menos um extremo em K • Cobertura mínima: aquela que possui o menor número possível de vértices • Aplicações: – Vigilância: menor número possível de câmeras de segurança em lugares públicos.
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Exemplo
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES
Observações
• Se K é uma cobertura de vértices e M um matching de G então K contém pelo menos um extremo de cada aresta de M • Para quaisquer K e M em G tem-se |M| |K|
Teoria dos Grafos (INF 5037/INF2781) CC/EC/PPGI/UFES