Roro9876543210
XLDnaute Nouveau
Bonjour,
A partir d'un tableau de données (ci-dessous), je dois trouver la distance la plus courte à parcourir entre toutes les villes (numéros) sans passer deux fois par la m^me ville sauf pour la ville de départ qui est aussi la ville d'arrivée. Il s'agit du problème du pvc. Je dois donc générer des nombres aléatoires dans une colonne et faire correspondre la distance entre les 2 villes juste à coté. Après je fais le total des distances.
Après grâce à l'aide du solveur, je dois trouver le plus petit total en ayant comme variables mes numéros. Le solveur doit tester différentes listes de villes aléatoires.
Pour trouver les distances entre les villes j'utilise cette formule que je déroule :
=INDEX($L$2:$W$13;EQUIV(K16;$K$2:$K$13;0);EQUIV(K17;$L$1:$W$1;0))
Ce sont les villes aléatoires qui me posent problème car je n'arrive pas à les faire varier (exemple: si je met comme villes aléatoires 2-5-4-8-7-...-5-11 le solveur ne va pas réussir à les mettre dans un ordre différent pour avoir le plus petit résultat).
Je pense que j'aurais peut être du mettre une formule alors que j'ai mis une macro:
Sub Bouton3_Cliquer()
Dim a(15)
Randomize Timer
For i = 0 To 11
a(i) = i + 1
Next i
For i = 0 To 11
q = Application.RandBetween(0, 15 - i)
t = a(11 - i): a(11 - i) = a(q): a(q) = t
Next i
Cells(16, 11).Resize(12) = Application.Transpose(a)
Cells(16, 14) = "Total"
Cells(28, 11) = Cells(16, 11)
End Sub
A partir d'un tableau de données (ci-dessous), je dois trouver la distance la plus courte à parcourir entre toutes les villes (numéros) sans passer deux fois par la m^me ville sauf pour la ville de départ qui est aussi la ville d'arrivée. Il s'agit du problème du pvc. Je dois donc générer des nombres aléatoires dans une colonne et faire correspondre la distance entre les 2 villes juste à coté. Après je fais le total des distances.
Après grâce à l'aide du solveur, je dois trouver le plus petit total en ayant comme variables mes numéros. Le solveur doit tester différentes listes de villes aléatoires.
Pour trouver les distances entre les villes j'utilise cette formule que je déroule :
=INDEX($L$2:$W$13;EQUIV(K16;$K$2:$K$13;0);EQUIV(K17;$L$1:$W$1;0))
Ce sont les villes aléatoires qui me posent problème car je n'arrive pas à les faire varier (exemple: si je met comme villes aléatoires 2-5-4-8-7-...-5-11 le solveur ne va pas réussir à les mettre dans un ordre différent pour avoir le plus petit résultat).
Je pense que j'aurais peut être du mettre une formule alors que j'ai mis une macro:
Sub Bouton3_Cliquer()
Dim a(15)
Randomize Timer
For i = 0 To 11
a(i) = i + 1
Next i
For i = 0 To 11
q = Application.RandBetween(0, 15 - i)
t = a(11 - i): a(11 - i) = a(q): a(q) = t
Next i
Cells(16, 11).Resize(12) = Application.Transpose(a)
Cells(16, 14) = "Total"
Cells(28, 11) = Cells(16, 11)
End Sub