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

Teoria da Complexidade Computacionalprofessor.ufabc.edu.br/~leticia.bueno/classes/aa/materiais/complex... · • algoritmo polinomial: complexidade é uma função polinomial no tamanho

Embed Size (px)

Citation preview

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.