Professional Documents
Culture Documents
Introduo
Problemas intratveis ou difceis so comuns na natureza e nas reas do conhecimento.
Problemas fceis: resolvidos por algoritmos polinomiais. Problemas difceis: somente possuem algoritmos exponenciais para resolv-los. A complexidade de tempo da maioria dos problemas polinomial ou exponencial. Polinomial: funo de complexidade O(p(n)), onde p(n) um polinmio. Ex.: algoritmos com pesquisa binria (O(log n)), pesquisa sequencial (O(n)), ordenao por insero (O(n2 )), e multiplicao de matrizes (O(n3 )). Exponencial: funo de complexidade O(cn ), c > 1.
Ex.: problema do caixeiro viajante (PCV) (O(n!)). Mesmo problemas de tamanho pequeno a moderado no podem ser resolvidos por algoritmos no-polinomiais.
Transparncias
Problemas N P-Completo
A teoria de complexidade a ser apresentada no mostra como obter algoritmos polinomiais para problemas que demandam algoritmos exponenciais, nem arma que no existem. possvel mostrar que os problemas para os quais no h algoritmo polinomial conhecido so computacionalmente relacionados. Formam a classe conhecida como N P. Propriedade: um problema da classe N P poder ser resolvido em tempo polinomial se e somente se todos os outros problemas em N P tambm puderem. Este fato um indcio forte de que dicilmente algum ser capaz de encontrar um algoritmo eciente para um problema da classe N P.
Caminho em um Grafo
Considere um grafo com peso nas arestas, dois vrtices i, j e um inteiro k > 0.
5 2 7 11 3 i 7 9 5 2 3 8 12 10 1 3 j 13
Colorao de um Grafo
Em um grafo G = (V, A), mapear C : V S, sendo S um conjunto nito de cores tal que se vw A ento c(v) = c(w) (vrtices adjacentes possuem cores distintas). O nmero cromtico X(G) de G o menor nmero de cores necessrio para colorir G, isto , o menor k para o qual existe uma colorao C para G e |C(V )| = k. O problema produzir uma colorao tima, que a que usa apenas X(G) cores. Formulao do tipo sim/no: dados G e um inteiro positivo k, existe uma colorao de G usando k cores? Fcil: k = 2. Difcil: k > 2. Aplicao: modelar problemas de agrupamento (clustering) e de horrio (scheduling).
Fcil: Existe um caminho de i at j com peso k?. H um algoritmo eciente com complexidade de tempo O(A log V ), sendo A o nmero de arestas e V o nmero de vrtices (algoritmo de Dijkstra). Difcil: Existe um caminho de i at j com peso k? No existe algoritmo eciente. equivalente ao PCV em termos de complexidade.
Ciclo de Hamilton
Ciclo de Hamilton: ciclo simples (passa por todos os vrtices uma nica vez). Caminho de Hamilton: caminho simples (passa por todos os vrtices uma nica vez). Exemplo de ciclo de Hamilton: 0 1 4 2 3 0. Exemplo de caminho de Hamilton: 0 1 4 2 3.
0 4 3 2 1
Existe um ciclo de Hamilton no grafo G? Fcil: Grafos com grau mximo = 2 (vrtices com no mximo duas arestas incidentes). Difcil: Grafos com grau > 2. um caso especial do PCV. Pares de vrtices com uma aresta entre eles tem distncia 1 e pares de vrtices sem aresta entre eles tm distncia innita.
10
11
Cobertura de Arestas
Uma cobertura de arestas de um grafo G = (V, A) um subconjunto A A de k arestas tal que todo v V parte de pelo menos uma aresta de A . O conjunto resposta para k = 4 A = {(0, 3), (2, 3), (4, 6), (1, 5)}.
0 1
Algoritmos No-Deterministas
Algoritmos deterministas: o resultado de cada operao denido de forma nica. Em um arcabouo terico, possvel remover essa restrio. Apesar de parecer irreal, este um conceito importante e geralmente utilizado para denir a classe N P.
5
Neste caso, os algoritmos podem conter operaes cujo resultado no denido de forma nica. Algorimo no-determinista: capaz de escolher uma dentre as vrias alternativas possveis a cada passo. Algoritmos no-deterministas contm operaes cujo resultado no unicamente denido, ainda que limitado a um conjunto especicado de possibilidades.
Uma cobertura de vrtices um subconjunto V V tal que se (u, v) A ento u V ou v V , isto , cada aresta do grafo incidente em um dos vrtices de V . Na gura, o conjunto resposta V = {3, 4, 5}, para k = 3. Dados um grafo e um inteiro k > 0 Fcil: h uma cobertura de arestas k?. Difcil: h uma cobertura de vrtices k?
12
13
Funo escolhe(C)
Algoritmos no-deterministas utilizam uma funo escolhe(C), que escolhe um dos elementos do conjunto C de forma arbitrria. O comando de atribuio X escolhe (1:n) pode resultar na atribuio a X de qualquer dos inteiros no intervalo [1, n]. A complexidade de tempo para cada chamada da funo escolhe O(1). Neste caso, no existe nenhuma regra especicando como a escolha realizada. Se um conjunto de possibilidades levam a uma resposta, este conjunto escolhido sempre e o algoritmo terminar com sucesso. Por outro lado, um algoritmo no-determinista termina sem sucesso se e somente se no h um conjunto de escolhas que indica sucesso.
14
15
Mquina No-Determinista
Uma mquina capaz de executar a funo escolhe admite a capacidade de computao no-determinista. Uma mquina no-determinista capaz de produzir cpias de si mesma quando diante de duas ou mais alternativas, e continuar a computao independentemente para cada alternativa. A mquina no-determinista que acabamos de denir no existe na prtica, mas ainda assim fornece fortes evidncias de que certos problemas no podem ser resolvidos por algoritmos deterministas em tempo polinomial, conforme mostrado na denio da classe N P-completo frente.
Pesquisa No-Determinista
Pesquisar o elemento x em um conjunto de elementos A[1 : n], n 1.
procedure PesquisaND (A, 1 , n) ; begin j escolhe(A,1 ,n) i f A[ j ] = x then sucesso else insucesso ; end;
Determina um ndice j tal que A[j] = x para um trmino com sucesso ou ento insucesso quando x no est presente em A. O algoritmo tem complexidade no-determinista O(1). Para um algoritmo determinista a complexidade (n).
16
17
Ordenao No-Determinista
Ordenar um conjunto A[1 : n] contendo n inteiros positivos, n 1.
procedure OrdenaND (A, 1 , n) ; begin for i := 1 to n do B[ i ] : = 0 ; for i := 1 to n do begin j escolhe(A,1 ,n) ; i f B[ j ] = 0 then B[ j ] : = A[ i ] else insucesso ; end; end;
Problema da Satisfabilidade
Considere um conjunto de variveis booleanas x1 , x2 , , xn , que podem assumir valores lgicos verdadeiro ou falso. A negao de xi representada por xi . Expresso booleana: variveis booleanas e operaes ou () e e (). (tambm chamadas respectivamente de adio e multiplicao). Uma expresso booleana E contendo um produto de adies de variveis booleanas dita estar na forma normal conjuntiva. Dada E na forma normal conjuntiva, com variveis xi , 1 i n, existe uma atribuio de valores verdadeiro ou falso s variveis que torne E verdadeira (satisfaa)? E1 = (x1 x2 ) (x1 x3 x2 ) (x3 ) satisfatvel (x1 = F , x2 = V , x3 = V ). A expresso E2 = x1 x1 no satisfatvel.
Um vetor auxiliar B[1:n] utilizado. Ao nal, B contm o conjunto em ordem crescente. A posio correta em B de cada inteiro de A obtida de forma no-determinista pela funo escolhe. Em seguida, o comando de deciso verica se a posio B[j] ainda no foi utilizada. A complexidade O(n). (Para um algoritmo determinista a complexidade (n log n))
18
19
Problema da Satisfabilidade
O algoritmo AvalND(E,n) verica se uma expresso E na forma normal conjuntiva, com variveis xi , 1 i n, satisfatvel.
procedure AvalND (E, n) ; begin for i := 1 to n do begin xi escolhe(true , false ) ; i f E(x1 , x2 , , xn ) = true then sucesso else insucesso ; end; end;
O algoritmo obtm uma das 2n atribuies possveis de forma no-determinista em O(n). Melhor algoritmo determinista: O(2n ). Aplicao: denio de circuitos eltricos combinatrios que produzam valores lgicos como sada e sejam constitudos de portas lgicas e, ou e no. Neste caso, o mapeamento direto, pois o circuito pode ser descrito por uma expresso lgica na forma normal conjuntiva.
20
21
N P P ou N P = P? - Conseqncias
Muitos problemas prticos em N P podem ou no pertencer a P (no conhecemos nenhum algoritmo determinista eciente para eles). Se conseguirmos provar que um problema no pertence a P, ento no precisamos procurar por uma soluo eciente para ele. Como no existe tal prova, sempre h esperana de que algum descubra um algoritmo eciente. Quase ningum acredita que N P = P. Existe um esforo considervel para provar o contrrio, mas a questo continua em aberto!
Acredita-se que N P P, pois para muitos problemas em N P, no existem algoritmos polinomiais conhecidos, nem um limite inferior no-polinomial provado.
22
23
Transformao Polinomial
Sejam 1 e 2 dois problemas sim/no. Suponha que um algoritmo A2 resolva 2 . Se for possvel transformar 1 em 2 e a soluo de 2 em soluo de 1 , ento A2 pode ser utilizado para resolver 1 . Se pudermos realizar as transformaes nos dois sentidos em tempo polinomial, ento 1 polinomialmente transformvel em 2 .
Dados de P1 Dados de P2 Soluo para P2 Soluo para P1
Esse conceito importante para denir a classe N P-completo. Para mostrar um exemplo de transformao polinomial, deniremos clique de um grafo e conjunto independente de vrtices de um grafo.
24
25
Clique de um grafo
Clique de um grafo G = (V, A) constitudo do subconjunto V V , tal que v, w V (v, w) A. Todo par de vrtices de V adjacente (V um subgrafo completo). Exemplo de cardinalidade 3: V = {3, 1, 4}.
26
27
Transformao Polinomial
Considere 1 o problema clique e 2 o problema conjunto independente de vrtices. A instncia I de clique consiste de um grafo G = (V, A) e um inteiro k > 0. A instncia f (I) de conjunto independente pode ser obtida considerando-se o grafo complementar G de G e o mesmo inteiro k. f (I) uma transformao polinomial: 1. G pode ser obtido a partir de G em tempo polinomial. 2. G possui clique de tamanho k se e somente se G possui conjunto independente de vrtices de tamanho k.
28
29
Transformao Polinomial
Se existe um algoritmo que resolve o conjunto independente em tempo polinomial, ele pode ser utilizado para resolver clique tambm em tempo polinomial. Diz-se que clique conjunto independente. Denota-se 1 2 para indicar que 1 polinomialmente transformvel em 2 . A relao transitiva (1 2 e 2 3 1 3 ).
30
31
32
33
Teorema de Cook
Existe algum problema em N P tal que se ele for mostrado estar em P, implicaria P = N P? Teorema de Cook: Satisfabilidade (SAT) est em P se e somente se P = N P. Ou seja, se existisse um algoritmo polinomial determinista para satisfabilidade, ento todos os problemas em N P poderiam ser resolvidos em tempo polinomial. A prova considera os dois sentidos: 1. SAT est em N P (basta apresentar um algoritmo no-determinista que execute em tempo polinomial). Logo, se P = N P, ento SAT est em P. 2. Se SAT est em P, ento P = N P. A prova descreve como obter de qualquer algoritmo polinomial no determinista de deciso A, com entrada E, uma frmula Q(A, E) de modo que Q satisfatvel se e somente se A termina com sucesso para E. O comprimento e tempo para construir Q O(p3 (n) log(n)), onde n o tamanho de E e p(n) a complexidade de A.
34
35
36
37
Classe N P-Intermediria
Segunda descrio tentativa do mundo N P, assumindo P = N P.
NP NPC NPI P
2 1 1 4 1 1 1 1 5 1 1 3 4 1 1 1 5 1 3 2 1 1 1 1 2 2
Existe uma classe intermediria entre P e N P chamada N PI. N PI seria constituda por problemas que ningum conseguiu uma reduo polinomial de um problema N P-completo para eles, onde N PI = N P - (P N P-completo).
Dado um grafo representando uma instncia do ciclo de Hamilton, construa uma instncia do PCV como se segue: 1. Para cidades use os vrtices. 2. Para distncias use 1 se existir um arco no grafo original e 2 se no existir. A seguir, use o PCV para achar um roteiro menor ou igual a V . O roteiro o ciclo de Hamilton.
38
39
Membros Potenciais de N PI
Isomorsmo de grafos: Dados G = (V, E) e G = (V, E ), existe uma funo f : V V , tal que (u, v) E (f (u), f (v)) E ? Isomorsmo o problema de testar se dois grafos so o mesmo. Suponha que seja dado um conjunto de grafos e que alguma operao tenha de ser realizada sobre cada grafo. Se pudermos identicar quais grafos so duplicatas, eles poderiam ser descartados para evitar trabalho redundante. Nmeros compostos: Dado um inteiro positivo k, existem inteiros m, n > 1 tais que k = mn? Princpio da criptograa RSA: fcil encontrar nmeros primos grandes, mas difcil fatorar o produto de dois deles.
40
41
Problemas Exponenciais
desejvel resolver instncias grandes de problemas de otimizao em tempo razovel. Os melhores algoritmos para problemas N P-completo tm comportamento de pior caso exponencial no tamanho da entrada. Para um algoritmo que execute em tempo proporcional a 2N , no garantido obter resposta para todos os problemas de tamanho N 100. Independente da velocidade do computador, ningum poderia esperar por um algoritmo que leva 2100 passos para terminar sua tarefa. Um supercomputador poderia resolver um problema de tamanho N = 50 em 1 hora, ou N = 51 em 2 horas, ou N = 59 em um ano. Nem um computador paralelo com um milho de processadores, (cada um sendo um milho de vezes mais rpido que o mais rpido existente) suciente para N = 100.
42
43
Para encontrar um ciclo de Hamilton, caso exista, devemos visitar os vrtices do grafo de outras maneiras. A rigor, o melhor algoritmo conhecido resolve o problema tentando todos os caminhos possveis.
44
45
A rvore de caminhamento :
0 1 2 3 4 6 2 5 6 2 5 4 6 2 3 5 4 5 3 6 2 4 6 2 1 4 6 1 2 3 4 2 1 6 2 1 3 2 1 3 5 4 3 1 2 6 2 1 3 5 2 1 3 1 2 6 4 3 5 5 3 1 2
5
0
O custo proporcional ao nmero de chamadas para o procedimento Visita. Para um grafo completo, (arestas ligando todos os pares de ns) existem N ! ciclos simples. Custo proibitivo.
46
47
5
0
48
49
50
51
4 3
3 4
Caminho timo para esta instncia: 0 1 2 5 3 4 0 (comprimento 58). Para a heurstica do vizinho mais prximo, se iniciarmos pelo vrtice 0, o vrtice mais prximo o 1 com distncia 3. A partir do 1, o mais prximo o 2, a partir do 2 o mais prximo o 4, a partir do 4 o mais prximo o 3, a partir do 3 restam o 5 e o 0. O comprimento do caminho 0 1 2 4 3 5 0 60.
52
53
54
55
que representa um problema de minimizao No caso de um problema de maximizao, a razo invertida. Em ambos os casos, RA (I) 1.
56
57
58
59
60
61
62
63
(a)
(b)
(c)
O algoritmo constri um caminho soluo para o PCV porque cada cidade visitada apenas uma vez, exceto a cidade de partida.
64
65
66
67
Todo vrtice parte de exatamente uma aresta do conjunto M . Pode ser encontrado com custo O(n3 ).
Se adicionamos em T um casamento mnimo para os vrtices de grau mpar, obtemos um grafo Euleriano que tem comprimento mnimo dentre aqueles que contm T .
68
69
(a)
(b)
M M timo PVC
(c)
(d)
a. Uma rvore geradora mnima T . b. T mais um casamento mnimo dos vrtices de grau mpar. c. Caminho de Euler em (b). d. Busca em profundidade com curto-circuito.
70
71
72
Neste caso, para uma instncia I: 3 C(I) = [Otimo(I) 1], 2 onde o Otimo(I) = 11, C(I) = 15, e AGM = 10.