Algoritmo clique maximo - Analise de Algoritmos

17
Algoritmo Clique Máximo

description

Algoritmo clique maximo - Analise de Algoritmos, definição, exemplos e teoria e razão de aproximação.

Transcript of Algoritmo clique maximo - Analise de Algoritmos

Page 1: Algoritmo clique maximo  - Analise de Algoritmos

Algoritmo CliqueMáximo

Page 2: Algoritmo clique maximo  - Analise de Algoritmos

O que é uma Clique?

•Uma clique de um grafo G é um subgrafo completo de G.

Page 3: Algoritmo clique maximo  - Analise de Algoritmos

O que é uma Clique Máxima?

•Uma clique máxima é uma clique com a maior quantidade de vértices possível.

Page 4: Algoritmo clique maximo  - Analise de Algoritmos

O Problema da Clique Máxima

•O problema da Clique Máxima é encontrar, a partir de um grafo G, a clique de maior tamanho. •O tamanho (número de vértices) da maior clique de G é chamado número de clique, ω(G).

Page 5: Algoritmo clique maximo  - Analise de Algoritmos

Dificuldades do Problema

•O Problema da Clique Máxima é um problema importante de otimização combinatória

Page 6: Algoritmo clique maximo  - Analise de Algoritmos

Aplicações

•Telecomunicação

•Bioinformática▫Análise de DNA e RNA

analisando e comparando proteínas e compostos menores através de grafos e cliques

Page 7: Algoritmo clique maximo  - Analise de Algoritmos

Aplicações

•Química Computacional▫Emparelhamento de moléculas

Hidrocarbonetos conhecidos como alcanos tem fórmula química CpH2p+2, onde C representa moléculas de carbono e H de hidrogênio.

Os vértices que incidem apenas uma arestra são os átomos de Hidrogênio.

Page 8: Algoritmo clique maximo  - Analise de Algoritmos

Exemplo prático

•Suponha que, em um laboratório farmacêutico, seja necessário dimensionar o depósito de substâncias composto por alguns refrigeradores, tendo em mãos uma lista de pares de substâncias que não podem ser armazenadas em um mesmo refrigerador. Assim, o clique máximo do grafo formado por tais incompatibilidades é um limitante inferior para a quantidade de refrigeradores necessários para armazenar todas as substâncias.

Page 9: Algoritmo clique maximo  - Analise de Algoritmos

Algoritmo Força Bruta

•Pseudo Código

clique_maxima_exato(Grafo g): todosConjuntos <- todasCombinacoes(g.Vertices) maxClique <- {} para cada conjunto s de todos Conjuntos

se (formaClique(s) && (s.tamanho > maxClique.tamanho)

maxClique <- s retorna maxClique

Page 10: Algoritmo clique maximo  - Analise de Algoritmos

•Pseudo Código + Análise (n = |V|)

clique_maxima_exato(Grafo g): todosConjuntos <- todasCombinacoes(g.Vertices) maxClique <- {} para cada conjunto s de todos Conjuntos

se (formaClique(s) && (s.tamanho > maxClique.tamanho)

maxClique <- s retorna maxClique

Algoritmo Força Bruta

Page 11: Algoritmo clique maximo  - Analise de Algoritmos

•Pseudo Código + Análise

clique_maxima_exato(Grafo g): todosConjuntos <- todasCombinacoes(g.Vertices) O(2N)maxClique <- {} para cada conjunto s de todos Conjuntos

se (formaClique(s) && (s.tamanho > maxClique.tamanho)

maxClique <- s retorna maxClique

Algoritmo Força Bruta

Page 12: Algoritmo clique maximo  - Analise de Algoritmos

•Pseudo Código + Análise

clique_maxima_exato(Grafo g): todosConjuntos <- todasCombinacoes(g.Vertices) O(2N)maxClique <- {} para cada conjunto s de todos Conjuntos O(2N)

se (formaClique(s) && (s.tamanho > maxClique.tamanho)

maxClique <- s retorna maxClique

Algoritmo Força Bruta

Page 13: Algoritmo clique maximo  - Analise de Algoritmos

•Pseudo Código + Análise

clique_maxima_exato(Grafo g): todosConjuntos <- todasCombinacoes(g.Vertices) O(2N)maxClique <- {} para cada conjunto s de todos Conjuntos O(2N)se (formaClique(s) && (s.tamanho > maxClique.tamanho) O(N²)

maxClique <- s retorna maxClique

Algoritmo Força Bruta

Page 14: Algoritmo clique maximo  - Analise de Algoritmos

•Pseudo Código + Análise

clique_maxima_exato(Grafo g): todosConjuntos <- todasCombinacoes(g.Vertices) O(2N)maxClique <- {} para cada conjunto s de todos Conjuntos O(2N)se (formaClique(s) && (s.tamanho > maxClique.tamanho) O(N²)

maxClique <- s retorna maxClique

Algoritmo Força Bruta

Total : O(2^n *n^2)

Page 15: Algoritmo clique maximo  - Analise de Algoritmos

Algoritmo Aproximado

•Pseudo Código

clique_maxima_aproximada(Grafo g):conjuntoOrdenadoGrau <- ordenaVertice(V) maxClique <- conjuntoOrdenadoGrau(1)para cada vertice vi de i=2 até N

se (formaClique(vi, maxClique))maxClique = maxClique U vi

retorna maxClique

Page 16: Algoritmo clique maximo  - Analise de Algoritmos

Algoritmo Aproximado

•Pseudo Código + Análise (n = |V|)

clique_maxima_aproximada(Grafo g):conjuntoOrdenadoGrau <- ordenaVertice(V) O(nlogn)maxClique <- conjuntoOrdenadoGrau(1) para cada vertice vi de i=2 até N O(n)

se (formaClique(vi, maxClique)) O(n²)

maxClique = maxClique U viretorna maxClique Total : O(n³)