Algoritmos Distribuı́dos
UFMG/ICEx/DCC
2a Lista de Exercı́cios
Pós-Graduação em Ciência da Computação
2o Semestre de 2009
Observações:
• Data de entrega: 4/11/2009
• Qualquer linguagem de programação pode ser usada.
• Na documentação a ser entregue, descreva o que foi feito e os conceitos utilizados.
Algoritmo distribuı́do para o “Par de Pontos mais Próximo”
The closest pair of points problem or closest pair problem is a problem of computational
geometry: given n points in the d-dimensional metric space, find a pair of points with the smallest
distance between them. Its two-dimensional version, for points in the plane, was among the first
geometric problems which were treated at the origins of the systematic study of the computational
complexity of geometric algorithms. (Fonte: Wikipedia, http://en.wikipedia.org/wiki/Closest_
pair_of_points_problem)
A figura 1 mostra um exemplo de um conjunto de pontos no plano e o par mais próximo.
Figura 1: Par de pontos mais próximo
Proponha um algoritmo distribuı́do assı́ncrono para ao final da execução todos os nós saberem qual é o par de
pontos mais próximos. Um exemplo de aplicação desse algoritmo é quando num ambiente distribuı́do, dois nós
devem ser escolhidos para fazerem uma tarefa de acordo com um critério, que neste caso é a proximidade, mas
que poderia ser um outro qualquer.
O que fazer:
1. Implemente na sua linguagem de programação favorita, considerando que existem n pontos (n ≤ 100) no
plano numa região quadrada L delimitada pelas coordenadas (0, 0) e (1000, 1000). As coordenadas devem
ser fornecidas de um arquivo a partir da entrada padrão, onde a primeira linha tem o valor de n e as n
linhas seguintes as coordenadas de cada ponto.
2. Visualize a saı́da do seu programa na forma de um conjunto de pontos e o par mais próximo de forma
destacada, como na figura 1.
Download

2a Lista de Exerc´ıcios Algoritmo distribu´ıdo para o “Par de Pontos