A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Teoria da complexidade

Apresentações semelhantes


Apresentação em tema: "Teoria da complexidade"— Transcrição da apresentação:

1 Teoria da complexidade
Parte 4 Teoria da complexidade

2 Teoria da complexidade
Motivação : problema x algoritmo classificação Técnicas Referências básicas: Cook(1971), Karp(1972) Problemas de: Decisão Avaliação Otimização Problema  {instâncias} Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

3 Teoria da complexidade
Instância: par {F,c} F = {soluções viáveis} função de custo c: F  R F e c são dados implicitamente atraves de dois algoritmos Algoritmo Af: dados objeto f e conjunto S de parâmetros, determinar se f  F Algoritmo Ac: dados solução viável f e conjunto Q de parâmetros, calcular c(f) Instância: representação dos parâmetros S e Q Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

4 Teoria da complexidade
Caixeiro viajante S: n Q: matriz cij Af: verifica se f é um ciclo hamiltoniano Ac: cálculo do custo de um ciclo Clique de cardinalidade máxima S: G Q: Ø Af: verifica se f é uma cique Ac: cálculo de |f| Programação linear S: A,b Q: c Af: verifica se A·x=b e x0 Ac: cálculo de c·x Problema de otimização: Dadas as representações dos conjuntos S e Q para os algoritmos Af e Ac, obter a solução viável ótima. Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

5 Teoria da complexidade
Problema de otimização dados S e Q, obter a solução ótima Problema de avaliação dados S e Q, obter o custo da solução ótima Problema de decisão dados S e Q, assim como um inteiro L, existe uma solução viável f tal que c(f)  L? (pergunta que espera uma resposta sim ou não) Toda a teoria da complexidade se baseia nos problemas de decisão. PD não é mais difícil do que PA PA não é mais difícil do que PO Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

6 Teoria da complexidade
Hipotése: O custo Z* de uma solução ótima é um número inteiro cujo logaritmo é limitado por um polinômio Então: algoritmo PD  algoritmo PA Pesquisa binária no intervalo [O, Z*] log Z* iterações = O(P(L)) PD polinomial  PA polinomial PA  PO não existe regra geral MIN MAX Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

7 Exemplo: clique máxima
Dado um grafo, obter uma clique de cardinalidade máxima PA: existe algoritmo cliquesize(G) de complexidade C(n) Algoritmo MAXCLIQUE para PO? Complexidade T(n)? cliquesize(G) = cliquesize(G(v)) ↔ v clique máxima procedure MAXCLIQUE(G) se |G| = 0 então retornar Ø senão seja um nó v tal que cliquesize(G) ← cliquesize(G(v)), onde G(v) é o subgrafo de G formado por v e todos os nós a ele adjacentes retornar {v}  MAXCLIQUE(G(v)-v) fim MAXCLIQUE Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

8 Exemplo: clique máxima
T(0) = O(1) T(n) = (n+1) · C(n) + T(n-1) + O(n) T(n) = [(n+1)+n+...+1] . C(n) + [O(n)+O(n-1)+...+O(1)] T(n)=O(n2 · C(n)) Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

9 Exemplo: TSP PD  PO: algoritmo TSPDEC(n,c,L) para problema de decisão
procedure TSPOPT LB ← 0 UB ← n·max{cij} enquanto UB ≠ LB faça se TSPDEC = “sim” então UB ← senão LB ← OPT ← UB para i = 1 até n faça para j = 1 até n faça tmp ← cij cij ←  se TSPDEC(n, c, OPT) = “não” então cij ← tmp fim TSPOPT Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

10 Exemplo: TSP 10 Número de iterações da busca binária:
Número de iterações da segunda fase: n2 C(n) = complexidade de TSPDEC(n,c,L) Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 10

11 Classe P Problemas de decisão: resposta Sim ou Não
Classe P: classe de problemas de decisão para os quais são conhecidos algoritmos polinomiais Exemplos (problemas de decisão): Caminho mais curto Árvore de peso mínimo Determinar se um grafo é planar Programação linear Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

12 Classe NP Classe NP (definição 1): o problema de decisão A pertence à classe NP se existe um algoritmo polinomial Af tal que qualquer que seja uma instância “sim” de A, então existe um objeto (certificado, proposta de solução) de tamanho polinomial que leva a resposta “sim” pela aplicação do algoritmo Af. Clique: {lista de nós candidatos} TSP: {permutação de n objetos} PL 0/1: {lista de variáveis=1} A definição não se preocupa com a forma pela qual o certificado é construído (certificado fornecido por um oráculo) Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

13 Classe NP P  NP P = NP ? P  NP?
O processo de “justificar” uma resposta (SIM/NÃO) a um problema de decisão pode ser decomposto em duas etapas: Fornecer uma justificativa (certificado, proposta) Verificar se a justificativa é satisfatória Exemplo: TSP SIM  ciclo H de comprimento  L NÃO  lista de todos ciclos (>L) Classe NP: etapa de verificação das respostas “sim” pode ser feita em tempo polinomial algoritmo + entrada (problema+certificado) Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

14 Classe NP Classe NP (definição 2): o problema de decisão A pertence à classe NP se existe um algoritmo não-determinístico polinomial para sua solução Algoritmo não-determinístico: todas as instruções, mais go to both L1, L2 ou escolha (a, b) Cálculos em paralelo: O número de ramos pode crescer exponencialmente Se um ramo leva à resposta “sim”: SIM Se todos os ramos levam à resposta “não”: NÃO Ferramenta irrealista, teórica, ... ...mas poderosa! Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

15 Classe NP Exemplo: existe x  {0,1}n satisfazendo A·x  b? ... não sim
para j = 1 até n faça go to both L1, L2 L1: xj ← 0 go to L3 L2: xj ← 1 L3: continue se A·x  b então “SIM” senão “NÃO” Ax  b? Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

16 Classe NP Instâncias “SIM”: certificado polinomial (um ramo)
Instâncias “NÃO”: podem não ter certificado polinomial (todos ramos) Um algoritmo não-determinístico é polinomial se: ele resolve o problema e o número de operações realizados pela primeiro ramo a levar à resposta “SIM” é polinomial Analogia com a propriedade de certificado sucinto: instâncias “SIM” têm um certificado sucinto, instâncias “NÃO” podem não ter Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

17 Reduções polinomiais : O problema A se reduz polinomialmente ao problema B se existe um algoritmo para resolver A que utiliza um número polinomial de vezes um algoritmo para resolver B  alg. pol. B  algoritmo polinomial para A  algoritmo polinomial para B  alg. pol. A ??? Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

18 Transformações polinomiais
: O problema A se transforma polinomialmente no problema B se existe um algoritmo polinomial para construir uma instância de B a partir de cada instância de A, de tal modo que se a instância de A leva a uma resposta “SIM” para A, então a instância transformada de B leva a uma resposta “sim” para B. Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

19 Exemplos: problemas Existe uma clique de cardinalidade maior ou igual a L? Recobrimento por nós: existe um recobrimento por nós das arestas do grafo com cardinalidade menor ou igual a L? L=4: sim L=3: não Coloração: existe uma coloração utilizando no máximo L cores ? L=4: sim L=3: não Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

20 Exemplos: problemas Caixeiro viajante: existe um ciclo hamiltoniano de comprimento menor ou igual a L? Conjunto estável: existe um subconjunto estável de cardinalidade maior ou igual a L? Ciclo hamiltoniano: o grafo possui um ciclo hamiltoniano? L=2: sim L=3: não Não existe algoritmo polinomial conhecido: não há ou não se conhece? Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

21 Ciclo hamiltoniano CH: dado um grafo G=(V,E), existe um ciclo (hamiltoniano) que visita cada um de seus vértices exatamente uma vez? CH  TSP construir um grafo G’=(V’, E’) com V’=V n ← |V| para i = 1 até n faça para j = 1 até n faça se (i, j)  E então w(i, j) ← 1 senão w(i, j) ← 2 retornar resposta de TSP(G’, n) G tem um ciclo hamiltoniano se e somente se existe um ciclo visitando todos os nós de G’ com comprimento igual a n Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

22 Conjunto independente e cobertura por vértices
VC (cobertura por vértices): dados um grafo G=(V,E) e um inteiro k  |V|, existe um subconjunto S  V com no máximo k vértices tais que qualquer aresta de E tem pelo menos uma extremidade em S? Cobertura trivial: S=V Conjunto de nós S é independente  qualquer par de nós i,j  S, nao existe arco (i, j)  E IS (conjunto independente): dados um grafo G=(V,E) e um inteiro k  |V|, existe um subconjunto independente formado por k nós? Se S é uma cobertura por vértices, então V-S é um conjunto independente Prova: suponha que V-S não seja um conjunto independente, ou seja, existe um arco com ambas extremidades em V-S. Então, neste caso, S não seria uma cobertura. Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

23 Conjunto independente e cobertura por vértices
VC CI VC(G,k) G’ ← G k’ ← |V| - k retornar a resposta de IS(G’,k’) Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

24 Clique Dado um grafo G=(V,E) e um inteiro j  |V|, existe uma clique formada por j vértices? G’= grafo complementar de G IS(G,k) construir G’=(V’, E’) com V’=V e  (x, y)  E então (x, y) E’ retornar a resposta de clique(G’,k) 1 2 3 5 6 4 1 2 3 5 6 4 VC  IS  clique Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 24

25 Problemas NP-completos
Um problema A é NP-completo se: A  NP  B NP, Problemas de decisão apenas! Em geral, mostrar que um outro problema NP-completo C é tal que É necessário mostrar que um (primeiro) problema é NP-completo Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

26 Problema de satisfabilidade (SAT)
Cook 1971: Problema de satisfatibilidade SAT é NP-completo Entrada: expressão booleana na forma normal conjuntiva Saída: esta expressão pode ser satisfeita? (SIM/NÃO) Idéia da demonstração: mostrar que qualquer problema que pode ser resolvido por um algoritmo não-determinístico polinomial equivale a determinar se uma expressão booleana pode ser satisfeita. Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

27 Classe NP Classe NP (definição 3): Um problema de decisão A pertence à classe NP se pode ser transformado em tempo polinomial em um problema de programação inteira Demonstrar que A é NP- completo: Demonstarr que A  NP Demonstrar que  B NP–completo tal que ou que B é caso particular de A Base de todas as provas de NP-completude: o problema SAT é NP-completo. Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro

28 Teorema: 3-SAT é NP 28 + ↔  · ↔ 
3-SAT: cada cláusula tem exatamente 3 literais Ci: 3 literais Ci: 2 literais Ci: 1 literal + ↔  · ↔  Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 28

29 Teorema: 3-SAT é NP 29 Ci: + 3 literais Setembro 2004
Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 29

30 Clique é NP-completo? dados um grafo G e um inteiro L, G tem uma clique com  L nós? Clique  NP-completo demonstração 3-SAT clique associar a cada expressão booleana F com 3 literais por cláusula um grafo G (m cláusulas, n variáveis) mostrar que G tem uma clique de cardinalidade k  F pode ser satisfeita (k=m) Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 30

31 0 0 0 d 0 d 0 0 d 0 0 0 0 0 0 d 0 1 1 d 1 0 0 d 0 d 0 0 0 d 1 0 1 d 0 0 0 d 1 1 0 0 1 d 0 1 0 d d 0 0 0 d 0 0 1 d 1 0 0 1 1 1 d d 1 1 1 0 d 0 1 d 1 0 1 1 1 0 d d 0 1 1 1 0 1 d 1 d 1 0 d 1 1 0 1 d 1 1 0 0 1 d d 0 0 1 0 d 0 1 d 0 1 1 0 1 1 d 0 d 1 0 0 1 0 d d 0 1 1 1 0 1 d 1 d 1 1 1 0 0 d 1 d 0 0 d 1 0 0 0 d 1 1 d 1 0 1 1 0 1 d 1 1 0 d 1 d 1 0 d 1 1 0 1 1 1 d d 1 1 1 1 d 1 1 Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 31

32 Clique é NP-completo? 32 atribuição parcial de valores
compatibilidade entre duas APVs (1 d d)  (d ) V: 7 nós por cláusulas (APVs viáveis =1) arestas: APVs compatíveis Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 32

33 Clique é NP-completo? 33 | clique | = m  um nó por coluna
APVs compatíveis provém da mesma atribuição completa de t atribuição completa t satisfaz todas as cláusulas (porque a única que não leva a um valor =1 é omitida) F=1 F=1  cada restrição de t às variáveis de cada cláusula é um nó da coluna  compatíveis 2 a 2  | clique | = m 3-SAT clique Clique é NP-completo Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 33

34 Clique é NP-completo 34 3-SAT clique cada literal em F nó de G
arestas de G: pares de literais podem receber o valor 1 simultaneamente F G=[N, A] N={(x, i): x é literal na cláusula i} A={[(x,i), (y, j)] : x ≠ y,  x ≠ y, i ≠ j } Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 34

35 Clique é NP-completo 35 ( x3, 2) (x1, 1) (x3, 3) ( x1, 2) (x2, 2)
Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 35

36 TSP é NP-completo? dados um grafo G(V,E) e um inteiro L=|V|, constrói-se uma instância de |V| cidades tomando-se dij=1 se [vi, vj]  E, caso contrário 2. existe um tour de tamanho L ou menor  existe um circuito hamiltoniano em G TSP  NP-completo ? Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 36

37 TSP é NP-completo? demonstrar que se pode construir um grafo G=(V, E) tal que G tem um circuito hamiltoniano  F é satisfatível. parte 1 da demonstração hamiltoniano circuito  NP-completo 3-SAT hamiltoniano circuito dado uma fórmula booleana F consistindo de m cláusulas C1, …Cm e envolvendo n variáveis x1,…xn Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 37

38 TSP é NP-completo ? 38 u’ u v v’ A u u’ z1 z2 z3 z4 v v’ u u’ u u’ v
Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 38

39 TSP é NP-completo ? 39 u1 u1 u2 u2 u3 u3 u4 u4 Setembro 2004
Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 39

40 TSP é NP-completo ? 40 u1 u1 u1 u2 u2 u2 B u3 u3 u3 u4 u4 u4
Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 40

41 41 Este circuito hamiltoniano corresponde a: t(x1)=true t(x2)=false
B A Este circuito hamiltoniano corresponde a: t(x1)=true t(x2)=false t(x3)=false Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 41

42 TSP é NP-completo 42 parte 2 da demonstração
hamiltoniano circuito SAT arestas [uij, ui, j+1] para alguma cláusula Ci são utilizadas no circuito hamiltoniano  a correspondente [vk, wk] não é utilizado. Ou seja, o correspondente literal é falso. logo, como fazem parte do grafo B, nem todas as árvores são utilizadas no circuito hamiltoniano. Equivalentemente, a correspondente cláusula Ci é satisfeita. Como isto ocorre em todas as cláusulas, todas elas são satisfeitas e F é satisfatível. Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 42

43 Certificado para instâncias SIM!
Co-NP CH: Dado um grafo G, G é não hamiltoniano? CH  NP? Certificado? o problema Ā é o complemento de A se o conjunto de ocorrências que levam a uma resposta SIM para Ā levam à resposta NÃO para A TSP: n, D=(dij), L todo ciclo hamiltoniano tem comprimento > L? A: dado um grafo G, G é conexo? Ā: dado um grafo G, G não é conexo? A  P  Ā  P demonstração: A  P   algoritmo polinomial para resolver A  um algoritmo polinomial para Ā pode ser obtido, com a resposta NÃO onde o primeiro respondia SIM. A  P … Ā ? Certificado para instâncias SIM! Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 43

44 Co-NP 44 classe dos problemas cujo complemento NP
Teorema: Se o complemento de um problema NP-completo NP, então NP=co-NP de todos os problemas em NP, os NP-completos são aqueles cujos complementos menos provavelmente pertencem a NP. Inversamente, se o complemento de um problema de um problema de NP também pertencem a NP, isto é evidência de que este problema não é NP-completo Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 44

45 Co-NP 45 Co-NP NP Co-NP-completo NP-completo P=NP? NP=co-NP? CH CH TSP
Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 45

46 Problemas NP-difíceis
A é NP-difícil se  B  NP, e A não é demonstrado como pertencente a NP A é a versão “otimização” de um problema NP-completo PSPACE: classe de problemas que podem ser resolvidos em espaço limitado por um polinômio P  PSPACE NP  PSPACE P = PSPACE  P = NP P = PSPACE  P = NP X Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 46

47 P Classes de problemas 47 CoNP NP complementos NP-Completos
Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 47

48 P PSPACE 48 CoNP NP PSPACE-completos PSPACE complementos NP-Completos
Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 48

49 PSPACE 49 A é NP-completo. E daí ? algoritmos aproximativos
algoritmos probabilísticos casos especiais heurísticas busca local Algoritmos exatos não-polinomiais Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 49

50 Algoritmos pseudopolinomiais
L : tamanho do problema L’: maior inteiro na instância Complexidade é O(P(L, L’)) Exemplo: KS O(b n) Um problema é fortemente NP-completo se ele continua NP-completo mesmo se restrito a L’=P(L) para um certo polinômio P. Ex. 1: clique L’ = k  n=P(n) Ex. 2: TSP continua NP-completo mesmo se dij  n Ex. 3: KS b  n  O(n2) não é fortemente NP-completo Teorema: exceto P=NP, algoritmo pseudopolinomial para os problema fortemente NP-completos Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 50


Carregar ppt "Teoria da complexidade"

Apresentações semelhantes


Anúncios Google