Buscar

AAED - Lista de exercícios 7

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Pós-Graduação em Ciência da Computação Universidade Federal de São Paulo - São José dos Campos
Exerćıcios sobre Algoritmos em Grafos
AAED — Análise de Algoritmos e Estruturas de Dados
Prof. Jurandy G. Almeida Jr.
1o Semestre de 2020
Exerćıcios
1. Utilizando o conceito de grafos, defina uma árvore.
2. Qual é o número máximo de arestas em um grafo não orientado com n vértices? Justifique.
3. Qual é o número máximo de arestas em um grafo orientado com n vértices? Justifique.
4. Os turistas Jensen, Leuzingner, Dufour e Medeiros se encontram em um bar de Paris e
começam a conversar. As ĺınguas dispońıveis são: inglês, francês, português e alemão. Jensen
fala todas. Leuzingner não fala apenas o português. Dufour fala francês e alemão. Medeiros
fala inglês e português. Represente por meio de um grafo orientado todas as possibilidades
de um deles dirigir a palavra a outro, sendo compreendido.
5. Para cada um dos casos abaixo, indique se você usaria uma matriz de adjacência ou uma lista
de adjacência. Justifique a sua escolha.
(a) O grafo tem 10.000 vértices e 20.000 arestas e é importante usar tão pouco espaço quanto
posśıvel.
(b) O grafo tem 10.000 vértices e 20.000.000 arestas e é importante usar tão pouco espaço
quanto posśıvel.
(c) Você precisa informar o vértice adjacente a um dado vértice tão rápido quanto posśıvel.
(d) Você precisa informar se dois vértices estão conectados tão rápido quanto posśıvel.
6. Seja um grafo G cujos vértices são inteiros de 1 a 8 e os vértices adjacentes a cada vértice são
dados pela tabela abaixo:
Vértice Vértices Adjacentes
1 2 3 4
2 1 3 4
3 1 2 4
4 1 2 3 6
5 6 7 8
6 4 5 7
7 5 6 8
8 5 7
(a) Desenhe o grafo G.
(b) Represente o grafo por meio de uma matriz de adjacência.
(c) Represente o grafo por meio de uma lista de adjacência.
7. Um estudante de computação está desesperado porque acha que não vai conseguir dar conta
de algumas disciplinas da matriz curricular de seu curso. Ele resolveu, então, fazer uma lista
dessas disciplinas e seus respectivos pré-requisitos:
• LP (Lógica de Programação): nenhum.
• CUV (Cálculo em Uma Variável): nenhum.
• AEDI (Algoritmos e Estruturas de Dados I): LP.
• GA (Geometria Anaĺıtica): nenhum.
• MD (Matemática Discreta): nenhum.
• AEDII (Algoritmos e Estruturas de Dados II): AEDI.
• CVV (Cálculo em Várias Variáveis): CUV, GA.
• AL (Álgebra Linear): GA.
• PAA (Projeto e Análise de Algoritmos): MD, AEDII.
• CN (Cálculo Numérico): CUV, GA.
(a) Desenhe um grafo orientado que represente a situação descrita acima.
(b) Represente esse grafo por meio de uma matriz de adjacência.
(c) Represente esse grafo por meio de uma lista de adjacência.
8. Explique a modificação que deve ser feita no algoritmo de busca em profundidade para que
ele armazene a ordenação topológica do grafo. Para maior assimilação, considere o grafo de
disciplinas e seus pré-requisitos do exerćıcio anterior e indique os tempos de descoberta d e
finalização f de cada vértice.
9. Explique os passos que devem ser seguidos para determinar os componentes fortemente co-
nexos de um grafo orientado.
10. Considere o grafo abaixo. Assuma que as listas de adjacência que representam esse grafo
estão ordenadas em ordem alfabética de acordo com os rótulos dos vértices:
A B C D
E F G H
I J K L
M N O P
1
2
18
4
20
1 4
10
5
13
6
22
11 5
11
3
4
9
23
12 9
1 9 8
(a) Escreva as listas de adjacência que representam esse grafo.
(b) Aplique o algoritmo de busca em largura nesse grafo tomando o vértice A como origem
e apresente as distâncias d até cada vértice e a árvore de busca em largura π.
(c) Aplique o algoritmo de busca em profundidade nesse grafo iniciando no vértice A e
apresente os instantes de d e f de cada vértice e a floresta de busca em profundidade π.
(d) Aplique o algoritmo de Dijsktra nesse grafo tomando o vértice A como origem e apresente
a sequência dos vértices processados S, a estimativa do custo d de cada vértice e a árvore
de caminhos mı́nimos π.
11. Considere o grafo abaixo. Assuma que as listas de adjacência que representam esse grafo
estão ordenadas em ordem alfabética de acordo com os rótulos dos vértices:
A
D
B
E
C
F
G H
I J
6
9
3
3 2
2
4
4
6
1
8
7
6
2
2
3
1
4
(a) Escreva as listas de adjacência que representam esse grafo.
(b) Aplique o algoritmo de busca em largura nesse grafo tomando o vértice A como origem
e apresente as distâncias d até cada vértice e a árvore de busca em largura π.
(c) Aplique o algoritmo de busca em profundidade nesse grafo iniciando no vértice A e
apresente os instantes de d e f de cada vértice e a floresta de busca em profundidade π.
(d) Aplique o algoritmo de Dijsktra nesse grafo tomando o vértice A como origem e apresente
a sequência dos vértices processados S, a estimativa do custo d de cada vértice e a árvore
de caminhos mı́nimos π.
12. A esquadra da PSP de Cedofeita (Porto) recebeu um pedido muito urgente para intervir
numa tentativa de assalto numa ourivesaria localizada numa rua próxima. O Comando Ope-
racional deseja conhecer qual será o melhor trajeto a tomar, de forma a minimizar o tempo
de viagem até o objetivo desejado. Usando um mapa daquela zona da cidade, representado
esquematicamente na figura abaixo, e conhecido os tempos médios (em segundos) necessários
para percorrer cada um dos trechos desse mapa, eles utilizaram o algoritmo de Dijsktra para
determinar esse caminho mais curto. Coloque-se no lugar do Comando e, partindo do mapa
apresentado, encontre esse caminho mı́nimo.
13. Considere um tabuleiro com 3 × 4 posições. Cada posição contém um número:
0 4 3 6
7 8 6 8
2 3 1 8
O objetivo do jogo consiste em deslocar um peão desde o canto superior esquerdo até o canto
inferior direito a partir de uma sequência de movimentos para a direita ou para baixo, de
forma a minimizar o somatório dos pontos correspondentes às posições por onde se passou.
Represente esse problema por meio de um grafo orientado e resolva-o utilizando uma das
técnicas estudadas em aula.
14. O Sr. Ven de Dor, técnico de vendas, vai comprar um carro novo. Dadas as caracteŕısticas do
Sr. Ven de Dor, o véıculo sofrerá uma utilização muito grande, o que implica que, apesar dele
ser enviado para uma revisão daqui a 3 anos, possa ser economicamente mais favorável trocar
de carro após 1 ou 2 anos, em vez de mantê-lo durante os 3 anos. Isso sobretudo porque
os custos de utilização e manutenção crescem muito rapidamente com o envelhecimento dos
véıculos. O Sr. Ven de Dor sentou-se em seu escritório e calculou o custo total, isto é, o preço
de um carro novo menos o valor que ele pode adquirir com a venda de seu véıculo usado, mais
os custos de utilização e manutenção, levando em conta a possibilidade de comprar um carro
novo no ano i e trocá-lo no ano j (o ano 0 é o atual). Na tabela abaixo, são apresentados os
custos em reais calculados pelo Sr. Ven de Dor:
i
0 1 2
1 8000
j 2 18000 10000
3 31000 21000 12000
Assim, por exemplo, trocar o carro comprado agora (ano 0) no ano 1 e depois manter o carro
comprado até o ano 3, corresponde a um custo de 8000 + 21000 = 29000. O Sr. Ven de Dor
tem que decidir quantas vezes deve trocar de véıculo, caso seja viável, de forma a minimizar
a sua despesa total com carros durante esses 3 anos. Represente esse problema por meio de
um grafo orientado e resolva-o utilizando uma das técnicas estudadas em aula.
15. O matemático húngaro Paul Erdös (1913-1996), um dos mais brilhantes do século XX, é consi-
derado o mais proĺıfico da história. Erdös publicou mais de 1.500 artigos, em colaboração com
cerca de outros 450 matemáticos. Em sua homenagem, os matemáticos criaram o “número
de Erdös”. Todo matemático que publicou um artigo com Erdös tem número de Erdös 1.
Os que não possuem número 1, mas escreveram um artigo com alguém que possuinúmero
1, possuem número 2, e assim por diante. Quando nenhuma ligação pode ser estabelecida
entre Erdös e um matemático, diz-se que este possui número de Erdös infinito. Por exemplo,
o número de Erdos de Albert Einstein é 2; e, talvez surpreendentemente, o número de Erdös
de Bill Gates é 4. Considere um subconjunto de 12 matemáticos distintos identificados por
A, B, ..., K e L. A lista abaixo informa os que têm artigos em comum:
• o autor A tem artigos com D e J;
• o autor B tem artigos com C, D, J e L;
• o autor C tem artigos com H;
• o autor D também tem artigos com E;
• o autor E também tem artigos com I e K.
Erdös tem artigos com os autores A, B, D, G, J e L (e, logicamente, cada um desses autores
tem artigo com Erdös; idem para os demais casos). Considere o problema de determinar o
número de Erdös de um autor. Faça:
(a) Modele a situação dos autores acima por meio de um grafo, indicando o que representam
os vértices e as arestas (desenhe o grafo completo).
(b) Explique qual algoritmo em grafos visto em aula pode ser usado e como ele pode ser
usado para resolver esse problema.
(c) Com base na especificação da questão, no seu modelo no item (a) e em sua argumentação
no item (b), responda: qual o número de Erdös dos matemáticos C e F? Justifique sua
resposta.

Continue navegando