projeto de algoritmos por indução - sheila almeida...projeto de algoritmos por indução profa....

40

Upload: others

Post on 28-Mar-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Projeto de Algoritmos por Indução

Profa. Sheila Morais de Almeida

DAINF-UTFPR-PG

junho - 2018

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 1 / 40

Page 2: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Este material é preparado usando como referência o texto do seguinte livro.

Udi Manber. Introduction to Algorithms: a creative approach., 1st ed.,1989.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 2 / 40

Page 3: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Um subgrafo H de um grafo G é um grafo constituído por:

• um subconjunto dos vértices de G , V (H) ⊆ V (G ),

• o conjunto de todas as arestas de G que conectam vértices doconjunto V (H).

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 3 / 40

Page 4: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

GH

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 4 / 40

Page 5: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

GH

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 5 / 40

Page 6: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

G H

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 6 / 40

Page 7: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

O grau de um vértice é o número de arestas incidentes no mesmo.

O menor grau de um grafo G é denotado por δ(G ).

No exemplo, δ(G ) = 2 e δ(H) = 1.

GH

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 7 / 40

Page 8: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Suponha que você está organizando uma conferência.

Você tem um lista de pessoas que quer convidar.

Você acredita que as pessoas aceitarão o convite se houver muitas outraspessoas com quem possam trocar ideias.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 8 / 40

Page 9: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Para cada cientista, você colocou abaixo do nome dele outros cientistasconvidados com quem ele possivelmente gostaria de interagir.

Você quer convidar o maior número possível de cientistas da sua lista.

Mas também quer garantir que cada convidado terá pelo menos k colegasna conferência com quem ele gostaria de trocar ideias.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 9 / 40

Page 10: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Modelando o problema como um grafo:

Problema

Dado um grafo não-orientado G e um inteiro k , encontrar um subgrafoinduzido de tamanho máximo tal que δ(H) ≥ k ou concluir que talsubgrafo não existe.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 10 / 40

Page 11: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Sabemos resolver o problema para um grafo com número de vértices nomáximo k?

sim! não existe subrafo H com δ(H) = k .

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 11 / 40

Page 12: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Sabemos resolver o problema para um grafo com número de vértices nomáximo k?

Sim! não existe subrafo H com δ(H) = k .

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 12 / 40

Page 13: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Se o grafo tiver k + 1 vértices, sabemos resolver?

H só existe se G é um grafo completo, ou seja, todos os seus vértices temgrau k .

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 13 / 40

Page 14: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Se o grafo tiver k + 1 vértices, sabemos resolver?

H só existe se G é um grafo completo, ou seja, todos os seus vértices temgrau k .

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 14 / 40

Page 15: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Suponha que sabemos resolver o problema para um grafo que tenha até nvértices.

Podemos usar essa solução para um grafo que tenha n + 1 vértices?

Podemos remover um dos vértices desse grafo, resolver e depois ver como ovértice removido impacta na solução.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 15 / 40

Page 16: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Suponha que sabemos resolver o problema para um grafo que tenha até nvértices.

Podemos usar essa solução para um grafo que tenha n + 1 vértices?

Podemos remover um dos vértices desse grafo, resolver e depois ver como ovértice removido impacta na solução.

Pergunta: Qual vértice remover?

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 16 / 40

Page 17: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Se estamos procurando um subgrafo em que todos os vértices tem graupelo menos k , então vértices com grau menor que k não podem estar emH.

Remova um vértice com grau menor que k.

E se todos os vértices tem grau maior que k? Então G ' H.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 17 / 40

Page 18: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Se estamos procurando um subgrafo em que todos os vértices tem graupelo menos k , então vértices com grau menor que k não podem estar emH.

Remova um vértice com grau menor que k.

E se todos os vértices tem grau maior que k? Então G ' H.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 18 / 40

Page 19: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Se existe vértice com grau menor que k , remova um desses vértices.

A remoção de um vértice e suas arestas pode diminuir o grau de outrosvértices.

Se um vértice �car com grau menor que k , ele terá que ser removido.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 19 / 40

Page 20: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

Em que ordem devemos remover os vértices?

Primeiro os que já tinham grau menor que k e depois os que tiveram ograu reduzido na ordem em que são afetados? (busca em largura)

Primeiro um vértice com grau menor que k e depois os afetados por ele(busca em profundidade)?

O grafo resultante tem tamanho máximo?

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 20 / 40

Page 21: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Encontrar H : um subgrafo induzido maximal com δ(H) = k

A remoção dos vértices com grau menor que k é obrigatória para aconstrução de H.

Então, tanto faz a ordem em que eles são removidos.

Quando a eliminação obrigatória de um vértice v causa a redução do graude um outro vértice w , fazendo com que w tenha que ser eliminado, vê-seque não há escolha, a eliminação de w é obrigatória, vai acontecer emqualquer subgrafo H escolhido.

Como apenas vértices cuja eliminação é obrigatória são retirados, o graforesultante é máximo.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 21 / 40

Page 22: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Em um conjunto com n pessoas, uma celebridade é uma pessoa conhecidapor todos e que não conhece ninguém.

Problema

Identi�car a celebridade, se existir, em um conjunto de n pessoas, fazendosomente perguntas no formato:

"Desculpe-me, você conhece aquela pessoa ali?"

Assumindo que todas as respostas são verdadeiras e que mesmo acelebridade vai responder.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 22 / 40

Page 23: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

O objetivo é minimizar o número de perguntas.

Como existem n pessoas, no pior caso teremos que fazer a pergunta n(n−1)2

vezes.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 23 / 40

Page 24: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Formulando o problema como um grafo:

Considere um grafo orientado onde:

• as pessoas são vértices,

• se a pessoa A conhece B , então existe uma aresta orientada de A paraB .

A celebridade é uma fonte (um vértice onde chegam arestas e de onde nãosaem arestas).

Observação: Note que se existir celebridade, ela é a única do conjunto.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 24 / 40

Page 25: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Então a entrada do problema pode ser uma matriz de adjacências n × n,onde a célula M[i ][j ] = 1 se a pessoa i conhece a pessoa j ; caso contrário,M[i ][j ] = 0.

Problema

Dada uma matriz de adjacências, determinar se existe um i tal que todasas células da coluna i são iguais a 1 e todas as células da linha i são iguaisa 0, exceto M[i ][i ].

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 25 / 40

Page 26: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Base: Considere um conjunto com duas pessoas.

Sabemos veri�car se uma delas é uma celebridade?

Se M[A][B] = 0 e M[B][A] = 1, A é celebridade.

Se M[B][A] = 0 e M[A][B] = 1, B é celebridade.

Nos demais casos, não há celebridade.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 26 / 40

Page 27: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Base: Considere um conjunto com duas pessoas.

Sabemos veri�car se uma delas é uma celebridade?

Se M[A][B] = 0 e M[B][A] = 1, A é celebridade.

Se M[B][A] = 0 e M[A][B] = 1, B é celebridade.

Nos demais casos, não há celebridade.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 27 / 40

Page 28: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Considere, por indução, que sabemos resolver para n pessoas.

Pergunta: sabemos resolver em um conjunto com n + 1 pessoas?

Separe uma pessoa do conjunto.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 28 / 40

Page 29: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Considere, por indução, que sabemos resolver para n pessoas.

Pergunta: sabemos resolver em um conjunto com n + 1 pessoas?

Separe uma pessoa do conjunto.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 29 / 40

Page 30: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Há três casos:

1 A celebridade é uma das pessoas do conjunto com n pessoas.

2 A celebridade é a pessoa que foi separada.

3 Não há celebridade.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 30 / 40

Page 31: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Caso 1: A celebridade é uma das pessoas do conjunto com n pessoas.

Então basta veri�car:

a se a pessoa separada também conhece a celebridade e

b se a celebridade não conhece a pessoa separada do conjunto.

Se as duas respostas são sim, então a celebridade do conjunto de n pessoasé uma celebridade no conjunto de n + 1 pessoas.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 31 / 40

Page 32: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Caso 2: A celebridade é a pessoa que foi separada.

Para determinar que essa pessoa não conhece ninguém e que todos aconhecem, são necessárias 2(n − 1) perguntas.

Se usarmos essa quantidade de perguntas em cada passo da indução,vamos ter uma número de perguntas O(n2).

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 32 / 40

Page 33: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

É difícil identi�car uma celebridade.

É mais fácil identi�car quem não é celebridade.

Então podemos identi�car quem não é celebridade e remover essa pessoado conjunto de n + 1 pessoas!

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 33 / 40

Page 34: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Considere duas pessoas quaisquer do conjunto de n + 1 pessoas: Alice eBob.

Ao perguntarmos para Alice se ela conhece Bob, há duas possibilidades:

• Se sim: então Alice não é celebridade. Removemos Alice do conjunto.

• Se não: então Bob não é celebridade: removemos Bob do conjunto.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 34 / 40

Page 35: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Há três casos:

1 A celebridade é uma das pessoas do conjunto com n pessoas.

2 A celebridade é a pessoa que foi separada.

3 Não há celebridade.

Se eliminarmos a pessoa certa, o caso 2 não ocorre.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 35 / 40

Page 36: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Caso 3: Se não há celebridade.Se não há celebridade no conjunto com n pessoas, então não hácelebridade, pois a pessoa separada dos demais não é celebridade.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 36 / 40

Page 37: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Voltando ao caso 1: A celebridade é uma das pessoas do conjunto com npessoas.

Então basta veri�car:

a) se a pessoa separada também conhece a celebridade e

b) se a celebridade não conhece a pessoa separada do conjunto.

Se as duas respostas são sim, então a celebridade do conjunto de n pessoasé uma celebridade no conjunto de n + 1 pessoas.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 37 / 40

Page 38: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Implementação da solução:

Primeira fase: eliminar todos os candidatos exceto 1.

Segunda fase: veri�car se esse candidato é de fato uma celebridade.

Considere que os candidatos estão em uma pilha, pegue dois deles.

Veri�que com uma pergunta qual dos dois não pode ser celebridade eremova-o.

Pegue outro candidato da pilha para comparar com o que sobrou e repita oprocesso.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 38 / 40

Page 39: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Problema da Celebridade

Implementação da solução:

Quando restar apenas um candidato, basta veri�car se ele é mesmo umacelebridade: faça 2(n − 1) perguntas para saber se todos o conhecem e seele conhece todos.

Total de perguntas: 3(n − 1) ∈ O(n).

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 39 / 40

Page 40: Projeto de Algoritmos por Indução - Sheila Almeida...Projeto de Algoritmos por Indução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG)

Referências

U. MAMBER, Introduction to Algorithms: a Creative Approach,Addison Wesley, 1st ed., 1989.

Sheila Almeida (DAINF-UTFPR-PG) Projeto de Algoritmos por Indução junho - 2018 40 / 40