Teoria da Complexidade...

52
Definições Teoria da Complexidade Computacional Letícia Rodrigues Bueno UFABC

Transcript of Teoria da Complexidade...

Definições

Teoria da Complexidade Computacional

Letícia Rodrigues Bueno

UFABC

Definições

Motivação

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

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

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

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

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

Perguntas?

Fonte: http://xkcd.com/399/

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.