Você está na página 1de 13

Universidade Federal de Minas Gerais

Programa de Ps-Graduao em Cincia da Computao


Exame de Qualificao 1o Estgio
2o Semestre de 2015

rea: Teoria: Estrutura de Dados, Projeto e Anlise de Algoritmos, Tcnicas de


Programao, Pesquisa e Ordenao
Em 11/08/2015, 10:00 horas
Prova individual sem consulta com durao de 2 horas
Observaes:
1. A prova deve ser resolvida no prprio caderno de questes.
2. As questes desta prova esto nas pginas seguintes, as quais esto numeradas de 1 a 12.
3. Faz parte da prova a interpretao das questes. Caso voc ache que falta algum detalhe nos enunciados ou nos esclarecimentos, voc dever fazer as suposies que achar
necessrias e escrever essas suposies juntamente com as respostas.
4. Todas as respostas devem ser justificadas.
5. Somente sero corrigidas respostas legveis.
6. No se esquea de escrever seu nome abaixo.
Desejamos a voc uma boa prova!
A COPEQ

Ateno: Esta prova contm um total de 6 (seis) questes, das quais voc deve fazer 4 (quatro).
Marque abaixo as questes que devem ser consideradas para avaliao:
1

Nome:
Assinatura:

(selecione at quatro)

Questo 1
Sejam as funes f (n) e g(n) positivas e considere que f (n) tem um crescimento assinttico
mais lento que g(n), ou seja, f (n) g(n). Para cada afirmao abaixo, diga se verdadeira ou
falsa, provando ou fornecendo um contra-exemplo.
(a) f (n) = O(g(n)) implica em g(n) = O(f (n)).

(b) possvel achar funes f (n) e g(n) tais que f (n) = (g(n)).

(c) f (n) + g(n) = (f (n)).

(d) f (n) + g(n) = (f (n)).

Questo 2
A mediana de um conjunto de nmeros S o nmero n que maior que a metade dos nmeros
em S, e menor que a outra metade. Por exemplo, a mediana do conjunto {2, 5, 1, 6, 1} o
nmero 2. Caso S possua um nmero par de elementos, pode-se assumir que a mediana
maior que a metade de seus elementos, e menor que a metade menos 1. Um algoritmo simples
para encontrar a mediana ordenar os nmeros em S, e retornar o elemento do meio da lista
ordenada. Esse algoritmo possui complexidade O(n ln n). Por outro lado, possvel encontrar
a mediana mais rpido que isso no caso mdio.
1. Escreva um algoritmo que encontre a mediana de um conjunto de n nmeros em tempo
mdio O(n). Dica: lembre-se do procedimento de partio usado no algoritmo Quicksort.
2. A complexidade do melhor caso de seu algoritmo melhor que a complexidade do caso
mdio?
3. Analise a complexidade do pior caso de seu algoritmo.

Questo 3
Um polgono uma figura fechada desenhada em um plano que consiste de uma srie de
segmentos de linha, onde dois segmentos de linha consecutivos se juntam em um vrtice. Um
polgono convexo se nenhum segmento de linha unindo dois vrtices no consecutivos intersecta
o polgono.
Uma triangulao de um polgono formada pela adio de segmentos de linha dentro do
polgono de tal forma que cada regio resultante um tringulo. Se o polgono tem n vrtices,
sero adicionados n 3 segmentos de linha e formados n 2 tringulos. A figura 1 apresenta
uma triangulao de um pentgono.

Figura 1: Exemplo de uma trianguao de um pentgono

Suponha que um peso seja associado a cada tringulo possvel. Por exemplo, esse peso pode
ser uma funo do permetro do tringulo. O peso total da triangulao a soma dos pesos
dos tringulos. Uma triangulao tima tem peso mnimo.
1. Apresente um algoritmo de fora bruta para encontrar uma triangulao tima.
2. Qual a complexidade do seu algoritmo?
3. Apresente uma estratgia de programao dinmica para o mesmo problema.

Questo 4
Os algoritmos abaixo apresentam duas alternativas para gerao de uma rvore geradora mnima. Cada algoritmo recebe um grafo conexo G(V,E) e uma funo peso w como entrada, e
retorna um conjunto de arestas T. Para cada algoritmo, discuta se T uma rvore geradora
e se ela mnima. Analise a complexidade dos algoritmos. Respostas sem justificativa no
sero consideradas.
a) Maybe-MST(G,w)
1. Ordena as arestas em ordem decrescente de peso
2. T = E
3. for cada aresta e, tomada em ordem descrescente de peso
4.
5.

if T - e um grafo conexo
T=T-e

6. return T

b) Maybe-MST(G,w)
1. T =
2. for cada aresta e, tomada em ordem arbitrria
3.

T=Te

4.

if T tem um ciclo c

5.

seja e0 a aresta de peso mximo em c

6.

T = T - e0

7. return T

Questo 5
O problema de roteamento de pacotes pode ser descrito como a tarefa de enviar um pacote de
um servidor A para um servidor B, onde o pacote repassado para um roteador r1 prximo a
A, r1 repassa a mensagem para r2 , que a repassa a r3 e assim por diante at chegar ao roteador
rn , que finalmente repassa a mensagem para o servidor B. Os protocolos de roteamento so
executados para determinar a rota <A, r1 , r2 , ... , rn , B> do pacote. O repasse de um pacote
entre servidor e roteador ou entre dois roteadores vizinhos gasta um certo tempo, chamado
de latncia. Um protocolo eficiente objetiva minimizar a latncia total de transmisso entre o
servidor origem e o servidor destino.
1. Modele o problema de se determinar o roteamento com menor latncia para mensagens
entre dois servidores utilizando grafos.
2. Apresente um algoritmo eficiente para determinar o roteamento entre dois servidores A e
B. A complexidade dele tima?
3. Alm de minimizar a latncia total, algoritmos de roteamento otimizados impem restries no nmero de roteadores pelos quais uma mensagem pode trafegar visando minimizar
a chance de uma mensagem ser perdida em um destes elementos. Em outras palavras, o
algoritmo determina um caminho entre os dois servidores que tenha a menor latncia total
possvel e que no passe por mais de k roteadores. O seu algoritmo de roteamento, apresentado como soluo ao item 2, garantidamente prov solues para este novo problema?
Por qu?

10

Questo 6
O problema de colorao de grafos consiste em assinalar cores aos vrtices de forma que vrtices
adjacentes tenham cores diferentes. Um grafo possui nmero cromtico k se pode ser colorido
usando k cores. O problema de deciso associado se temos ou no uma k-colorao para um
grafo. Sabemos que 2-colorao P e 3-colorao NP-Completo. Prove que 4-colorao
NP-Completo.

11

12

Você também pode gostar