• Nenhum resultado encontrado

Análise de Algoritmos

N/A
N/A
Protected

Academic year: 2022

Share "Análise de Algoritmos"

Copied!
75
0
0

Texto

(1)

Análise de Algoritmos

Parte destes slides são adaptações de slides

do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina.

Algoritmos – p. 1/33

(2)

Complexidade computacional

Classifica os problemas em relação à dificuldade de resolvê-los algoritmicamente.

CLR 36 ou CLRS 34

(3)

Palavras

Para resolver um problema usando um computador é necessário descrever os dados do problema através de uma sequência de símbolos retirados de algum alfabeto.

Algoritmos – p. 3/33

(4)

Palavras

Para resolver um problema usando um computador é necessário descrever os dados do problema através de uma sequência de símbolos retirados de algum alfabeto.

Este alfabeto pode ser, por exemplo,

o conjunto de símbolos ASCII ou o conjunto {0, 1}.

(5)

Palavras

Para resolver um problema usando um computador é necessário descrever os dados do problema através de uma sequência de símbolos retirados de algum alfabeto.

Este alfabeto pode ser, por exemplo,

o conjunto de símbolos ASCII ou o conjunto {0, 1}. Qualquer sequência de elementos de um alfabeto é chamada de uma palavra.

Algoritmos – p. 3/33

(6)

Exemplo 1

Grafo

G

a b

c d

e f

g

h

i

j

Palavra:

({a, b, c, d, e, f, g, h, i, j}, {{bd}, {eg}, {ac}, {hi}, {ab}, {ef}, {bc}}) Tamanho da palavra: 59

(7)

Exemplo 2

Função

G

a b

c d

e f

g

h

i 3/2 j

0 0 2

7

1 −3

Palavra:

(({bd}, 2), ({eg}, 1), ({ac}, 0), ({hi}, −3), ({ab}, 3/2), ({ef}, 7), ({bc, 0)}}) Tamanho da palavra: 67

Algoritmos – p. 5/33

(8)

Tamanho de uma palavra

Para os nossos propósitos,

não há mal em subestimar o tamanho de um objeto.

(9)

Tamanho de uma palavra

Para os nossos propósitos,

não há mal em subestimar o tamanho de um objeto.

Não é necessário contar rigorosamente os caracteres

{’, ‘}’, ‘(’, ‘)’ e ‘,’ dos exemplos anteriores.

Algoritmos – p. 6/33

(10)

Tamanho de uma palavra

Para os nossos propósitos,

não há mal em subestimar o tamanho de um objeto.

Não é necessário contar rigorosamente os caracteres

{’, ‘}’, ‘(’, ‘)’ e ‘,’ dos exemplos anteriores.

Tamanho de um inteiro p é essencialmente lg |p|.

Tamanho do racional p/q é, essencialmente, lg |p| + lg |q|.

(11)

Tamanho de uma palavra

Para os nossos propósitos,

não há mal em subestimar o tamanho de um objeto.

Não é necessário contar rigorosamente os caracteres

{’, ‘}’, ‘(’, ‘)’ e ‘,’ dos exemplos anteriores.

Tamanho de um inteiro p é essencialmente lg |p|.

Tamanho do racional p/q é, essencialmente, lg |p| + lg |q|. Tamanho de um vetor A[1 . . n] é a soma dos tamanhos de seus componentes

hAi = hA[1]i + hA[2]i + · · · + hA[n]i.

Algoritmos – p. 6/33

(12)

Problemas e instâncias

Cada conjunto específico de dados de um problema define uma instância.

Tamanho de uma instância é o tamanho de uma palavra que representa a instância.

(13)

Problemas e instâncias

Cada conjunto específico de dados de um problema define uma instância.

Tamanho de uma instância é o tamanho de uma palavra que representa a instância.

Problema que pede uma resposta do tipo SIM ou NÃO é chamado de problema de decisão.

Problema que procura um elemento em um conjunto é um problema de busca.

Algoritmos – p. 7/33

(14)

Problemas e instâncias

Cada conjunto específico de dados de um problema define uma instância.

Tamanho de uma instância é o tamanho de uma palavra que representa a instância.

Problema que pede uma resposta do tipo SIM ou NÃO é chamado de problema de decisão.

Problema que procura um elemento em um conjunto é um problema de busca.

Problema que procura um elemento de um conjunto de soluções viáveis que seja melhor possível em relação a algum critério é um problema de otimização.

(15)

Máximo divisor comum

Problema: Dados dois números inteiros não-negativos a e b, determinar mdc(a, b).

Exemplo:

máximo divisor comum de 30 e 24 é 6

máximo divisor comum de 514229 e 317811 é 1 máximo divisor comum de 3267 e 2893 é 11

Algoritmos – p. 8/33

(16)

Máximo divisor comum

Problema: Dados dois números inteiros não-negativos a e b, determinar mdc(a, b).

Exemplo:

máximo divisor comum de 30 e 24 é 6

máximo divisor comum de 514229 e 317811 é 1 máximo divisor comum de 3267 e 2893 é 11

Problema de busca Instância: a e b

Tamanho da instância: hai + hbi, lg a + lg b.

Consumo de tempo do algoritmo Café-Com-Leite é O(b). Consumo de tempo do algoritmo EUCLIDES é O(lg b).

(17)

Máximo divisor comum (decisão)

Problema: Dados números inteiros não-negativos a, b e k, mdc(a, b) = k?

Exemplo:

máximo divisor comum de 30 e 24 é 6

máximo divisor comum de 514229 e 317811 é 1 máximo divisor comum de 3267 e 2893 é 11

Algoritmos – p. 9/33

(18)

Máximo divisor comum (decisão)

Problema: Dados números inteiros não-negativos a, b e k, mdc(a, b) = k?

Exemplo:

máximo divisor comum de 30 e 24 é 6

máximo divisor comum de 514229 e 317811 é 1 máximo divisor comum de 3267 e 2893 é 11

Problema de decisão: resposta SIM ou NÃO

Instância: a, b, k

Tamanho da instância: hai + hbi + hki, essencialmente lg a + lg b + lg k

(19)

Subsequência comum máxima

Problema: Encontrar uma ssco máxima de X[1 . . m] e Y [1 . . n].

Exemplos: X = A B C B D A B Y = B D C A B A

ssco máxima = B C A B

Algoritmos – p. 10/33

(20)

Subsequência comum máxima

Problema: Encontrar uma ssco máxima de X[1 . . m] e Y [1 . . n].

Exemplos: X = A B C B D A B Y = B D C A B A

ssco máxima = B C A B Problema de otimização

Instância: X[1 . . m] e Y [1 . . n]

Tamanho da instância: hXi + hY i, essencialmente n + m

Consumo de tempo REC-LCS-LENGTH é Ω(2min{m,n}). Consumo de tempo LCS-LENGTH é Θ(mn).

(21)

Subsequência comum máxima (decisão)

Problema: X[1 . . m] e Y [1 . . n] possuem uma ssco ≥ k? Exemplo: X = A B C B D A B

Y = B D C A B A

ssco máxima = B C A B

Algoritmos – p. 11/33

(22)

Subsequência comum máxima (decisão)

Problema: X[1 . . m] e Y [1 . . n] possuem uma ssco ≥ k? Exemplo: X = A B C B D A B

Y = B D C A B A

ssco máxima = B C A B

Problema de decisão: resposta SIM ou NÃO

Instância: X[1 . . m], Y [1 . . n], k

Tamanho da instância: hXi + hY i + hki, essencialmente n + m + lg k

(23)

Problema booleano da mochila

Problema (Knapsack Problem): Dados n, w[1 . . n] v[1 . . n]

e W , encontrar uma mochila boolena ótima.

Exemplo: W = 50, n = 4

1 2 3 4

w 40 30 20 10

v 840 600 400 100

x 0 1 1 0 valor = 1000

Algoritmos – p. 12/33

(24)

Problema booleano da mochila

Problema (Knapsack Problem): Dados n, w[1 . . n] v[1 . . n]

e W , encontrar uma mochila boolena ótima.

Exemplo: W = 50, n = 4

1 2 3 4

w 40 30 20 10

v 840 600 400 100

x 0 1 1 0 valor = 1000 Problema de otimização

Instância: n, w[1 . . n] v[1 . . n] e W

Tamanho da instância: hni + hwi + hvi + hWi, essencialmente lg n + nlg W + n lg V + lg W

Consumo de tempo MOCHILA-BOOLEANA é Θ(nW).

(25)

Problema booleano da mochila (decisão)

Problema (Knapsack Problem): Dados n, w[1 . . n] v[1 . . n]

e W e k, existe uma mochila boolena de valor ≥ k. Exemplo: W = 50, n = 4, k = 1010

1 2 3 4

w 40 30 20 10

v 840 600 400 100

x 0 1 1 0 valor = 1000

Algoritmos – p. 13/33

(26)

Problema booleano da mochila (decisão)

Problema (Knapsack Problem): Dados n, w[1 . . n] v[1 . . n]

e W e k, existe uma mochila boolena de valor ≥ k. Exemplo: W = 50, n = 4, k = 1010

1 2 3 4

w 40 30 20 10

v 840 600 400 100

x 0 1 1 0 valor = 1000 Problema de decisão: resposta SIM ou NÃO

Instância: n, w[1 . . n] v[1 . . n], W e k

Tamanho da instância: hni + hwi + hvi + hWi + lg k, essencialmente lg n + nlg W + n lg V + lg W + lg k.

(27)

Problema fracionário da mochila

Problema: Dados n, w[1 . . n] v[ . . n] e W, encontrar uma mochila ótima.

Exemplo: W = 50, n = 4

1 2 3 4

w 40 30 20 10

v 840 600 400 100

x 1 1/3 0 0 valor = 1040

Algoritmos – p. 14/33

(28)

Problema fracionário da mochila

Problema: Dados n, w[1 . . n] v[ . . n] e W, encontrar uma mochila ótima.

Exemplo: W = 50, n = 4

1 2 3 4

w 40 30 20 10

v 840 600 400 100

x 1 1/3 0 0 valor = 1040 Problema de otimização

Instância: n, w[1 . . n] v[1 . . n] e W

Tamanho da instância: hni + hwi + hvi + hWi, essencialmente lg n + nlg W + n lg V + lg W

Consumo de tempo MOCHILA-FRACIONÁRIA é Θ(n lg n).

(29)

Problema fracionário da mochila (decisão)

Problema: Dados n, w[1 . . n] v[ . . n], W e k, existe uma mochila de valor ≥ k?

Exemplo: W = 50, n = 4, k = 1010

1 2 3 4

w 40 30 20 10

v 840 600 400 100

x 1 1/3 0 0 valor = 1040

Algoritmos – p. 15/33

(30)

Problema fracionário da mochila (decisão)

Problema: Dados n, w[1 . . n] v[ . . n], W e k, existe uma mochila de valor ≥ k?

Exemplo: W = 50, n = 4, k = 1010

1 2 3 4

w 40 30 20 10

v 840 600 400 100

x 1 1/3 0 0 valor = 1040 Problema de decisão: resposta SIM ou NÃO

Instância: n, w[1 . . n] v[1 . . n], W e k

Tamanho da instância: hni + hwi + hvi + hWi + hki, essencialmente lg n + nlg W + n lg V + lg W + lg k

(31)

Modelo de computação

É uma descrição abstrata e conceitual de um computador que será usado para executar um algoritmo.

Algoritmos – p. 16/33

(32)

Modelo de computação

É uma descrição abstrata e conceitual de um computador que será usado para executar um algoritmo.

Um modelo de computação especifica as operações

elementares que um algoritmo pode executar e o critério empregado para medir a quantidade de tempo que cada operação consome.

(33)

Modelo de computação

É uma descrição abstrata e conceitual de um computador que será usado para executar um algoritmo.

Um modelo de computação especifica as operações

elementares que um algoritmo pode executar e o critério empregado para medir a quantidade de tempo que cada operação consome.

Operações elementares típicas são operações aritméticas entre números e comparações.

Algoritmos – p. 16/33

(34)

Modelo de computação

É uma descrição abstrata e conceitual de um computador que será usado para executar um algoritmo.

Um modelo de computação especifica as operações

elementares que um algoritmo pode executar e o critério empregado para medir a quantidade de tempo que cada operação consome.

Operações elementares típicas são operações aritméticas entre números e comparações.

No critério uniforme supõe-se que cada operação

elementar consome uma quantidade de tempo constante.

(35)

Problemas polinomiais

Análise de um algoritmo em determinado modelo de

computação estima seu consumo de tempo e quantidade de espaço como função do tamanho da instância do

problema.

Algoritmos – p. 17/33

(36)

Problemas polinomiais

Análise de um algoritmo em determinado modelo de

computação estima seu consumo de tempo e quantidade de espaço como função do tamanho da instância do

problema.

Exemplo: o consumo de tempo do algoritmo

EUCLIDES (a, b) é expresso como uma função de hai + hbi.

(37)

Problemas polinomiais

Análise de um algoritmo em determinado modelo de

computação estima seu consumo de tempo e quantidade de espaço como função do tamanho da instância do

problema.

Exemplo: o consumo de tempo do algoritmo

EUCLIDES (a, b) é expresso como uma função de hai + hbi.

Um problema é solúvel em tempo polinomial se existe um algoritmo que consome tempo O(hIic) para resolver o

problema, onde c é uma constante e I é uma instância do problema.

Algoritmos – p. 17/33

(38)

Exemplos

Máximo divisor comum

Tamanho da intância: lg a + lg b Consumo de tempo:

Café-Com-Leite é O(b) (não-polinomial) EUCLIDES é O(lg b) (polinomial)

(39)

Exemplos

Máximo divisor comum

Tamanho da intância: lg a + lg b Consumo de tempo:

Café-Com-Leite é O(b) (não-polinomial) EUCLIDES é O(lg b) (polinomial)

Subsequência comum máxima Tamanho da instância: n + m Consumo de tempo:

REC-LCS-LENGTH é Ω(2min{m,n}) (exponencial) LCS-LENGTH é Θ(mn) (polinomial)

Algoritmos – p. 18/33

(40)

Mais exemplos

Problema booleano da mochila

Tamanho da instância: lg n + n lg W + n lg V + lg W Consumo de tempo:

MOCHILA-BOOLEANA é Θ(nW) (não-polinomial).

(41)

Mais exemplos

Problema booleano da mochila

Tamanho da instância: lg n + n lg W + n lg V + lg W Consumo de tempo:

MOCHILA-BOOLEANA é Θ(nW) (não-polinomial).

Problema fracionário da mochila

Tamanho da instância: lg n + n lg W + n lg V + lg W Consumo de tempo:

MOCHILA-FRACIONÁRIA é Θ(n lg n) (polinomial).

Algoritmos – p. 19/33

(42)

Mais exemplos

Problema booleano da mochila

Tamanho da instância: lg n + n lg W + n lg V + lg W Consumo de tempo:

MOCHILA-BOOLEANA é Θ(nW) (não-polinomial).

Problema fracionário da mochila

Tamanho da instância: lg n + n lg W + n lg V + lg W Consumo de tempo:

MOCHILA-FRACIONÁRIA é Θ(n lg n) (polinomial).

Ordenação de inteiros A[1 . . n]

Tamanho da instância: n lg M, onde

M := max{|A[1]|, |A[2]|, . . . , |A[n]|} + 1 Consumo de tempo:

MERGESORT é Θ(n lg n) (polinomial).

(43)

Classe P

Por algoritmo eficiente entende-se um algoritmo polinomial.

Algoritmos – p. 20/33

(44)

Classe P

Por algoritmo eficiente entende-se um algoritmo polinomial.

A classe de todos os problemas de decisão que podem ser resolvidos por algoritmos polinomiais é denotada por P

(classe de complexidade).

(45)

Classe P

Por algoritmo eficiente entende-se um algoritmo polinomial.

A classe de todos os problemas de decisão que podem ser resolvidos por algoritmos polinomiais é denotada por P

(classe de complexidade).

Exemplo: As versões de decisão dos problemas:

máximo divisor comum, subsequência comum máxima e mochila fracionária

estão em P.

Algoritmos – p. 20/33

(46)

Classe P

Por algoritmo eficiente entende-se um algoritmo polinomial.

A classe de todos os problemas de decisão que podem ser resolvidos por algoritmos polinomiais é denotada por P

(classe de complexidade).

Exemplo: As versões de decisão dos problemas:

máximo divisor comum, subsequência comum máxima e mochila fracionária

estão em P.

Para muitos problemas, não se conhece algoritmo essencialmente melhor que “testar todas as

possibilidades”. Em geral, isso não está em P.

(47)

Emparelhamentos

Problema: Dado um grafo bipartido, encontrar um emparelhamento perfeito.

X

Y G

Algoritmos – p. 21/33

(48)

Emparelhamentos

Problema: Dado um grafo bipartido, encontrar um emparelhamento perfeito.

X

Y G

(49)

Emparelhamentos

Problema: Dado um grafo bipartido, encontrar um emparelhamento perfeito.

X

Y G

NÃO existe! Certificado?

Algoritmos – p. 22/33

(50)

Emparelhamentos

Problema: Dado um grafo bipartido, encontrar um emparelhamento bipartido.

X

Y G

NÃO existe! Certificado: S ⊆ X tal que |S| > |vizinhos(S)|.

(51)

Grafos hamiltonianos

Problema: Dado um grafo, encontrar um ciclo hamiltoniano.

G

Algoritmos – p. 23/33

(52)

Grafos hamiltonianos

Problema: Dado um grafo, encontrar um ciclo hamiltoniano.

G

(53)

Grafos hamiltonianos

Problema: Dado um grafo, encontrar um ciclo hamiltoniano.

G

NÃO existe! Certificado? Hmmm . . .

Algoritmos – p. 24/33

(54)

Verificador polinomial para SIM

Um verificador polinomial para a resposta SIM a um

problema Π é um algoritmo polinomial ALG que recebe uma instância I de Π e um objeto C,

tal que hCi é O(hIic) para alguma constante c

(55)

Verificador polinomial para SIM

Um verificador polinomial para a resposta SIM a um

problema Π é um algoritmo polinomial ALG que recebe uma instância I de Π e um objeto C,

tal que hCi é O(hIic) para alguma constante c e devolve

SIM para algum C se a resposta a Π(I) é SIM;

NÃO para todo C se a resposta a Π(I) é NÃO.

Algoritmos – p. 25/33

(56)

Verificador polinomial para SIM

Um verificador polinomial para a resposta SIM a um

problema Π é um algoritmo polinomial ALG que recebe uma instância I de Π e um objeto C,

tal que hCi é O(hIic) para alguma constante c e devolve

SIM para algum C se a resposta a Π(I) é SIM;

NÃO para todo C se a resposta a Π(I) é NÃO.

No caso de resposta SIM, o objeto C é dito um certificado polinomial ou certificado curto da resposta SIM a Π(I).

(57)

Exemplos

Se G é hamiltoniano, então um ciclo hamiltoniano de G é um certificado polinomial:

dados um grafo G e C, pode-se verificar em tempo O(hGi) se C é um ciclo hamiltoniano.

Algoritmos – p. 26/33

(58)

Exemplos

Se G é hamiltoniano, então um ciclo hamiltoniano de G é um certificado polinomial:

dados um grafo G e C, pode-se verificar em tempo O(hGi) se C é um ciclo hamiltoniano.

se X[1 . . m] e Y [1 . . n] possuem uma ssco k, então uma subsequência comum Z[1 . . k] é um certificado polinomial:

dados X[1 . . m], Y [1 . . n] e Z[1 . . k], pode-se

verificar em tempo O(m + n) se Z é ssco de X e Y .

(59)

Exemplos

Se G é hamiltoniano, então um ciclo hamiltoniano de G é um certificado polinomial:

dados um grafo G e C, pode-se verificar em tempo O(hGi) se C é um ciclo hamiltoniano.

se X[1 . . m] e Y [1 . . n] possuem uma ssco k, então uma subsequência comum Z[1 . . k] é um certificado polinomial:

dados X[1 . . m], Y [1 . . n] e Z[1 . . k], pode-se

verificar em tempo O(m + n) se Z é ssco de X e Y .

se n é um número composto, então um divisor próprio d > 1 de n é um certificado polinomial.

Algoritmos – p. 26/33

(60)

Verificado polinomial para NÃO

Um verificador polinomial para a resposta NÃO de um problema Π é um algoritmo polinomial ALG que recebe

uma instância I de Π e um objeto C,

tal que hCi é O(hIic) para alguma constante c e devolve

SIM para algum C se a resposta a Π(I) é NÃO;

NÃO para todo C se a resposta a Π(I) é SIM.

No caso de resposta SIM, o objeto C é dito um certificado polinomial ou certificado curto da resposta NÃO a Π(I).

(61)

Classe NP

Formada pelos problemas de decisão que possuem um verificador polinomial para a resposta SIM.

Algoritmos – p. 28/33

(62)

Classe NP

Formada pelos problemas de decisão que possuem um verificador polinomial para a resposta SIM.

Em outras palavras, a classe NP é formada pelos problemas de decisão Π para os quais existe um

problema Π em P e uma função polinomial p(n) tais que, para cada instância I do problema Π, existe um objeto C com hCi ≤ p(hIi) tal que

a resposta a Π(I) é SIM se e somente se a resposta a Π(I, C) é SIM.

(63)

Classe NP

Formada pelos problemas de decisão que possuem um verificador polinomial para a resposta SIM.

Em outras palavras, a classe NP é formada pelos problemas de decisão Π para os quais existe um

problema Π em P e uma função polinomial p(n) tais que, para cada instância I do problema Π, existe um objeto C com hCi ≤ p(hIi) tal que

a resposta a Π(I) é SIM se e somente se a resposta a Π(I, C) é SIM.

O objeto C é dito um certificado polinomial ou certificado curto da resposta SIM a Π(I).

Algoritmos – p. 28/33

(64)

Exemplos

Problemas de decisão com certificado polinomial para SIM: existe subsequência crescente ≥ k?

existe subcoleção disjunta ≥ k de intervalos?

existe mochila booleana de valor ≥ k? existe mochila de valor ≥ k?

existe subsequência comum ≥ k?

grafo tem ciclo de comprimento ≥ k? grafo tem ciclo hamiltoniano?

grafo tem emparelhamento (casamento) perfeito?

Todos esses problemas estão em NP.

(65)

P ⊆ NP

Prova:

se Π é um problema em P, então pode-se tomar a sequência de instruções realizadas por um algoritmo

polinomial para resolver Π(I) como certificado polinomial da resposta SIM a Π(I).

Algoritmos – p. 30/33

(66)

P ⊆ NP

Prova:

se Π é um problema em P, então pode-se tomar a sequência de instruções realizadas por um algoritmo

polinomial para resolver Π(I) como certificado polinomial da resposta SIM a Π(I).

Outra prova:

Pode-se construir um verificador polinomial para a resposta

SIM a Π utilizando-se um algoritmo polinomial para Π como subrotina e ignorando-se o certificado C.

(67)

P 6 = NP ?

É crença de muitos que a classe NP é maior que a classe P, ainda que isso

não tenha sido provado até agora.

Algoritmos – p. 31/33

(68)

P 6 = NP ?

É crença de muitos que a classe NP é maior que a classe P, ainda que isso

não tenha sido provado até agora.

Este é o intrigante problema matemático conhecido pelo rótulo “P 6= NP?”

(69)

P 6 = NP ?

É crença de muitos que a classe NP é maior que a classe P, ainda que isso

não tenha sido provado até agora.

Este é o intrigante problema matemático conhecido pelo rótulo “P 6= NP?”

Não confunda NP com “não-polinomial”.

Algoritmos – p. 31/33

(70)

Classe co-NP

A classe co-NP é definida trocando-se SIM por NÃO na definição de NP.

(71)

Classe co-NP

A classe co-NP é definida trocando-se SIM por NÃO na definição de NP.

Um problema de decisão Π está em co-NP se admite um certificado polinomial para a resposta NÃO.

Algoritmos – p. 32/33

(72)

Classe co-NP

A classe co-NP é definida trocando-se SIM por NÃO na definição de NP.

Um problema de decisão Π está em co-NP se admite um certificado polinomial para a resposta NÃO.

Os problemas em NP ∩ co-NP admitem certificados polinomiais para as respostas SIM e NÃO.

(73)

Classe co-NP

A classe co-NP é definida trocando-se SIM por NÃO na definição de NP.

Um problema de decisão Π está em co-NP se admite um certificado polinomial para a resposta NÃO.

Os problemas em NP ∩ co-NP admitem certificados polinomiais para as respostas SIM e NÃO.

Em particular, P ⊆ NP ∩ co-NP.

Algoritmos – p. 32/33

(74)

P, NP e co-NP

NP P co-NP

NP ∩ co-NP

(75)

P, NP e co-NP

NP P co-NP

NP ∩ co-NP

P 6= NP?

NP ∩ co-NP 6= P?

NP 6= co-NP?

Algoritmos – p. 33/33

Referências

Documentos relacionados

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

Com o objetivo de compreender como se efetivou a participação das educadoras - Maria Zuíla e Silva Moraes; Minerva Diaz de Sá Barreto - na criação dos diversos

Artigo 17.. b) Promover as acções necessárias aos trabalhos de avaliação de candidaturas a financiamentos de programas e projectos de investigação cien- tífica e

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

Analysis of relief and toponymy of the landscape based on the interpretation of the military topographic survey: Altimetry, Hypsometry, Hydrography, Slopes, Solar orientation,

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação