500 likes | 651 Views
Parte 4. Teoria da complexidade. 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}. Teoria da complexidade. Instância: par {F,c}
E N D
Parte 4 Teoria da complexidade
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} Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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 x0 • 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. Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
Teoria da complexidade MIN MAX • 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 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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)) Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
Exemplo: TSP 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 • PD PO: algoritmo TSPDEC(n,c,L) para problema de decisão Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
Exemplo: TSP • 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) Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 10
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 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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) Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
Classe 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) P NP P = NP ? P NP? Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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! Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
Classe NP x1=0 x1=1 x2=1 x2=0 x2=1 x2=0 ... ... ... sim não sim não • Exemplo: existe x {0,1}n satisfazendo A·x b? para j =1até n faça go to both L1, L2 L1: xj← 0 go to L3 L2: xj←1 L3: continue se A·x bentão “SIM” senão “NÃO” Ax b? Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
Reduções polinomiais algoritmo polinomial para A alg. pol. B algoritmo polinomial para B alg. pol. A ??? alg. pol. B : 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 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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. Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
Exemplos: problemas L=4: sim L=3: não L=4: sim L=3: não • 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? • Coloração: existe uma coloração utilizando no máximo L cores ? Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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? Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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 =1até 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 seexiste um ciclo visitando todos os nós de G’ com comprimento igual a n Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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. Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
Conjunto independente e cobertura por vértices VC CI VC(G,k) G’ ←G k’ ← |V| - k retornar a resposta de IS(G’,k’) Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
Clique 1 2 3 6 5 4 1 2 3 6 5 4 • 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) VC IS clique Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 24
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 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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. Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
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. Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro
Teorema: 3-SAT é NP • 3-SAT: cada cláusula tem exatamente 3 literais • Ci: 3 literais • Ci: 2 literais • Ci: 1 literal + ↔ · ↔ Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 28
Teorema: 3-SAT é NP • Ci: + 3 literais Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 29
Clique é NP-completo? • dados um grafo G e um inteiro L, G tem uma clique com L nós? • Clique NP-completo • demonstração • Clique NP-completo • 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) Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 30
d 0 0 0 d 0 0 0 0 0 0 d 0 0 0 d 0 0 0 d 0 0 0 d 0 d 0 0 0 d 0 0 d 0 0 1 d 0 0 1 0 0 1 d 0 0 1 d 0 0 1 d 0 0 1 d 0 d 0 1 0 d 0 1 d 0 1 1 d 0 1 1 d 0 1 1 0 1 0 d 0 1 0 d 0 1 1 d 0 1 1 d 0 d 1 0 0 d 1 0 d 1 0 0 d 1 0 0 1 0 0 d 1 0 0 d 1 0 0 d 1 0 0 d 1 d 0 0 1 d 0 0 d 1 0 1 d 1 0 1 1 0 1 d 1 0 1 d 1 0 1 d 0 d 1 1 0 d 1 1 1 0 1 d 1 0 1 d 1 0 1 d d 1 1 0 d 1 1 0 1 1 0 d 1 1 0 d 1 1 0 d 1 1 0 d 1 d 1 0 1 d 1 0 d 1 1 1 d 1 1 1 1 1 1 d 1 1 1 d 1 1 1 d 1 1 1 d 1 d 1 1 1 d 1 1 1 d 1 1 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 31
Clique é NP-completo? • atribuição parcial de valores • compatibilidade entre duas APVs (1 d 0 d) (d 1 0 1) • V: 7 nós por cláusulas (APVs viáveis =1) • arestas: APVs compatíveis Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 32
Clique é NP-completo? • | 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 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 33
Clique é NP-completo • 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 } Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 34
Clique é NP-completo (x2, 2) ( x3, 2) ( x1, 2) (x1, 1) (x3, 3) Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 35
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 ? Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 36
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 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 37
TSP é NP-completo ? u’ u A v’ v u’ u z4 z1 z2 z3 v’ v u’ u u’ u v’ v’ v v Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 38
TSP é NP-completo ? u1 u1 u2 u2 u3 u3 u4 u4 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 39
TSP é NP-completo ? u1 u2 B u3 u4 u1 u1 u2 u2 u3 u3 u4 u4 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 40
A B A A A A B A A A A B Este circuito hamiltoniano corresponde a: t(x1)=true t(x2)=false t(x3)=false Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 41
TSP é NP-completo • parte 2 da demonstração • hamiltoniano circuito 3-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. Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 42
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! Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 43
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 Co-NP Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 44
Co-NP CH TSP P=NP? NP=co-NP? Co-NP NP CH TSP Co-NP-completo NP-completo Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 45
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 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 46
Classes de problemas CoNP NP NP-Completos complementos NP-Completos P Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 47
PSPACE PSPACE-completos PSPACE CoNP NP NP-Completos complementos NP-Completos P Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 48
A é NP-completo. E daí ? algoritmos aproximativos algoritmos probabilísticos casos especiais heurísticas busca local Algoritmos exatos não-polinomiais PSPACE Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 49
L : tamanho do problema L’: maior inteiro na instância Complexidade é O(P(L, L’)) Exemplo: KS O(b n) Algoritmos pseudopolinomiais 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 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 50