Escolar Documentos
Profissional Documentos
Cultura Documentos
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}
• Programação linear
Dadas as representações dos
– S: A,b
– Q: c
conjuntos S e Q para os
– Af: verifica se A·x=b e x0 algoritmos Af e Ac, obter a
– Ac: cálculo de c·x solução viável ó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)
• Então: MIN
algoritmo PD algoritmo PA
MAX
• 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
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
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))
enquanto UB ≠ LB faça
se TSPDEC
n, c, ( LB UB) / 2 = “sim” então
UB ←
LB UB / 2
LB UB / 2 1
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 9
Exemplo: TSP
O n 2 log n log cmax C n
P NP P = NP ? P NP?
• 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
x1=0 x1=1
para j = 1 até n faça
go to both L1, L2 x2=1
x2=0 x2=1 x2=0
L1: xj ← 0
go to L3
... ...
L2: xj ← 1
L3: continue ...
se A·x b então
não sim não sim
“SIM”
senão Ax b?
“NÃO”
A
R
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
A
R
B algoritmo polinomial para A
alg. pol. B
A
R
B algoritmo polinomial para B
alg. pol. A
A
R
B ???
alg. pol. B
A
T
B : 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.
L=4: sim
L=3: não
L=4: sim
L=3: não
VC
CI
VC(G,k)
G’ ← G
k’ ← |V| - k
retornar a resposta de IS(G’,k’)
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 1
VC IS clique 2 3 2 3
6 6
5 4 5 4
E x2 x1 x1 x3 x2 x3 x1 x3 x2
x1 , x2 , x3 0,1 : E 1?
3
x1 x2 x3 x2 x4 x3 x2 x5 x1 x2 x4 x5
• Ci: 2 literais
1 2 1 2 x x 1 2 x 1 2 x
• Ci: 1 literal
a b a b a b a b
a a a a
Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 28
28
Teorema: 3-SAT é NP
• Ci: + 3 literais
ci 1 2 k k 3
c'i 1 2 x1 x1 3 x2 x2 4 x3 x k 3 k 1 k
ci 1 j 1
fazer x j 2 x j 1 0
c'i 1
c'i 1 j 1 ci 0
ci é satisfeita c'i é satisfeita
3 SAT é NP completo
• 3-SAT
T
clique
• Clique é NP-completo
Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 33
33
Clique é NP-completo
• 3-SAT
T 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 }
F x1 x1 x2 x3 x3
(x2, 2)
• TSP NP-completo ?
• parte 1 da demonstração
1. hamiltoniano circuito NP-completo
2. 3-SAT
T
hamiltoniano circuito
u u’ u u’
z1 z2 z3 z4 A
v v’ v v’
u u’ u u’
v v’ v v’
u1 u1
u2 u2
u3 u3
u4 u4
u1 u1 u1
u2 u2 u2
B
u3 u3 u3
u4 u4 u4
B A
A
Este circuito
A hamiltoniano
A corresponde a:
t(x1)=true
A
B t(x2)=false
A t(x3)=false
A
A
B
• parte 2 da demonstração
– hamiltoniano circuito
T
3-SAT
Co-NP
NP
CH CH
TSP TSP
NP-completo Co-NP-completo
• A é NP-difícil se B NP, B
R
A 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
X P = NP
CoNP NP
CoNP NP
P
Setembro 2004 Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro 48
48
PSPACE
A é NP-completo. E daí ?
1. algoritmos aproximativos
2. algoritmos probabilísticos
3. casos especiais
4. heurísticas
5. busca local
6. Algoritmos exatos não-polinomiais