Upload
truongnhan
View
215
Download
0
Embed Size (px)
Citation preview
Definições
Motivação
I can’t find an efficient algorithm, I guess I’m just too dumb.Fonte: GAREY, M. R. e JOHNSON, D. S. Computers and Intractability. A guide to the theory of NP-Completeness,
W.H. Freeman and Company: New York, 1979.
Definições
Motivação
I can’t find an efficient algorithm, because no such algorithm ispossible.Fonte: GAREY, M. R. e JOHNSON, D. S. Computers and Intractability. A guide to the theory of NP-Completeness,
W.H. Freeman and Company: New York, 1979.
Definições
Motivação
I can’t find an efficient algorithm, but neither can all thesefamous people.Fonte: GAREY, M. R. e JOHNSON, D. S. Computers and Intractability. A guide to the theory of NP-Completeness,
W.H. Freeman and Company: New York, 1979.
Definições
Introdução
• teoria de análise de algoritmos: estuda análise decomplexidade de algoritmos;
Definições
Introdução
• teoria de análise de algoritmos: estuda análise decomplexidade de algoritmos;
• teoria da complexidade computacional: estuda aclassificação de problemas com base na complexidadedos algoritmos que os resolvam.
Definições
Introdução
• teoria de análise de algoritmos: estuda análise decomplexidade de algoritmos;
• teoria da complexidade computacional: estuda aclassificação de problemas com base na complexidadedos algoritmos que os resolvam.
• algoritmo polinomial: complexidade é uma funçãopolinomial no tamanho da entrada. Exemplos:
Definições
Introdução
• teoria de análise de algoritmos: estuda análise decomplexidade de algoritmos;
• teoria da complexidade computacional: estuda aclassificação de problemas com base na complexidadedos algoritmos que os resolvam.
• algoritmo polinomial: complexidade é uma funçãopolinomial no tamanho da entrada. Exemplos:
• pesquisa binária: O(log n);• pesquisa sequencial: O(n);• ordenação por inserção: O(n2);• multiplicação de matrizes: O(n3);
Definições
Introdução
• teoria de análise de algoritmos: estuda análise decomplexidade de algoritmos;
• teoria da complexidade computacional: estuda aclassificação de problemas com base na complexidadedos algoritmos que os resolvam.
• algoritmo polinomial: complexidade é uma funçãopolinomial no tamanho da entrada. Exemplos:
• pesquisa binária: O(log n);• pesquisa sequencial: O(n);• ordenação por inserção: O(n2);• multiplicação de matrizes: O(n3);
• algoritmo exponencial: complexidade é uma funçãoexponencial no tamanho da entrada. Um exemplo:
• caixeiro viajante: O(n!);
Definições
Problema do Caixeiro Viajante (PCV)
• Sejam n cidades e distância cij entre quaisquer duascidades i e j . Existe um percurso que passa por todacidade exatamente uma vez tal que o custo total é o menorpossível?
c1
c2
c3
c4
9 84
35
8
Definições
Problema do Caixeiro Viajante (PCV)
• Sejam n cidades e distância cij entre quaisquer duascidades i e j . Existe um percurso que passa por todacidade exatamente uma vez tal que o custo total é o menorpossível?
c1
c2
c3
c4
9 84
35
8
Custo: 25
Número de rotas possíveis: (n − 1)!
Definições
Problema do Caixeiro Viajante (PCV)
• Sejam n cidades e distância cij entre quaisquer duascidades i e j . Existe um percurso que passa por todacidade exatamente uma vez tal que o custo total é o menorpossível?
c1
c2
c3
c4
9 84
35
8
Custo: 24
Número de rotas possíveis: (n − 1)!
Definições
Problemas Indecidíveis, Intratáveis e Tratáveis
• Algoritmos exponenciais demandam tal quantidade detempo para executar que mesmo problemas de tamanhopequeno a moderado não podem ser resolvidos;
Definições
Problemas Indecidíveis, Intratáveis e Tratáveis
• Algoritmos exponenciais demandam tal quantidade detempo para executar que mesmo problemas de tamanhopequeno a moderado não podem ser resolvidos;
• Três tipos de problemas (segundo Garey e Johnson):
Definições
Problemas Indecidíveis, Intratáveis e Tratáveis
• Algoritmos exponenciais demandam tal quantidade detempo para executar que mesmo problemas de tamanhopequeno a moderado não podem ser resolvidos;
• Três tipos de problemas (segundo Garey e Johnson):1. Indecidíveis: nenhum algoritmo pode resolver. Exemplo:
problema da parada;
Definições
Problemas Indecidíveis, Intratáveis e Tratáveis
• Algoritmos exponenciais demandam tal quantidade detempo para executar que mesmo problemas de tamanhopequeno a moderado não podem ser resolvidos;
• Três tipos de problemas (segundo Garey e Johnson):1. Indecidíveis: nenhum algoritmo pode resolver. Exemplo:
problema da parada;2. Intratáveis: possivelmente não possuem algoritmos
polinomiais;
Definições
Problemas Indecidíveis, Intratáveis e Tratáveis
• Algoritmos exponenciais demandam tal quantidade detempo para executar que mesmo problemas de tamanhopequeno a moderado não podem ser resolvidos;
• Três tipos de problemas (segundo Garey e Johnson):1. Indecidíveis: nenhum algoritmo pode resolver. Exemplo:
problema da parada;2. Intratáveis: possivelmente não possuem algoritmos
polinomiais;3. Tratáveis: possuem algoritmos polinomiais.
A partir de agora, nos concentraremos em decidir se umproblema é tratável ou intratável.
Definições
Problemas de Decisão, Localização e Otimização
• Classificação segundo a resposta esperada:
Definições
Problemas de Decisão, Localização e Otimização
• Classificação segundo a resposta esperada:1. Problemas de decisão: Exemplo (PCV) - n cidades e
distância cij entre cidades i e j e inteiro não negativo k ,existe percurso do PCV de custo menor ou igual a k?
Definições
Problemas de Decisão, Localização e Otimização
• Classificação segundo a resposta esperada:1. Problemas de decisão: Exemplo (PCV) - n cidades e
distância cij entre cidades i e j e inteiro não negativo k ,existe percurso do PCV de custo menor ou igual a k?
2. Problemas de localização: Exemplo (PCV) - n cidades edistância cij entre cidades i e j e inteiro não negativo k ,problema é localizar, se existe, percurso do PCV com customenor ou igual a k . A resposta seria uma seqüência devértices u, . . . , v .
Definições
Problemas de Decisão, Localização e Otimização
• Classificação segundo a resposta esperada:1. Problemas de decisão: Exemplo (PCV) - n cidades e
distância cij entre cidades i e j e inteiro não negativo k ,existe percurso do PCV de custo menor ou igual a k?
2. Problemas de localização: Exemplo (PCV) - n cidades edistância cij entre cidades i e j e inteiro não negativo k ,problema é localizar, se existe, percurso do PCV com customenor ou igual a k . A resposta seria uma seqüência devértices u, . . . , v .
3. Problemas de otimização: Exemplo (PCV) - n cidades edistância cij entre cidades i e j, problema é obter percursodo PCV de menor custo possível.
Definições
P versus NP
• Classe P: problemas resolvidos em tempo polinomial poralgoritmo determínistico. Exemplos:
• ordenação, caminho mínimo em grafos, fluxo máximo emredes, etc;
• Classe NP: problemas verificáveis em tempo polinomial.Algoritmos não-determínisticos polinomiais geram soluçãocandidata e é verificada viabilidade em tempo polinomial.Exemplos:
• ciclo hamiltoniano, cliques em grafos, conjuntoindependente em grafos, problema da mochila, etc.
Definições
P × NP
• Se um problema é da classe P também é da classe NP,pois algoritmo polinomial determinístico usado pararesolver problema pode ser utilizado para verificar solução;
• Então podemos concluir que P ⊂ NP;
• Mas P=NP???
• Este é o problema em aberto mais conhecido e importanteem Computação.
Definições
NP-Completude
• Um problema de decisão A ∈ NP é NP-Completo setodos os outros problemas de NP se transformampolinomialmente em A;
• Portanto, se existir um algoritmo (determinístico)polinomial para a resolução de algum problemaNP-Completo, todos os problemas da classe NP podemser resolvidos em tempo polinomial;
• Assim, seria possível mostrar que P = NP;
• Há fortes evidências de que isso não é possível.
Definições
NP-Completude
• Um problema A pertence a classe NP-Difícil se existe umproblema B ∈ NP-Completo que pode ser transformadoem A em tempo polinomial;
• Apenas problemas de decisão podem ser NP-Completos;
• A dificuldade de um problema NP-difícil não é menor doque a dificuldade de um problema NP-Completo.
Definições
Problema do Caixeiro Viajante (PCV) é NP-Completo
• Primeiro passo: mostrar que PCV ∈ NP. Para um circuito,algoritmo de verificação confirma que seqüência contémcada vértice exatamente uma vez, totaliza custos dearestas e verifica se soma é no máximo k ;
Definições
Problema do Caixeiro Viajante (PCV) é NP-Completo
• Primeiro passo: mostrar que PCV ∈ NP. Para um circuito,algoritmo de verificação confirma que seqüência contémcada vértice exatamente uma vez, totaliza custos dearestas e verifica se soma é no máximo k ;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
Definições
Problema do Caixeiro Viajante (PCV) é NP-Completo
• Primeiro passo: mostrar que PCV ∈ NP. Para um circuito,algoritmo de verificação confirma que seqüência contémcada vértice exatamente uma vez, totaliza custos dearestas e verifica se soma é no máximo k ;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
G
Definições
Problema do Caixeiro Viajante (PCV) é NP-Completo
• Primeiro passo: mostrar que PCV ∈ NP. Para um circuito,algoritmo de verificação confirma que seqüência contémcada vértice exatamente uma vez, totaliza custos dearestas e verifica se soma é no máximo k ;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
Definições
Problema do Caixeiro Viajante (PCV) é NP-Completo
• Primeiro passo: mostrar que PCV ∈ NP. Para um circuito,algoritmo de verificação confirma que seqüência contémcada vértice exatamente uma vez, totaliza custos dearestas e verifica se soma é no máximo k ;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
Definições
Problema do Caixeiro Viajante (PCV) é NP-Completo
• Primeiro passo: mostrar que PCV ∈ NP. Para um circuito,algoritmo de verificação confirma que seqüência contémcada vértice exatamente uma vez, totaliza custos dearestas e verifica se soma é no máximo k ;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
G’1 1
11
1
1
22
2
2
Definições
Problema do Caixeiro Viajante (PCV) é NP-Completo
• Primeiro passo: mostrar que PCV ∈ NP. Para um circuito,algoritmo de verificação confirma que seqüência contémcada vértice exatamente uma vez, totaliza custos dearestas e verifica se soma é no máximo k ;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
1 1
11
1
1
22
2
2
Definições
Problema do Caixeiro Viajante (PCV) é NP-Completo
• Consequemente, o grafo G tem um ciclo hamiltoniano se esomente se o grafo G′ tem um circuito de custo máximo n.
Definições
Problema do Caminho Hamiltoniano (PCH) é NP-Completo
• Primeiro passo: mostrar que PCH ∈ NP. Verificaçãosimilar ao do PCV;
Definições
Problema do Caminho Hamiltoniano (PCH) é NP-Completo
• Primeiro passo: mostrar que PCH ∈ NP. Verificaçãosimilar ao do PCV;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
Definições
Problema do Caminho Hamiltoniano (PCH) é NP-Completo
• Primeiro passo: mostrar que PCH ∈ NP. Verificaçãosimilar ao do PCV;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
v2 v1
v0
v5
v3 v4
G
Definições
Problema do Caminho Hamiltoniano (PCH) é NP-Completo
• Primeiro passo: mostrar que PCH ∈ NP. Verificaçãosimilar ao do PCV;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
v2 v1
v0
v5
v3 v4
u u′
w
H
Definições
Problema do Caminho Hamiltoniano (PCH) é NP-Completo
• Primeiro passo: mostrar que PCH ∈ NP. Verificaçãosimilar ao do PCV;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
v2 v1
v0
v5
v3 v4
u u′
w
H
Definições
Problema do Caminho Hamiltoniano (PCH) é NP-Completo
• Primeiro passo: mostrar que PCH ∈ NP. Verificaçãosimilar ao do PCV;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
v2 v1
v0
v5
v3 v4
u u′
w
H
Definições
Problema do Caminho Hamiltoniano (PCH) é NP-Completo
• Primeiro passo: mostrar que PCH ∈ NP. Verificaçãosimilar ao do PCV;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
v2 v1
v0
v5
v3 v4
u u′
w
H
Definições
Problema do Caminho Hamiltoniano (PCH) é NP-Completo
• Primeiro passo: mostrar que PCH ∈ NP. Verificaçãosimilar ao do PCV;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
v2 v1
v0
v5
v3 v4
u u′
w
H
Definições
Problema do Caminho Hamiltoniano (PCH) é NP-Completo
• Primeiro passo: mostrar que PCH ∈ NP. Verificaçãosimilar ao do PCV;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
v2 v1
v0
v5
v3 v4
G
Definições
Problema do Caminho Hamiltoniano (PCH) é NP-Completo
• Primeiro passo: mostrar que PCH ∈ NP. Verificaçãosimilar ao do PCV;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
v2 v1
v0
v5
v3 v4
w
Definições
Problema do Caminho Hamiltoniano (PCH) é NP-Completo
• Primeiro passo: mostrar que PCH ∈ NP. Verificaçãosimilar ao do PCV;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
v2 v1
v0
v5
v3 v4
u u′
w
H
Definições
Problema do Caminho Hamiltoniano (PCH) é NP-Completo
• Primeiro passo: mostrar que PCH ∈ NP. Verificaçãosimilar ao do PCV;
• Segundo passo: transformação polinomial a partir de umproblema NP-Completo (problema do ciclo hamiltoniano):
v2 v1
v0
v5
v3 v4
u u′
w
H
Definições
Bibliografia
CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L. e STEIN, C.Introduction to Algorithms, 3a edição, MIT Press, 2009.
GAREY, M. R. e JOHNSON, D. S. Computers and Intractability. Aguide to the theory of NP-Completeness, W.H. Freeman andCompany: New York, 1979.
ZIVIANI, N. Projeto de Algoritmos: com implementações em Pascal eC, 2a edição, Cengage Learning, 2009.