Bonjour,
Je cherche à faire tourner les algorithmes suivants :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| maketsp=function(nCities)
{
positions = 2*runif(nCities,2)-1
distances = matrix(rep(0,(nCities*nCities),nCities,nCities))
for (i in seq(nCities))
{
for (j in seq(i+1,nCities))
{
distances[i,j] = sqrt((positions[i,0] - positions[j,0])**2 + (positions[i,1] - positions[j,1])**2)
distances[j,i] = distances[i,j]
print (distances)
}
}
} |
Le code d'erreur est le suivant :
Error in positions[i, 0] : incorrect number of dimensions
In addition: Warning message:
In runif(nCities, 2) : NAs produced
Je ne vois pas comment implémenter la matrice distance
Le deuxième algorithme est le suivant:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| greedy=function(distances)
{
nCities = seq(1,distances)
distanceTravelled = 0
cityOrder = seq(0,nCities)
cityOrder[0] = runif(nCities)
distances[,cityOrder[0]] = Inf
for ( i in seq(nCities-1))
{
cityOrder[i+1] = wich.min(distances[cityOrder[i],])
distanceTravelled = distances[cityOrder[i],cityOrder[i+1]]
dist[,cityOrder[i+1]] = Inf
distanceTravelled = distances[cityOrder[nCities-1],0]
return(cityOrder)
return(distanceTravelled)
}
} |
L'erreur est la suivante :
Error in seq.default(0, nCities) : 'to' must be of length 1
Les objets sont des matrices mais je ne sais pas comment les implémenter.
Partager