private void Setup(List<City> cities, List<Link> links)
{
D = InitializeWeight(cities, links);
P = new City[cities.Count, cities.Count];
for( int k=0; k<cities.Count; k++ )
{
for( int i=0; i<cities.Count; i++ ) {
for( int j=0; j<cities.Count; j++ ) {
if( D[i,k] != Double.MaxValue
&& D[k,j] != Double.MaxValue
&& D[i,k]+D[k,j] < D[i,j] )
{
D[i,j] = D[i,k]+D[k,j];
P[i,j] = cities[k];
}
}
}
}
}