Algoritmo de Dijkstra

Olá galera, estou precisando de ajuda para desenvolver este programa, e estou disposto a pagar caso alguem saiba como me ajudar:
Considere a instalação de um centro de distribuição para atender as demandas de uma rede de supermercados, situada numa dada região. Considere o mapa desta região definido por um grafo, onde nós e links representam, respectivamente, as cidades e as rodovias. Considere que em cada cidade existe uma única loja da rede, para a qual é conhecida a demanda (em toneladas de produtos vendidos por mês), e que para cada trecho rodoviário (link) é conhecido o respectivo comprimento (em km). Use o programa que implementou o algoritmo de Dijkstra , e a partir dele crie um aplicativo para determinar a cidade com a melhor localização para este centro de distribuição.

Em acréscimo a este programa implemente:

a) a leitura das demandas mensais de cada loja;

b) o cálculo do momento total de transporte (produto entre demanda e distância de transporte, somado sobre todas as lojas da rede) para cada possibilidade de localização do centro de distribuição;

c) apresente um relatório resumido contendo estes resultados;

c) apresente o mapa (grafo) contendo a melhor localização para o centro de distribuição (menor momento total de transporte), demarcando os caminhos que deverão ser usados no percurso entre esta localização do centro de distribuição e cada loja da rede;

d) inclua no mapa apresentado na tela alguma funcionalidade que permita obter, para cada localidade escolhida:

  • a demanda (em ton./mês);
  • a distância até o melhor local para instalar o centro de distribuição (em km);
  • o momento total de transporte (em ton.km/mês), caso uma determinada localidade seja escolhida.

Você já implementou este programa?