Olá candidata(o), você foi selecionada(o) para participar da próxima etapa do processo de seleção para a vaga de estagiário desenvolvedor na maior empresa focada em Big Data no Brasil. Esta fase consiste em um desafio.
Sugerimos uma leitura atenta, não seguir as orientações abaixo implicará em penalização no processo.
Neste desafio, faremos uma análise de rede social e queremos extrair dessa rede social uma métrica conhecida como "Proximidade".
Essa métrica tenta avaliar a influência de um indivíduo dentro de uma rede social.
A "Proximidade" de um vértice é o inverso de seu "Distanciamento".
A métrica "Distanciamento" de um dado vértice Vk é a soma de todas as distâncias entre cada outro vértice e Vk.
E a distância entre o vértice V0 e o vértice V1 é definida como o menor caminho entre V0 e V1.
O desafio é classificar todos os vértices em um determinado grafo (fornecido no edges.dat) pela sua "Proximidade". Cada linha do arquivo consiste em dois nomes de vértice separados por um único espaço, o que representa uma ligação entre esses dois vértices.
Você deve fazer um fork deste repositório no momento em que iniciar a atividade, implementar o seu código e substituir este arquivo README.md; e nele delinear a solução e explicar como construir e executar o código.
O seu código deve ser escrito em Python ou Scala (ou uma linguagem de programação funcional como Clojure, Scheme, Haskell ou F#).
A estrutura e legibilidade do código-base serão avaliadas.
Bônus: Use pelo menos uma função anônima no seu código.
Não há nenhum problema em usar as bibliotecas, por exemplo, para testar a interação na rede, porém não use nem copie bibliotecas que já implementem quaisquer algoritmos de grafo ou redes.
Copiar código de outras pessoas também poderá incorrer em penalização; de acordo com os critérios dos avaliadores.
Lembre-se de fazer commits intermediários, enquanto estiver desenvolvendo sua solução; estamos interessados na evolução do código.
O código entregue no GitHub deverá ser executado sem alterações, e independente da interferência dos avaliadores. A única exceção é a instalação de dependências.
O prazo de entrega é de 4 dias.